@aeternity/aepp-sdk 12.0.0 → 12.1.2

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 (283) hide show
  1. package/dist/aepp-sdk.browser-script.js +1 -1
  2. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -15
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +2 -1
  5. package/dist/aepp-sdk.browser.js.LICENSE.txt +1 -0
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +20765 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/AeSdk.d.ts +7 -7
  10. package/es/AeSdk.mjs.map +1 -1
  11. package/es/AeSdkAepp.d.ts +4 -3
  12. package/es/AeSdkAepp.mjs +2 -1
  13. package/es/AeSdkAepp.mjs.map +1 -1
  14. package/es/AeSdkBase.d.ts +22 -21
  15. package/es/AeSdkBase.mjs +25 -21
  16. package/es/AeSdkBase.mjs.map +1 -1
  17. package/es/AeSdkWallet.d.ts +4 -3
  18. package/es/AeSdkWallet.mjs +5 -1
  19. package/es/AeSdkWallet.mjs.map +1 -1
  20. package/es/Node.d.ts +7 -10
  21. package/es/Node.mjs +63 -57
  22. package/es/Node.mjs.map +1 -1
  23. package/es/account/Base.d.ts +7 -4
  24. package/es/account/Base.mjs +3 -3
  25. package/es/account/Base.mjs.map +1 -1
  26. package/es/account/Memory.d.ts +5 -4
  27. package/es/account/Memory.mjs +24 -2
  28. package/es/account/Memory.mjs.map +1 -1
  29. package/es/account/Rpc.d.ts +6 -6
  30. package/es/account/Rpc.mjs +3 -2
  31. package/es/account/Rpc.mjs.map +1 -1
  32. package/es/aens.d.ts +27 -14
  33. package/es/aens.mjs +27 -21
  34. package/es/aens.mjs.map +1 -1
  35. package/es/aepp-wallet-communication/connection/Browser.d.ts +2 -1
  36. package/es/aepp-wallet-communication/connection/Browser.mjs +5 -2
  37. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  38. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +1 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  41. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -0
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +5 -1
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  44. package/es/aepp-wallet-communication/connection-proxy.d.ts +1 -0
  45. package/es/aepp-wallet-communication/connection-proxy.mjs +1 -0
  46. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +1 -0
  48. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -5
  49. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/rpc/types.d.ts +8 -8
  51. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  52. package/es/aepp-wallet-communication/schema.d.ts +17 -2
  53. package/es/aepp-wallet-communication/schema.mjs +54 -17
  54. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  55. package/es/aepp-wallet-communication/wallet-detector.d.ts +2 -1
  56. package/es/aepp-wallet-communication/wallet-detector.mjs +2 -3
  57. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  58. package/es/apis/node/models/index.d.ts +6 -2
  59. package/es/apis/node/models/index.mjs.map +1 -1
  60. package/es/apis/node/models/mappers.mjs +4 -2
  61. package/es/apis/node/models/mappers.mjs.map +1 -1
  62. package/es/chain.d.ts +92 -64
  63. package/es/chain.mjs +190 -154
  64. package/es/chain.mjs.map +1 -1
  65. package/es/channel/handlers.d.ts +3 -3
  66. package/es/channel/handlers.mjs +42 -44
  67. package/es/channel/handlers.mjs.map +1 -1
  68. package/es/channel/index.d.ts +43 -52
  69. package/es/channel/index.mjs +46 -49
  70. package/es/channel/index.mjs.map +1 -1
  71. package/es/channel/internal.d.ts +16 -15
  72. package/es/channel/internal.mjs +67 -62
  73. package/es/channel/internal.mjs.map +1 -1
  74. package/es/contract/Compiler.d.ts +1 -0
  75. package/es/contract/Compiler.mjs +5 -4
  76. package/es/contract/Compiler.mjs.map +1 -1
  77. package/es/contract/aci.d.ts +17 -15
  78. package/es/contract/aci.mjs +58 -45
  79. package/es/contract/aci.mjs.map +1 -1
  80. package/es/contract/ga.d.ts +16 -15
  81. package/es/contract/ga.mjs +12 -7
  82. package/es/contract/ga.mjs.map +1 -1
  83. package/es/contract/methods.d.ts +9 -6
  84. package/es/contract/methods.mjs +9 -6
  85. package/es/contract/methods.mjs.map +1 -1
  86. package/es/deprecated/index.d.ts +143 -0
  87. package/es/deprecated/index.mjs +162 -0
  88. package/es/deprecated/index.mjs.map +1 -0
  89. package/es/deprecated/methods.d.ts +18 -0
  90. package/es/deprecated/methods.mjs +26 -0
  91. package/es/deprecated/methods.mjs.map +1 -0
  92. package/es/index.d.ts +4 -1
  93. package/es/index.mjs +4 -1
  94. package/es/index.mjs.map +1 -1
  95. package/es/oracle.d.ts +69 -62
  96. package/es/oracle.mjs +121 -103
  97. package/es/oracle.mjs.map +1 -1
  98. package/es/spend.d.ts +16 -15
  99. package/es/spend.mjs +19 -30
  100. package/es/spend.mjs.map +1 -1
  101. package/es/tx/builder/address.d.ts +25 -0
  102. package/es/tx/builder/address.mjs +45 -0
  103. package/es/tx/builder/address.mjs.map +1 -0
  104. package/es/tx/builder/constants.d.ts +55 -26
  105. package/es/tx/builder/constants.mjs +60 -38
  106. package/es/tx/builder/constants.mjs.map +1 -1
  107. package/es/tx/builder/field-types/coin-amount.d.ts +13 -0
  108. package/es/tx/builder/field-types/coin-amount.mjs +26 -0
  109. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -0
  110. package/es/tx/builder/field-types/deposit.d.ts +15 -0
  111. package/es/tx/builder/field-types/deposit.mjs +19 -0
  112. package/es/tx/builder/field-types/deposit.mjs.map +1 -0
  113. package/es/tx/builder/field-types/fee.d.ts +25 -0
  114. package/es/tx/{min-fee.mjs → builder/field-types/fee.mjs} +62 -60
  115. package/es/tx/builder/field-types/fee.mjs.map +1 -0
  116. package/es/tx/builder/field-types/field.d.ts +6 -0
  117. package/es/tx/builder/field-types/field.mjs +15 -0
  118. package/es/tx/builder/field-types/field.mjs.map +1 -0
  119. package/es/tx/builder/field-types/gas-limit.d.ts +12 -0
  120. package/es/tx/builder/field-types/gas-limit.mjs +33 -0
  121. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -0
  122. package/es/tx/builder/field-types/gas-price.d.ts +8 -0
  123. package/es/tx/builder/field-types/gas-price.mjs +18 -0
  124. package/es/tx/builder/field-types/gas-price.mjs.map +1 -0
  125. package/es/tx/builder/field-types/index.d.ts +70 -0
  126. package/es/tx/builder/field-types/index.mjs +25 -0
  127. package/es/tx/builder/field-types/index.mjs.map +1 -0
  128. package/es/tx/builder/field-types/name-fee.d.ts +20 -0
  129. package/es/tx/builder/field-types/name-fee.mjs +24 -0
  130. package/es/tx/builder/field-types/name-fee.mjs.map +1 -0
  131. package/es/tx/builder/field-types/name-id.d.ts +14 -0
  132. package/es/tx/builder/field-types/name-id.mjs +19 -0
  133. package/es/tx/builder/field-types/name-id.mjs.map +1 -0
  134. package/es/tx/builder/field-types/name.d.ts +13 -0
  135. package/es/tx/builder/field-types/name.mjs +18 -0
  136. package/es/tx/builder/field-types/name.mjs.map +1 -0
  137. package/es/tx/builder/field-types/short-u-int.d.ts +6 -0
  138. package/es/tx/builder/field-types/short-u-int.mjs +12 -0
  139. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -0
  140. package/es/tx/builder/field-types/u-int.d.ts +8 -0
  141. package/es/tx/builder/field-types/u-int.mjs +14 -0
  142. package/es/tx/builder/field-types/u-int.mjs.map +1 -0
  143. package/es/tx/builder/helpers.d.ts +27 -33
  144. package/es/tx/builder/helpers.mjs +41 -47
  145. package/es/tx/builder/helpers.mjs.map +1 -1
  146. package/es/tx/builder/index.d.ts +25 -12
  147. package/es/tx/builder/index.mjs +74 -83
  148. package/es/tx/builder/index.mjs.map +1 -1
  149. package/es/tx/builder/schema.d.ts +995 -144
  150. package/es/tx/builder/schema.mjs +121 -170
  151. package/es/tx/builder/schema.mjs.map +1 -1
  152. package/es/tx/index.d.ts +28 -27
  153. package/es/tx/index.mjs +97 -117
  154. package/es/tx/index.mjs.map +1 -1
  155. package/es/tx/validator.d.ts +4 -3
  156. package/es/tx/validator.mjs +79 -92
  157. package/es/tx/validator.mjs.map +1 -1
  158. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -1
  159. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -1
  160. package/es/typings/bip32-path/index.d.mjs.map +1 -1
  161. package/es/typings/blakejs/index.d.mjs.map +1 -1
  162. package/es/typings/sha-js/index.d.mjs +2 -0
  163. package/es/typings/sha-js/index.d.mjs.map +1 -0
  164. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -1
  165. package/es/utils/amount-formatter.d.ts +9 -9
  166. package/es/utils/amount-formatter.mjs +17 -17
  167. package/es/utils/amount-formatter.mjs.map +1 -1
  168. package/es/utils/autorest.mjs +7 -7
  169. package/es/utils/autorest.mjs.map +1 -1
  170. package/es/utils/bignumber.mjs +2 -1
  171. package/es/utils/bignumber.mjs.map +1 -1
  172. package/es/utils/bytes.mjs +1 -1
  173. package/es/utils/bytes.mjs.map +1 -1
  174. package/es/utils/crypto.d.ts +8 -23
  175. package/es/utils/crypto.mjs +15 -41
  176. package/es/utils/crypto.mjs.map +1 -1
  177. package/es/utils/encoder-types.d.ts +61 -0
  178. package/es/utils/encoder-types.mjs +36 -0
  179. package/es/utils/encoder-types.mjs.map +1 -0
  180. package/es/utils/encoder.d.ts +6 -7
  181. package/es/utils/encoder.mjs +42 -26
  182. package/es/utils/encoder.mjs.map +1 -1
  183. package/es/utils/errors.d.ts +1 -11
  184. package/es/utils/errors.mjs +4 -20
  185. package/es/utils/errors.mjs.map +1 -1
  186. package/es/utils/hd-wallet.d.ts +18 -2
  187. package/es/utils/hd-wallet.mjs +64 -34
  188. package/es/utils/hd-wallet.mjs.map +1 -1
  189. package/es/utils/json-big.mjs +2 -2
  190. package/es/utils/json-big.mjs.map +1 -1
  191. package/es/utils/keystore.mjs +4 -2
  192. package/es/utils/keystore.mjs.map +1 -1
  193. package/es/utils/mptree.d.ts +2 -2
  194. package/es/utils/mptree.mjs +11 -6
  195. package/es/utils/mptree.mjs.map +1 -1
  196. package/es/utils/other.d.ts +8 -2
  197. package/es/utils/other.mjs +15 -3
  198. package/es/utils/other.mjs.map +1 -1
  199. package/es/utils/semver-satisfies.d.ts +1 -1
  200. package/es/utils/semver-satisfies.mjs +2 -2
  201. package/es/utils/semver-satisfies.mjs.map +1 -1
  202. package/es/utils/string.mjs.map +1 -1
  203. package/package.json +36 -34
  204. package/src/AeSdk.ts +30 -27
  205. package/src/AeSdkAepp.ts +93 -84
  206. package/src/AeSdkBase.ts +148 -130
  207. package/src/AeSdkWallet.ts +172 -156
  208. package/src/Node.ts +108 -102
  209. package/src/account/Base.ts +42 -32
  210. package/src/account/Memory.ts +45 -30
  211. package/src/account/Rpc.ts +32 -30
  212. package/src/aens.ts +124 -108
  213. package/src/aepp-wallet-communication/connection/Browser.ts +18 -15
  214. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +22 -21
  215. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +63 -52
  216. package/src/aepp-wallet-communication/connection-proxy.ts +8 -7
  217. package/src/aepp-wallet-communication/rpc/RpcClient.ts +67 -61
  218. package/src/aepp-wallet-communication/rpc/types.ts +32 -32
  219. package/src/aepp-wallet-communication/schema.ts +117 -74
  220. package/src/aepp-wallet-communication/wallet-detector.ts +29 -28
  221. package/src/apis/node/code-model-v4.yaml +54 -20
  222. package/src/apis/node/models/index.ts +6 -2
  223. package/src/apis/node/models/mappers.ts +4 -2
  224. package/src/chain.ts +286 -228
  225. package/src/channel/handlers.ts +424 -372
  226. package/src/channel/index.ts +285 -251
  227. package/src/channel/internal.ts +248 -232
  228. package/src/contract/Compiler.ts +22 -21
  229. package/src/contract/aci.ts +267 -258
  230. package/src/contract/ga.ts +93 -72
  231. package/src/contract/methods.ts +32 -27
  232. package/src/deprecated/index.ts +172 -0
  233. package/src/deprecated/methods.ts +25 -0
  234. package/src/index.ts +37 -32
  235. package/src/oracle.ts +211 -189
  236. package/src/spend.ts +82 -70
  237. package/src/tx/builder/address.ts +50 -0
  238. package/src/tx/builder/constants.ts +82 -52
  239. package/src/tx/builder/field-types/coin-amount.ts +27 -0
  240. package/src/tx/builder/field-types/deposit.ts +21 -0
  241. package/src/tx/builder/field-types/fee.ts +143 -0
  242. package/src/tx/builder/field-types/field.ts +9 -0
  243. package/src/tx/builder/field-types/gas-limit.ts +41 -0
  244. package/src/tx/builder/field-types/gas-price.ts +16 -0
  245. package/src/tx/builder/field-types/index.ts +45 -0
  246. package/src/tx/builder/field-types/name-fee.ts +32 -0
  247. package/src/tx/builder/field-types/name-id.ts +20 -0
  248. package/src/tx/builder/field-types/name.ts +18 -0
  249. package/src/tx/builder/field-types/short-u-int.ts +11 -0
  250. package/src/tx/builder/field-types/u-int.ts +16 -0
  251. package/src/tx/builder/helpers.ts +112 -117
  252. package/src/tx/builder/index.ts +203 -197
  253. package/src/tx/builder/schema.ts +421 -465
  254. package/src/tx/index.ts +128 -135
  255. package/src/tx/validator.ts +165 -161
  256. package/src/typings/@aeternity__argon2-browser/index.d.ts +1 -1
  257. package/src/typings/@aeternity__uuid/index.d.ts +3 -1
  258. package/src/typings/bip32-path/index.d.ts +6 -6
  259. package/src/typings/blakejs/index.d.ts +4 -32
  260. package/src/typings/sha-js/index.d.ts +5 -0
  261. package/src/typings/tweetnacl-auth/index.d.ts +2 -2
  262. package/src/utils/amount-formatter.ts +41 -41
  263. package/src/utils/autorest.ts +57 -54
  264. package/src/utils/bignumber.ts +7 -6
  265. package/src/utils/bytes.ts +19 -19
  266. package/src/utils/crypto.ts +82 -94
  267. package/src/utils/encoder-types.ts +63 -0
  268. package/src/utils/encoder.ts +104 -56
  269. package/src/utils/errors.ts +246 -264
  270. package/src/utils/hd-wallet.ts +114 -82
  271. package/src/utils/json-big.ts +16 -15
  272. package/src/utils/keystore.ts +65 -62
  273. package/src/utils/mptree.ts +59 -56
  274. package/src/utils/other.ts +26 -18
  275. package/src/utils/semver-satisfies.ts +15 -11
  276. package/src/utils/string.ts +10 -10
  277. package/es/tx/builder/field-types.d.ts +0 -62
  278. package/es/tx/builder/field-types.mjs +0 -126
  279. package/es/tx/builder/field-types.mjs.map +0 -1
  280. package/es/tx/min-fee.d.ts +0 -20
  281. package/es/tx/min-fee.mjs.map +0 -1
  282. package/src/tx/builder/field-types.ts +0 -111
  283. package/src/tx/min-fee.ts +0 -136
@@ -14,14 +14,14 @@ export const genRequestQueuesPolicy = () => {
14
14
  const key = request.headers.get('__queue');
15
15
  request.headers.delete('__queue');
16
16
 
17
- const getResponse = async () => await next(request);
17
+ const getResponse = async () => next(request);
18
18
 
19
- if (key == null) return await getResponse();
19
+ if (key == null) return getResponse();
20
20
  const req = ((_requestQueues$get = requestQueues.get(key)) !== null && _requestQueues$get !== void 0 ? _requestQueues$get : Promise.resolve()).then(getResponse, getResponse); // TODO: remove after fixing https://github.com/aeternity/aeternity/issues/3803
21
21
  // gap to ensure that node won't reject the nonce
22
22
 
23
- requestQueues.set(key, req.then(async () => await pause(750)));
24
- return await req;
23
+ requestQueues.set(key, req.then(async () => pause(750)));
24
+ return req;
25
25
  }
26
26
 
27
27
  },
@@ -37,7 +37,7 @@ export const genCombineGetRequestsPolicy = () => {
37
37
  async sendRequest(request, next) {
38
38
  var _pendingGetRequests$g;
39
39
 
40
- if (request.method !== 'GET') return await next(request);
40
+ if (request.method !== 'GET') return next(request);
41
41
  const key = JSON.stringify([request.url, request.body]);
42
42
  const response = (_pendingGetRequests$g = pendingGetRequests.get(key)) !== null && _pendingGetRequests$g !== void 0 ? _pendingGetRequests$g : next(request);
43
43
  pendingGetRequests.set(key, response);
@@ -87,10 +87,10 @@ export const genVersionCheckPolicy = (name, ignorePath, versionPromise, geVersio
87
87
  name: 'version-check',
88
88
 
89
89
  async sendRequest(request, next) {
90
- if (new URL(request.url).pathname === ignorePath) return await next(request);
90
+ if (new URL(request.url).pathname === ignorePath) return next(request);
91
91
  const args = [await versionPromise, geVersion, ltVersion];
92
92
  if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);
93
- return await next(request);
93
+ return next(request);
94
94
  }
95
95
 
96
96
  });
@@ -1 +1 @@
1
- {"version":3,"file":"autorest.mjs","names":["RestError","pause","semverSatisfies","UnsupportedVersionError","genRequestQueuesPolicy","requestQueues","Map","policy","name","sendRequest","request","next","key","headers","get","delete","getResponse","req","Promise","resolve","then","set","position","genCombineGetRequestsPolicy","pendingGetRequests","method","JSON","stringify","url","body","response","genErrorFormatterPolicy","getMessage","error","bodyAsText","parse","e","message","URL","pathname","slice","genVersionCheckPolicy","ignorePath","versionPromise","geVersion","ltVersion","args"],"sources":["../../src/utils/autorest.ts"],"sourcesContent":["import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline'\nimport { AdditionalPolicyConfig } from '@azure/core-client'\nimport { pause } from './other'\nimport semverSatisfies from './semver-satisfies'\nimport { UnsupportedVersionError } from './errors'\n\nexport const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {\n const requestQueues = new Map<string, Promise<unknown>>()\n\n return {\n policy: {\n name: 'request-queues',\n async sendRequest (request, next) {\n const key = request.headers.get('__queue')\n request.headers.delete('__queue')\n const getResponse = async (): Promise<PipelineResponse> => await next(request)\n if (key == null) return await getResponse()\n const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse, getResponse)\n // TODO: remove after fixing https://github.com/aeternity/aeternity/issues/3803\n // gap to ensure that node won't reject the nonce\n requestQueues.set(key, req.then(async () => await pause(750)))\n return await req\n }\n },\n position: 'perCall'\n }\n}\n\nexport const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {\n const pendingGetRequests = new Map<string, Promise<PipelineResponse>>()\n\n return {\n policy: {\n name: 'combine-requests',\n async sendRequest (request, next) {\n if (request.method !== 'GET') return await next(request)\n const key = JSON.stringify([request.url, request.body])\n const response = pendingGetRequests.get(key) ?? next(request)\n pendingGetRequests.set(key, response)\n try {\n return await response\n } finally {\n pendingGetRequests.delete(key)\n }\n }\n },\n position: 'perCall'\n }\n}\n\nexport const genErrorFormatterPolicy = (\n getMessage: (b: any) => string\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'error-formatter',\n async sendRequest (request, next) {\n try {\n return await next(request)\n } catch (error) {\n if (!(error instanceof RestError) || error.request == null) throw error\n if (error.response?.bodyAsText == null) throw error\n\n let body\n try {\n body = JSON.parse(error.response.bodyAsText)\n } catch (e) {\n throw error\n }\n error.message = `${new URL(error.request.url).pathname.slice(1)} error`\n const message = getMessage(body)\n if (message !== '') error.message += `:${message}`\n throw error\n }\n }\n },\n position: 'perCall'\n})\n\nexport const genVersionCheckPolicy = (\n name: string, ignorePath: string,\n versionPromise: Promise<string>, geVersion: string, ltVersion: string\n): PipelinePolicy => ({\n name: 'version-check',\n async sendRequest (request, next) {\n if (new URL(request.url).pathname === ignorePath) return await next(request)\n const args = [await versionPromise, geVersion, ltVersion] as const\n if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args)\n return await next(request)\n }\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"autorest.mjs","names":["RestError","pause","semverSatisfies","UnsupportedVersionError","genRequestQueuesPolicy","requestQueues","Map","policy","name","sendRequest","request","next","key","headers","get","delete","getResponse","req","Promise","resolve","then","set","position","genCombineGetRequestsPolicy","pendingGetRequests","method","JSON","stringify","url","body","response","genErrorFormatterPolicy","getMessage","error","bodyAsText","parse","e","message","URL","pathname","slice","genVersionCheckPolicy","ignorePath","versionPromise","geVersion","ltVersion","args"],"sources":["../../src/utils/autorest.ts"],"sourcesContent":["import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline';\nimport { AdditionalPolicyConfig } from '@azure/core-client';\nimport { pause } from './other';\nimport semverSatisfies from './semver-satisfies';\nimport { UnsupportedVersionError } from './errors';\n\nexport const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {\n const requestQueues = new Map<string, Promise<unknown>>();\n\n return {\n policy: {\n name: 'request-queues',\n async sendRequest(request, next) {\n const key = request.headers.get('__queue');\n request.headers.delete('__queue');\n const getResponse = async (): Promise<PipelineResponse> => next(request);\n if (key == null) return getResponse();\n const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse, getResponse);\n // TODO: remove after fixing https://github.com/aeternity/aeternity/issues/3803\n // gap to ensure that node won't reject the nonce\n requestQueues.set(key, req.then(async () => pause(750)));\n return req;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {\n const pendingGetRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'combine-requests',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = pendingGetRequests.get(key) ?? next(request);\n pendingGetRequests.set(key, response);\n try {\n return await response;\n } finally {\n pendingGetRequests.delete(key);\n }\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genErrorFormatterPolicy = (\n getMessage: (b: any) => string,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'error-formatter',\n async sendRequest(request, next) {\n try {\n return await next(request);\n } catch (error) {\n if (!(error instanceof RestError) || error.request == null) throw error;\n if (error.response?.bodyAsText == null) throw error;\n\n let body;\n try {\n body = JSON.parse(error.response.bodyAsText);\n } catch (e) {\n throw error;\n }\n error.message = `${new URL(error.request.url).pathname.slice(1)} error`;\n const message = getMessage(body);\n if (message !== '') error.message += `:${message}`;\n throw error;\n }\n },\n },\n position: 'perCall',\n});\n\nexport const genVersionCheckPolicy = (\n name: string,\n ignorePath: string,\n versionPromise: Promise<string>,\n geVersion: string,\n ltVersion: string,\n): PipelinePolicy => ({\n name: 'version-check',\n async sendRequest(request, next) {\n if (new URL(request.url).pathname === ignorePath) return next(request);\n const args = [await versionPromise, geVersion, ltVersion] as const;\n if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);\n return next(request);\n },\n});\n"],"mappings":"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"}
@@ -13,7 +13,8 @@ export const isBigNumber = number => {
13
13
  var _context;
14
14
 
15
15
  if (typeof number === 'bigint') return true;
16
- return _includesInstanceProperty(_context = ['number', 'object', 'string']).call(_context, typeof number) && (!isNaN(number) || Number.isInteger(number) || BigNumber.isBigNumber(number));
16
+ return _includesInstanceProperty(_context = ['number', 'object', 'string']).call(_context, typeof number) // eslint-disable-next-line no-restricted-globals
17
+ && (!isNaN(number) || Number.isInteger(number) || BigNumber.isBigNumber(number));
17
18
  };
18
19
  /**
19
20
  * BigNumber ceil operation
@@ -1 +1 @@
1
- {"version":3,"file":"bignumber.mjs","names":["BigNumber","isBigNumber","number","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"sources":["../../src/utils/bignumber.ts"],"sourcesContent":["/**\n * Big Number Helpers\n */\nimport BigNumber from 'bignumber.js'\n\n/**\n * Check if value is BigNumber, Number, BigInt or number string representation\n * @param number - number to check\n */\nexport const isBigNumber = (number: string | number | bigint | BigNumber): boolean => {\n if (typeof number === 'bigint') return true\n return ['number', 'object', 'string'].includes(typeof number) &&\n (!isNaN(number as number) || Number.isInteger(number) || BigNumber.isBigNumber(number))\n}\n\n/**\n * BigNumber ceil operation\n */\nexport const ceil = (bigNumber: BigNumber): BigNumber => bigNumber\n .integerValue(BigNumber.ROUND_CEIL)\n"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,SAAP,MAAsB,cAAtB;AAEA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,WAAW,GAAIC,MAAD,IAA2D;EAAA;;EACpF,IAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC,OAAO,IAAP;EAChC,OAAO,sCAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,kBAAwC,OAAOA,MAA/C,MACJ,CAACC,KAAK,CAACD,MAAD,CAAN,IAA4BE,MAAM,CAACC,SAAP,CAAiBH,MAAjB,CAA5B,IAAwDF,SAAS,CAACC,WAAV,CAAsBC,MAAtB,CADpD,CAAP;AAED,CAJM;AAMP;AACA;AACA;;AACA,OAAO,MAAMI,IAAI,GAAIC,SAAD,IAAqCA,SAAS,CAC/DC,YADsD,CACzCR,SAAS,CAACS,UAD+B,CAAlD"}
1
+ {"version":3,"file":"bignumber.mjs","names":["BigNumber","isBigNumber","number","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"sources":["../../src/utils/bignumber.ts"],"sourcesContent":["/**\n * Big Number Helpers\n */\nimport BigNumber from 'bignumber.js';\n\n/**\n * Check if value is BigNumber, Number, BigInt or number string representation\n * @param number - number to check\n */\nexport const isBigNumber = (number: string | number | bigint | BigNumber): boolean => {\n if (typeof number === 'bigint') return true;\n return ['number', 'object', 'string'].includes(typeof number)\n // eslint-disable-next-line no-restricted-globals\n && (!isNaN(number as number) || Number.isInteger(number) || BigNumber.isBigNumber(number));\n};\n\n/**\n * BigNumber ceil operation\n */\nexport const ceil = (bigNumber: BigNumber): BigNumber => bigNumber\n .integerValue(BigNumber.ROUND_CEIL);\n"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,SAAP,MAAsB,cAAtB;AAEA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,WAAW,GAAIC,MAAD,IAA2D;EAAA;;EACpF,IAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC,OAAO,IAAP;EAChC,OAAO,sCAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,kBAAwC,OAAOA,MAA/C,EACL;EADK,IAED,CAACC,KAAK,CAACD,MAAD,CAAN,IAA4BE,MAAM,CAACC,SAAP,CAAiBH,MAAjB,CAA5B,IAAwDF,SAAS,CAACC,WAAV,CAAsBC,MAAtB,CAFvD,CAAP;AAGD,CALM;AAOP;AACA;AACA;;AACA,OAAO,MAAMI,IAAI,GAAIC,SAAD,IAAqCA,SAAS,CAC/DC,YADsD,CACzCR,SAAS,CAACS,UAD+B,CAAlD"}
@@ -31,7 +31,7 @@ import { isBase64, isHex } from "./string.mjs";
31
31
  export function bigNumberToByteArray(x) {
32
32
  if (!x.isInteger()) throw new TypeError(`Unexpected not integer value: ${x.toFixed()}`);
33
33
  let hexString = x.toString(16);
34
- if (hexString.length % 2 === 1) hexString = '0' + hexString;
34
+ if (hexString.length % 2 === 1) hexString = `0${hexString}`;
35
35
  return _Buffer.from(hexString, 'hex');
36
36
  }
37
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.mjs","names":["BigNumber","NoSerializerFoundError","TypeError","isBase64","isHex","bigNumberToByteArray","x","isInteger","toFixed","hexString","toString","length","from","toBytes","val","big","undefined","Number","isBigNumber","str2buf","str","enc","bytesToHex","b","hexToBytes","s"],"sources":["../../src/utils/bytes.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\nimport BigNumber from 'bignumber.js'\nimport { NoSerializerFoundError, TypeError } from './errors'\nimport { isBase64, isHex } from './string'\n\n/**\n * Convert bignumber to byte array\n * @param x - bignumber instance\n * @returns Buffer\n */\nexport function bigNumberToByteArray (x: BigNumber): Buffer {\n if (!x.isInteger()) throw new TypeError(`Unexpected not integer value: ${x.toFixed()}`)\n let hexString = x.toString(16)\n if (hexString.length % 2 === 1) hexString = '0' + hexString\n return Buffer.from(hexString, 'hex')\n}\n\n/**\n * Convert string, number, or BigNumber to byte array\n * @param val - value to convert\n * @param big - enables force conversion to BigNumber\n * @returns Buffer\n */\nexport function toBytes (val?: null | string | number | BigNumber, big: boolean = false): Buffer {\n // Encode a value to bytes.\n // If the value is an int it will be encoded as bytes big endian\n // Raises ValueError if the input is not an int or string\n\n if (val === undefined || val === null) return Buffer.from([])\n if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {\n if (!BigNumber.isBigNumber(val)) val = new BigNumber(val)\n return bigNumberToByteArray(val)\n }\n if (typeof val === 'string') {\n return Buffer.from(val)\n }\n throw new NoSerializerFoundError()\n}\n\n/**\n * Convert a string to a Buffer. If encoding is not specified, hex-encoding\n * will be used if the input is valid hex. If the input is valid base64 but\n * not valid hex, base64 will be used. Otherwise, utf8 will be used.\n * @param str - String to be converted.\n * @param enc - Encoding of the input string.\n * @returns Buffer containing the input data.\n */\nexport function str2buf (str: string, enc?: BufferEncoding): Buffer {\n return Buffer.from(\n str,\n enc ?? (isHex(str) ? 'hex' : undefined) ?? (isBase64(str) ? 'base64' : undefined)\n )\n}\n\nexport const bytesToHex = (b: Uint8Array): string => Buffer.from(b).toString('hex')\n\nexport const hexToBytes = (s: string): Uint8Array => Buffer.from(s, 'hex')\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,SAAP,MAAsB,cAAtB;SACSC,sB,EAAwBC,S;SACxBC,Q,EAAUC,K;AAEnB;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,oBAAT,CAA+BC,CAA/B,EAAqD;EAC1D,IAAI,CAACA,CAAC,CAACC,SAAF,EAAL,EAAoB,MAAM,IAAIL,SAAJ,CAAe,iCAAgCI,CAAC,CAACE,OAAF,EAAY,EAA3D,CAAN;EACpB,IAAIC,SAAS,GAAGH,CAAC,CAACI,QAAF,CAAW,EAAX,CAAhB;EACA,IAAID,SAAS,CAACE,MAAV,GAAmB,CAAnB,KAAyB,CAA7B,EAAgCF,SAAS,GAAG,MAAMA,SAAlB;EAChC,OAAO,QAAOG,IAAP,CAAYH,SAAZ,EAAuB,KAAvB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASI,OAAT,CAAkBC,GAAlB,EAA0F;EAAA,IAA9BC,GAA8B,uEAAf,KAAe;EAC/F;EACA;EACA;EAEA,IAAID,GAAG,KAAKE,SAAR,IAAqBF,GAAG,KAAK,IAAjC,EAAuC,OAAO,QAAOF,IAAP,CAAY,EAAZ,CAAP;;EACvC,IAAIK,MAAM,CAACV,SAAP,CAAiBO,GAAjB,KAAyBd,SAAS,CAACkB,WAAV,CAAsBJ,GAAtB,CAAzB,IAAuDC,GAA3D,EAAgE;IAC9D,IAAI,CAACf,SAAS,CAACkB,WAAV,CAAsBJ,GAAtB,CAAL,EAAiCA,GAAG,GAAG,IAAId,SAAJ,CAAcc,GAAd,CAAN;IACjC,OAAOT,oBAAoB,CAACS,GAAD,CAA3B;EACD;;EACD,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;IAC3B,OAAO,QAAOF,IAAP,CAAYE,GAAZ,CAAP;EACD;;EACD,MAAM,IAAIb,sBAAJ,EAAN;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASkB,OAAT,CAAkBC,GAAlB,EAA+BC,GAA/B,EAA6D;EAAA;;EAClE,OAAO,QAAOT,IAAP,CACLQ,GADK,UAELC,GAFK,aAELA,GAFK,cAELA,GAFK,GAEGjB,KAAK,CAACgB,GAAD,CAAL,GAAa,KAAb,GAAqBJ,SAFxB,uCAEuCb,QAAQ,CAACiB,GAAD,CAAR,GAAgB,QAAhB,GAA2BJ,SAFlE,CAAP;AAID;AAED,OAAO,MAAMM,UAAU,GAAIC,CAAD,IAA2B,QAAOX,IAAP,CAAYW,CAAZ,EAAeb,QAAf,CAAwB,KAAxB,CAA9C;AAEP,OAAO,MAAMc,UAAU,GAAIC,CAAD,IAA2B,QAAOb,IAAP,CAAYa,CAAZ,EAAe,KAAf,CAA9C"}
1
+ {"version":3,"file":"bytes.mjs","names":["BigNumber","NoSerializerFoundError","TypeError","isBase64","isHex","bigNumberToByteArray","x","isInteger","toFixed","hexString","toString","length","from","toBytes","val","big","undefined","Number","isBigNumber","str2buf","str","enc","bytesToHex","b","hexToBytes","s"],"sources":["../../src/utils/bytes.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\nimport BigNumber from 'bignumber.js';\nimport { NoSerializerFoundError, TypeError } from './errors';\nimport { isBase64, isHex } from './string';\n\n/**\n * Convert bignumber to byte array\n * @param x - bignumber instance\n * @returns Buffer\n */\nexport function bigNumberToByteArray(x: BigNumber): Buffer {\n if (!x.isInteger()) throw new TypeError(`Unexpected not integer value: ${x.toFixed()}`);\n let hexString = x.toString(16);\n if (hexString.length % 2 === 1) hexString = `0${hexString}`;\n return Buffer.from(hexString, 'hex');\n}\n\n/**\n * Convert string, number, or BigNumber to byte array\n * @param val - value to convert\n * @param big - enables force conversion to BigNumber\n * @returns Buffer\n */\nexport function toBytes(val?: null | string | number | BigNumber, big = false): Buffer {\n // Encode a value to bytes.\n // If the value is an int it will be encoded as bytes big endian\n // Raises ValueError if the input is not an int or string\n\n if (val === undefined || val === null) return Buffer.from([]);\n if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {\n if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);\n return bigNumberToByteArray(val);\n }\n if (typeof val === 'string') {\n return Buffer.from(val);\n }\n throw new NoSerializerFoundError();\n}\n\n/**\n * Convert a string to a Buffer. If encoding is not specified, hex-encoding\n * will be used if the input is valid hex. If the input is valid base64 but\n * not valid hex, base64 will be used. Otherwise, utf8 will be used.\n * @param str - String to be converted.\n * @param enc - Encoding of the input string.\n * @returns Buffer containing the input data.\n */\nexport function str2buf(str: string, enc?: BufferEncoding): Buffer {\n return Buffer.from(\n str,\n enc ?? (isHex(str) ? 'hex' : undefined) ?? (isBase64(str) ? 'base64' : undefined),\n );\n}\n\nexport const bytesToHex = (b: Uint8Array): string => Buffer.from(b).toString('hex');\n\nexport const hexToBytes = (s: string): Uint8Array => Buffer.from(s, 'hex');\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,SAAP,MAAsB,cAAtB;SACSC,sB,EAAwBC,S;SACxBC,Q,EAAUC,K;AAEnB;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,oBAAT,CAA8BC,CAA9B,EAAoD;EACzD,IAAI,CAACA,CAAC,CAACC,SAAF,EAAL,EAAoB,MAAM,IAAIL,SAAJ,CAAe,iCAAgCI,CAAC,CAACE,OAAF,EAAY,EAA3D,CAAN;EACpB,IAAIC,SAAS,GAAGH,CAAC,CAACI,QAAF,CAAW,EAAX,CAAhB;EACA,IAAID,SAAS,CAACE,MAAV,GAAmB,CAAnB,KAAyB,CAA7B,EAAgCF,SAAS,GAAI,IAAGA,SAAU,EAA1B;EAChC,OAAO,QAAOG,IAAP,CAAYH,SAAZ,EAAuB,KAAvB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASI,OAAT,CAAiBC,GAAjB,EAAgF;EAAA,IAArBC,GAAqB,uEAAf,KAAe;EACrF;EACA;EACA;EAEA,IAAID,GAAG,KAAKE,SAAR,IAAqBF,GAAG,KAAK,IAAjC,EAAuC,OAAO,QAAOF,IAAP,CAAY,EAAZ,CAAP;;EACvC,IAAIK,MAAM,CAACV,SAAP,CAAiBO,GAAjB,KAAyBd,SAAS,CAACkB,WAAV,CAAsBJ,GAAtB,CAAzB,IAAuDC,GAA3D,EAAgE;IAC9D,IAAI,CAACf,SAAS,CAACkB,WAAV,CAAsBJ,GAAtB,CAAL,EAAiCA,GAAG,GAAG,IAAId,SAAJ,CAAcc,GAAd,CAAN;IACjC,OAAOT,oBAAoB,CAACS,GAAD,CAA3B;EACD;;EACD,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;IAC3B,OAAO,QAAOF,IAAP,CAAYE,GAAZ,CAAP;EACD;;EACD,MAAM,IAAIb,sBAAJ,EAAN;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASkB,OAAT,CAAiBC,GAAjB,EAA8BC,GAA9B,EAA4D;EAAA;;EACjE,OAAO,QAAOT,IAAP,CACLQ,GADK,UAELC,GAFK,aAELA,GAFK,cAELA,GAFK,GAEGjB,KAAK,CAACgB,GAAD,CAAL,GAAa,KAAb,GAAqBJ,SAFxB,uCAEuCb,QAAQ,CAACiB,GAAD,CAAR,GAAgB,QAAhB,GAA2BJ,SAFlE,CAAP;AAID;AAED,OAAO,MAAMM,UAAU,GAAIC,CAAD,IAA2B,QAAOX,IAAP,CAAYW,CAAZ,EAAeb,QAAf,CAAwB,KAAxB,CAA9C;AAEP,OAAO,MAAMc,UAAU,GAAIC,CAAD,IAA2B,QAAOb,IAAP,CAAYa,CAAZ,EAAe,KAAf,CAA9C"}
@@ -1,26 +1,24 @@
1
1
  /// <reference types="node" />
2
2
  import { SignKeyPair } from 'tweetnacl';
3
- import { Data } from 'blakejs';
4
- import { sha256hash, EncodedData, EncodingType } from './encoder';
5
- export { sha256hash };
3
+ import { Encoded, Encoding } from './encoder';
6
4
  /**
7
5
  * Generate address from secret key
8
6
  * @param secret - Private key
9
7
  * @returns Public key encoded as address
10
8
  */
11
- export declare function getAddressFromPriv(secret: string | Uint8Array): EncodedData<'ak'>;
9
+ export declare function getAddressFromPriv(secret: string | Uint8Array): Encoded.AccountAddress;
12
10
  /**
13
11
  * Check if address is valid
14
12
  * @param address - Address
15
13
  * @param prefix - Transaction prefix. Default: 'ak'
16
14
  * @returns is valid
17
15
  */
18
- export declare function isAddressValid(address: string, prefix?: EncodingType): boolean;
16
+ export declare function isAddressValid(address: string, prefix?: Encoding): boolean;
19
17
  /**
20
18
  * Generate a random salt (positive integer)
21
19
  * @returns random salt
22
20
  */
23
- export declare function salt(): number;
21
+ export declare function genSalt(): number;
24
22
  /**
25
23
  * Converts a positive integer to the smallest possible
26
24
  * representation in a binary digit representation
@@ -33,14 +31,15 @@ export declare function encodeUnsigned(value: number): Buffer;
33
31
  * @param input - Data to hash
34
32
  * @returns Hash
35
33
  */
36
- export declare function hash(input: Data): Buffer;
34
+ export declare function hash(input: string | Uint8Array): Buffer;
37
35
  /**
38
36
  * Compute contract address
37
+ * @category contract
39
38
  * @param owner - Address of contract owner
40
39
  * @param nonce - Round when contract was created
41
40
  * @returns Contract address
42
41
  */
43
- export declare function encodeContractAddress(owner: EncodedData<'ak'>, nonce: number): EncodedData<'ct'>;
42
+ export declare function encodeContractAddress(owner: Encoded.AccountAddress, nonce: number): Encoded.ContractAddress;
44
43
  /**
45
44
  * Generate keyPair from secret key
46
45
  * @param secret - secret key
@@ -57,23 +56,9 @@ export declare function generateKeyPair(raw: true): {
57
56
  secretKey: Buffer;
58
57
  };
59
58
  export declare function generateKeyPair(raw?: false): {
60
- publicKey: EncodedData<'ak'>;
59
+ publicKey: Encoded.AccountAddress;
61
60
  secretKey: string;
62
61
  };
63
- /**
64
- * Encrypt given data using `password`
65
- * @param password - Password to encrypt with
66
- * @param binaryData - Data to encrypt
67
- * @returns Encrypted data
68
- */
69
- export declare function encryptKey(password: string, binaryData: Uint8Array): Uint8Array;
70
- /**
71
- * Decrypt given data using `password`
72
- * @param password - Password to decrypt with
73
- * @param encrypted - Data to decrypt
74
- * @returns Decrypted data
75
- */
76
- export declare function decryptKey(password: string, encrypted: Uint8Array): Uint8Array;
77
62
  /**
78
63
  * Generate signature
79
64
  * @param data - Data to sign
@@ -19,21 +19,20 @@ const {
19
19
  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20
20
  * PERFORMANCE OF THIS SOFTWARE.
21
21
  */
22
- import nacl from 'tweetnacl';
23
- import aesjs from 'aes-js';
24
- import _blakejs from 'blakejs';
22
+ import nacl from 'tweetnacl'; // js extension is required for mjs build, not importing the whole package to reduce bundle size
23
+ // eslint-disable-next-line import/extensions
24
+
25
+ import _blakejsBlake2bJs from 'blakejs/blake2b.js';
25
26
  const {
26
27
  blake2b
27
- } = _blakejs;
28
+ } = _blakejsBlake2bJs;
28
29
  import _varuintBitcoin from 'varuint-bitcoin';
29
30
  const {
30
31
  encode: varuintEncode
31
32
  } = _varuintBitcoin;
32
33
  import { str2buf } from "./bytes.mjs";
33
34
  import { concatBuffers } from "./other.mjs";
34
- import { encode, decode, sha256hash } from "./encoder.mjs";
35
- export { sha256hash };
36
- const Ecb = aesjs.ModeOfOperation.ecb;
35
+ import { decode, encode, Encoding } from "./encoder.mjs";
37
36
  /**
38
37
  * Generate address from secret key
39
38
  * @param secret - Private key
@@ -43,7 +42,7 @@ const Ecb = aesjs.ModeOfOperation.ecb;
43
42
  export function getAddressFromPriv(secret) {
44
43
  const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret;
45
44
  const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);
46
- return encode(keys.publicKey, 'ak');
45
+ return encode(keys.publicKey, Encoding.AccountAddress);
47
46
  }
48
47
  /**
49
48
  * Check if address is valid
@@ -53,7 +52,7 @@ export function getAddressFromPriv(secret) {
53
52
  */
54
53
 
55
54
  export function isAddressValid(address) {
56
- let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ak';
55
+ let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Encoding.AccountAddress;
57
56
 
58
57
  try {
59
58
  decode(address);
@@ -67,7 +66,7 @@ export function isAddressValid(address) {
67
66
  * @returns random salt
68
67
  */
69
68
 
70
- export function salt() {
69
+ export function genSalt() {
71
70
  return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));
72
71
  }
73
72
  /**
@@ -95,6 +94,7 @@ export function hash(input) {
95
94
 
96
95
  /**
97
96
  * Compute contract address
97
+ * @category contract
98
98
  * @param owner - Address of contract owner
99
99
  * @param nonce - Round when contract was created
100
100
  * @returns Contract address
@@ -103,7 +103,7 @@ export function hash(input) {
103
103
  export function encodeContractAddress(owner, nonce) {
104
104
  const publicKey = decode(owner);
105
105
  const binary = concatBuffers([publicKey, encodeUnsigned(nonce)]);
106
- return encode(hash(binary), 'ct');
106
+ return encode(hash(binary), Encoding.ContractAddress);
107
107
  } // KEY-PAIR HELPERS
108
108
 
109
109
  /**
@@ -134,38 +134,12 @@ export function generateKeyPair() {
134
134
  publicKey: publicBuffer,
135
135
  secretKey: secretBuffer
136
136
  };
137
- } else {
138
- return {
139
- publicKey: encode(publicBuffer, 'ak'),
140
- secretKey: secretBuffer.toString('hex')
141
- };
142
137
  }
143
- }
144
- /**
145
- * Encrypt given data using `password`
146
- * @param password - Password to encrypt with
147
- * @param binaryData - Data to encrypt
148
- * @returns Encrypted data
149
- */
150
-
151
- export function encryptKey(password, binaryData) {
152
- const hashedPasswordBytes = sha256hash(password);
153
- const aesEcb = new Ecb(hashedPasswordBytes);
154
- return aesEcb.encrypt(binaryData);
155
- }
156
- /**
157
- * Decrypt given data using `password`
158
- * @param password - Password to decrypt with
159
- * @param encrypted - Data to decrypt
160
- * @returns Decrypted data
161
- */
162
-
163
- export function decryptKey(password, encrypted) {
164
- const encryptedBytes = _Buffer.from(encrypted);
165
138
 
166
- const hashedPasswordBytes = sha256hash(password);
167
- const aesEcb = new Ecb(hashedPasswordBytes);
168
- return aesEcb.decrypt(encryptedBytes);
139
+ return {
140
+ publicKey: encode(publicBuffer, Encoding.AccountAddress),
141
+ secretKey: secretBuffer.toString('hex')
142
+ };
169
143
  } // SIGNATURES
170
144
 
171
145
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.mjs","names":["nacl","aesjs","str2buf","concatBuffers","encode","decode","sha256hash","Ecb","ModeOfOperation","ecb","getAddressFromPriv","secret","secretBuffer","keys","sign","keyPair","fromSecretKey","publicKey","isAddressValid","address","prefix","e","salt","Math","floor","random","Number","MAX_SAFE_INTEGER","encodeUnsigned","value","binary","allocUnsafe","writeUInt32BE","slice","findIndex","i","hash","input","from","blake2b","undefined","encodeContractAddress","owner","nonce","generateKeyPairFromSecret","generateKeyPair","raw","publicBuffer","secretKey","toString","encryptKey","password","binaryData","hashedPasswordBytes","aesEcb","encrypt","decryptKey","encrypted","encryptedBytes","decrypt","data","privateKey","detached","verify","signature","publicKeyBuffer","messageToHash","message","p","msg","varuintEncode","length","signMessage","verifyMessage","str","isValidKeypair"],"sources":["../../src/utils/crypto.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\nimport nacl, { SignKeyPair } from 'tweetnacl'\nimport aesjs from 'aes-js'\nimport { blake2b, Data } from 'blakejs'\nimport { encode as varuintEncode } from 'varuint-bitcoin'\n\nimport { str2buf } from './bytes'\nimport { concatBuffers } from './other'\nimport { encode, decode, sha256hash, EncodedData, EncodingType } from './encoder'\n\nexport { sha256hash }\n\nconst Ecb = aesjs.ModeOfOperation.ecb\n\n/**\n * Generate address from secret key\n * @param secret - Private key\n * @returns Public key encoded as address\n */\nexport function getAddressFromPriv (secret: string | Uint8Array): EncodedData<'ak'> {\n const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret\n const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer)\n return encode(keys.publicKey, 'ak')\n}\n\n/**\n * Check if address is valid\n * @param address - Address\n * @param prefix - Transaction prefix. Default: 'ak'\n * @returns is valid\n */\nexport function isAddressValid (address: string, prefix: EncodingType = 'ak'): boolean {\n try {\n decode(address as EncodedData<typeof prefix>)\n return true\n } catch (e) {\n return false\n }\n}\n\n/**\n * Generate a random salt (positive integer)\n * @returns random salt\n */\nexport function salt (): number {\n return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER))\n}\n\n/**\n * Converts a positive integer to the smallest possible\n * representation in a binary digit representation\n * @param value - Value to encode\n * @returns Encoded number\n */\nexport function encodeUnsigned (value: number): Buffer {\n const binary = Buffer.allocUnsafe(4)\n binary.writeUInt32BE(value)\n return binary.slice(binary.findIndex(i => i !== 0))\n}\n\n/**\n * Calculate 256bits Blake2b hash of `input`\n * @param input - Data to hash\n * @returns Hash\n */\nexport function hash (input: Data): Buffer {\n return Buffer.from(blake2b(input, undefined, 32)) // 256 bits\n}\n\n// Todo Duplicated in tx builder. remove\n/**\n * Compute contract address\n * @param owner - Address of contract owner\n * @param nonce - Round when contract was created\n * @returns Contract address\n */\nexport function encodeContractAddress (owner: EncodedData<'ak'>, nonce: number): EncodedData<'ct'> {\n const publicKey = decode(owner)\n const binary = concatBuffers([publicKey, encodeUnsigned(nonce)])\n return encode(hash(binary), 'ct')\n}\n\n// KEY-PAIR HELPERS\n\n/**\n * Generate keyPair from secret key\n * @param secret - secret key\n * @returns Object with Private(privateKey) and Public(publicKey) keys\n */\nexport function generateKeyPairFromSecret (secret: Uint8Array): SignKeyPair {\n return nacl.sign.keyPair.fromSecretKey(secret)\n}\n\n/**\n * Generate a random ED25519 keypair\n * @param raw - Whether to return raw (binary) keys\n * @returns Key pair\n */\nexport function generateKeyPair (raw: true): { publicKey: Buffer, secretKey: Buffer }\nexport function generateKeyPair (raw?: false): { publicKey: EncodedData<'ak'>, secretKey: string }\nexport function generateKeyPair (raw: boolean = false): {\n publicKey: EncodedData<'ak'> | Buffer\n secretKey: string | Buffer\n} {\n const keyPair = nacl.sign.keyPair()\n const publicBuffer = Buffer.from(keyPair.publicKey)\n const secretBuffer = Buffer.from(keyPair.secretKey)\n\n if (raw) {\n return {\n publicKey: publicBuffer,\n secretKey: secretBuffer\n }\n } else {\n return {\n publicKey: encode(publicBuffer, 'ak'),\n secretKey: secretBuffer.toString('hex')\n }\n }\n}\n\n/**\n * Encrypt given data using `password`\n * @param password - Password to encrypt with\n * @param binaryData - Data to encrypt\n * @returns Encrypted data\n */\nexport function encryptKey (password: string, binaryData: Uint8Array): Uint8Array {\n const hashedPasswordBytes = sha256hash(password)\n const aesEcb = new Ecb(hashedPasswordBytes)\n return aesEcb.encrypt(binaryData)\n}\n\n/**\n * Decrypt given data using `password`\n * @param password - Password to decrypt with\n * @param encrypted - Data to decrypt\n * @returns Decrypted data\n */\nexport function decryptKey (password: string, encrypted: Uint8Array): Uint8Array {\n const encryptedBytes = Buffer.from(encrypted)\n const hashedPasswordBytes = sha256hash(password)\n const aesEcb = new Ecb(hashedPasswordBytes)\n return aesEcb.decrypt(encryptedBytes)\n}\n\n// SIGNATURES\n\n/**\n * Generate signature\n * @param data - Data to sign\n * @param privateKey - Key to sign with\n * @returns Signature\n */\nexport function sign (data: string | Uint8Array, privateKey: string | Uint8Array): Uint8Array {\n return nacl.sign.detached(Buffer.from(data), Buffer.from(privateKey))\n}\n\n/**\n * Verify that signature was signed by public key\n * @param data - Data to verify\n * @param signature - Signature to verify\n * @param publicKey - Key to verify against\n * @returns Valid?\n */\nexport function verify (\n data: Uint8Array, signature: Uint8Array, publicKey: string | Uint8Array\n): boolean {\n const publicKeyBuffer = typeof publicKey === 'string' ? str2buf(publicKey) : publicKey\n return nacl.sign.detached.verify(data, signature, publicKeyBuffer)\n}\n\nexport function messageToHash (message: string): Buffer {\n const p = Buffer.from('aeternity Signed Message:\\n', 'utf8')\n const msg = Buffer.from(message, 'utf8')\n return hash(concatBuffers([varuintEncode(p.length), p, varuintEncode(msg.length), msg]))\n}\n\nexport function signMessage (message: string, privateKey: string | Buffer): Uint8Array {\n return sign(messageToHash(message), privateKey)\n}\n\nexport function verifyMessage (\n str: string, signature: Uint8Array, publicKey: string | Uint8Array): boolean {\n return verify(messageToHash(str), signature, publicKey)\n}\n\n/**\n * Check key pair for validity\n *\n * Sign a message, and then verifying that signature\n * @param privateKey - Private key to verify\n * @param publicKey - Public key to verify\n * @returns Valid?\n */\nexport function isValidKeypair (\n privateKey: string | Uint8Array, publicKey: string | Uint8Array\n): boolean {\n const message = Buffer.from('TheMessage')\n const signature = sign(message, privateKey)\n return verify(message, signature, publicKey)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"crypto.mjs","names":["nacl","str2buf","concatBuffers","decode","encode","Encoding","getAddressFromPriv","secret","secretBuffer","keys","sign","keyPair","fromSecretKey","publicKey","AccountAddress","isAddressValid","address","prefix","e","genSalt","Math","floor","random","Number","MAX_SAFE_INTEGER","encodeUnsigned","value","binary","allocUnsafe","writeUInt32BE","slice","findIndex","i","hash","input","from","blake2b","undefined","encodeContractAddress","owner","nonce","ContractAddress","generateKeyPairFromSecret","generateKeyPair","raw","publicBuffer","secretKey","toString","data","privateKey","detached","verify","signature","publicKeyBuffer","messageToHash","message","p","msg","varuintEncode","length","signMessage","verifyMessage","str","isValidKeypair"],"sources":["../../src/utils/crypto.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\nimport nacl, { SignKeyPair } from 'tweetnacl';\n// js extension is required for mjs build, not importing the whole package to reduce bundle size\n// eslint-disable-next-line import/extensions\nimport { blake2b } from 'blakejs/blake2b.js';\nimport { encode as varuintEncode } from 'varuint-bitcoin';\n\nimport { str2buf } from './bytes';\nimport { concatBuffers } from './other';\nimport {\n decode, encode, Encoded, Encoding,\n} from './encoder';\n\n/**\n * Generate address from secret key\n * @param secret - Private key\n * @returns Public key encoded as address\n */\nexport function getAddressFromPriv(secret: string | Uint8Array): Encoded.AccountAddress {\n const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret;\n const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);\n return encode(keys.publicKey, Encoding.AccountAddress);\n}\n\n/**\n * Check if address is valid\n * @param address - Address\n * @param prefix - Transaction prefix. Default: 'ak'\n * @returns is valid\n */\nexport function isAddressValid(\n address: string,\n prefix: Encoding = Encoding.AccountAddress,\n): boolean {\n try {\n decode(address as Encoded.Generic<typeof prefix>);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Generate a random salt (positive integer)\n * @returns random salt\n */\nexport function genSalt(): number {\n return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));\n}\n\n/**\n * Converts a positive integer to the smallest possible\n * representation in a binary digit representation\n * @param value - Value to encode\n * @returns Encoded number\n */\nexport function encodeUnsigned(value: number): Buffer {\n const binary = Buffer.allocUnsafe(4);\n binary.writeUInt32BE(value);\n return binary.slice(binary.findIndex((i) => i !== 0));\n}\n\n/**\n * Calculate 256bits Blake2b hash of `input`\n * @param input - Data to hash\n * @returns Hash\n */\nexport function hash(input: string | Uint8Array): Buffer {\n return Buffer.from(blake2b(input, undefined, 32)); // 256 bits\n}\n\n// Todo Duplicated in tx builder. remove\n/**\n * Compute contract address\n * @category contract\n * @param owner - Address of contract owner\n * @param nonce - Round when contract was created\n * @returns Contract address\n */\nexport function encodeContractAddress(\n owner: Encoded.AccountAddress,\n nonce: number,\n): Encoded.ContractAddress {\n const publicKey = decode(owner);\n const binary = concatBuffers([publicKey, encodeUnsigned(nonce)]);\n return encode(hash(binary), Encoding.ContractAddress);\n}\n\n// KEY-PAIR HELPERS\n\n/**\n * Generate keyPair from secret key\n * @param secret - secret key\n * @returns Object with Private(privateKey) and Public(publicKey) keys\n */\nexport function generateKeyPairFromSecret(secret: Uint8Array): SignKeyPair {\n return nacl.sign.keyPair.fromSecretKey(secret);\n}\n\n/**\n * Generate a random ED25519 keypair\n * @param raw - Whether to return raw (binary) keys\n * @returns Key pair\n */\nexport function generateKeyPair(raw: true): { publicKey: Buffer; secretKey: Buffer };\nexport function generateKeyPair(raw?: false): {\n publicKey: Encoded.AccountAddress; secretKey: string;\n};\nexport function generateKeyPair(raw = false): {\n publicKey: Encoded.AccountAddress | Buffer;\n secretKey: string | Buffer;\n} {\n const keyPair = nacl.sign.keyPair();\n const publicBuffer = Buffer.from(keyPair.publicKey);\n const secretBuffer = Buffer.from(keyPair.secretKey);\n\n if (raw) {\n return {\n publicKey: publicBuffer,\n secretKey: secretBuffer,\n };\n }\n return {\n publicKey: encode(publicBuffer, Encoding.AccountAddress),\n secretKey: secretBuffer.toString('hex'),\n };\n}\n\n// SIGNATURES\n\n/**\n * Generate signature\n * @param data - Data to sign\n * @param privateKey - Key to sign with\n * @returns Signature\n */\nexport function sign(data: string | Uint8Array, privateKey: string | Uint8Array): Uint8Array {\n return nacl.sign.detached(Buffer.from(data), Buffer.from(privateKey));\n}\n\n/**\n * Verify that signature was signed by public key\n * @param data - Data to verify\n * @param signature - Signature to verify\n * @param publicKey - Key to verify against\n * @returns Valid?\n */\nexport function verify(\n data: Uint8Array,\n signature: Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n const publicKeyBuffer = typeof publicKey === 'string' ? str2buf(publicKey) : publicKey;\n return nacl.sign.detached.verify(data, signature, publicKeyBuffer);\n}\n\nexport function messageToHash(message: string): Buffer {\n const p = Buffer.from('aeternity Signed Message:\\n', 'utf8');\n const msg = Buffer.from(message, 'utf8');\n return hash(concatBuffers([varuintEncode(p.length), p, varuintEncode(msg.length), msg]));\n}\n\nexport function signMessage(message: string, privateKey: string | Buffer): Uint8Array {\n return sign(messageToHash(message), privateKey);\n}\n\nexport function verifyMessage(\n str: string,\n signature: Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n return verify(messageToHash(str), signature, publicKey);\n}\n\n/**\n * Check key pair for validity\n *\n * Sign a message, and then verifying that signature\n * @param privateKey - Private key to verify\n * @param publicKey - Public key to verify\n * @returns Valid?\n */\nexport function isValidKeypair(\n privateKey: string | Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n const message = Buffer.from('TheMessage');\n const signature = sign(message, privateKey);\n return verify(message, signature, publicKey);\n}\n"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @category transaction builder
3
+ * @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}
4
+ * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}
5
+ */
6
+ export declare enum Encoding {
7
+ KeyBlockHash = "kh",
8
+ MicroBlockHash = "mh",
9
+ BlockPofHash = "bf",
10
+ BlockTxHash = "bx",
11
+ BlockStateHash = "bs",
12
+ Channel = "ch",
13
+ ContractAddress = "ct",
14
+ ContractBytearray = "cb",
15
+ ContractStoreKey = "ck",
16
+ ContractStoreValue = "cv",
17
+ Transaction = "tx",
18
+ TxHash = "th",
19
+ OracleAddress = "ok",
20
+ OracleQuery = "ov",
21
+ OracleQueryId = "oq",
22
+ OracleResponse = "or",
23
+ AccountAddress = "ak",
24
+ Signature = "sg",
25
+ Commitment = "cm",
26
+ PeerPubkey = "pp",
27
+ Name = "nm",
28
+ State = "st",
29
+ Poi = "pi",
30
+ StateTrees = "ss",
31
+ CallStateTree = "cs",
32
+ Bytearray = "ba"
33
+ }
34
+ export declare type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;
35
+ export declare type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;
36
+ export declare type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;
37
+ export declare type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;
38
+ export declare type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;
39
+ export declare type Channel = `${Encoding.Channel}_${string}`;
40
+ export declare type ContractAddress = `${Encoding.ContractAddress}_${string}`;
41
+ export declare type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;
42
+ export declare type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;
43
+ export declare type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;
44
+ export declare type Transaction = `${Encoding.Transaction}_${string}`;
45
+ export declare type TxHash = `${Encoding.TxHash}_${string}`;
46
+ export declare type OracleAddress = `${Encoding.OracleAddress}_${string}`;
47
+ export declare type OracleQuery = `${Encoding.OracleQuery}_${string}`;
48
+ export declare type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;
49
+ export declare type OracleResponse = `${Encoding.OracleResponse}_${string}`;
50
+ export declare type AccountAddress = `${Encoding.AccountAddress}_${string}`;
51
+ export declare type Signature = `${Encoding.Signature}_${string}`;
52
+ export declare type Commitment = `${Encoding.Commitment}_${string}`;
53
+ export declare type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;
54
+ export declare type Name = `${Encoding.Name}_${string}`;
55
+ export declare type State = `${Encoding.State}_${string}`;
56
+ export declare type Poi = `${Encoding.Poi}_${string}`;
57
+ export declare type StateTrees = `${Encoding.StateTrees}_${string}`;
58
+ export declare type CallStateTree = `${Encoding.CallStateTree}_${string}`;
59
+ export declare type Bytearray = `${Encoding.Bytearray}_${string}`;
60
+ export declare type Generic<Type extends Encoding> = `${Type}_${string}`;
61
+ export declare type Any = `${Encoding}_${string}`;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @category transaction builder
3
+ * @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}
4
+ * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}
5
+ */
6
+ export let Encoding;
7
+
8
+ (function (Encoding) {
9
+ Encoding["KeyBlockHash"] = "kh";
10
+ Encoding["MicroBlockHash"] = "mh";
11
+ Encoding["BlockPofHash"] = "bf";
12
+ Encoding["BlockTxHash"] = "bx";
13
+ Encoding["BlockStateHash"] = "bs";
14
+ Encoding["Channel"] = "ch";
15
+ Encoding["ContractAddress"] = "ct";
16
+ Encoding["ContractBytearray"] = "cb";
17
+ Encoding["ContractStoreKey"] = "ck";
18
+ Encoding["ContractStoreValue"] = "cv";
19
+ Encoding["Transaction"] = "tx";
20
+ Encoding["TxHash"] = "th";
21
+ Encoding["OracleAddress"] = "ok";
22
+ Encoding["OracleQuery"] = "ov";
23
+ Encoding["OracleQueryId"] = "oq";
24
+ Encoding["OracleResponse"] = "or";
25
+ Encoding["AccountAddress"] = "ak";
26
+ Encoding["Signature"] = "sg";
27
+ Encoding["Commitment"] = "cm";
28
+ Encoding["PeerPubkey"] = "pp";
29
+ Encoding["Name"] = "nm";
30
+ Encoding["State"] = "st";
31
+ Encoding["Poi"] = "pi";
32
+ Encoding["StateTrees"] = "ss";
33
+ Encoding["CallStateTree"] = "cs";
34
+ Encoding["Bytearray"] = "ba";
35
+ })(Encoding || (Encoding = {}));
36
+ //# sourceMappingURL=encoder-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder-types.mjs","names":["Encoding"],"sources":["../../src/utils/encoder-types.ts"],"sourcesContent":["/**\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}\n */\nexport enum Encoding {\n KeyBlockHash = 'kh',\n MicroBlockHash = 'mh',\n BlockPofHash = 'bf',\n BlockTxHash = 'bx',\n BlockStateHash = 'bs',\n Channel = 'ch',\n ContractAddress = 'ct',\n ContractBytearray = 'cb',\n ContractStoreKey = 'ck',\n ContractStoreValue = 'cv',\n Transaction = 'tx',\n TxHash = 'th',\n OracleAddress = 'ok',\n OracleQuery = 'ov',\n OracleQueryId = 'oq',\n OracleResponse = 'or',\n AccountAddress = 'ak',\n Signature = 'sg',\n Commitment = 'cm',\n PeerPubkey = 'pp',\n Name = 'nm',\n State = 'st',\n Poi = 'pi',\n StateTrees = 'ss',\n CallStateTree = 'cs',\n Bytearray = 'ba',\n}\n\nexport type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;\nexport type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;\nexport type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;\nexport type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;\nexport type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;\nexport type Channel = `${Encoding.Channel}_${string}`;\nexport type ContractAddress = `${Encoding.ContractAddress}_${string}`;\nexport type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;\nexport type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;\nexport type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;\nexport type Transaction = `${Encoding.Transaction}_${string}`;\nexport type TxHash = `${Encoding.TxHash}_${string}`;\nexport type OracleAddress = `${Encoding.OracleAddress}_${string}`;\nexport type OracleQuery = `${Encoding.OracleQuery}_${string}`;\nexport type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;\nexport type OracleResponse = `${Encoding.OracleResponse}_${string}`;\nexport type AccountAddress = `${Encoding.AccountAddress}_${string}`;\nexport type Signature = `${Encoding.Signature}_${string}`;\nexport type Commitment = `${Encoding.Commitment}_${string}`;\nexport type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;\nexport type Name = `${Encoding.Name}_${string}`;\nexport type State = `${Encoding.State}_${string}`;\nexport type Poi = `${Encoding.Poi}_${string}`;\nexport type StateTrees = `${Encoding.StateTrees}_${string}`;\nexport type CallStateTree = `${Encoding.CallStateTree}_${string}`;\nexport type Bytearray = `${Encoding.Bytearray}_${string}`;\n\nexport type Generic<Type extends Encoding> = `${Type}_${string}`;\nexport type Any = `${Encoding}_${string}`;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,WAAYA,QAAZ;;WAAYA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,KAAAA,Q"}
@@ -1,26 +1,25 @@
1
1
  /// <reference types="node" />
2
+ import * as Encoded from './encoder-types';
3
+ import { Encoding } from './encoder-types';
4
+ export { Encoded, Encoding };
2
5
  /**
3
6
  * Calculate SHA256 hash of `input`
4
7
  * @param input - Data to hash
5
8
  * @returns Hash
9
+ * @deprecated use `SubtleCrypto.digest` or `sha.js` package instead
6
10
  */
7
11
  export declare function sha256hash(input: Uint8Array | string): Buffer;
8
- declare const base64Types: readonly ["ba", "cb", "or", "ov", "pi", "ss", "cs", "ck", "cv", "st", "tx"];
9
- declare const base58Types: readonly ["ak", "bf", "bs", "bx", "ch", "cm", "ct", "kh", "mh", "nm", "ok", "oq", "pp", "sg", "th"];
10
- export declare type EncodingType = typeof base64Types[number] | typeof base58Types[number];
11
- export declare type EncodedData<Type extends EncodingType> = `${Type}_${string}`;
12
12
  /**
13
13
  * Decode data using the default encoding/decoding algorithm
14
14
  * @param data - An Base58/64check encoded and prefixed string
15
15
  * (ex tx_..., sg_..., ak_....)
16
16
  * @returns Decoded data
17
17
  */
18
- export declare function decode(data: EncodedData<EncodingType>): Buffer;
18
+ export declare function decode(data: Encoded.Any): Buffer;
19
19
  /**
20
20
  * Encode data using the default encoding/decoding algorithm
21
21
  * @param data - An decoded data
22
22
  * @param type - Prefix of Transaction
23
23
  * @returns Encoded string Base58check or Base64check data
24
24
  */
25
- export declare function encode<Type extends EncodingType>(data: Uint8Array, type: Type): EncodedData<Type>;
26
- export {};
25
+ export declare function encode<Type extends Encoding>(data: Uint8Array, type: Type): Encoded.Generic<Type>;