@aeternity/aepp-sdk 11.0.0 → 12.1.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 (442) hide show
  1. package/LICENSE +1 -1
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -22
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +2 -1
  6. package/dist/aepp-sdk.browser.js.LICENSE.txt +1 -0
  7. package/dist/aepp-sdk.browser.js.map +1 -1
  8. package/dist/aepp-sdk.js +20764 -1
  9. package/dist/aepp-sdk.js.map +1 -1
  10. package/es/AeSdk.d.ts +37 -0
  11. package/es/AeSdk.mjs +81 -0
  12. package/es/AeSdk.mjs.map +1 -0
  13. package/es/AeSdkAepp.d.ts +70 -0
  14. package/es/AeSdkAepp.mjs +176 -0
  15. package/es/AeSdkAepp.mjs.map +1 -0
  16. package/es/AeSdkBase.d.ts +213 -0
  17. package/es/AeSdkBase.mjs +314 -0
  18. package/es/AeSdkBase.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +104 -0
  20. package/es/AeSdkWallet.mjs +326 -0
  21. package/es/AeSdkWallet.mjs.map +1 -0
  22. package/es/Node.d.ts +41 -0
  23. package/es/Node.mjs +147 -0
  24. package/es/Node.mjs.map +1 -0
  25. package/es/account/Base.d.ts +68 -0
  26. package/es/account/Base.mjs +123 -0
  27. package/es/account/Base.mjs.map +1 -0
  28. package/es/account/Memory.d.ts +26 -0
  29. package/es/account/Memory.mjs +103 -0
  30. package/es/account/Memory.mjs.map +1 -0
  31. package/es/account/Rpc.d.ts +27 -0
  32. package/es/account/Rpc.mjs +80 -0
  33. package/es/account/Rpc.mjs.map +1 -0
  34. package/es/aens.d.ts +222 -0
  35. package/es/aens.mjs +338 -0
  36. package/es/aens.mjs.map +1 -0
  37. package/es/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs +73 -0
  39. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +58 -0
  42. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +146 -0
  45. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  46. package/es/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  47. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +16 -11
  48. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  51. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  52. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  54. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  55. package/es/aepp-wallet-communication/schema.d.ts +105 -46
  56. package/es/aepp-wallet-communication/schema.mjs +251 -0
  57. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  58. package/es/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs +62 -0
  60. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  61. package/es/apis/compiler/compiler.d.ts +92 -0
  62. package/es/apis/compiler/compiler.mjs +576 -0
  63. package/es/apis/compiler/compiler.mjs.map +1 -0
  64. package/es/apis/compiler/index.d.ts +2 -0
  65. package/es/apis/compiler/index.mjs +3 -0
  66. package/es/apis/compiler/index.mjs.map +1 -0
  67. package/es/apis/compiler/models/index.d.ts +248 -0
  68. package/es/apis/compiler/models/index.mjs +48 -0
  69. package/es/apis/compiler/models/index.mjs.map +1 -0
  70. package/es/apis/compiler/models/mappers.d.ts +23 -0
  71. package/es/apis/compiler/models/mappers.mjs +585 -0
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  73. package/es/apis/compiler/models/parameters.d.ts +13 -0
  74. package/es/apis/compiler/models/parameters.mjs +71 -0
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  76. package/es/apis/node/index.d.ts +2 -0
  77. package/es/apis/node/index.mjs +3 -0
  78. package/es/apis/node/index.mjs.map +1 -0
  79. package/es/apis/node/models/index.d.ts +1065 -0
  80. package/es/apis/node/models/index.mjs +2 -0
  81. package/es/apis/node/models/index.mjs.map +1 -0
  82. package/es/apis/node/models/mappers.d.ts +95 -0
  83. package/es/apis/node/models/mappers.mjs +4166 -0
  84. package/es/apis/node/models/mappers.mjs.map +1 -0
  85. package/es/apis/node/models/parameters.d.ts +17 -0
  86. package/es/apis/node/models/parameters.mjs +165 -0
  87. package/es/apis/node/models/parameters.mjs.map +1 -0
  88. package/es/apis/node/node.d.ts +215 -0
  89. package/es/apis/node/node.mjs +1165 -0
  90. package/es/apis/node/node.mjs.map +1 -0
  91. package/es/chain.d.ts +248 -0
  92. package/es/chain.mjs +560 -0
  93. package/es/chain.mjs.map +1 -0
  94. package/es/channel/handlers.d.ts +34 -0
  95. package/es/channel/handlers.mjs +164 -131
  96. package/es/channel/handlers.mjs.map +1 -1
  97. package/es/channel/index.d.ts +625 -0
  98. package/es/channel/index.mjs +897 -902
  99. package/es/channel/index.mjs.map +1 -1
  100. package/es/channel/internal.d.ts +101 -0
  101. package/es/channel/internal.mjs +138 -88
  102. package/es/channel/internal.mjs.map +1 -1
  103. package/es/contract/Compiler.d.ts +18 -0
  104. package/es/contract/Compiler.mjs +68 -0
  105. package/es/contract/Compiler.mjs.map +1 -0
  106. package/es/contract/aci.d.ts +127 -0
  107. package/es/contract/aci.mjs +225 -193
  108. package/es/contract/aci.mjs.map +1 -1
  109. package/es/contract/ga.d.ts +69 -0
  110. package/es/contract/ga.mjs +195 -0
  111. package/es/contract/ga.mjs.map +1 -0
  112. package/es/contract/methods.d.ts +71 -0
  113. package/es/contract/methods.mjs +104 -0
  114. package/es/contract/methods.mjs.map +1 -0
  115. package/es/deprecated/index.d.ts +143 -0
  116. package/es/deprecated/index.mjs +162 -0
  117. package/es/deprecated/index.mjs.map +1 -0
  118. package/es/deprecated/methods.d.ts +18 -0
  119. package/es/deprecated/methods.mjs +26 -0
  120. package/es/deprecated/methods.mjs.map +1 -0
  121. package/es/index.d.ts +35 -0
  122. package/es/index.mjs +35 -40
  123. package/es/index.mjs.map +1 -1
  124. package/es/oracle.d.ts +161 -0
  125. package/es/oracle.mjs +306 -0
  126. package/es/oracle.mjs.map +1 -0
  127. package/es/spend.d.ts +62 -0
  128. package/es/spend.mjs +111 -0
  129. package/es/spend.mjs.map +1 -0
  130. package/es/tx/builder/address.d.ts +25 -0
  131. package/es/tx/builder/address.mjs +45 -0
  132. package/es/tx/builder/address.mjs.map +1 -0
  133. package/es/tx/builder/constants.d.ts +70 -0
  134. package/es/tx/builder/constants.mjs +122 -0
  135. package/es/tx/builder/constants.mjs.map +1 -0
  136. package/es/tx/builder/field-types/coin-amount.d.ts +13 -0
  137. package/es/tx/builder/field-types/coin-amount.mjs +26 -0
  138. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -0
  139. package/es/tx/builder/field-types/deposit.d.ts +15 -0
  140. package/es/tx/builder/field-types/deposit.mjs +19 -0
  141. package/es/tx/builder/field-types/deposit.mjs.map +1 -0
  142. package/es/tx/builder/field-types/fee.d.ts +25 -0
  143. package/es/tx/builder/field-types/fee.mjs +150 -0
  144. package/es/tx/builder/field-types/fee.mjs.map +1 -0
  145. package/es/tx/builder/field-types/field.d.ts +6 -0
  146. package/es/tx/builder/field-types/field.mjs +15 -0
  147. package/es/tx/builder/field-types/field.mjs.map +1 -0
  148. package/es/tx/builder/field-types/gas-limit.d.ts +12 -0
  149. package/es/tx/builder/field-types/gas-limit.mjs +33 -0
  150. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -0
  151. package/es/tx/builder/field-types/gas-price.d.ts +8 -0
  152. package/es/tx/builder/field-types/gas-price.mjs +18 -0
  153. package/es/tx/builder/field-types/gas-price.mjs.map +1 -0
  154. package/es/tx/builder/field-types/index.d.ts +70 -0
  155. package/es/tx/builder/field-types/index.mjs +25 -0
  156. package/es/tx/builder/field-types/index.mjs.map +1 -0
  157. package/es/tx/builder/field-types/name-fee.d.ts +20 -0
  158. package/es/tx/builder/field-types/name-fee.mjs +24 -0
  159. package/es/tx/builder/field-types/name-fee.mjs.map +1 -0
  160. package/es/tx/builder/field-types/name-id.d.ts +14 -0
  161. package/es/tx/builder/field-types/name-id.mjs +19 -0
  162. package/es/tx/builder/field-types/name-id.mjs.map +1 -0
  163. package/es/tx/builder/field-types/name.d.ts +13 -0
  164. package/es/tx/builder/field-types/name.mjs +18 -0
  165. package/es/tx/builder/field-types/name.mjs.map +1 -0
  166. package/es/tx/builder/field-types/short-u-int.d.ts +6 -0
  167. package/es/tx/builder/field-types/short-u-int.mjs +12 -0
  168. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -0
  169. package/es/tx/builder/field-types/u-int.d.ts +8 -0
  170. package/es/tx/builder/field-types/u-int.mjs +14 -0
  171. package/es/tx/builder/field-types/u-int.mjs.map +1 -0
  172. package/es/tx/builder/helpers.d.ts +125 -0
  173. package/es/tx/builder/helpers.mjs +94 -240
  174. package/es/tx/builder/helpers.mjs.map +1 -1
  175. package/es/tx/builder/index.d.ts +88 -0
  176. package/es/tx/builder/index.mjs +167 -358
  177. package/es/tx/builder/index.mjs.map +1 -1
  178. package/es/tx/builder/schema.d.ts +1201 -0
  179. package/es/tx/builder/schema.mjs +175 -664
  180. package/es/tx/builder/schema.mjs.map +1 -1
  181. package/es/tx/index.d.ts +64 -0
  182. package/es/tx/index.mjs +151 -265
  183. package/es/tx/index.mjs.map +1 -1
  184. package/es/tx/validator.d.ts +20 -0
  185. package/es/tx/validator.mjs +104 -124
  186. package/es/tx/validator.mjs.map +1 -1
  187. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  188. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  189. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  190. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  191. package/es/typings/bip32-path/index.d.mjs +2 -0
  192. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  193. package/es/typings/blakejs/index.d.mjs.map +1 -1
  194. package/es/typings/sha-js/index.d.mjs +2 -0
  195. package/es/typings/sha-js/index.d.mjs.map +1 -0
  196. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  197. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  198. package/es/utils/amount-formatter.d.ts +42 -0
  199. package/es/utils/amount-formatter.mjs +36 -49
  200. package/es/utils/amount-formatter.mjs.map +1 -1
  201. package/es/utils/autorest.d.ts +6 -0
  202. package/es/utils/autorest.mjs +97 -0
  203. package/es/utils/autorest.mjs.map +1 -0
  204. package/es/utils/bignumber.d.ts +13 -0
  205. package/es/utils/bignumber.mjs +11 -8
  206. package/es/utils/bignumber.mjs.map +1 -1
  207. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  208. package/es/utils/bytes.mjs +11 -15
  209. package/es/utils/bytes.mjs.map +1 -1
  210. package/es/utils/crypto.d.ts +88 -0
  211. package/es/utils/crypto.mjs +64 -108
  212. package/es/utils/crypto.mjs.map +1 -1
  213. package/es/utils/encoder-types.d.ts +61 -0
  214. package/es/utils/encoder-types.mjs +36 -0
  215. package/es/utils/encoder-types.mjs.map +1 -0
  216. package/es/utils/encoder.d.ts +25 -0
  217. package/es/utils/encoder.mjs +118 -0
  218. package/es/utils/encoder.mjs.map +1 -0
  219. package/es/{errors.d.ts → utils/errors.d.ts} +246 -59
  220. package/es/utils/errors.mjs +313 -136
  221. package/es/utils/errors.mjs.map +1 -1
  222. package/es/utils/hd-wallet.d.ts +50 -0
  223. package/es/utils/hd-wallet.mjs +86 -45
  224. package/es/utils/hd-wallet.mjs.map +1 -1
  225. package/es/utils/json-big.d.ts +5 -0
  226. package/es/utils/json-big.mjs +12 -16
  227. package/es/utils/json-big.mjs.map +1 -1
  228. package/es/utils/keystore.d.ts +51 -0
  229. package/es/utils/keystore.mjs +101 -194
  230. package/es/utils/keystore.mjs.map +1 -1
  231. package/es/{mptree.d.ts → utils/mptree.d.ts} +6 -9
  232. package/es/utils/mptree.mjs +22 -18
  233. package/es/utils/mptree.mjs.map +1 -1
  234. package/es/utils/other.d.ts +20 -0
  235. package/es/utils/other.mjs +32 -35
  236. package/es/utils/other.mjs.map +1 -1
  237. package/es/utils/semver-satisfies.d.ts +1 -0
  238. package/es/utils/semver-satisfies.mjs +2 -2
  239. package/es/utils/semver-satisfies.mjs.map +1 -1
  240. package/es/utils/string.d.ts +24 -0
  241. package/es/utils/string.mjs +8 -10
  242. package/es/utils/string.mjs.map +1 -1
  243. package/package.json +56 -42
  244. package/src/AeSdk.ts +68 -0
  245. package/src/AeSdkAepp.ts +176 -0
  246. package/src/AeSdkBase.ts +338 -0
  247. package/src/AeSdkWallet.ts +348 -0
  248. package/src/Node.ts +173 -0
  249. package/src/account/Base.ts +124 -0
  250. package/src/account/Memory.ts +98 -0
  251. package/src/account/Rpc.ts +69 -0
  252. package/src/aens.ts +407 -0
  253. package/src/aepp-wallet-communication/connection/Browser.ts +71 -0
  254. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +59 -0
  255. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +122 -0
  256. package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +18 -18
  257. package/src/aepp-wallet-communication/rpc/RpcClient.ts +143 -0
  258. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  259. package/src/aepp-wallet-communication/schema.ts +224 -0
  260. package/src/aepp-wallet-communication/wallet-detector.ts +72 -0
  261. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  262. package/src/apis/compiler/compiler.ts +585 -0
  263. package/src/apis/compiler/index.ts +2 -0
  264. package/src/apis/compiler/models/index.ts +301 -0
  265. package/src/apis/compiler/models/mappers.ts +583 -0
  266. package/src/apis/compiler/models/parameters.ts +93 -0
  267. package/src/apis/node/code-model-v4.yaml +10080 -0
  268. package/src/apis/node/index.ts +2 -0
  269. package/src/apis/node/models/index.ts +1257 -0
  270. package/src/apis/node/models/mappers.ts +4280 -0
  271. package/src/apis/node/models/parameters.ts +188 -0
  272. package/src/apis/node/node.ts +1299 -0
  273. package/src/chain.ts +502 -0
  274. package/src/channel/handlers.ts +817 -0
  275. package/src/channel/index.ts +1025 -0
  276. package/src/channel/internal.ts +361 -0
  277. package/src/contract/Compiler.ts +67 -0
  278. package/src/contract/aci.ts +538 -0
  279. package/src/contract/ga.ts +199 -0
  280. package/src/contract/methods.ts +123 -0
  281. package/src/deprecated/index.ts +170 -0
  282. package/src/deprecated/methods.ts +25 -0
  283. package/src/index.ts +56 -0
  284. package/src/oracle.ts +364 -0
  285. package/src/spend.ts +164 -0
  286. package/src/tx/builder/address.ts +50 -0
  287. package/src/tx/builder/constants.ts +126 -0
  288. package/src/tx/builder/field-types/coin-amount.ts +27 -0
  289. package/src/tx/builder/field-types/deposit.ts +21 -0
  290. package/src/tx/builder/field-types/fee.ts +143 -0
  291. package/src/tx/builder/field-types/field.ts +9 -0
  292. package/src/tx/builder/field-types/gas-limit.ts +41 -0
  293. package/src/tx/builder/field-types/gas-price.ts +16 -0
  294. package/src/tx/builder/field-types/index.ts +45 -0
  295. package/src/tx/builder/field-types/name-fee.ts +32 -0
  296. package/src/tx/builder/field-types/name-id.ts +20 -0
  297. package/src/tx/builder/field-types/name.ts +18 -0
  298. package/src/tx/builder/field-types/short-u-int.ts +11 -0
  299. package/src/tx/builder/field-types/u-int.ts +16 -0
  300. package/src/tx/builder/helpers.ts +248 -0
  301. package/src/tx/builder/index.ts +400 -0
  302. package/src/tx/builder/schema.ts +727 -0
  303. package/src/tx/index.ts +192 -0
  304. package/src/tx/validator.ts +230 -0
  305. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  306. package/src/typings/@aeternity__uuid/index.d.ts +5 -0
  307. package/src/typings/bip32-path/index.d.ts +33 -0
  308. package/src/typings/blakejs/index.d.ts +4 -32
  309. package/src/typings/sha-js/index.d.ts +5 -0
  310. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  311. package/src/utils/amount-formatter.ts +56 -69
  312. package/src/utils/autorest.ts +93 -0
  313. package/src/utils/bignumber.ts +11 -12
  314. package/src/utils/bytes.ts +29 -31
  315. package/src/utils/crypto.ts +205 -0
  316. package/src/utils/encoder-types.ts +63 -0
  317. package/src/utils/encoder.ts +146 -0
  318. package/src/utils/errors.ts +482 -366
  319. package/src/utils/hd-wallet.ts +166 -0
  320. package/src/utils/json-big.ts +27 -0
  321. package/src/utils/keystore.ts +182 -0
  322. package/src/utils/mptree.ts +64 -61
  323. package/src/utils/other.ts +34 -41
  324. package/src/utils/semver-satisfies.ts +15 -11
  325. package/src/utils/string.ts +18 -20
  326. package/es/account/base.mjs +0 -179
  327. package/es/account/base.mjs.map +0 -1
  328. package/es/account/memory.mjs +0 -99
  329. package/es/account/memory.mjs.map +0 -1
  330. package/es/account/multiple.mjs +0 -179
  331. package/es/account/multiple.mjs.map +0 -1
  332. package/es/ae/aens.mjs +0 -404
  333. package/es/ae/aens.mjs.map +0 -1
  334. package/es/ae/aepp.mjs +0 -45
  335. package/es/ae/aepp.mjs.map +0 -1
  336. package/es/ae/contract.mjs +0 -159
  337. package/es/ae/contract.mjs.map +0 -1
  338. package/es/ae/index.mjs +0 -207
  339. package/es/ae/index.mjs.map +0 -1
  340. package/es/ae/oracle.mjs +0 -339
  341. package/es/ae/oracle.mjs.map +0 -1
  342. package/es/ae/universal.mjs +0 -45
  343. package/es/ae/universal.mjs.map +0 -1
  344. package/es/ae/wallet.mjs +0 -50
  345. package/es/ae/wallet.mjs.map +0 -1
  346. package/es/amount-formatter.d.ts +0 -58
  347. package/es/bignumber.d.ts +0 -18
  348. package/es/chain/index.mjs +0 -272
  349. package/es/chain/index.mjs.map +0 -1
  350. package/es/chain/node.mjs +0 -442
  351. package/es/chain/node.mjs.map +0 -1
  352. package/es/contract/compiler.mjs +0 -115
  353. package/es/contract/compiler.mjs.map +0 -1
  354. package/es/contract/ga/helpers.mjs +0 -30
  355. package/es/contract/ga/helpers.mjs.map +0 -1
  356. package/es/contract/ga/index.mjs +0 -178
  357. package/es/contract/ga/index.mjs.map +0 -1
  358. package/es/crypto-ts.d.ts +0 -9
  359. package/es/node-pool/index.mjs +0 -188
  360. package/es/node-pool/index.mjs.map +0 -1
  361. package/es/node.mjs +0 -133
  362. package/es/node.mjs.map +0 -1
  363. package/es/other.d.ts +0 -31
  364. package/es/semver-satisfies.d.ts +0 -1
  365. package/es/string.d.ts +0 -26
  366. package/es/tx/builder/field-types.mjs +0 -74
  367. package/es/tx/builder/field-types.mjs.map +0 -1
  368. package/es/tx/tx-object.mjs +0 -283
  369. package/es/tx/tx-object.mjs.map +0 -1
  370. package/es/tx/tx.mjs +0 -938
  371. package/es/tx/tx.mjs.map +0 -1
  372. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
  373. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
  374. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
  375. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
  376. package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
  377. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
  378. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
  379. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
  380. package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
  381. package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
  382. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
  383. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
  384. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
  385. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
  386. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
  387. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
  388. package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
  389. package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
  390. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
  391. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
  392. package/es/utils/async-init.mjs +0 -64
  393. package/es/utils/async-init.mjs.map +0 -1
  394. package/es/utils/crypto-ts.mjs.map +0 -1
  395. package/es/utils/swagger.mjs +0 -164
  396. package/es/utils/swagger.mjs.map +0 -1
  397. package/src/account/base.js +0 -153
  398. package/src/account/memory.js +0 -83
  399. package/src/account/multiple.js +0 -162
  400. package/src/ae/aens.js +0 -361
  401. package/src/ae/aepp.js +0 -45
  402. package/src/ae/contract.js +0 -148
  403. package/src/ae/index.js +0 -168
  404. package/src/ae/oracle.js +0 -311
  405. package/src/ae/universal.js +0 -47
  406. package/src/ae/wallet.js +0 -50
  407. package/src/chain/index.js +0 -269
  408. package/src/chain/node.js +0 -320
  409. package/src/channel/handlers.js +0 -673
  410. package/src/channel/index.js +0 -898
  411. package/src/channel/internal.js +0 -237
  412. package/src/contract/aci.js +0 -376
  413. package/src/contract/compiler.js +0 -100
  414. package/src/contract/ga/helpers.js +0 -19
  415. package/src/contract/ga/index.js +0 -150
  416. package/src/index.js +0 -89
  417. package/src/node-pool/index.js +0 -172
  418. package/src/node.js +0 -116
  419. package/src/tx/builder/field-types.js +0 -61
  420. package/src/tx/builder/helpers.js +0 -380
  421. package/src/tx/builder/index.js +0 -465
  422. package/src/tx/builder/schema.js +0 -1197
  423. package/src/tx/index.js +0 -301
  424. package/src/tx/tx-object.js +0 -187
  425. package/src/tx/tx.js +0 -631
  426. package/src/tx/validator.js +0 -181
  427. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
  428. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
  429. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  430. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
  431. package/src/utils/aepp-wallet-communication/helpers.js +0 -60
  432. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
  433. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
  434. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
  435. package/src/utils/aepp-wallet-communication/schema.ts +0 -80
  436. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
  437. package/src/utils/async-init.js +0 -45
  438. package/src/utils/crypto.js +0 -229
  439. package/src/utils/hd-wallet.js +0 -100
  440. package/src/utils/json-big.js +0 -26
  441. package/src/utils/keystore.js +0 -219
  442. package/src/utils/swagger.js +0 -156
package/src/chain.ts ADDED
@@ -0,0 +1,502 @@
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
+ import { AE_AMOUNT_FORMATS, formatAmount } from './utils/amount-formatter';
18
+ import verifyTransaction, { ValidatorResult } from './tx/validator';
19
+ import { pause } from './utils/other';
20
+ import { isNameValid, produceNameId } from './tx/builder/helpers';
21
+ import { DRY_RUN_ACCOUNT } from './tx/builder/schema';
22
+ import { AensName } from './tx/builder/constants';
23
+ import {
24
+ AensPointerContextError, DryRunError, InvalidAensNameError, TransactionError,
25
+ TxTimedOutError, TxNotInChainError, InternalError,
26
+ } from './utils/errors';
27
+ import Node, { TransformNodeType } from './Node';
28
+ import {
29
+ Account as AccountNode, ByteCode, ContractObject, DryRunResult, DryRunResults,
30
+ Generation, KeyBlock, MicroBlockHeader, NameEntry, SignedTx,
31
+ } from './apis/node';
32
+ import { decode, Encoded, Encoding } from './utils/encoder';
33
+ import AccountBase from './account/Base';
34
+
35
+ /**
36
+ * @category chain
37
+ */
38
+ export function _getPollInterval(
39
+ type: 'block' | 'microblock',
40
+ { _expectedMineRate = 180000, _microBlockCycle = 3000, _maxPollInterval = 5000 }:
41
+ { _expectedMineRate?: number; _microBlockCycle?: number; _maxPollInterval?: number },
42
+ ): number {
43
+ const base = {
44
+ block: _expectedMineRate,
45
+ microblock: _microBlockCycle,
46
+ }[type];
47
+ return Math.min(base / 3, _maxPollInterval);
48
+ }
49
+
50
+ /**
51
+ * @category exception
52
+ */
53
+ export class InvalidTxError extends TransactionError {
54
+ validation: ValidatorResult[];
55
+
56
+ transaction: Encoded.Transaction;
57
+
58
+ constructor(
59
+ message: string,
60
+ validation: ValidatorResult[],
61
+ transaction: Encoded.Transaction,
62
+ ) {
63
+ super(message);
64
+ this.name = 'InvalidTxError';
65
+ this.validation = validation;
66
+ this.transaction = transaction;
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Obtain current height of the chain
72
+ * @category chain
73
+ * @returns Current chain height
74
+ */
75
+ export async function getHeight({ onNode }: { onNode: Node }): Promise<number> {
76
+ return (await onNode.getCurrentKeyBlockHeight()).height;
77
+ }
78
+
79
+ /**
80
+ * Wait for a transaction to be mined
81
+ * @category chain
82
+ * @param th - The hash of transaction to poll
83
+ * @param options - Options
84
+ * @param options.interval - Interval (in ms) at which to poll the chain
85
+ * @param options.blocks - Number of blocks mined after which to fail
86
+ * @param options.onNode - Node to use
87
+ * @returns The transaction as it was mined
88
+ */
89
+ export async function poll(
90
+ th: Encoded.TxHash,
91
+ {
92
+ blocks = 10, interval, onNode, ...options
93
+ }:
94
+ { blocks?: number; interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],
95
+ ): Promise<TransformNodeType<SignedTx>> {
96
+ interval ??= _getPollInterval('microblock', options);
97
+ const max = await getHeight({ onNode }) + blocks;
98
+ do {
99
+ const tx = await onNode.getTransactionByHash(th);
100
+ if (tx.blockHeight !== -1) return tx;
101
+ await pause(interval);
102
+ } while (await getHeight({ onNode }) < max);
103
+ throw new TxTimedOutError(blocks, th);
104
+ }
105
+
106
+ /**
107
+ * Wait for the chain to reach a specific height
108
+ * @category chain
109
+ * @param height - Height to wait for
110
+ * @param options - Options
111
+ * @param options.interval - Interval (in ms) at which to poll the chain
112
+ * @param options.onNode - Node to use
113
+ * @returns Current chain height
114
+ */
115
+ export async function awaitHeight(
116
+ height: number,
117
+ { interval, onNode, ...options }:
118
+ { interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],
119
+ ): Promise<number> {
120
+ interval ??= _getPollInterval('block', options);
121
+ let currentHeight;
122
+ do {
123
+ if (currentHeight != null) await pause(interval);
124
+ currentHeight = (await onNode.getCurrentKeyBlockHeight()).height;
125
+ } while (currentHeight < height);
126
+ return currentHeight;
127
+ }
128
+
129
+ /**
130
+ * Wait for transaction confirmation
131
+ * @category chain
132
+ * @param txHash - Transaction hash
133
+ * @param options - Options
134
+ * @param options.confirm - Number of micro blocks to wait for transaction confirmation
135
+ * @param options.onNode - Node to use
136
+ * @returns Current Height
137
+ */
138
+ export async function waitForTxConfirm(
139
+ txHash: Encoded.TxHash,
140
+ { confirm = 3, onNode, ...options }:
141
+ { confirm?: number; onNode: Node } & Parameters<typeof awaitHeight>[1],
142
+ ): Promise<number> {
143
+ const { blockHeight } = await onNode.getTransactionByHash(txHash);
144
+ const height = await awaitHeight(blockHeight + confirm, { onNode, ...options });
145
+ const { blockHeight: newBlockHeight } = await onNode.getTransactionByHash(txHash);
146
+ switch (newBlockHeight) {
147
+ case -1:
148
+ throw new TxNotInChainError(txHash);
149
+ case blockHeight:
150
+ return height;
151
+ default:
152
+ return waitForTxConfirm(txHash, { onNode, confirm, ...options });
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Submit a signed transaction for mining
158
+ * @category chain
159
+ * @param tx - Transaction to submit
160
+ * @param options - Options
161
+ * @param options.onNode - Node to use
162
+ * @param options.onAccount - Account to use
163
+ * @param options.verify - Verify transaction before sending
164
+ * @param options.waitMined - Ensure that transaction get into block
165
+ * @param options.confirm - Number of micro blocks that should be mined after tx get included
166
+ * @returns Transaction details
167
+ */
168
+ export async function sendTransaction(
169
+ tx: Encoded.Transaction,
170
+ {
171
+ onNode, onAccount, verify = true, waitMined = true, confirm, ...options
172
+ }:
173
+ SendTransactionOptions,
174
+ ): Promise<SendTransactionReturnType> {
175
+ if (verify) {
176
+ const validation = await verifyTransaction(tx, onNode);
177
+ if (validation.length > 0) {
178
+ const message = `Transaction verification errors: ${
179
+ validation.map((v: { message: string }) => v.message).join(', ')}`;
180
+ throw new InvalidTxError(message, validation, tx);
181
+ }
182
+ }
183
+
184
+ try {
185
+ let __queue;
186
+ try {
187
+ __queue = onAccount != null ? `tx-${await onAccount.address(options)}` : null;
188
+ } catch (error) {
189
+ __queue = null;
190
+ }
191
+ const { txHash } = await onNode.postTransaction(
192
+ { tx },
193
+ __queue != null ? { requestOptions: { customHeaders: { __queue } } } : {},
194
+ );
195
+
196
+ if (waitMined) {
197
+ const pollResult = await poll(txHash, { onNode, ...options });
198
+ const txData = {
199
+ ...pollResult,
200
+ hash: pollResult.hash as Encoded.TxHash,
201
+ rawTx: tx,
202
+ };
203
+ // wait for transaction confirmation
204
+ if (confirm != null && (confirm === true || confirm > 0)) {
205
+ const c = typeof confirm === 'boolean' ? undefined : confirm;
206
+ return {
207
+ ...txData,
208
+ confirmationHeight: await waitForTxConfirm(txHash, { onNode, confirm: c, ...options }),
209
+ };
210
+ }
211
+ return txData;
212
+ }
213
+ return { hash: txHash, rawTx: tx };
214
+ } catch (error) {
215
+ throw Object.assign(error, {
216
+ rawTx: tx,
217
+ verifyTx: async () => verifyTransaction(tx, onNode),
218
+ });
219
+ }
220
+ }
221
+
222
+ type SendTransactionOptionsType = {
223
+ onNode: Node;
224
+ onAccount?: AccountBase;
225
+ verify?: boolean;
226
+ waitMined?: boolean;
227
+ confirm?: boolean | number;
228
+ } & Parameters<typeof poll>[1] & Omit<Parameters<typeof waitForTxConfirm>[1], 'confirm'>;
229
+ interface SendTransactionOptions extends SendTransactionOptionsType {}
230
+ interface SendTransactionReturnType extends Partial<TransformNodeType<SignedTx>> {
231
+ hash: Encoded.TxHash;
232
+ rawTx: Encoded.Transaction;
233
+ confirmationHeight?: number;
234
+ }
235
+
236
+ /**
237
+ * Get account by account public key
238
+ * @category chain
239
+ * @param address - Account address (public key)
240
+ * @param options - Options
241
+ * @param options.height - Get account on specific block by block height
242
+ * @param options.hash - Get account on specific block by micro block hash or key block hash
243
+ * @param options.onNode - Node to use
244
+ */
245
+ export async function getAccount(
246
+ address: Encoded.AccountAddress | Encoded.ContractAddress,
247
+ { height, hash, onNode }:
248
+ { height?: number; hash?: Encoded.KeyBlockHash | Encoded.MicroBlockHash; onNode: Node },
249
+ ): Promise<TransformNodeType<AccountNode>> {
250
+ if (height != null) return onNode.getAccountByPubkeyAndHeight(address, height);
251
+ if (hash != null) return onNode.getAccountByPubkeyAndHash(address, hash);
252
+ return onNode.getAccountByPubkey(address);
253
+ }
254
+
255
+ /**
256
+ * Request the balance of specified account
257
+ * @category chain
258
+ * @param address - The public account address to obtain the balance for
259
+ * @param options - Options
260
+ * @param options.format
261
+ * @param options.height - The chain height at which to obtain the balance for
262
+ * (default: top of chain)
263
+ * @param options.hash - The block hash on which to obtain the balance for (default: top of chain)
264
+ */
265
+ export async function getBalance(
266
+ address: Encoded.AccountAddress | Encoded.ContractAddress,
267
+ { format = AE_AMOUNT_FORMATS.AETTOS, ...options }:
268
+ { format?: AE_AMOUNT_FORMATS } & Parameters<typeof getAccount>[1],
269
+ ): Promise<string> {
270
+ const { balance } = await getAccount(address, options).catch(() => ({ balance: 0n }));
271
+
272
+ return formatAmount(balance, { targetDenomination: format });
273
+ }
274
+
275
+ /**
276
+ * Obtain current generation
277
+ * @category chain
278
+ * @param options - Options
279
+ * @param options.onNode - Node to use
280
+ * @returns Current Generation
281
+ */
282
+ export async function getCurrentGeneration(
283
+ { onNode }: { onNode: Node },
284
+ ): Promise<TransformNodeType<Generation>> {
285
+ return onNode.getCurrentGeneration();
286
+ }
287
+
288
+ /**
289
+ * Get generation by hash or height
290
+ * @category chain
291
+ * @param hashOrHeight - Generation hash or height
292
+ * @param options - Options
293
+ * @param options.onNode - Node to use
294
+ * @returns Generation
295
+ */
296
+ export async function getGeneration(
297
+ hashOrHeight: Encoded.KeyBlockHash | number,
298
+ { onNode }: { onNode: Node },
299
+ ): Promise<TransformNodeType<Generation>> {
300
+ if (typeof hashOrHeight === 'number') return onNode.getGenerationByHeight(hashOrHeight);
301
+ return onNode.getGenerationByHash(hashOrHeight);
302
+ }
303
+
304
+ /**
305
+ * Get micro block transactions
306
+ * @category chain
307
+ * @param hash - Micro block hash
308
+ * @param options - Options
309
+ * @param options.onNode - Node to use
310
+ * @returns Transactions
311
+ */
312
+ export async function getMicroBlockTransactions(
313
+ hash: Encoded.MicroBlockHash,
314
+ { onNode }: { onNode: Node },
315
+ ): Promise<TransformNodeType<SignedTx[]>> {
316
+ return (await onNode.getMicroBlockTransactionsByHash(hash)).transactions;
317
+ }
318
+
319
+ /**
320
+ * Get key block
321
+ * @category chain
322
+ * @param hashOrHeight - Key block hash or height
323
+ * @param options - Options
324
+ * @param options.onNode - Node to use
325
+ * @returns Key Block
326
+ */
327
+ export async function getKeyBlock(
328
+ hashOrHeight: Encoded.KeyBlockHash | number,
329
+ { onNode }: { onNode: Node },
330
+ ): Promise<TransformNodeType<KeyBlock>> {
331
+ if (typeof hashOrHeight === 'number') return onNode.getKeyBlockByHeight(hashOrHeight);
332
+ return onNode.getKeyBlockByHash(hashOrHeight);
333
+ }
334
+
335
+ /**
336
+ * Get micro block header
337
+ * @category chain
338
+ * @param hash - Micro block hash
339
+ * @param options - Options
340
+ * @param options.onNode - Node to use
341
+ * @returns Micro block header
342
+ */
343
+ export async function getMicroBlockHeader(
344
+ hash: Encoded.MicroBlockHash,
345
+ { onNode }: { onNode: Node },
346
+ ): Promise<TransformNodeType<MicroBlockHeader>> {
347
+ return onNode.getMicroBlockHeaderByHash(hash);
348
+ }
349
+
350
+ interface TxDryRunArguments {
351
+ tx: Encoded.Transaction;
352
+ accountAddress: Encoded.AccountAddress;
353
+ top?: number;
354
+ txEvents?: any;
355
+ resolve: Function;
356
+ reject: Function;
357
+ }
358
+ const txDryRunRequests: Map<string, TxDryRunArguments[] & { timeout?: NodeJS.Timeout }> = new Map();
359
+
360
+ async function txDryRunHandler(key: string, onNode: Node): Promise<void> {
361
+ const rs = txDryRunRequests.get(key);
362
+ txDryRunRequests.delete(key);
363
+ if (rs == null) throw new InternalError('Can\'t get dry-run request');
364
+
365
+ let dryRunRes;
366
+ try {
367
+ dryRunRes = await onNode.protectedDryRunTxs({
368
+ top: rs[0].top,
369
+ txEvents: rs[0].txEvents,
370
+ txs: rs.map((req) => ({ tx: req.tx })),
371
+ accounts: Array.from(new Set(rs.map((req) => req.accountAddress)))
372
+ .map((pubKey) => ({ pubKey, amount: DRY_RUN_ACCOUNT.amount })),
373
+ });
374
+ } catch (error) {
375
+ rs.forEach(({ reject }) => reject(error));
376
+ return;
377
+ }
378
+
379
+ const { results, txEvents } = dryRunRes;
380
+ results.forEach(({ result, reason, ...resultPayload }, idx) => {
381
+ const {
382
+ resolve, reject, tx, accountAddress,
383
+ } = rs[idx];
384
+ if (result === 'ok') resolve({ ...resultPayload, txEvents });
385
+ else reject(Object.assign(new DryRunError(reason as string), { tx, accountAddress }));
386
+ });
387
+ }
388
+
389
+ /**
390
+ * Transaction dry-run
391
+ * @category chain
392
+ * @param tx - transaction to execute
393
+ * @param accountAddress - address that will be used to execute transaction
394
+ * @param options - Options
395
+ * @param options.top - hash of block on which to make dry-run
396
+ * @param options.txEvents - collect and return on-chain tx events that would result from the call
397
+ * @param options.combine - Enables combining of similar requests to a single dry-run call
398
+ * @param options.onNode - Node to use
399
+ */
400
+ export async function txDryRun(
401
+ tx: Encoded.Transaction,
402
+ accountAddress: Encoded.AccountAddress,
403
+ {
404
+ top, txEvents, combine, onNode,
405
+ }:
406
+ { top?: number; txEvents?: boolean; combine?: boolean; onNode: Node },
407
+ ): Promise<{
408
+ txEvents?: TransformNodeType<DryRunResults['txEvents']>;
409
+ } & TransformNodeType<DryRunResult>> {
410
+ const key = combine === true ? [top, txEvents].join() : 'immediate';
411
+ const requests = txDryRunRequests.get(key) ?? [];
412
+ txDryRunRequests.set(key, requests);
413
+ return new Promise((resolve, reject) => {
414
+ requests.push({
415
+ tx, accountAddress, top, txEvents, resolve, reject,
416
+ });
417
+ if (combine !== true) {
418
+ void txDryRunHandler(key, onNode);
419
+ return;
420
+ }
421
+ requests.timeout ??= setTimeout(() => { void txDryRunHandler(key, onNode); });
422
+ });
423
+ }
424
+
425
+ /**
426
+ * Get contract byte code
427
+ * @category contract
428
+ * @param contractId - Contract address
429
+ * @param options - Options
430
+ * @param options.onNode - Node to use
431
+ */
432
+ export async function getContractByteCode(
433
+ contractId: Encoded.ContractAddress,
434
+ { onNode }: { onNode: Node },
435
+ ): Promise<TransformNodeType<ByteCode>> {
436
+ return onNode.getContractCode(contractId);
437
+ }
438
+
439
+ /**
440
+ * Get contract entry
441
+ * @category contract
442
+ * @param contractId - Contract address
443
+ * @param options - Options
444
+ * @param options.onNode - Node to use
445
+ */
446
+ export async function getContract(
447
+ contractId: Encoded.ContractAddress,
448
+ { onNode }: { onNode: Node },
449
+ ): Promise<TransformNodeType<ContractObject>> {
450
+ return onNode.getContract(contractId);
451
+ }
452
+
453
+ /**
454
+ * Get name entry
455
+ * @category AENS
456
+ * @param name - AENS name
457
+ * @param options - Options
458
+ * @param options.onNode - Node to use
459
+ */
460
+ export async function getName(
461
+ name: AensName,
462
+ { onNode }: { onNode: Node },
463
+ ): Promise<TransformNodeType<NameEntry>> {
464
+ return onNode.getNameEntryByName(name);
465
+ }
466
+
467
+ /**
468
+ * Resolve AENS name and return name hash
469
+ * @category AENS
470
+ * @param nameOrId - AENS name or address
471
+ * @param key - in AENS pointers record
472
+ * @param options - Options
473
+ * @param options.verify - To ensure that name exist and have a corresponding pointer
474
+ * // TODO: avoid that to don't trust to current api gateway
475
+ * @param options.resolveByNode - Enables pointer resolving using node
476
+ * @param options.onNode - Node to use
477
+ * @returns Address or AENS name hash
478
+ */
479
+ export async function resolveName <
480
+ Type extends Encoding.AccountAddress | Encoding.ContractAddress,
481
+ >(
482
+ nameOrId: AensName | Encoded.Generic<Type>,
483
+ key: string,
484
+ { verify = true, resolveByNode = false, onNode }:
485
+ { verify?: boolean; resolveByNode?: boolean; onNode: Node },
486
+ ): Promise<Encoded.Generic<Type | Encoding.Name>> {
487
+ if (isNameValid(nameOrId)) {
488
+ if (verify || resolveByNode) {
489
+ const name = await onNode.getNameEntryByName(nameOrId);
490
+ const pointer = name.pointers.find((p) => p.key === key);
491
+ if (pointer == null) throw new AensPointerContextError(nameOrId, key);
492
+ if (resolveByNode) return pointer.id as Encoded.Generic<Type>;
493
+ }
494
+ return produceNameId(nameOrId);
495
+ }
496
+ try {
497
+ decode(nameOrId);
498
+ return nameOrId;
499
+ } catch (error) {
500
+ throw new InvalidAensNameError(`Invalid name or address: ${nameOrId}`);
501
+ }
502
+ }