@aeternity/aepp-sdk 13.2.1 → 13.3.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 (509) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/bin/aesophia_cli +0 -0
  4. package/bin/aesophia_cli_8 +0 -0
  5. package/dist/aepp-sdk.browser-script.js +1 -1
  6. package/dist/aepp-sdk.browser-script.js.map +1 -1
  7. package/dist/aepp-sdk.browser.js +1 -1
  8. package/dist/aepp-sdk.browser.js.map +1 -1
  9. package/dist/aepp-sdk.js +7288 -9464
  10. package/dist/aepp-sdk.js.map +1 -1
  11. package/es/AeSdk.d.ts +3 -0
  12. package/es/AeSdk.mjs +12 -12
  13. package/es/AeSdk.mjs.map +1 -1
  14. package/es/AeSdkAepp.d.ts +0 -1
  15. package/es/AeSdkAepp.mjs +12 -16
  16. package/es/AeSdkAepp.mjs.map +1 -1
  17. package/es/AeSdkBase.d.ts +61 -6
  18. package/es/AeSdkBase.mjs +150 -69
  19. package/es/AeSdkBase.mjs.map +1 -1
  20. package/es/AeSdkMethods.d.ts +19 -7
  21. package/es/AeSdkMethods.mjs +39 -38
  22. package/es/AeSdkMethods.mjs.map +1 -1
  23. package/es/AeSdkWallet.mjs +86 -55
  24. package/es/AeSdkWallet.mjs.map +1 -1
  25. package/es/Middleware.d.ts +1 -1
  26. package/es/Middleware.mjs +32 -28
  27. package/es/Middleware.mjs.map +1 -1
  28. package/es/MiddlewareSubscriber.mjs +5 -14
  29. package/es/MiddlewareSubscriber.mjs.map +1 -1
  30. package/es/Node.d.ts +11 -3
  31. package/es/Node.mjs +65 -57
  32. package/es/Node.mjs.map +1 -1
  33. package/es/account/Base.d.ts +39 -3
  34. package/es/account/Base.mjs +35 -1
  35. package/es/account/Base.mjs.map +1 -1
  36. package/es/account/Generalized.d.ts +2 -0
  37. package/es/account/Generalized.mjs +15 -6
  38. package/es/account/Generalized.mjs.map +1 -1
  39. package/es/account/Ledger.d.ts +2 -0
  40. package/es/account/Ledger.mjs +14 -5
  41. package/es/account/Ledger.mjs.map +1 -1
  42. package/es/account/LedgerFactory.mjs +4 -6
  43. package/es/account/LedgerFactory.mjs.map +1 -1
  44. package/es/account/Memory.d.ts +15 -4
  45. package/es/account/Memory.mjs +96 -31
  46. package/es/account/Memory.mjs.map +1 -1
  47. package/es/account/Rpc.d.ts +16 -5
  48. package/es/account/Rpc.mjs +94 -21
  49. package/es/account/Rpc.mjs.map +1 -1
  50. package/es/aens.d.ts +17 -44
  51. package/es/aens.mjs +32 -71
  52. package/es/aens.mjs.map +1 -1
  53. package/es/aepp-wallet-communication/connection/Browser.mjs +3 -4
  54. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  55. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +3 -0
  56. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +7 -5
  57. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  58. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +8 -9
  59. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  60. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +7 -7
  61. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  62. package/es/aepp-wallet-communication/rpc/types.d.ts +14 -0
  63. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  64. package/es/aepp-wallet-communication/schema.d.ts +2 -0
  65. package/es/aepp-wallet-communication/schema.mjs +2 -0
  66. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  67. package/es/aepp-wallet-communication/wallet-detector.d.ts +2 -5
  68. package/es/aepp-wallet-communication/wallet-detector.mjs +13 -9
  69. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  70. package/es/apis/compiler/compiler.mjs.map +1 -1
  71. package/es/apis/compiler/models/index.d.ts +1 -0
  72. package/es/apis/compiler/models/index.mjs.map +1 -1
  73. package/es/apis/compiler/models/mappers.mjs +13 -0
  74. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  76. package/es/apis/middleware/middleware.d.ts +23 -5
  77. package/es/apis/middleware/middleware.mjs +114 -18
  78. package/es/apis/middleware/middleware.mjs.map +1 -1
  79. package/es/apis/middleware/models/index.d.ts +164 -15
  80. package/es/apis/middleware/models/index.mjs +53 -3
  81. package/es/apis/middleware/models/index.mjs.map +1 -1
  82. package/es/apis/middleware/models/mappers.d.ts +8 -1
  83. package/es/apis/middleware/models/mappers.mjs +376 -3
  84. package/es/apis/middleware/models/mappers.mjs.map +1 -1
  85. package/es/apis/middleware/models/parameters.d.ts +6 -3
  86. package/es/apis/middleware/models/parameters.mjs +38 -11
  87. package/es/apis/middleware/models/parameters.mjs.map +1 -1
  88. package/es/apis/node/models/index.d.ts +66 -2
  89. package/es/apis/node/models/index.mjs.map +1 -1
  90. package/es/apis/node/models/mappers.d.ts +5 -1
  91. package/es/apis/node/models/mappers.mjs +229 -7
  92. package/es/apis/node/models/mappers.mjs.map +1 -1
  93. package/es/apis/node/models/parameters.d.ts +2 -2
  94. package/es/apis/node/models/parameters.mjs +2 -2
  95. package/es/apis/node/models/parameters.mjs.map +1 -1
  96. package/es/apis/node/node.d.ts +24 -3
  97. package/es/apis/node/node.mjs +135 -3
  98. package/es/apis/node/node.mjs.map +1 -1
  99. package/es/chain.d.ts +14 -44
  100. package/es/chain.mjs +125 -219
  101. package/es/chain.mjs.map +1 -1
  102. package/es/channel/Base.d.ts +3 -47
  103. package/es/channel/Base.mjs +21 -54
  104. package/es/channel/Base.mjs.map +1 -1
  105. package/es/channel/Contract.d.ts +16 -25
  106. package/es/channel/Contract.mjs +39 -63
  107. package/es/channel/Contract.mjs.map +1 -1
  108. package/es/channel/Spend.d.ts +0 -8
  109. package/es/channel/Spend.mjs +17 -29
  110. package/es/channel/Spend.mjs.map +1 -1
  111. package/es/channel/handlers.mjs +1 -1
  112. package/es/channel/handlers.mjs.map +1 -1
  113. package/es/channel/internal.d.ts +104 -5
  114. package/es/channel/internal.mjs +26 -34
  115. package/es/channel/internal.mjs.map +1 -1
  116. package/es/contract/Contract.d.ts +10 -2
  117. package/es/contract/Contract.mjs +83 -79
  118. package/es/contract/Contract.mjs.map +1 -1
  119. package/es/contract/compiler/Base.d.ts +14 -8
  120. package/es/contract/compiler/Base.mjs.map +1 -1
  121. package/es/contract/compiler/Cli.d.ts +12 -11
  122. package/es/contract/compiler/Cli.mjs +52 -25
  123. package/es/contract/compiler/Cli.mjs.map +1 -1
  124. package/es/contract/compiler/Cli8.d.ts +13 -0
  125. package/es/contract/compiler/Cli8.mjs +22 -0
  126. package/es/contract/compiler/Cli8.mjs.map +1 -0
  127. package/es/contract/compiler/Http.d.ts +3 -9
  128. package/es/contract/compiler/Http.mjs +28 -16
  129. package/es/contract/compiler/Http.mjs.map +1 -1
  130. package/es/contract/compiler/HttpNode.d.ts +2 -5
  131. package/es/contract/compiler/HttpNode.mjs.map +1 -1
  132. package/es/contract/delegation-signature.d.ts +2 -1
  133. package/es/contract/delegation-signature.mjs +18 -14
  134. package/es/contract/delegation-signature.mjs.map +1 -1
  135. package/es/contract/ga.d.ts +1 -2
  136. package/es/contract/ga.mjs +23 -25
  137. package/es/contract/ga.mjs.map +1 -1
  138. package/es/deprecated.d.ts +48 -0
  139. package/es/deprecated.mjs +66 -1
  140. package/es/deprecated.mjs.map +1 -1
  141. package/es/index-browser.d.ts +11 -6
  142. package/es/index-browser.mjs +10 -6
  143. package/es/index-browser.mjs.map +1 -1
  144. package/es/index.d.ts +1 -0
  145. package/es/index.mjs +1 -0
  146. package/es/index.mjs.map +1 -1
  147. package/es/oracle.d.ts +6 -37
  148. package/es/oracle.mjs +32 -66
  149. package/es/oracle.mjs.map +1 -1
  150. package/es/send-transaction.d.ts +53 -0
  151. package/es/send-transaction.mjs +109 -0
  152. package/es/send-transaction.mjs.map +1 -0
  153. package/es/spend.d.ts +4 -3
  154. package/es/spend.mjs +6 -1
  155. package/es/spend.mjs.map +1 -1
  156. package/es/tx/builder/common.d.ts +29 -0
  157. package/es/tx/builder/common.mjs +42 -0
  158. package/es/tx/builder/common.mjs.map +1 -0
  159. package/es/tx/builder/constants.d.ts +6 -5
  160. package/es/tx/builder/constants.mjs +7 -15
  161. package/es/tx/builder/constants.mjs.map +1 -1
  162. package/es/tx/builder/delegation/index.d.ts +20 -0
  163. package/es/tx/builder/delegation/index.mjs +24 -0
  164. package/es/tx/builder/delegation/index.mjs.map +1 -0
  165. package/es/tx/builder/delegation/schema.d.ts +130 -0
  166. package/es/tx/builder/delegation/schema.generated.d.ts +141 -0
  167. package/es/tx/builder/delegation/schema.generated.mjs +2 -0
  168. package/es/tx/builder/delegation/schema.generated.mjs.map +1 -0
  169. package/es/tx/builder/delegation/schema.mjs +54 -0
  170. package/es/tx/builder/delegation/schema.mjs.map +1 -0
  171. package/es/tx/builder/field-types/abi-version.mjs +8 -11
  172. package/es/tx/builder/field-types/abi-version.mjs.map +1 -1
  173. package/es/tx/builder/field-types/address.mjs +1 -4
  174. package/es/tx/builder/field-types/address.mjs.map +1 -1
  175. package/es/tx/builder/field-types/coin-amount.d.ts +2 -2
  176. package/es/tx/builder/field-types/coin-amount.mjs +6 -6
  177. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  178. package/es/tx/builder/field-types/ct-version.d.ts +1 -1
  179. package/es/tx/builder/field-types/ct-version.mjs +4 -5
  180. package/es/tx/builder/field-types/ct-version.mjs.map +1 -1
  181. package/es/tx/builder/field-types/entry.mjs +7 -13
  182. package/es/tx/builder/field-types/entry.mjs.map +1 -1
  183. package/es/tx/builder/field-types/fee.d.ts +19 -11
  184. package/es/tx/builder/field-types/fee.mjs +57 -39
  185. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  186. package/es/tx/builder/field-types/gas-limit.mjs +13 -15
  187. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  188. package/es/tx/builder/field-types/gas-price.d.ts +10 -2
  189. package/es/tx/builder/field-types/gas-price.mjs +53 -4
  190. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  191. package/es/tx/builder/field-types/index.d.ts +31 -29
  192. package/es/tx/builder/field-types/index.mjs +31 -29
  193. package/es/tx/builder/field-types/index.mjs.map +1 -1
  194. package/es/tx/builder/field-types/map.mjs +20 -31
  195. package/es/tx/builder/field-types/map.mjs.map +1 -1
  196. package/es/tx/builder/field-types/mptree.mjs +14 -29
  197. package/es/tx/builder/field-types/mptree.mjs.map +1 -1
  198. package/es/tx/builder/field-types/name-fee.d.ts +1 -1
  199. package/es/tx/builder/field-types/name-fee.mjs +1 -1
  200. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  201. package/es/tx/builder/field-types/nonce.d.ts +1 -0
  202. package/es/tx/builder/field-types/nonce.mjs +2 -0
  203. package/es/tx/builder/field-types/nonce.mjs.map +1 -1
  204. package/es/tx/builder/field-types/pointers.mjs +4 -7
  205. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  206. package/es/tx/builder/field-types/pointers2.d.ts +23 -0
  207. package/es/tx/builder/field-types/pointers2.mjs +65 -0
  208. package/es/tx/builder/field-types/pointers2.mjs.map +1 -0
  209. package/es/tx/builder/field-types/query-fee.d.ts +19 -0
  210. package/es/tx/builder/field-types/query-fee.mjs +20 -0
  211. package/es/tx/builder/field-types/query-fee.mjs.map +1 -0
  212. package/es/tx/builder/field-types/ttl.d.ts +9 -1
  213. package/es/tx/builder/field-types/ttl.mjs +19 -8
  214. package/es/tx/builder/field-types/ttl.mjs.map +1 -1
  215. package/es/tx/builder/field-types/with-default.d.ts +7 -0
  216. package/es/tx/builder/field-types/with-default.mjs +9 -0
  217. package/es/tx/builder/field-types/with-default.mjs.map +1 -0
  218. package/es/tx/builder/field-types/with-formatting.d.ts +7 -0
  219. package/es/tx/builder/field-types/with-formatting.mjs +9 -0
  220. package/es/tx/builder/field-types/with-formatting.mjs.map +1 -0
  221. package/es/tx/builder/field-types/wrapped.mjs +6 -8
  222. package/es/tx/builder/field-types/wrapped.mjs.map +1 -1
  223. package/es/tx/builder/helpers.d.ts +2 -2
  224. package/es/tx/builder/helpers.mjs +12 -21
  225. package/es/tx/builder/helpers.mjs.map +1 -1
  226. package/es/tx/builder/index.d.ts +17 -10
  227. package/es/tx/builder/index.mjs +39 -65
  228. package/es/tx/builder/index.mjs.map +1 -1
  229. package/es/tx/builder/schema.d.ts +478 -257
  230. package/es/tx/builder/schema.generated.d.ts +39 -3
  231. package/es/tx/builder/schema.generated.mjs.map +1 -1
  232. package/es/tx/builder/schema.mjs +48 -36
  233. package/es/tx/builder/schema.mjs.map +1 -1
  234. package/es/tx/execution-cost.d.ts +6 -5
  235. package/es/tx/execution-cost.mjs +16 -17
  236. package/es/tx/execution-cost.mjs.map +1 -1
  237. package/es/tx/transaction-signer.mjs +1 -4
  238. package/es/tx/transaction-signer.mjs.map +1 -1
  239. package/es/tx/validator.mjs +61 -42
  240. package/es/tx/validator.mjs.map +1 -1
  241. package/es/utils/amount-formatter.mjs +15 -22
  242. package/es/utils/amount-formatter.mjs.map +1 -1
  243. package/es/utils/autorest.d.ts +2 -3
  244. package/es/utils/autorest.mjs +41 -25
  245. package/es/utils/autorest.mjs.map +1 -1
  246. package/es/utils/bytes.mjs +1 -2
  247. package/es/utils/bytes.mjs.map +1 -1
  248. package/es/utils/crypto.d.ts +9 -5
  249. package/es/utils/crypto.mjs +18 -14
  250. package/es/utils/crypto.mjs.map +1 -1
  251. package/es/utils/errors.d.ts +6 -0
  252. package/es/utils/errors.mjs +12 -6
  253. package/es/utils/errors.mjs.map +1 -1
  254. package/es/utils/hd-wallet.d.ts +2 -0
  255. package/es/utils/hd-wallet.mjs +6 -5
  256. package/es/utils/hd-wallet.mjs.map +1 -1
  257. package/es/utils/json-big.mjs +2 -10
  258. package/es/utils/json-big.mjs.map +1 -1
  259. package/es/utils/jwt.d.ts +53 -0
  260. package/es/utils/jwt.mjs +120 -0
  261. package/es/utils/jwt.mjs.map +1 -0
  262. package/es/utils/keystore.d.ts +6 -2
  263. package/es/utils/keystore.mjs +8 -16
  264. package/es/utils/keystore.mjs.map +1 -1
  265. package/es/utils/typed-data.d.ts +0 -2
  266. package/es/utils/typed-data.mjs +8 -23
  267. package/es/utils/typed-data.mjs.map +1 -1
  268. package/es/utils/wrap-proxy.d.ts +2 -0
  269. package/es/utils/wrap-proxy.mjs +15 -0
  270. package/es/utils/wrap-proxy.mjs.map +1 -0
  271. package/package.json +57 -51
  272. package/src/AeSdk.ts +3 -0
  273. package/src/AeSdkAepp.ts +0 -1
  274. package/src/AeSdkBase.ts +97 -10
  275. package/src/AeSdkMethods.ts +37 -33
  276. package/src/AeSdkWallet.ts +22 -3
  277. package/src/Middleware.ts +17 -9
  278. package/src/MiddlewareSubscriber.ts +1 -1
  279. package/src/Node.ts +51 -21
  280. package/src/account/Base.ts +62 -3
  281. package/src/account/Generalized.ts +10 -0
  282. package/src/account/Ledger.ts +10 -0
  283. package/src/account/Memory.ts +83 -9
  284. package/src/account/Rpc.ts +69 -6
  285. package/src/aens.ts +35 -56
  286. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +3 -0
  287. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +2 -2
  288. package/src/aepp-wallet-communication/rpc/RpcClient.ts +4 -2
  289. package/src/aepp-wallet-communication/rpc/types.ts +14 -1
  290. package/src/aepp-wallet-communication/schema.ts +2 -0
  291. package/src/aepp-wallet-communication/wallet-detector.ts +10 -10
  292. package/src/apis/compiler/compiler.ts +93 -93
  293. package/src/apis/compiler/models/index.ts +1 -0
  294. package/src/apis/compiler/models/mappers.ts +178 -165
  295. package/src/apis/compiler/models/parameters.ts +18 -18
  296. package/src/apis/middleware/middleware.ts +462 -341
  297. package/src/apis/middleware/models/index.ts +258 -56
  298. package/src/apis/middleware/models/mappers.ts +2357 -1919
  299. package/src/apis/middleware/models/parameters.ts +172 -142
  300. package/src/apis/node/models/index.ts +79 -2
  301. package/src/apis/node/models/mappers.ts +1529 -1302
  302. package/src/apis/node/models/parameters.ts +51 -51
  303. package/src/apis/node/node.ts +420 -275
  304. package/src/chain.ts +42 -128
  305. package/src/channel/Base.ts +14 -47
  306. package/src/channel/Contract.ts +18 -26
  307. package/src/channel/Spend.ts +0 -8
  308. package/src/channel/internal.ts +115 -13
  309. package/src/contract/Contract.ts +36 -12
  310. package/src/contract/compiler/Base.ts +15 -8
  311. package/src/contract/compiler/Cli.ts +44 -23
  312. package/src/contract/compiler/Cli8.ts +17 -0
  313. package/src/contract/compiler/Http.ts +24 -14
  314. package/src/contract/compiler/HttpNode.ts +2 -2
  315. package/src/contract/delegation-signature.ts +11 -5
  316. package/src/contract/ga.ts +4 -3
  317. package/src/deprecated.ts +55 -1
  318. package/src/index-browser.ts +18 -11
  319. package/src/index.ts +1 -0
  320. package/src/oracle.ts +11 -54
  321. package/src/send-transaction.ts +136 -0
  322. package/src/spend.ts +25 -11
  323. package/src/tx/builder/common.ts +74 -0
  324. package/src/tx/builder/constants.ts +7 -9
  325. package/src/tx/builder/delegation/index.ts +28 -0
  326. package/src/tx/builder/delegation/schema.generated.ts +143 -0
  327. package/src/tx/builder/delegation/schema.ts +61 -0
  328. package/src/tx/builder/field-types/coin-amount.ts +3 -2
  329. package/src/tx/builder/field-types/ct-version.ts +1 -1
  330. package/src/tx/builder/field-types/entry.ts +1 -4
  331. package/src/tx/builder/field-types/fee.ts +72 -44
  332. package/src/tx/builder/field-types/gas-limit.ts +4 -4
  333. package/src/tx/builder/field-types/gas-price.ts +59 -3
  334. package/src/tx/builder/field-types/index.ts +31 -59
  335. package/src/tx/builder/field-types/name-fee.ts +1 -1
  336. package/src/tx/builder/field-types/nonce.ts +7 -1
  337. package/src/tx/builder/field-types/pointers2.ts +62 -0
  338. package/src/tx/builder/field-types/query-fee.ts +25 -0
  339. package/src/tx/builder/field-types/ttl.ts +13 -3
  340. package/src/tx/builder/field-types/with-default.ts +18 -0
  341. package/src/tx/builder/field-types/with-formatting.ts +18 -0
  342. package/src/tx/builder/helpers.ts +2 -2
  343. package/src/tx/builder/index.ts +42 -59
  344. package/src/tx/builder/schema.generated.ts +39 -3
  345. package/src/tx/builder/schema.ts +55 -29
  346. package/src/tx/execution-cost.ts +6 -5
  347. package/src/tx/validator.ts +31 -5
  348. package/src/utils/autorest.ts +37 -28
  349. package/src/utils/crypto.ts +24 -14
  350. package/src/utils/errors.ts +10 -0
  351. package/src/utils/hd-wallet.ts +2 -0
  352. package/src/utils/jwt.ts +126 -0
  353. package/src/utils/keystore.ts +6 -2
  354. package/src/utils/typed-data.ts +4 -30
  355. package/src/utils/wrap-proxy.ts +24 -0
  356. package/types-legacy/ts4.2/AeSdk.d.ts +3 -0
  357. package/types-legacy/ts4.2/AeSdkAepp.d.ts +0 -1
  358. package/types-legacy/ts4.2/AeSdkBase.d.ts +61 -6
  359. package/types-legacy/ts4.2/AeSdkMethods.d.ts +19 -7
  360. package/types-legacy/ts4.2/Middleware.d.ts +1 -1
  361. package/types-legacy/ts4.2/Node.d.ts +15 -2
  362. package/types-legacy/ts4.2/account/Base.d.ts +39 -3
  363. package/types-legacy/ts4.2/account/Generalized.d.ts +2 -0
  364. package/types-legacy/ts4.2/account/Ledger.d.ts +2 -0
  365. package/types-legacy/ts4.2/account/Memory.d.ts +15 -4
  366. package/types-legacy/ts4.2/account/Rpc.d.ts +16 -5
  367. package/types-legacy/ts4.2/aens.d.ts +17 -44
  368. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +3 -0
  369. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +14 -0
  370. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +2 -0
  371. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +2 -5
  372. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +1 -0
  373. package/types-legacy/ts4.2/apis/middleware/middleware.d.ts +23 -5
  374. package/types-legacy/ts4.2/apis/middleware/models/index.d.ts +164 -15
  375. package/types-legacy/ts4.2/apis/middleware/models/mappers.d.ts +8 -1
  376. package/types-legacy/ts4.2/apis/middleware/models/parameters.d.ts +6 -3
  377. package/types-legacy/ts4.2/apis/node/models/index.d.ts +66 -2
  378. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +5 -1
  379. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
  380. package/types-legacy/ts4.2/apis/node/node.d.ts +24 -3
  381. package/types-legacy/ts4.2/chain.d.ts +14 -44
  382. package/types-legacy/ts4.2/channel/Base.d.ts +3 -47
  383. package/types-legacy/ts4.2/channel/Contract.d.ts +16 -25
  384. package/types-legacy/ts4.2/channel/Spend.d.ts +0 -8
  385. package/types-legacy/ts4.2/channel/internal.d.ts +104 -5
  386. package/types-legacy/ts4.2/contract/Contract.d.ts +10 -2
  387. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +14 -8
  388. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +12 -11
  389. package/types-legacy/ts4.2/contract/compiler/Cli8.d.ts +13 -0
  390. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +3 -9
  391. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +2 -5
  392. package/types-legacy/ts4.2/contract/delegation-signature.d.ts +2 -1
  393. package/types-legacy/ts4.2/contract/ga.d.ts +1 -2
  394. package/types-legacy/ts4.2/deprecated.d.ts +48 -0
  395. package/types-legacy/ts4.2/index-browser.d.ts +11 -6
  396. package/types-legacy/ts4.2/index.d.ts +1 -0
  397. package/types-legacy/ts4.2/oracle.d.ts +6 -37
  398. package/types-legacy/ts4.2/send-transaction.d.ts +53 -0
  399. package/types-legacy/ts4.2/spend.d.ts +4 -3
  400. package/types-legacy/ts4.2/tx/builder/common.d.ts +32 -0
  401. package/types-legacy/ts4.2/tx/builder/constants.d.ts +6 -5
  402. package/types-legacy/ts4.2/tx/builder/delegation/index.d.ts +20 -0
  403. package/types-legacy/ts4.2/tx/builder/delegation/schema.d.ts +136 -0
  404. package/types-legacy/ts4.2/tx/builder/delegation/schema.generated.d.ts +141 -0
  405. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +2 -2
  406. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +1 -1
  407. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +19 -11
  408. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +10 -2
  409. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +31 -29
  410. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +1 -1
  411. package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +1 -0
  412. package/types-legacy/ts4.2/tx/builder/field-types/pointers2.d.ts +26 -0
  413. package/types-legacy/ts4.2/tx/builder/field-types/query-fee.d.ts +19 -0
  414. package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +9 -1
  415. package/types-legacy/ts4.2/tx/builder/field-types/with-default.d.ts +7 -0
  416. package/types-legacy/ts4.2/tx/builder/field-types/with-formatting.d.ts +7 -0
  417. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +2 -2
  418. package/types-legacy/ts4.2/tx/builder/index.d.ts +17 -10
  419. package/types-legacy/ts4.2/tx/builder/schema.d.ts +482 -257
  420. package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +39 -3
  421. package/types-legacy/ts4.2/tx/execution-cost.d.ts +6 -5
  422. package/types-legacy/ts4.2/utils/autorest.d.ts +2 -3
  423. package/types-legacy/ts4.2/utils/crypto.d.ts +9 -5
  424. package/types-legacy/ts4.2/utils/errors.d.ts +6 -0
  425. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +2 -0
  426. package/types-legacy/ts4.2/utils/jwt.d.ts +53 -0
  427. package/types-legacy/ts4.2/utils/keystore.d.ts +6 -2
  428. package/types-legacy/ts4.2/utils/typed-data.d.ts +0 -2
  429. package/types-legacy/ts4.2/utils/wrap-proxy.d.ts +2 -0
  430. package/types-legacy/ts4.5/AeSdk.d.ts +3 -0
  431. package/types-legacy/ts4.5/AeSdkAepp.d.ts +0 -1
  432. package/types-legacy/ts4.5/AeSdkBase.d.ts +61 -6
  433. package/types-legacy/ts4.5/AeSdkMethods.d.ts +19 -7
  434. package/types-legacy/ts4.5/Middleware.d.ts +1 -1
  435. package/types-legacy/ts4.5/Node.d.ts +15 -2
  436. package/types-legacy/ts4.5/account/Base.d.ts +39 -3
  437. package/types-legacy/ts4.5/account/Generalized.d.ts +2 -0
  438. package/types-legacy/ts4.5/account/Ledger.d.ts +2 -0
  439. package/types-legacy/ts4.5/account/Memory.d.ts +15 -4
  440. package/types-legacy/ts4.5/account/Rpc.d.ts +16 -5
  441. package/types-legacy/ts4.5/aens.d.ts +17 -44
  442. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +3 -0
  443. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +14 -0
  444. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +2 -0
  445. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +2 -5
  446. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +1 -0
  447. package/types-legacy/ts4.5/apis/middleware/middleware.d.ts +23 -5
  448. package/types-legacy/ts4.5/apis/middleware/models/index.d.ts +164 -15
  449. package/types-legacy/ts4.5/apis/middleware/models/mappers.d.ts +8 -1
  450. package/types-legacy/ts4.5/apis/middleware/models/parameters.d.ts +6 -3
  451. package/types-legacy/ts4.5/apis/node/models/index.d.ts +66 -2
  452. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +5 -1
  453. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
  454. package/types-legacy/ts4.5/apis/node/node.d.ts +24 -3
  455. package/types-legacy/ts4.5/chain.d.ts +14 -44
  456. package/types-legacy/ts4.5/channel/Base.d.ts +3 -47
  457. package/types-legacy/ts4.5/channel/Contract.d.ts +16 -25
  458. package/types-legacy/ts4.5/channel/Spend.d.ts +0 -8
  459. package/types-legacy/ts4.5/channel/internal.d.ts +104 -5
  460. package/types-legacy/ts4.5/contract/Contract.d.ts +10 -2
  461. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +14 -8
  462. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +12 -11
  463. package/types-legacy/ts4.5/contract/compiler/Cli8.d.ts +13 -0
  464. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +3 -9
  465. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +2 -5
  466. package/types-legacy/ts4.5/contract/delegation-signature.d.ts +2 -1
  467. package/types-legacy/ts4.5/contract/ga.d.ts +1 -2
  468. package/types-legacy/ts4.5/deprecated.d.ts +48 -0
  469. package/types-legacy/ts4.5/index-browser.d.ts +11 -6
  470. package/types-legacy/ts4.5/index.d.ts +1 -0
  471. package/types-legacy/ts4.5/oracle.d.ts +6 -37
  472. package/types-legacy/ts4.5/send-transaction.d.ts +53 -0
  473. package/types-legacy/ts4.5/spend.d.ts +4 -3
  474. package/types-legacy/ts4.5/tx/builder/common.d.ts +32 -0
  475. package/types-legacy/ts4.5/tx/builder/constants.d.ts +6 -5
  476. package/types-legacy/ts4.5/tx/builder/delegation/index.d.ts +20 -0
  477. package/types-legacy/ts4.5/tx/builder/delegation/schema.d.ts +136 -0
  478. package/types-legacy/ts4.5/tx/builder/delegation/schema.generated.d.ts +141 -0
  479. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +2 -2
  480. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +1 -1
  481. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +19 -11
  482. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +10 -2
  483. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +31 -29
  484. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +1 -1
  485. package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +1 -0
  486. package/types-legacy/ts4.5/tx/builder/field-types/pointers2.d.ts +26 -0
  487. package/types-legacy/ts4.5/tx/builder/field-types/query-fee.d.ts +19 -0
  488. package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +9 -1
  489. package/types-legacy/ts4.5/tx/builder/field-types/with-default.d.ts +7 -0
  490. package/types-legacy/ts4.5/tx/builder/field-types/with-formatting.d.ts +7 -0
  491. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +2 -2
  492. package/types-legacy/ts4.5/tx/builder/index.d.ts +17 -10
  493. package/types-legacy/ts4.5/tx/builder/schema.d.ts +482 -257
  494. package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +39 -3
  495. package/types-legacy/ts4.5/tx/execution-cost.d.ts +6 -5
  496. package/types-legacy/ts4.5/utils/autorest.d.ts +2 -3
  497. package/types-legacy/ts4.5/utils/crypto.d.ts +9 -5
  498. package/types-legacy/ts4.5/utils/errors.d.ts +6 -0
  499. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +2 -0
  500. package/types-legacy/ts4.5/utils/jwt.d.ts +53 -0
  501. package/types-legacy/ts4.5/utils/keystore.d.ts +6 -2
  502. package/types-legacy/ts4.5/utils/typed-data.d.ts +0 -2
  503. package/types-legacy/ts4.5/utils/wrap-proxy.d.ts +2 -0
  504. package/es/tx/builder/field-types/deposit.d.ts +0 -15
  505. package/es/tx/builder/field-types/deposit.mjs +0 -18
  506. package/es/tx/builder/field-types/deposit.mjs.map +0 -1
  507. package/src/tx/builder/field-types/deposit.ts +0 -23
  508. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +0 -15
  509. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +0 -15
@@ -1,5 +1,5 @@
1
- import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline';
2
- import { AdditionalPolicyConfig } from '@azure/core-client';
1
+ import { RestError, PipelineResponse } from '@azure/core-rest-pipeline';
2
+ import { AdditionalPolicyConfig, FullOperationResponse, OperationOptions } from '@azure/core-client';
3
3
  import { pause } from './other';
4
4
  import semverSatisfies from './semver-satisfies';
5
5
  import { UnsupportedVersionError } from './errors';
@@ -15,10 +15,8 @@ export const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {
15
15
  request.headers.delete('__queue');
16
16
  const getResponse = async (): Promise<PipelineResponse> => next(request);
17
17
  if (key == null) return getResponse();
18
- const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse, getResponse);
19
- // TODO: remove after fixing https://github.com/aeternity/aeternity/issues/3803
20
- // gap to ensure that node won't reject the nonce
21
- requestQueues.set(key, req.then(async () => pause(750)));
18
+ const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse);
19
+ requestQueues.set(key, req.catch(() => {}));
22
20
  return req;
23
21
  },
24
22
  },
@@ -76,16 +74,16 @@ export const genErrorFormatterPolicy = (
76
74
  return await next(request);
77
75
  } catch (error) {
78
76
  if (!(error instanceof RestError) || error.request == null) throw error;
79
- if (error.response?.bodyAsText == null) throw error;
77
+ const prefix = `${new URL(error.request.url).pathname.slice(1)} error`;
80
78
 
81
- let body;
82
- try {
83
- body = JSON.parse(error.response.bodyAsText);
84
- } catch (e) {
79
+ if (error.response?.bodyAsText == null) {
80
+ if (error.message === '') error.message = `${prefix}: ${error.code}`;
85
81
  throw error;
86
82
  }
87
- error.message = `${new URL(error.request.url).pathname.slice(1)} error`;
88
- const message = getMessage(body);
83
+
84
+ const body = (error.response as FullOperationResponse).parsedBody;
85
+ error.message = prefix;
86
+ const message = body == null ? ` ${error.response.status} status code` : getMessage(body);
89
87
  if (message !== '') error.message += `:${message}`;
90
88
  throw error;
91
89
  }
@@ -96,20 +94,24 @@ export const genErrorFormatterPolicy = (
96
94
 
97
95
  export const genVersionCheckPolicy = (
98
96
  name: string,
99
- ignorePath: string,
100
- versionPromise: Promise<string | Error>,
97
+ versionCb: (options: OperationOptions) => Promise<string>,
101
98
  geVersion: string,
102
99
  ltVersion: string,
103
- ): PipelinePolicy => ({
104
- name: 'version-check',
105
- async sendRequest(request, next) {
106
- if (new URL(request.url).pathname === ignorePath) return next(request);
107
- const version = await versionPromise;
108
- if (version instanceof Error) throw version;
109
- const args = [version, geVersion, ltVersion] as const;
110
- if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);
111
- return next(request);
100
+ ): AdditionalPolicyConfig => ({
101
+ policy: {
102
+ name: 'version-check',
103
+ async sendRequest(request, next) {
104
+ if (request.headers.has('__version-check')) {
105
+ request.headers.delete('__version-check');
106
+ return next(request);
107
+ }
108
+ const options = { requestOptions: { customHeaders: { '__version-check': 'true' } } };
109
+ const args = [await versionCb(options), geVersion, ltVersion] as const;
110
+ if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);
111
+ return next(request);
112
+ },
112
113
  },
114
+ position: 'perCall',
113
115
  });
114
116
 
115
117
  export const genRetryOnFailurePolicy = (
@@ -119,16 +121,23 @@ export const genRetryOnFailurePolicy = (
119
121
  policy: {
120
122
  name: 'retry-on-failure',
121
123
  async sendRequest(request, next) {
122
- const statusesToNotRetry = [200, 400, 403];
124
+ const retryCode = request.headers.get('__retry-code') ?? NaN;
125
+ request.headers.delete('__retry-code');
126
+ const statusesToNotRetry = [200, 400, 403, 410, 500].filter((c) => c !== +retryCode);
123
127
 
124
128
  const intervals = new Array(retryCount).fill(0)
125
129
  .map((_, idx) => ((idx + 1) / retryCount) ** 2);
126
- const intervalSum = intervals.reduce((a, b) => a + b);
127
- const intervalsInMs = intervals.map((el) => (el / intervalSum) * retryOverallDelay);
130
+ const intervalSum = intervals.reduce((a, b) => a + b, 0);
131
+ const intervalsInMs = intervals.map((e) => Math.floor((e / intervalSum) * retryOverallDelay));
128
132
 
129
133
  let error = new RestError('Not expected to be thrown');
130
134
  for (let attempt = 0; attempt <= retryCount; attempt += 1) {
131
- if (attempt !== 0) await pause(intervalsInMs[attempt - 1]);
135
+ if (attempt !== 0) {
136
+ await pause(intervalsInMs[attempt - 1]);
137
+ const urlParsed = new URL(request.url);
138
+ urlParsed.searchParams.set('__sdk-retry', attempt.toString());
139
+ request.url = urlParsed.toString();
140
+ }
132
141
  try {
133
142
  return await next(request);
134
143
  } catch (e) {
@@ -4,7 +4,7 @@ import nacl, { SignKeyPair } from 'tweetnacl';
4
4
  import { blake2b } from 'blakejs/blake2b.js';
5
5
  import { encode as varuintEncode } from 'varuint-bitcoin';
6
6
 
7
- import { concatBuffers } from './other';
7
+ import { concatBuffers, isItemOfArray } from './other';
8
8
  import {
9
9
  decode, encode, Encoded, Encoding,
10
10
  } from './encoder';
@@ -23,22 +23,32 @@ export function getAddressFromPriv(secret: string | Uint8Array): Encoded.Account
23
23
 
24
24
  /**
25
25
  * Check if address is valid
26
- * @param address - Address
27
- * @param prefix - Transaction prefix. Default: 'ak'
28
- * @returns is valid
26
+ * @param maybeAddress - Address to check
29
27
  */
30
- export function isAddressValid(
31
- address: string,
32
- prefix: Encoding = Encoding.AccountAddress,
33
- ): boolean {
28
+ export function isAddressValid(maybeAddress: string): maybeAddress is Encoded.AccountAddress;
29
+ /**
30
+ * Check if data is encoded in one of provided encodings
31
+ * @param maybeEncoded - Data to check
32
+ * @param encodings - Rest parameters with encodings to check against
33
+ */
34
+ export function isAddressValid<E extends Encoding>(
35
+ maybeEncoded: string,
36
+ ...encodings: E[]
37
+ ): maybeEncoded is Encoded.Generic<E>;
38
+ export function isAddressValid(maybeEncoded: string, ...encodings: Encoding[]): boolean {
39
+ if (encodings.length === 0) encodings = [Encoding.AccountAddress];
34
40
  try {
35
- decode(address as Encoded.Generic<typeof prefix>);
36
- const actualPrefix = address.split('_')[0];
37
- if (actualPrefix !== prefix) {
38
- throw new ArgumentError('Encoded string type', prefix, actualPrefix);
41
+ decode(maybeEncoded as Encoded.Any);
42
+ const encoding = maybeEncoded.split('_')[0];
43
+ if (!isItemOfArray(encoding, encodings)) {
44
+ throw new ArgumentError(
45
+ 'Encoded string type',
46
+ encodings.length > 1 ? `one of ${encodings.join(', ')}` : encodings[0],
47
+ encoding,
48
+ );
39
49
  }
40
50
  return true;
41
- } catch (e) {
51
+ } catch (error) {
42
52
  return false;
43
53
  }
44
54
  }
@@ -190,7 +200,7 @@ export function verifyMessage(
190
200
  /**
191
201
  * Check key pair for validity
192
202
  *
193
- * Sign a message, and then verifying that signature
203
+ * Signs a message, and then verifies that signature
194
204
  * @param privateKey - Private key to verify
195
205
  * @param publicKey - Public key to verify as hex string
196
206
  * @returns Valid?
@@ -247,6 +247,16 @@ export class UnsupportedVersionError extends BaseError {
247
247
  }
248
248
  }
249
249
 
250
+ /**
251
+ * @category exception
252
+ */
253
+ export class LogicError extends BaseError {
254
+ constructor(message: string) {
255
+ super(message);
256
+ this.name = 'LogicError';
257
+ }
258
+ }
259
+
250
260
  /**
251
261
  * @category exception
252
262
  */
@@ -71,6 +71,8 @@ type Bip32Path<MaxLen extends number> =
71
71
 
72
72
  /**
73
73
  * @category hd-wallet
74
+ * @param keyTreeNode - A node of key tree
75
+ * @param index - index of child node to derive
74
76
  */
75
77
  export function deriveChild({ secretKey, chainCode }: KeyTreeNode, index: number): KeyTreeNode {
76
78
  if (index < HARDENED_OFFSET) {
@@ -0,0 +1,126 @@
1
+ import canonicalize from 'canonicalize';
2
+ import AccountBase from '../account/Base';
3
+ import {
4
+ Encoded, Encoding, decode, encode,
5
+ } from './encoder';
6
+ import { verify } from './crypto';
7
+ import { ArgumentError, InvalidSignatureError } from './errors';
8
+
9
+ // TODO: use Buffer.from(data, 'base64url') after solving https://github.com/feross/buffer/issues/309
10
+ const toBase64Url = (data: Buffer | Uint8Array | string): string => Buffer
11
+ .from(data)
12
+ .toString('base64')
13
+ .replaceAll('/', '_')
14
+ .replaceAll('+', '-')
15
+ .replace(/=+$/, '');
16
+
17
+ const fromBase64Url = (data: string): Buffer => Buffer
18
+ .from(data.replaceAll('_', '/').replaceAll('-', '+'), 'base64');
19
+
20
+ const objectToBase64Url = (data: any): string => toBase64Url(canonicalize(data) ?? '');
21
+
22
+ const header = 'eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9'; // objectToBase64Url({ alg: 'EdDSA', typ: 'JWT' })
23
+
24
+ /**
25
+ * JWT including specific header
26
+ * @category JWT
27
+ */
28
+ export type Jwt = `${typeof header}.${string}.${string}`;
29
+
30
+ /**
31
+ * Generate a signed JWT
32
+ * Provide `"sub_jwk": undefined` in payload to omit signer public key added by default.
33
+ * @param originalPayload - Payload to sign
34
+ * @param account - Account to sign by
35
+ * @category JWT
36
+ */
37
+ export async function signJwt(originalPayload: any, account: AccountBase): Promise<Jwt> {
38
+ const payload = { ...originalPayload };
39
+ if (!('sub_jwk' in payload)) {
40
+ payload.sub_jwk = {
41
+ kty: 'OKP',
42
+ crv: 'Ed25519',
43
+ x: toBase64Url(decode(account.address)),
44
+ };
45
+ }
46
+ if (payload.sub_jwk === undefined) delete payload.sub_jwk;
47
+ const body = `${header}.${objectToBase64Url(payload)}` as const;
48
+ const signature = await account.sign(body);
49
+ return `${body}.${toBase64Url(signature)}`;
50
+ }
51
+
52
+ /**
53
+ * Unpack JWT. It will check signature if address or "sub_jwk" provided.
54
+ * @param jwt - JWT to unpack
55
+ * @param address - Address to check signature
56
+ * @category JWT
57
+ */
58
+ export function unpackJwt(jwt: Jwt, address?: Encoded.AccountAddress): {
59
+ /**
60
+ * JWT payload as object
61
+ */
62
+ payload: any;
63
+ /**
64
+ * Undefined returned in case signature is not checked
65
+ */
66
+ signer: Encoded.AccountAddress | undefined;
67
+ } {
68
+ const components = jwt.split('.');
69
+ if (components.length !== 3) throw new ArgumentError('JWT components count', 3, components.length);
70
+ const [h, payloadEncoded, signature] = components;
71
+ if (h !== header) throw new ArgumentError('JWT header', header, h);
72
+ const payload = JSON.parse(fromBase64Url(payloadEncoded).toString());
73
+ const jwk = payload.sub_jwk ?? {};
74
+ const signer = jwk.x == null || jwk.kty !== 'OKP' || jwk.crv !== 'Ed25519'
75
+ ? address
76
+ : encode(fromBase64Url(jwk.x), Encoding.AccountAddress);
77
+ if (address != null && signer !== address) {
78
+ throw new ArgumentError('address', `${signer} ("sub_jwk")`, address);
79
+ }
80
+ if (
81
+ signer != null
82
+ && !verify(Buffer.from(`${h}.${payloadEncoded}`), fromBase64Url(signature), signer)
83
+ ) {
84
+ throw new InvalidSignatureError(`JWT is not signed by ${signer}`);
85
+ }
86
+ return { payload, signer };
87
+ }
88
+
89
+ /**
90
+ * Check is string a JWT or not. Use to validate the user input.
91
+ * @param maybeJwt - A string to check
92
+ * @returns True if argument is a JWT
93
+ * @category JWT
94
+ */
95
+ export function isJwt(maybeJwt: string): maybeJwt is Jwt {
96
+ try {
97
+ unpackJwt(maybeJwt as Jwt);
98
+ return true;
99
+ } catch (error) {
100
+ return false;
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Throws an error if argument is not JWT. Use to ensure that a value is JWT.
106
+ * @param maybeJwt - A string to check
107
+ * @category JWT
108
+ */
109
+ export function ensureJwt(maybeJwt: string): asserts maybeJwt is Jwt {
110
+ unpackJwt(maybeJwt as Jwt);
111
+ }
112
+
113
+ /**
114
+ * Check is JWT signed by address from arguments or "sub_jwk"
115
+ * @param jwt - JWT to check
116
+ * @param address - Address to check signature
117
+ * @category JWT
118
+ */
119
+ export function verifyJwt(jwt: Jwt, address?: Encoded.AccountAddress): boolean {
120
+ try {
121
+ const { signer } = unpackJwt(jwt, address);
122
+ return signer != null;
123
+ } catch (error) {
124
+ return false;
125
+ }
126
+ }
@@ -45,7 +45,13 @@ export interface Keystore {
45
45
  cipher_params: {
46
46
  nonce: string;
47
47
  };
48
+ /**
49
+ * Key derivation function name.
50
+ */
48
51
  kdf: keyof typeof DERIVED_KEY_FUNCTIONS;
52
+ /**
53
+ * Key derivation function parameters.
54
+ */
49
55
  kdf_params: {
50
56
  memlimit_kib: number;
51
57
  opslimit: number;
@@ -149,8 +155,6 @@ export async function recover(
149
155
  * @param nonce - Randomly generated 24byte nonce.
150
156
  * @param salt - Randomly generated 16byte salt.
151
157
  * @param options - Encryption parameters.
152
- * @param options.kdf - Key derivation function.
153
- * @param options.kdf_params - KDF parameters.
154
158
  */
155
159
  export async function dump(
156
160
  name: string,
@@ -1,10 +1,4 @@
1
- // js extension is required for mjs build
2
- // @ts-expect-error see https://github.com/aeternity/aepp-calldata-js/issues/216
3
- // eslint-disable-next-line import/extensions
4
- import ContractByteArrayEncoder from '@aeternity/aepp-calldata/src/ContractByteArrayEncoder.js';
5
- // @ts-expect-error see https://github.com/aeternity/aepp-calldata-js/issues/216
6
- // eslint-disable-next-line import/extensions
7
- import AciTypeResolver from '@aeternity/aepp-calldata/src/AciTypeResolver.js';
1
+ import { TypeResolver, ContractByteArrayEncoder } from '@aeternity/aepp-calldata';
8
2
  import canonicalize from 'canonicalize';
9
3
  import { Encoded, decode } from './encoder';
10
4
  import { hash, messagePrefixLength } from './crypto';
@@ -40,28 +34,6 @@ export interface Domain {
40
34
  contractAddress?: Encoded.ContractAddress;
41
35
  }
42
36
 
43
- // TODO: replace with api on calldata side https://github.com/aeternity/aepp-calldata-js/issues/216
44
- export function encodeFateValue(
45
- value: unknown,
46
- aci: AciValue,
47
- ): Encoded.ContractBytearray {
48
- const contractByteArrayEncoder = new ContractByteArrayEncoder();
49
- const aciTypeResolver = new AciTypeResolver([]);
50
- aciTypeResolver.isCustomType = () => false;
51
- return contractByteArrayEncoder.encode(aciTypeResolver.resolveType(aci), value);
52
- }
53
-
54
- // TODO: replace with api on calldata side https://github.com/aeternity/aepp-calldata-js/issues/216
55
- export function decodeFateValue(
56
- value: Encoded.ContractBytearray,
57
- aci: AciValue,
58
- ): Encoded.ContractBytearray {
59
- const contractByteArrayEncoder = new ContractByteArrayEncoder();
60
- const aciTypeResolver = new AciTypeResolver([]);
61
- aciTypeResolver.isCustomType = () => false;
62
- return contractByteArrayEncoder.decodeWithType(value, aciTypeResolver.resolveType(aci));
63
- }
64
-
65
37
  /**
66
38
  * Hashes domain object, can be used to inline domain hash to contract source code
67
39
  */
@@ -81,7 +53,9 @@ export function hashDomain(domain: Domain): Buffer {
81
53
  type: { option: ['contract_pubkey'] },
82
54
  }],
83
55
  } as const;
84
- return hash(decode(encodeFateValue(domain, domainAci)));
56
+ const domainType = new TypeResolver().resolveType(domainAci, {});
57
+ const fateValue = new ContractByteArrayEncoder().encodeWithType(domain, domainType);
58
+ return hash(decode(fateValue));
85
59
  }
86
60
 
87
61
  export function hashTypedData(
@@ -0,0 +1,24 @@
1
+ import { ArgumentError } from './errors';
2
+
3
+ export function wrapWithProxy<Value extends object | undefined>(
4
+ valueCb: () => Value,
5
+ ): NonNullable<Value> {
6
+ return new Proxy(
7
+ {},
8
+ Object.fromEntries(([
9
+ 'apply', 'construct', 'defineProperty', 'deleteProperty', 'getOwnPropertyDescriptor',
10
+ 'getPrototypeOf', 'isExtensible', 'ownKeys', 'preventExtensions', 'set', 'setPrototypeOf',
11
+ 'get', 'has',
12
+ ] as const).map((name) => [name, (t: {}, ...args: unknown[]) => {
13
+ const target = valueCb();
14
+ if (target == null) throw new ArgumentError('wrapped value', 'defined', target);
15
+ if (name === 'get' && args[0] === '_wrappedValue') return target;
16
+ const res = (Reflect[name] as any)(target, ...args);
17
+ return typeof res === 'function' && name === 'get' ? res.bind(target) : res;
18
+ }])),
19
+ ) as NonNullable<Value>;
20
+ }
21
+
22
+ export function unwrapProxy<Value extends object>(value: Value): Value {
23
+ return (value as { _wrappedValue?: Value })._wrappedValue ?? value;
24
+ }
@@ -7,6 +7,9 @@ export default class AeSdk extends AeSdkBase {
7
7
  [key: string]: AccountBase;
8
8
  };
9
9
  selectedAddress?: Encoded.AccountAddress;
10
+ /**
11
+ * @param options - Options
12
+ */
10
13
  constructor({ accounts, ...options }?: {
11
14
  accounts?: AccountBase[];
12
15
  } & ConstructorParameters<typeof AeSdkBase>[0]);
@@ -39,7 +39,6 @@ export default class AeSdkAepp extends AeSdkBase {
39
39
  * @param options - Options
40
40
  * @param options.connectNode - Request wallet to bind node
41
41
  * @param options.name - Node name
42
- * @param options.select - Select this node as current
43
42
  */
44
43
  connectToWallet(connection: BrowserConnection, { connectNode, name }?: {
45
44
  connectNode?: boolean;
@@ -2,7 +2,7 @@ import Node from './Node';
2
2
  import AccountBase from './account/Base';
3
3
  import { Encoded } from './utils/encoder';
4
4
  import CompilerBase from './contract/compiler/Base';
5
- import AeSdkMethods, { OnAccount, AeSdkMethodsOptions } from './AeSdkMethods';
5
+ import AeSdkMethods, { OnAccount, AeSdkMethodsOptions, WrappedOptions } from './AeSdkMethods';
6
6
  import { AensName } from './tx/builder/constants';
7
7
  type NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & {
8
8
  name: string;
@@ -14,6 +14,7 @@ type NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & {
14
14
  * - wrappers of account methods mapped to the current account.
15
15
  */
16
16
  export default class AeSdkBase extends AeSdkMethods {
17
+ #private;
17
18
  pool: Map<string, Node>;
18
19
  selectedNodeName?: string;
19
20
  /**
@@ -79,31 +80,85 @@ export default class AeSdkBase extends AeSdkMethods {
79
80
  */
80
81
  _resolveAccount(account?: OnAccount): AccountBase;
81
82
  get address(): Encoded.AccountAddress;
83
+ /**
84
+ * Sign data blob
85
+ * @param data - Data to sign
86
+ * @param options - Options
87
+ */
82
88
  sign(data: string | Uint8Array, { onAccount, ...options }?: {
83
89
  onAccount?: OnAccount;
84
90
  }): Promise<Uint8Array>;
91
+ /**
92
+ * Sign encoded transaction
93
+ * @param tx - Transaction to sign
94
+ * @param options - Options
95
+ */
85
96
  signTransaction(tx: Encoded.Transaction, { onAccount, ...options }?: {
86
97
  onAccount?: OnAccount;
87
98
  } & Parameters<AccountBase['signTransaction']>[1]): Promise<Encoded.Transaction>;
99
+ /**
100
+ * Sign message
101
+ * @param message - Message to sign
102
+ * @param options - Options
103
+ */
88
104
  signMessage(message: string, { onAccount, ...options }?: {
89
105
  onAccount?: OnAccount;
90
106
  } & Parameters<AccountBase['signMessage']>[1]): Promise<Uint8Array>;
107
+ /**
108
+ * Sign typed data
109
+ * @param data - Encoded data to sign
110
+ * @param aci - Type of data to sign
111
+ * @param options - Options
112
+ */
91
113
  signTypedData(data: Encoded.ContractBytearray, aci: Parameters<AccountBase['signTypedData']>[1], { onAccount, ...options }?: {
92
114
  onAccount?: OnAccount;
93
115
  } & Parameters<AccountBase['signTypedData']>[2]): Promise<Encoded.Signature>;
116
+ /**
117
+ * @deprecated use AeSdkBase:signDelegation in Ceres
118
+ * @param contractAddress - Contract address
119
+ * @param options - Options
120
+ */
94
121
  signDelegationToContract(contractAddress: Encoded.ContractAddress, { onAccount, ...options }?: {
95
122
  onAccount?: OnAccount;
96
123
  } & Parameters<AccountBase['signDelegationToContract']>[1]): Promise<Encoded.Signature>;
124
+ /**
125
+ * @deprecated use AeSdkBase:signDelegation in Ceres
126
+ * @param contractAddress - Contract address
127
+ * @param name - AENS name
128
+ * @param options - Options
129
+ */
97
130
  signNameDelegationToContract(contractAddress: Encoded.ContractAddress, name: AensName, { onAccount, ...options }?: {
98
131
  onAccount?: OnAccount;
99
132
  } & Parameters<AccountBase['signNameDelegationToContract']>[2]): Promise<Encoded.Signature>;
133
+ /**
134
+ * @deprecated use AeSdkBase:signDelegation in Ceres
135
+ * @param contractAddress - Contract address
136
+ * @param options - Options
137
+ */
138
+ signAllNamesDelegationToContract(contractAddress: Encoded.ContractAddress, { onAccount, ...options }?: {
139
+ onAccount?: OnAccount;
140
+ } & Parameters<AccountBase['signAllNamesDelegationToContract']>[1]): Promise<Encoded.Signature>;
141
+ /**
142
+ * @deprecated use AeSdkBase:signDelegation in Ceres
143
+ * @param contractAddress - Contract address
144
+ * @param oracleQueryId - Oracle query id
145
+ * @param options - Options
146
+ */
100
147
  signOracleQueryDelegationToContract(contractAddress: Encoded.ContractAddress, oracleQueryId: Encoded.OracleQueryId, { onAccount, ...options }?: {
101
148
  onAccount?: OnAccount;
102
149
  } & Parameters<AccountBase['signOracleQueryDelegationToContract']>[2]): Promise<Encoded.Signature>;
103
- _getOptions(callOptions?: AeSdkMethodsOptions): {
104
- onNode: Node;
105
- onAccount: AccountBase;
106
- onCompiler: CompilerBase;
107
- };
150
+ /**
151
+ * Sign delegation, works only in Ceres
152
+ * @param delegation - Delegation to sign
153
+ * @param options - Options
154
+ */
155
+ signDelegation(delegation: Encoded.Bytearray, { onAccount, ...options }?: {
156
+ onAccount?: OnAccount;
157
+ } & Parameters<AccountBase['signDelegation']>[1]): Promise<Encoded.Signature>;
158
+ /**
159
+ * The same as AeSdkMethods:getContext, but it would resolve ak_-prefixed address in
160
+ * `mergeWith.onAccount` to AccountBase.
161
+ */
162
+ getContext(mergeWith?: AeSdkMethodsOptions): AeSdkMethodsOptions & WrappedOptions;
108
163
  }
109
164
  export {};
@@ -1,4 +1,5 @@
1
1
  import * as chainMethods from './chain';
2
+ import { sendTransaction } from './send-transaction';
2
3
  import * as aensMethods from './aens';
3
4
  import * as spendMethods from './spend';
4
5
  import * as oracleMethods from './oracle';
@@ -12,7 +13,6 @@ import AccountBase from './account/Base';
12
13
  import { Encoded } from './utils/encoder';
13
14
  import CompilerBase from './contract/compiler/Base';
14
15
  export type OnAccount = Encoded.AccountAddress | AccountBase | undefined;
15
- export declare function getValueOrErrorProxy<Value extends object | undefined>(valueCb: () => Value): NonNullable<Value>;
16
16
  declare const methods: {
17
17
  readonly createGeneralizedAccount: typeof contractGaMethods.createGeneralizedAccount;
18
18
  readonly buildAuthTxHash: typeof contractGaMethods.buildAuthTxHash;
@@ -36,12 +36,12 @@ declare const methods: {
36
36
  readonly aensClaim: typeof aensMethods.aensClaim;
37
37
  readonly aensPreclaim: typeof aensMethods.aensPreclaim;
38
38
  readonly aensBid: typeof aensMethods.aensBid;
39
+ readonly sendTransaction: typeof sendTransaction;
39
40
  readonly _getPollInterval: typeof chainMethods._getPollInterval;
40
41
  readonly getHeight: typeof chainMethods.getHeight;
41
42
  readonly poll: typeof chainMethods.poll;
42
43
  readonly awaitHeight: typeof chainMethods.awaitHeight;
43
44
  readonly waitForTxConfirm: typeof chainMethods.waitForTxConfirm;
44
- readonly sendTransaction: typeof chainMethods.sendTransaction;
45
45
  readonly getAccount: typeof chainMethods.getAccount;
46
46
  readonly getBalance: typeof chainMethods.getBalance;
47
47
  readonly getCurrentGeneration: typeof chainMethods.getCurrentGeneration;
@@ -72,6 +72,11 @@ type GetMethodsOptions<Methods extends {
72
72
  type MethodsOptions = GetMethodsOptions<typeof methods>;
73
73
  export interface AeSdkMethodsOptions extends Partial<UnionToIntersection<MethodsOptions[keyof MethodsOptions]>> {
74
74
  }
75
+ export interface WrappedOptions {
76
+ onAccount: AccountBase;
77
+ onCompiler: CompilerBase;
78
+ onNode: Node;
79
+ }
75
80
  /**
76
81
  * AeSdkMethods is the composition of:
77
82
  * - chain methods
@@ -86,16 +91,19 @@ export interface AeSdkMethodsOptions extends Partial<UnionToIntersection<Methods
86
91
  * their context (current account, network, and compiler to use).
87
92
  */
88
93
  declare class AeSdkMethods {
94
+ #private;
89
95
  _options: AeSdkMethodsOptions;
90
96
  /**
91
97
  * @param options - Options
92
98
  */
93
99
  constructor(options?: AeSdkMethodsOptions);
94
- _getOptions(callOptions?: AeSdkMethodsOptions): AeSdkMethodsOptions & {
95
- onAccount: AccountBase;
96
- onCompiler: CompilerBase;
97
- onNode: Node;
98
- };
100
+ /**
101
+ * Returns sdk instance options with references to current account, node, compiler.
102
+ * Used to create an instance (Contract, Oracle) bound to AeSdk state.
103
+ * @param mergeWith - Merge context with these extra options
104
+ * @returns Context object
105
+ */
106
+ getContext(mergeWith?: AeSdkMethodsOptions): AeSdkMethodsOptions & WrappedOptions;
99
107
  buildTx(options: TxParamsAsync): Promise<Encoded.Transaction>;
100
108
  initializeContract<Methods extends ContractMethodsBase>(options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode'> & {
101
109
  onNode?: Node;
@@ -111,6 +119,10 @@ type OptionalIfNotRequired<T extends [
111
119
  type ReplaceOnAccount<Options> = Options extends {
112
120
  onAccount: any;
113
121
  } ? Omit<Options, 'onAccount'> & {
122
+ /**
123
+ * Make operation on specific account by providing address (to use account from sdk) or instance
124
+ * of AccountBase (like MemoryAccount)
125
+ */
114
126
  onAccount: OnAccount;
115
127
  } : Options;
116
128
  type MakeOptional<Options> = OptionalIfNotRequired<[
@@ -33,7 +33,7 @@ export default class Middleware extends Middleware_base {
33
33
  /**
34
34
  * @param url - Url for middleware API
35
35
  * @param options - Options
36
- * @param options.ignoreVersion - Don't check node version
36
+ * @param options.ignoreVersion - Don't ensure that the middleware is supported
37
37
  * @param options.retryCount - Amount of extra requests to do in case of failure
38
38
  * @param options.retryOverallDelay - Time in ms to wait between all retries
39
39
  */