@aeternity/aepp-sdk 11.0.1 → 12.0.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 (376) 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 +12 -19
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +1 -1
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +1 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/AeSdk.d.ts +37 -0
  10. package/es/AeSdk.mjs +81 -0
  11. package/es/AeSdk.mjs.map +1 -0
  12. package/es/AeSdkAepp.d.ts +69 -0
  13. package/es/AeSdkAepp.mjs +175 -0
  14. package/es/AeSdkAepp.mjs.map +1 -0
  15. package/es/AeSdkBase.d.ts +212 -0
  16. package/es/AeSdkBase.mjs +310 -0
  17. package/es/AeSdkBase.mjs.map +1 -0
  18. package/es/AeSdkWallet.d.ts +103 -0
  19. package/es/AeSdkWallet.mjs +322 -0
  20. package/es/AeSdkWallet.mjs.map +1 -0
  21. package/es/Node.d.ts +44 -0
  22. package/es/Node.mjs +141 -0
  23. package/es/Node.mjs.map +1 -0
  24. package/es/account/Base.d.ts +65 -0
  25. package/es/account/Base.mjs +123 -0
  26. package/es/account/Base.mjs.map +1 -0
  27. package/es/account/Memory.d.ts +25 -0
  28. package/es/account/Memory.mjs +81 -0
  29. package/es/account/Memory.mjs.map +1 -0
  30. package/es/account/Rpc.d.ts +27 -0
  31. package/es/account/Rpc.mjs +79 -0
  32. package/es/account/Rpc.mjs.map +1 -0
  33. package/es/aens.d.ts +209 -0
  34. package/es/aens.mjs +332 -0
  35. package/es/aens.mjs.map +1 -0
  36. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  37. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  45. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  46. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  47. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  48. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  51. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  52. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  54. package/es/aepp-wallet-communication/schema.d.ts +90 -46
  55. package/es/aepp-wallet-communication/schema.mjs +214 -0
  56. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  57. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  58. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  60. package/es/apis/compiler/compiler.d.ts +92 -0
  61. package/es/apis/compiler/compiler.mjs +576 -0
  62. package/es/apis/compiler/compiler.mjs.map +1 -0
  63. package/es/apis/compiler/index.d.ts +2 -0
  64. package/es/apis/compiler/index.mjs +3 -0
  65. package/es/apis/compiler/index.mjs.map +1 -0
  66. package/es/apis/compiler/models/index.d.ts +248 -0
  67. package/es/apis/compiler/models/index.mjs +48 -0
  68. package/es/apis/compiler/models/index.mjs.map +1 -0
  69. package/es/apis/compiler/models/mappers.d.ts +23 -0
  70. package/es/apis/compiler/models/mappers.mjs +585 -0
  71. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  72. package/es/apis/compiler/models/parameters.d.ts +13 -0
  73. package/es/apis/compiler/models/parameters.mjs +71 -0
  74. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  75. package/es/apis/node/index.d.ts +2 -0
  76. package/es/apis/node/index.mjs +3 -0
  77. package/es/apis/node/index.mjs.map +1 -0
  78. package/es/apis/node/models/index.d.ts +1061 -0
  79. package/es/apis/node/models/index.mjs +2 -0
  80. package/es/apis/node/models/index.mjs.map +1 -0
  81. package/es/apis/node/models/mappers.d.ts +95 -0
  82. package/es/apis/node/models/mappers.mjs +4164 -0
  83. package/es/apis/node/models/mappers.mjs.map +1 -0
  84. package/es/apis/node/models/parameters.d.ts +17 -0
  85. package/es/apis/node/models/parameters.mjs +165 -0
  86. package/es/apis/node/models/parameters.mjs.map +1 -0
  87. package/es/apis/node/node.d.ts +215 -0
  88. package/es/apis/node/node.mjs +1165 -0
  89. package/es/apis/node/node.mjs.map +1 -0
  90. package/es/chain.d.ts +220 -0
  91. package/es/chain.mjs +524 -0
  92. package/es/chain.mjs.map +1 -0
  93. package/es/channel/handlers.d.ts +34 -0
  94. package/es/channel/handlers.mjs +147 -112
  95. package/es/channel/handlers.mjs.map +1 -1
  96. package/es/channel/index.d.ts +634 -0
  97. package/es/channel/index.mjs +898 -900
  98. package/es/channel/index.mjs.map +1 -1
  99. package/es/channel/internal.d.ts +100 -0
  100. package/es/channel/internal.mjs +97 -51
  101. package/es/channel/internal.mjs.map +1 -1
  102. package/es/contract/Compiler.d.ts +17 -0
  103. package/es/contract/Compiler.mjs +67 -0
  104. package/es/contract/Compiler.mjs.map +1 -0
  105. package/es/contract/aci.d.ts +125 -0
  106. package/es/contract/aci.mjs +199 -180
  107. package/es/contract/aci.mjs.map +1 -1
  108. package/es/contract/ga.d.ts +68 -0
  109. package/es/contract/ga.mjs +190 -0
  110. package/es/contract/ga.mjs.map +1 -0
  111. package/es/contract/methods.d.ts +68 -0
  112. package/es/contract/methods.mjs +101 -0
  113. package/es/contract/methods.mjs.map +1 -0
  114. package/es/index.d.ts +32 -0
  115. package/es/index.mjs +32 -40
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +154 -0
  118. package/es/oracle.mjs +288 -0
  119. package/es/oracle.mjs.map +1 -0
  120. package/es/spend.d.ts +61 -0
  121. package/es/spend.mjs +122 -0
  122. package/es/spend.mjs.map +1 -0
  123. package/es/tx/builder/constants.d.ts +41 -0
  124. package/es/tx/builder/constants.mjs +11 -19
  125. package/es/tx/builder/constants.mjs.map +1 -1
  126. package/es/tx/builder/field-types.d.ts +62 -0
  127. package/es/tx/builder/field-types.mjs +62 -10
  128. package/es/tx/builder/field-types.mjs.map +1 -1
  129. package/es/tx/builder/helpers.d.ts +131 -0
  130. package/es/tx/builder/helpers.mjs +71 -169
  131. package/es/tx/builder/helpers.mjs.map +1 -1
  132. package/es/tx/builder/index.d.ts +75 -0
  133. package/es/tx/builder/index.mjs +141 -323
  134. package/es/tx/builder/index.mjs.map +1 -1
  135. package/es/tx/builder/schema.d.ts +350 -0
  136. package/es/tx/builder/schema.mjs +173 -510
  137. package/es/tx/builder/schema.mjs.map +1 -1
  138. package/es/tx/index.d.ts +63 -0
  139. package/es/tx/index.mjs +171 -265
  140. package/es/tx/index.mjs.map +1 -1
  141. package/es/tx/min-fee.d.ts +20 -0
  142. package/es/tx/min-fee.mjs +148 -0
  143. package/es/tx/min-fee.mjs.map +1 -0
  144. package/es/tx/validator.d.ts +19 -0
  145. package/es/tx/validator.mjs +64 -71
  146. package/es/tx/validator.mjs.map +1 -1
  147. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  149. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  151. package/es/typings/bip32-path/index.d.mjs +2 -0
  152. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  153. package/es/typings/blakejs/index.d.mjs.map +1 -1
  154. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  155. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  156. package/es/utils/amount-formatter.d.ts +42 -0
  157. package/es/utils/amount-formatter.mjs +28 -41
  158. package/es/utils/amount-formatter.mjs.map +1 -1
  159. package/es/utils/autorest.d.ts +6 -0
  160. package/es/utils/autorest.mjs +97 -0
  161. package/es/utils/autorest.mjs.map +1 -0
  162. package/es/utils/bignumber.d.ts +13 -0
  163. package/es/utils/bignumber.mjs +10 -8
  164. package/es/utils/bignumber.mjs.map +1 -1
  165. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  166. package/es/utils/bytes.mjs +10 -14
  167. package/es/utils/bytes.mjs.map +1 -1
  168. package/es/utils/crypto.d.ts +103 -0
  169. package/es/utils/crypto.mjs +60 -68
  170. package/es/utils/crypto.mjs.map +1 -1
  171. package/es/utils/encoder.d.ts +26 -0
  172. package/es/utils/encoder.mjs +47 -51
  173. package/es/utils/encoder.mjs.map +1 -1
  174. package/es/{errors.d.ts → utils/errors.d.ts} +254 -57
  175. package/es/utils/errors.mjs +318 -125
  176. package/es/utils/errors.mjs.map +1 -1
  177. package/es/utils/hd-wallet.d.ts +34 -0
  178. package/es/utils/hd-wallet.mjs +27 -16
  179. package/es/utils/hd-wallet.mjs.map +1 -1
  180. package/es/utils/json-big.d.ts +5 -0
  181. package/es/utils/json-big.mjs +10 -14
  182. package/es/utils/json-big.mjs.map +1 -1
  183. package/es/utils/keystore.d.ts +51 -0
  184. package/es/utils/keystore.mjs +98 -193
  185. package/es/utils/keystore.mjs.map +1 -1
  186. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  187. package/es/utils/mptree.mjs +13 -14
  188. package/es/utils/mptree.mjs.map +1 -1
  189. package/es/utils/other.d.ts +14 -0
  190. package/es/utils/other.mjs +21 -36
  191. package/es/utils/other.mjs.map +1 -1
  192. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  193. package/es/utils/semver-satisfies.mjs.map +1 -1
  194. package/es/utils/string.d.ts +24 -0
  195. package/es/utils/string.mjs +8 -10
  196. package/es/utils/string.mjs.map +1 -1
  197. package/package.json +49 -39
  198. package/src/AeSdk.ts +65 -0
  199. package/src/AeSdkAepp.ts +167 -0
  200. package/src/AeSdkBase.ts +320 -0
  201. package/src/AeSdkWallet.ts +332 -0
  202. package/src/Node.ts +167 -0
  203. package/src/account/Base.ts +114 -0
  204. package/src/account/Memory.ts +83 -0
  205. package/src/account/Rpc.ts +67 -0
  206. package/src/aens.ts +391 -0
  207. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  208. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  209. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  210. package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +16 -17
  211. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  212. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  213. package/src/aepp-wallet-communication/schema.ts +181 -0
  214. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  215. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  216. package/src/apis/compiler/compiler.ts +585 -0
  217. package/src/apis/compiler/index.ts +2 -0
  218. package/src/apis/compiler/models/index.ts +301 -0
  219. package/src/apis/compiler/models/mappers.ts +583 -0
  220. package/src/apis/compiler/models/parameters.ts +93 -0
  221. package/src/apis/node/code-model-v4.yaml +10046 -0
  222. package/src/apis/node/index.ts +2 -0
  223. package/src/apis/node/models/index.ts +1253 -0
  224. package/src/apis/node/models/mappers.ts +4278 -0
  225. package/src/apis/node/models/parameters.ts +188 -0
  226. package/src/apis/node/node.ts +1299 -0
  227. package/src/chain.ts +444 -0
  228. package/src/channel/{handlers.js → handlers.ts} +220 -128
  229. package/src/channel/index.ts +991 -0
  230. package/src/channel/internal.ts +345 -0
  231. package/src/contract/Compiler.ts +66 -0
  232. package/src/contract/aci.ts +529 -0
  233. package/src/contract/ga.ts +178 -0
  234. package/src/contract/methods.ts +118 -0
  235. package/src/index.ts +51 -0
  236. package/src/oracle.ts +342 -0
  237. package/src/spend.ts +152 -0
  238. package/src/tx/builder/{constants.js → constants.ts} +12 -16
  239. package/src/tx/builder/field-types.ts +111 -0
  240. package/src/tx/builder/helpers.ts +253 -0
  241. package/src/tx/builder/index.ts +394 -0
  242. package/src/tx/builder/schema.ts +771 -0
  243. package/src/tx/index.ts +199 -0
  244. package/src/tx/min-fee.ts +136 -0
  245. package/src/tx/validator.ts +226 -0
  246. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  247. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  248. package/src/typings/bip32-path/index.d.ts +33 -0
  249. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  250. package/src/utils/amount-formatter.ts +29 -42
  251. package/src/utils/autorest.ts +90 -0
  252. package/src/utils/bignumber.ts +9 -11
  253. package/src/utils/bytes.ts +12 -14
  254. package/src/utils/crypto.ts +217 -0
  255. package/src/utils/encoder.ts +52 -55
  256. package/src/utils/errors.ts +268 -134
  257. package/src/utils/hd-wallet.ts +134 -0
  258. package/src/utils/json-big.ts +26 -0
  259. package/src/utils/keystore.ts +179 -0
  260. package/src/utils/mptree.ts +14 -14
  261. package/src/utils/other.ts +28 -43
  262. package/src/utils/string.ts +8 -10
  263. package/es/account/base.mjs +0 -179
  264. package/es/account/base.mjs.map +0 -1
  265. package/es/account/memory.mjs +0 -99
  266. package/es/account/memory.mjs.map +0 -1
  267. package/es/account/multiple.mjs +0 -179
  268. package/es/account/multiple.mjs.map +0 -1
  269. package/es/ae/aens.mjs +0 -404
  270. package/es/ae/aens.mjs.map +0 -1
  271. package/es/ae/aepp.mjs +0 -45
  272. package/es/ae/aepp.mjs.map +0 -1
  273. package/es/ae/contract.mjs +0 -159
  274. package/es/ae/contract.mjs.map +0 -1
  275. package/es/ae/index.mjs +0 -207
  276. package/es/ae/index.mjs.map +0 -1
  277. package/es/ae/oracle.mjs +0 -339
  278. package/es/ae/oracle.mjs.map +0 -1
  279. package/es/ae/universal.mjs +0 -45
  280. package/es/ae/universal.mjs.map +0 -1
  281. package/es/ae/wallet.mjs +0 -50
  282. package/es/ae/wallet.mjs.map +0 -1
  283. package/es/amount-formatter.d.ts +0 -58
  284. package/es/bignumber.d.ts +0 -18
  285. package/es/chain/index.mjs +0 -272
  286. package/es/chain/index.mjs.map +0 -1
  287. package/es/chain/node.mjs +0 -442
  288. package/es/chain/node.mjs.map +0 -1
  289. package/es/contract/compiler.mjs +0 -115
  290. package/es/contract/compiler.mjs.map +0 -1
  291. package/es/contract/ga/helpers.mjs +0 -30
  292. package/es/contract/ga/helpers.mjs.map +0 -1
  293. package/es/contract/ga/index.mjs +0 -178
  294. package/es/contract/ga/index.mjs.map +0 -1
  295. package/es/crypto-ts.d.ts +0 -9
  296. package/es/encoder.d.ts +0 -26
  297. package/es/node-pool/index.mjs +0 -188
  298. package/es/node-pool/index.mjs.map +0 -1
  299. package/es/node.mjs +0 -133
  300. package/es/node.mjs.map +0 -1
  301. package/es/other.d.ts +0 -31
  302. package/es/string.d.ts +0 -26
  303. package/es/tx/tx-object.mjs +0 -283
  304. package/es/tx/tx-object.mjs.map +0 -1
  305. package/es/tx/tx.mjs +0 -938
  306. package/es/tx/tx.mjs.map +0 -1
  307. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
  308. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
  309. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
  310. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
  311. package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
  312. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
  313. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
  314. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
  315. package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
  316. package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
  317. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
  318. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
  319. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
  320. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
  321. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
  322. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
  323. package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
  324. package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
  325. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
  326. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
  327. package/es/utils/async-init.mjs +0 -64
  328. package/es/utils/async-init.mjs.map +0 -1
  329. package/es/utils/crypto-ts.mjs.map +0 -1
  330. package/es/utils/swagger.mjs +0 -164
  331. package/es/utils/swagger.mjs.map +0 -1
  332. package/src/account/base.js +0 -153
  333. package/src/account/memory.js +0 -83
  334. package/src/account/multiple.js +0 -162
  335. package/src/ae/aens.js +0 -361
  336. package/src/ae/aepp.js +0 -45
  337. package/src/ae/contract.js +0 -148
  338. package/src/ae/index.js +0 -168
  339. package/src/ae/oracle.js +0 -311
  340. package/src/ae/universal.js +0 -47
  341. package/src/ae/wallet.js +0 -50
  342. package/src/chain/index.js +0 -269
  343. package/src/chain/node.js +0 -320
  344. package/src/channel/index.js +0 -903
  345. package/src/channel/internal.js +0 -236
  346. package/src/contract/aci.js +0 -376
  347. package/src/contract/compiler.js +0 -100
  348. package/src/contract/ga/helpers.js +0 -19
  349. package/src/contract/ga/index.js +0 -150
  350. package/src/index.js +0 -89
  351. package/src/node-pool/index.js +0 -172
  352. package/src/node.js +0 -116
  353. package/src/tx/builder/field-types.js +0 -61
  354. package/src/tx/builder/helpers.js +0 -334
  355. package/src/tx/builder/index.js +0 -465
  356. package/src/tx/builder/schema.js +0 -1100
  357. package/src/tx/index.js +0 -301
  358. package/src/tx/tx-object.js +0 -187
  359. package/src/tx/tx.js +0 -631
  360. package/src/tx/validator.js +0 -181
  361. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
  362. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
  363. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  364. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
  365. package/src/utils/aepp-wallet-communication/helpers.js +0 -60
  366. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
  367. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
  368. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
  369. package/src/utils/aepp-wallet-communication/schema.ts +0 -80
  370. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
  371. package/src/utils/async-init.js +0 -45
  372. package/src/utils/crypto.js +0 -219
  373. package/src/utils/hd-wallet.js +0 -100
  374. package/src/utils/json-big.js +0 -26
  375. package/src/utils/keystore.js +0 -219
  376. package/src/utils/swagger.js +0 -156
@@ -1,61 +0,0 @@
1
- import {
2
- writeId, readId, isNameValid, produceNameId, ensureNameValid, getMinimumNameFee, readInt, writeInt
3
- } from './helpers'
4
- import { InsufficientNameFeeError, IllegalArgumentError } from '../../utils/errors'
5
-
6
- export class Field {
7
- static serialize (value) {
8
- return value
9
- }
10
-
11
- static deserialize (value) {
12
- return value
13
- }
14
- }
15
-
16
- export class Name extends Field {
17
- static serialize (value) {
18
- ensureNameValid(value)
19
- return Buffer.from(value)
20
- }
21
-
22
- static deserialize (value) {
23
- return value.toString()
24
- }
25
- }
26
-
27
- export class NameId extends Field {
28
- static serialize (value) {
29
- return writeId(isNameValid(value) ? produceNameId(value) : value)
30
- }
31
-
32
- static deserialize (value) {
33
- return readId(value)
34
- }
35
- }
36
-
37
- export class NameFee extends Field {
38
- static serialize (value, { name }) {
39
- const minNameFee = getMinimumNameFee(name)
40
- value ??= minNameFee
41
- if (minNameFee.gt(value)) {
42
- throw new InsufficientNameFeeError(value, minNameFee)
43
- }
44
- return writeInt(value)
45
- }
46
-
47
- static deserialize (value) {
48
- return readInt(value)
49
- }
50
- }
51
-
52
- export class Deposit extends Field {
53
- static serialize (value, { name }) {
54
- if (+value) throw new IllegalArgumentError(`Contract deposit is not refundable, so it should be equal 0, got ${value} instead`)
55
- return writeInt(0)
56
- }
57
-
58
- static deserialize (value) {
59
- return readInt(value)
60
- }
61
- }
@@ -1,334 +0,0 @@
1
- import BigNumber from 'bignumber.js'
2
- import { encode as bs58Encode, decode as bs58Decode } from 'bs58'
3
- import { hash, salt } from '../../utils/crypto'
4
- import { encode, decode } from '../../utils/encoder'
5
- import { toBytes } from '../../utils/bytes'
6
- import {
7
- ID_TAG_PREFIX,
8
- PREFIX_ID_TAG,
9
- NAME_BID_RANGES,
10
- NAME_FEE_BID_INCREMENT,
11
- NAME_BID_TIMEOUTS,
12
- NAME_MAX_LENGTH_FEE,
13
- POINTER_KEY_BY_PREFIX
14
- } from './constants'
15
- import { ceil } from '../../utils/bignumber'
16
- import {
17
- TagNotFoundError,
18
- PrefixNotFoundError,
19
- InvalidNameError,
20
- IllegalBidFeeError,
21
- NoDefaultAensPointerError,
22
- ArgumentError
23
- } from '../../utils/errors'
24
-
25
- /**
26
- * JavaScript-based Transaction builder helper function's
27
- * @module @aeternity/aepp-sdk/es/tx/builder/helpers
28
- * @export TxBuilderHelper
29
- * @example import { TxBuilderHelper } from '@aeternity/aepp-sdk'
30
- */
31
-
32
- export const createSalt = salt
33
-
34
- export { encode, decode }
35
-
36
- /**
37
- * Build a contract public key
38
- * @function
39
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
40
- * @param {string} ownerId The public key of the owner account
41
- * @param {number} nonce the nonce of the transaction
42
- * @return {string} Contract public key
43
- */
44
- export function buildContractId (ownerId, nonce) {
45
- const ownerIdAndNonce = Buffer.from([...decode(ownerId, 'ak'), ...toBytes(nonce)])
46
- const b2bHash = hash(ownerIdAndNonce)
47
- return encode(b2bHash, 'ct')
48
- }
49
-
50
- /**
51
- * Build a oracle query id
52
- * @function
53
- * @function* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
54
- * @param {String} senderId The public key of the sender account
55
- * @param {Number} nonce the nonce of the transaction
56
- * @param {Number} oracleId The oracle public key
57
- * @return {string} Contract public key
58
- */
59
- export function oracleQueryId (senderId, nonce, oracleId) {
60
- function _int32 (val) {
61
- const nonceBE = toBytes(val, true)
62
- return Buffer.concat([Buffer.alloc(32 - nonceBE.length), nonceBE])
63
- }
64
-
65
- const b2bHash = hash(Buffer.from([...decode(senderId, 'ak'), ..._int32(nonce), ...decode(oracleId, 'ok')]))
66
- return encode(b2bHash, 'oq')
67
- }
68
-
69
- /**
70
- * Format the salt into a 64-byte hex string
71
- * @function
72
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
73
- * @param {number} salt
74
- * @return {string} Zero-padded hex string of salt
75
- */
76
- export function formatSalt (salt) {
77
- return Buffer.from(salt.toString(16).padStart(64, '0'), 'hex')
78
- }
79
-
80
- /**
81
- * Encode an AENS name
82
- * @function
83
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
84
- * @param {String} name Name to encode
85
- * @return {String} `nm_` prefixed encoded AENS name
86
- */
87
- export function produceNameId (name) {
88
- ensureNameValid(name)
89
- return encode(hash(name.toLowerCase()), 'nm')
90
- }
91
-
92
- /**
93
- * Generate the commitment hash by hashing the formatted salt and
94
- * name, base 58 encoding the result and prepending 'cm_'
95
- *
96
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
97
- * @function commitmentHash
98
- * @category async
99
- * @rtype (name: String, salt?: String) => hash: Promise[String]
100
- * @param {String} name - Name to be registered
101
- * @param {Number} salt Random salt
102
- * @return {String} Commitment hash
103
- */
104
- export function commitmentHash (name, salt = createSalt()) {
105
- ensureNameValid(name)
106
- return encode(hash(Buffer.concat([Buffer.from(name.toLowerCase()), formatSalt(salt)])), 'cm')
107
- }
108
-
109
- // based on https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md
110
- const base64Types = ['ba', 'cb', 'or', 'ov', 'pi', 'ss', 'cs', 'ck', 'cv', 'st', 'tx']
111
- const base58Types = ['ak', 'bf', 'bs', 'bx', 'ch', 'cm', 'ct', 'kh', 'mh', 'nm', 'ok', 'oq', 'pp', 'sg', 'th']
112
- // TODO: add all types with a fixed length
113
- const typesLength = {
114
- ak: 32,
115
- ct: 32,
116
- ok: 32
117
- }
118
-
119
- function ensureValidLength (data, type) {
120
- if (!typesLength[type]) return
121
- if (data.length === typesLength[type]) return
122
- throw new PayloadLengthError(`Payload should be ${typesLength[type]} bytes, got ${data.length} instead`)
123
- }
124
-
125
- const getChecksum = payload => sha256hash(sha256hash(payload)).slice(0, 4)
126
-
127
- const addChecksum = (input) => {
128
- const payload = Buffer.from(input)
129
- return Buffer.concat([payload, getChecksum(payload)])
130
- }
131
-
132
- function getPayload (buffer) {
133
- const payload = buffer.slice(0, -4)
134
- if (!getChecksum(payload).equals(buffer.slice(-4))) throw new InvalidChecksumError()
135
- return payload
136
- }
137
-
138
- const base64 = {
139
- encode: buffer => addChecksum(buffer).toString('base64'),
140
- decode: string => getPayload(Buffer.from(string, 'base64'))
141
- }
142
-
143
- const base58 = {
144
- encode: buffer => bs58.encode(addChecksum(buffer)),
145
- decode: string => getPayload(bs58.decode(string))
146
- }
147
-
148
- /**
149
- * Utility function to create and _id type
150
- * @function
151
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
152
- * @param {string} hashId Encoded hash
153
- * @return {Buffer} Buffer Buffer with ID tag and decoded HASh
154
- */
155
- export function writeId (hashId) {
156
- if (typeof hashId !== 'string') throw new ArgumentError('hashId', 'a string', hashId)
157
- const prefix = hashId.slice(0, 2)
158
- const idTag = PREFIX_ID_TAG[prefix]
159
- if (!idTag) throw new TagNotFoundError(prefix)
160
- return Buffer.from([...toBytes(idTag), ...decode(hashId, prefix)])
161
- }
162
-
163
- /**
164
- * Utility function to read and _id type
165
- * @function
166
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
167
- * @param {Buffer} buf Data
168
- * @return {String} Encoided hash string with prefix
169
- */
170
- export function readId (buf) {
171
- const tag = Buffer.from(buf).readUIntBE(0, 1)
172
- const prefix = ID_TAG_PREFIX[tag]
173
- if (!prefix) throw new PrefixNotFoundError(tag)
174
- return encode(buf.slice(1, buf.length), prefix)
175
- }
176
-
177
- /**
178
- * Utility function to convert int to bytes
179
- * @function
180
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
181
- * @param {Number|String|BigNumber} val Value
182
- * @return {Buffer} Buffer Buffer from number(BigEndian)
183
- */
184
- export function writeInt (val) {
185
- return toBytes(val, true)
186
- }
187
-
188
- /**
189
- * Utility function to convert bytes to int
190
- * @function
191
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
192
- * @param {Buffer} buf Value
193
- * @return {String} Buffer Buffer from number(BigEndian)
194
- */
195
- export function readInt (buf = Buffer.from([])) {
196
- return new BigNumber(Buffer.from(buf).toString('hex'), 16).toString(10)
197
- }
198
-
199
- /**
200
- * Helper function to build pointers for name update TX
201
- * @function
202
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
203
- * @param {Array} pointers - Array of pointers
204
- * ([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])
205
- * @return {Array} Serialized pointers array
206
- */
207
- export function buildPointers (pointers) {
208
- return pointers.map(
209
- p => [
210
- toBytes(p.key),
211
- writeId(p.id)
212
- ]
213
- )
214
- }
215
-
216
- /**
217
- * Helper function to read pointers from name update TX
218
- * @function
219
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
220
- * @param {Array} pointers - Array of pointers
221
- * ([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])
222
- * @return {Array} Deserialize pointer array
223
- */
224
- export function readPointers (pointers) {
225
- return pointers.map(
226
- ([key, id]) => Object.assign({
227
- key: key.toString(),
228
- id: readId(id)
229
- })
230
- )
231
- }
232
-
233
- const AENS_SUFFIX = '.chain'
234
-
235
- /**
236
- * Ensure that AENS name is valid
237
- * @function
238
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
239
- * @param {string} name
240
- * @return void
241
- * @throws Error
242
- */
243
- export function ensureNameValid (name) {
244
- if (!name || typeof name !== 'string') throw new InvalidNameError('Name must be a string')
245
- if (!name.endsWith(AENS_SUFFIX)) throw new InvalidNameError(`Name should end with ${AENS_SUFFIX}: ${name}`)
246
- }
247
-
248
- /**
249
- * Is AENS name valid
250
- * @function
251
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
252
- * @param {string} name
253
- * @return Boolean
254
- */
255
- export function isNameValid (name) {
256
- try {
257
- ensureNameValid(name)
258
- return true
259
- } catch (error) {
260
- return false
261
- }
262
- }
263
-
264
- /**
265
- * @param identifier - account/oracle/contract address, or channel
266
- * @returns {String} default AENS pointer key
267
- * @throws exception when default key not defined
268
- */
269
- export function getDefaultPointerKey (identifier) {
270
- decode(identifier)
271
- const prefix = identifier.substr(0, 2)
272
- return POINTER_KEY_BY_PREFIX[prefix] ||
273
- (() => { throw new NoDefaultAensPointerError(prefix) })()
274
- }
275
-
276
- /**
277
- * Get the minimum AENS name fee
278
- * @function
279
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
280
- * @param {String} name the AENS name to get the fee for
281
- * @return {String} the minimum fee for the AENS name auction
282
- */
283
- export function getMinimumNameFee (name) {
284
- ensureNameValid(name)
285
- const nameLength = name.length - AENS_SUFFIX.length
286
- return NAME_BID_RANGES[Math.min(nameLength, NAME_MAX_LENGTH_FEE)]
287
- }
288
-
289
- /**
290
- * Compute bid fee for AENS auction
291
- * @function
292
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
293
- * @param {String} name the AENS name to get the fee for
294
- * @param {Number|String} startFee Auction start fee
295
- * @param {Number} [increment=0.5] Bid multiplier(In percentage, must be between 0 and 1)
296
- * @return {String} Bid fee
297
- */
298
- export function computeBidFee (name, startFee, increment = NAME_FEE_BID_INCREMENT) {
299
- if (!(Number(increment) === increment && increment % 1 !== 0)) throw new IllegalBidFeeError(`Increment must be float. Current increment ${increment}`)
300
- if (increment < NAME_FEE_BID_INCREMENT) throw new IllegalBidFeeError(`minimum increment percentage is ${NAME_FEE_BID_INCREMENT}`)
301
- return ceil(
302
- BigNumber(startFee ?? getMinimumNameFee(name)).times(BigNumber(NAME_FEE_BID_INCREMENT).plus(1))
303
- )
304
- }
305
-
306
- /**
307
- * Compute auction end height
308
- * @function
309
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
310
- * @param {String} name
311
- * @param {Number|String} claimHeight Auction starting height
312
- * @return {String} Auction end height
313
- */
314
- export function computeAuctionEndBlock (name, claimHeight) {
315
- ensureNameValid(name)
316
- const length = name.length - AENS_SUFFIX.length
317
- const h = (length <= 4 && NAME_BID_TIMEOUTS[4]) ||
318
- (length <= 8 && NAME_BID_TIMEOUTS[8]) ||
319
- (length <= 12 && NAME_BID_TIMEOUTS[12]) ||
320
- NAME_BID_TIMEOUTS[13]
321
- return h.plus(claimHeight).toString(10)
322
- }
323
-
324
- /**
325
- * Is name accept going to auction
326
- * @function
327
- * @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
328
- * @param {String} name
329
- * @return {Boolean}
330
- */
331
- export function isAuctionName (name) {
332
- ensureNameValid(name)
333
- return name.length < 13 + AENS_SUFFIX.length
334
- }