@ethersphere/bee-js 8.3.1 → 9.0.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 (224) hide show
  1. package/README.md +192 -50
  2. package/dist/cjs/bee-dev.js +78 -0
  3. package/dist/cjs/bee.js +341 -417
  4. package/dist/cjs/chunk/bmt.js +15 -32
  5. package/dist/cjs/chunk/cac.js +26 -36
  6. package/dist/cjs/chunk/soc.js +56 -51
  7. package/dist/cjs/feed/identifier.js +3 -28
  8. package/dist/cjs/feed/index.js +95 -44
  9. package/dist/cjs/feed/retrievable.js +11 -22
  10. package/dist/cjs/index.js +17 -1
  11. package/dist/cjs/manifest/manifest.js +369 -0
  12. package/dist/cjs/modules/bytes.js +24 -12
  13. package/dist/cjs/modules/bzz.js +24 -34
  14. package/dist/cjs/modules/chunk.js +13 -7
  15. package/dist/cjs/modules/debug/balance.js +29 -4
  16. package/dist/cjs/modules/debug/chequebook.js +60 -16
  17. package/dist/cjs/modules/debug/connectivity.js +82 -4
  18. package/dist/cjs/modules/debug/settlements.js +22 -2
  19. package/dist/cjs/modules/debug/stake.js +29 -11
  20. package/dist/cjs/modules/debug/stamps.js +88 -7
  21. package/dist/cjs/modules/debug/states.js +25 -3
  22. package/dist/cjs/modules/debug/status.js +45 -47
  23. package/dist/cjs/modules/debug/transactions.js +27 -5
  24. package/dist/cjs/modules/envelope.js +8 -6
  25. package/dist/cjs/modules/feed.js +25 -10
  26. package/dist/cjs/modules/grantee.js +18 -12
  27. package/dist/cjs/modules/gsoc.js +24 -0
  28. package/dist/cjs/modules/pinning.js +13 -2
  29. package/dist/cjs/modules/pss.js +9 -3
  30. package/dist/cjs/modules/soc.js +9 -4
  31. package/dist/cjs/modules/stewardship.js +7 -3
  32. package/dist/cjs/modules/tag.js +35 -3
  33. package/dist/cjs/package.json +1 -0
  34. package/dist/cjs/stamper/stamper.js +43 -0
  35. package/dist/cjs/types/debug.js +16 -1
  36. package/dist/cjs/types/index.js +2 -24
  37. package/dist/cjs/utils/bytes.js +67 -115
  38. package/dist/cjs/utils/chunk-size.js +17 -0
  39. package/dist/cjs/utils/chunk-stream.browser.js +85 -0
  40. package/dist/cjs/utils/chunk-stream.js +84 -0
  41. package/dist/cjs/utils/cid.js +5 -6
  42. package/dist/cjs/utils/collection.browser.js +2 -2
  43. package/dist/cjs/utils/collection.js +3 -2
  44. package/dist/cjs/utils/collection.node.js +0 -2
  45. package/dist/cjs/utils/constants.js +7 -3
  46. package/dist/cjs/utils/data.browser.js +6 -3
  47. package/dist/cjs/utils/data.js +8 -4
  48. package/dist/cjs/utils/duration.js +51 -0
  49. package/dist/cjs/utils/expose.js +11 -40
  50. package/dist/cjs/utils/headers.js +79 -52
  51. package/dist/cjs/utils/http.js +34 -10
  52. package/dist/cjs/utils/mime.js +78 -0
  53. package/dist/cjs/utils/pss.js +3 -4
  54. package/dist/cjs/utils/redundancy.js +18 -14
  55. package/dist/cjs/utils/resource-locator.js +17 -0
  56. package/dist/cjs/utils/size.js +35 -0
  57. package/dist/cjs/utils/stamps.js +67 -51
  58. package/dist/cjs/utils/tar-uploader.browser.js +2 -2
  59. package/dist/cjs/utils/tar-uploader.js +2 -2
  60. package/dist/cjs/utils/tokens.js +144 -0
  61. package/dist/cjs/utils/type.js +142 -350
  62. package/dist/cjs/utils/typed-bytes.js +179 -0
  63. package/dist/cjs/utils/upload-progress.js +2 -0
  64. package/dist/cjs/utils/url.js +0 -4
  65. package/dist/cjs/utils/workaround.js +27 -0
  66. package/dist/index.browser.min.js +1 -2
  67. package/dist/index.browser.min.js.map +1 -1
  68. package/dist/mjs/bee-dev.js +98 -0
  69. package/dist/mjs/bee.js +367 -411
  70. package/dist/mjs/chunk/bmt.js +13 -29
  71. package/dist/mjs/chunk/cac.js +26 -34
  72. package/dist/mjs/chunk/soc.js +57 -53
  73. package/dist/mjs/feed/identifier.js +3 -26
  74. package/dist/mjs/feed/index.js +98 -51
  75. package/dist/mjs/feed/retrievable.js +12 -23
  76. package/dist/mjs/index.js +10 -1
  77. package/dist/mjs/manifest/manifest.js +371 -0
  78. package/dist/mjs/modules/bytes.js +27 -15
  79. package/dist/mjs/modules/bzz.js +25 -32
  80. package/dist/mjs/modules/chunk.js +16 -8
  81. package/dist/mjs/modules/debug/balance.js +61 -4
  82. package/dist/mjs/modules/debug/chequebook.js +116 -16
  83. package/dist/mjs/modules/debug/connectivity.js +144 -3
  84. package/dist/mjs/modules/debug/settlements.js +46 -2
  85. package/dist/mjs/modules/debug/stake.js +69 -11
  86. package/dist/mjs/modules/debug/stamps.js +184 -7
  87. package/dist/mjs/modules/debug/states.js +55 -3
  88. package/dist/mjs/modules/debug/status.js +97 -45
  89. package/dist/mjs/modules/debug/transactions.js +61 -5
  90. package/dist/mjs/modules/envelope.js +11 -9
  91. package/dist/mjs/modules/feed.js +26 -10
  92. package/dist/mjs/modules/grantee.js +35 -13
  93. package/dist/mjs/modules/gsoc.js +16 -0
  94. package/dist/mjs/modules/pinning.js +23 -2
  95. package/dist/mjs/modules/pss.js +10 -4
  96. package/dist/mjs/modules/soc.js +10 -5
  97. package/dist/mjs/modules/stewardship.js +14 -4
  98. package/dist/mjs/modules/tag.js +93 -3
  99. package/dist/mjs/package.json +2 -1
  100. package/dist/mjs/stamper/stamper.js +39 -0
  101. package/dist/mjs/types/debug.js +15 -1
  102. package/dist/mjs/types/index.js +2 -24
  103. package/dist/mjs/utils/bytes.js +63 -104
  104. package/dist/mjs/utils/chunk-size.js +13 -0
  105. package/dist/mjs/utils/chunk-stream.browser.js +85 -0
  106. package/dist/mjs/utils/chunk-stream.js +87 -0
  107. package/dist/mjs/utils/cid.js +5 -6
  108. package/dist/mjs/utils/collection.browser.js +2 -2
  109. package/dist/mjs/utils/collection.js +2 -2
  110. package/dist/mjs/utils/collection.node.js +0 -2
  111. package/dist/mjs/utils/constants.js +6 -2
  112. package/dist/mjs/utils/data.browser.js +9 -3
  113. package/dist/mjs/utils/data.js +12 -4
  114. package/dist/mjs/utils/duration.js +47 -0
  115. package/dist/mjs/utils/expose.js +2 -7
  116. package/dist/mjs/utils/headers.js +73 -48
  117. package/dist/mjs/utils/http.js +33 -11
  118. package/dist/mjs/utils/mime.js +75 -0
  119. package/dist/mjs/utils/pss.js +3 -4
  120. package/dist/mjs/utils/redundancy.js +18 -8
  121. package/dist/mjs/utils/resource-locator.js +13 -0
  122. package/dist/mjs/utils/size.js +31 -0
  123. package/dist/mjs/utils/stamps.js +47 -44
  124. package/dist/mjs/utils/tar-uploader.browser.js +2 -2
  125. package/dist/mjs/utils/tar-uploader.js +2 -2
  126. package/dist/mjs/utils/tokens.js +139 -0
  127. package/dist/mjs/utils/type.js +216 -310
  128. package/dist/mjs/utils/typed-bytes.js +160 -0
  129. package/dist/mjs/utils/upload-progress.js +1 -0
  130. package/dist/mjs/utils/url.js +0 -4
  131. package/dist/mjs/utils/workaround.js +22 -0
  132. package/dist/types/bee-dev.d.ts +5 -0
  133. package/dist/types/bee.d.ts +88 -165
  134. package/dist/types/chunk/bmt.d.ts +2 -2
  135. package/dist/types/chunk/cac.d.ts +7 -24
  136. package/dist/types/chunk/soc.d.ts +15 -15
  137. package/dist/types/feed/identifier.d.ts +2 -4
  138. package/dist/types/feed/index.d.ts +14 -18
  139. package/dist/types/feed/retrievable.d.ts +3 -4
  140. package/dist/types/index.d.ts +28 -1
  141. package/dist/types/manifest/manifest.d.ts +106 -0
  142. package/dist/types/modules/bytes.d.ts +8 -5
  143. package/dist/types/modules/bzz.d.ts +8 -10
  144. package/dist/types/modules/chunk.d.ts +4 -3
  145. package/dist/types/modules/debug/balance.d.ts +3 -2
  146. package/dist/types/modules/debug/chequebook.d.ts +7 -6
  147. package/dist/types/modules/debug/connectivity.d.ts +5 -3
  148. package/dist/types/modules/debug/settlements.d.ts +2 -1
  149. package/dist/types/modules/debug/stake.d.ts +4 -2
  150. package/dist/types/modules/debug/stamps.d.ts +5 -4
  151. package/dist/types/modules/debug/status.d.ts +6 -25
  152. package/dist/types/modules/debug/transactions.d.ts +5 -4
  153. package/dist/types/modules/envelope.d.ts +3 -2
  154. package/dist/types/modules/feed.d.ts +20 -16
  155. package/dist/types/modules/grantee.d.ts +7 -6
  156. package/dist/types/modules/gsoc.d.ts +7 -0
  157. package/dist/types/modules/pinning.d.ts +2 -4
  158. package/dist/types/modules/pss.d.ts +4 -3
  159. package/dist/types/modules/soc.d.ts +3 -2
  160. package/dist/types/modules/stewardship.d.ts +4 -4
  161. package/dist/types/modules/tag.d.ts +2 -1
  162. package/dist/types/stamper/stamper.d.ts +15 -0
  163. package/dist/types/types/debug.d.ts +63 -115
  164. package/dist/types/types/index.d.ts +103 -204
  165. package/dist/types/utils/bytes.d.ts +16 -90
  166. package/dist/types/utils/chunk-size.d.ts +1 -0
  167. package/dist/types/utils/chunk-stream.browser.d.ts +6 -0
  168. package/dist/types/utils/chunk-stream.d.ts +6 -0
  169. package/dist/types/utils/cid.d.ts +3 -2
  170. package/dist/types/utils/collection.browser.d.ts +2 -2
  171. package/dist/types/utils/collection.d.ts +2 -1
  172. package/dist/types/utils/collection.node.d.ts +0 -1
  173. package/dist/types/utils/constants.d.ts +4 -1
  174. package/dist/types/utils/duration.d.ts +17 -0
  175. package/dist/types/utils/error.d.ts +2 -2
  176. package/dist/types/utils/expose.d.ts +2 -7
  177. package/dist/types/utils/headers.d.ts +3 -4
  178. package/dist/types/utils/mime.d.ts +1 -0
  179. package/dist/types/utils/pss.d.ts +2 -2
  180. package/dist/types/utils/resource-locator.d.ts +6 -0
  181. package/dist/types/utils/size.d.ts +16 -0
  182. package/dist/types/utils/stamps.d.ts +27 -33
  183. package/dist/types/utils/tar-uploader.browser.d.ts +3 -4
  184. package/dist/types/utils/tar-uploader.d.ts +3 -4
  185. package/dist/types/utils/tokens.d.ts +77 -0
  186. package/dist/types/utils/type.d.ts +20 -52
  187. package/dist/types/utils/typed-bytes.d.ts +68 -0
  188. package/dist/types/utils/upload-progress.d.ts +4 -0
  189. package/dist/types/utils/workaround.d.ts +2 -0
  190. package/package.json +11 -17
  191. package/dist/cjs/chunk/signer.js +0 -126
  192. package/dist/cjs/chunk/span.js +0 -25
  193. package/dist/cjs/feed/json.js +0 -28
  194. package/dist/cjs/feed/topic.js +0 -25
  195. package/dist/cjs/feed/type.js +0 -15
  196. package/dist/cjs/modules/debug/chunk.js +0 -21
  197. package/dist/cjs/modules/debug/tag.js +0 -19
  198. package/dist/cjs/utils/eth.js +0 -216
  199. package/dist/cjs/utils/hash.js +0 -21
  200. package/dist/cjs/utils/hex.js +0 -150
  201. package/dist/cjs/utils/reference.js +0 -36
  202. package/dist/index.browser.min.js.LICENSE.txt +0 -8
  203. package/dist/mjs/chunk/signer.js +0 -114
  204. package/dist/mjs/chunk/span.js +0 -21
  205. package/dist/mjs/feed/json.js +0 -26
  206. package/dist/mjs/feed/topic.js +0 -19
  207. package/dist/mjs/feed/type.js +0 -10
  208. package/dist/mjs/modules/debug/chunk.js +0 -17
  209. package/dist/mjs/modules/debug/tag.js +0 -15
  210. package/dist/mjs/utils/eth.js +0 -192
  211. package/dist/mjs/utils/hash.js +0 -16
  212. package/dist/mjs/utils/hex.js +0 -135
  213. package/dist/mjs/utils/reference.js +0 -29
  214. package/dist/types/chunk/signer.d.ts +0 -31
  215. package/dist/types/chunk/span.d.ts +0 -10
  216. package/dist/types/feed/json.d.ts +0 -4
  217. package/dist/types/feed/topic.d.ts +0 -3
  218. package/dist/types/feed/type.d.ts +0 -6
  219. package/dist/types/modules/debug/chunk.d.ts +0 -10
  220. package/dist/types/modules/debug/tag.d.ts +0 -8
  221. package/dist/types/utils/eth.d.ts +0 -67
  222. package/dist/types/utils/hash.d.ts +0 -9
  223. package/dist/types/utils/hex.d.ts +0 -86
  224. package/dist/types/utils/reference.d.ts +0 -2
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPastDueConsumptionPeerBalance = exports.getPastDueConsumptionBalances = exports.getPeerBalance = exports.getAllBalances = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
4
5
  const http_1 = require("../../utils/http");
6
+ const tokens_1 = require("../../utils/tokens");
7
+ const type_1 = require("../../utils/type");
5
8
  const balancesEndpoint = 'balances';
6
9
  const consumedEndpoint = 'consumed';
7
10
  /**
@@ -14,7 +17,14 @@ async function getAllBalances(requestOptions) {
14
17
  url: balancesEndpoint,
15
18
  responseType: 'json',
16
19
  });
17
- return response.data;
20
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
21
+ const balances = cafe_utility_1.Types.asArray(body.balances, { name: 'balances' }).map(x => cafe_utility_1.Types.asObject(x, { name: 'balance' }));
22
+ return {
23
+ balances: balances.map(x => ({
24
+ peer: cafe_utility_1.Types.asString(x.peer, { name: 'peer' }),
25
+ balance: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(x.balance, { name: 'balance' })),
26
+ })),
27
+ };
18
28
  }
19
29
  exports.getAllBalances = getAllBalances;
20
30
  /**
@@ -28,7 +38,11 @@ async function getPeerBalance(requestOptions, address) {
28
38
  url: `${balancesEndpoint}/${address}`,
29
39
  responseType: 'json',
30
40
  });
31
- return response.data;
41
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
42
+ return {
43
+ peer: cafe_utility_1.Types.asString(body.peer, { name: 'peer' }),
44
+ balance: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.balance, { name: 'balance' })),
45
+ };
32
46
  }
33
47
  exports.getPeerBalance = getPeerBalance;
34
48
  /**
@@ -41,7 +55,14 @@ async function getPastDueConsumptionBalances(requestOptions) {
41
55
  url: consumedEndpoint,
42
56
  responseType: 'json',
43
57
  });
44
- return response.data;
58
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
59
+ const balances = cafe_utility_1.Types.asArray(body.balances, { name: 'balances' }).map(x => cafe_utility_1.Types.asObject(x, { name: 'balance' }));
60
+ return {
61
+ balances: balances.map(x => ({
62
+ peer: cafe_utility_1.Types.asString(x.peer, { name: 'peer' }),
63
+ balance: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(x.balance, { name: 'balance' })),
64
+ })),
65
+ };
45
66
  }
46
67
  exports.getPastDueConsumptionBalances = getPastDueConsumptionBalances;
47
68
  /**
@@ -55,6 +76,10 @@ async function getPastDueConsumptionPeerBalance(requestOptions, address) {
55
76
  url: `${consumedEndpoint}/${address}`,
56
77
  responseType: 'json',
57
78
  });
58
- return response.data;
79
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
80
+ return {
81
+ peer: cafe_utility_1.Types.asString(body.peer, { name: 'peer' }),
82
+ balance: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.balance, { name: 'balance' })),
83
+ };
59
84
  }
60
85
  exports.getPastDueConsumptionPeerBalance = getPastDueConsumptionPeerBalance;
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.withdrawTokens = exports.depositTokens = exports.getLastCheques = exports.getLastChequesForPeer = exports.cashoutLastCheque = exports.getLastCashoutAction = exports.getChequebookBalance = exports.getChequebookAddress = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
5
+ const headers_1 = require("../../utils/headers");
4
6
  const http_1 = require("../../utils/http");
7
+ const tokens_1 = require("../../utils/tokens");
8
+ const type_1 = require("../../utils/type");
9
+ const typed_bytes_1 = require("../../utils/typed-bytes");
5
10
  const chequebookEndpoint = 'chequebook';
6
11
  /**
7
12
  * Get the address of the chequebook contract used
@@ -13,7 +18,10 @@ async function getChequebookAddress(requestOptions) {
13
18
  url: chequebookEndpoint + '/address',
14
19
  responseType: 'json',
15
20
  });
16
- return response.data;
21
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
22
+ return {
23
+ chequebookAddress: cafe_utility_1.Types.asString(body.chequebookAddress, { name: 'chequebookAddress' }),
24
+ };
17
25
  }
18
26
  exports.getChequebookAddress = getChequebookAddress;
19
27
  /**
@@ -26,7 +34,11 @@ async function getChequebookBalance(requestOptions) {
26
34
  url: chequebookEndpoint + '/balance',
27
35
  responseType: 'json',
28
36
  });
29
- return response.data;
37
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
38
+ return {
39
+ availableBalance: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.availableBalance, { name: 'availableBalance' })),
40
+ totalBalance: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.totalBalance, { name: 'totalBalance' })),
41
+ };
30
42
  }
31
43
  exports.getChequebookBalance = getChequebookBalance;
32
44
  /**
@@ -40,7 +52,14 @@ async function getLastCashoutAction(requestOptions, peer) {
40
52
  url: chequebookEndpoint + `/cashout/${peer}`,
41
53
  responseType: 'json',
42
54
  });
43
- return response.data;
55
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
56
+ return {
57
+ peer: cafe_utility_1.Types.asString(body.peer, { name: 'peer' }),
58
+ uncashedAmount: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.uncashedAmount, { name: 'uncashedAmount' })),
59
+ transactionHash: cafe_utility_1.Types.asNullableString(body.transactionHash),
60
+ lastCashedCheque: cafe_utility_1.Types.asNullable(x => asCheque(x), body.lastCashedCheque),
61
+ result: cafe_utility_1.Types.asNullable(x => asCashoutResult(x), body.result),
62
+ };
44
63
  }
45
64
  exports.getLastCashoutAction = getLastCashoutAction;
46
65
  /**
@@ -51,20 +70,14 @@ exports.getLastCashoutAction = getLastCashoutAction;
51
70
  * @param options
52
71
  */
53
72
  async function cashoutLastCheque(requestOptions, peer, options) {
54
- const headers = {};
55
- if (options?.gasPrice) {
56
- headers['gas-price'] = options.gasPrice.toString();
57
- }
58
- if (options?.gasLimit) {
59
- headers['gas-limit'] = options.gasLimit.toString();
60
- }
61
73
  const response = await (0, http_1.http)(requestOptions, {
62
74
  method: 'post',
63
75
  url: chequebookEndpoint + `/cashout/${peer}`,
64
76
  responseType: 'json',
65
- headers,
77
+ headers: (0, headers_1.prepareRequestHeaders)(null, options),
66
78
  });
67
- return response.data.transactionHash;
79
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
80
+ return new typed_bytes_1.TransactionId(cafe_utility_1.Types.asString(body.transactionHash, { name: 'transactionHash' }));
68
81
  }
69
82
  exports.cashoutLastCheque = cashoutLastCheque;
70
83
  /**
@@ -78,7 +91,12 @@ async function getLastChequesForPeer(requestOptions, peer) {
78
91
  url: chequebookEndpoint + `/cheque/${peer}`,
79
92
  responseType: 'json',
80
93
  });
81
- return response.data;
94
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
95
+ return {
96
+ peer: cafe_utility_1.Types.asString(body.peer, { name: 'peer' }),
97
+ lastreceived: cafe_utility_1.Types.asNullable(x => asCheque(x), body.lastreceived),
98
+ lastsent: cafe_utility_1.Types.asNullable(x => asCheque(x), body.lastsent),
99
+ };
82
100
  }
83
101
  exports.getLastChequesForPeer = getLastChequesForPeer;
84
102
  /**
@@ -91,9 +109,33 @@ async function getLastCheques(requestOptions) {
91
109
  url: chequebookEndpoint + '/cheque',
92
110
  responseType: 'json',
93
111
  });
94
- return response.data;
112
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
113
+ const lastcheques = cafe_utility_1.Types.asArray(body.lastcheques, { name: 'lastcheques' }).map(x => cafe_utility_1.Types.asObject(x, { name: 'lastcheque' }));
114
+ return {
115
+ lastcheques: lastcheques.map(x => ({
116
+ peer: cafe_utility_1.Types.asString(x.peer, { name: 'peer' }),
117
+ lastreceived: cafe_utility_1.Types.asNullable(y => asCheque(y), x.lastreceived),
118
+ lastsent: cafe_utility_1.Types.asNullable(y => asCheque(y), x.lastsent),
119
+ })),
120
+ };
95
121
  }
96
122
  exports.getLastCheques = getLastCheques;
123
+ function asCheque(x) {
124
+ const object = cafe_utility_1.Types.asObject(x, { name: 'cheque' });
125
+ return {
126
+ beneficiary: new typed_bytes_1.EthAddress(cafe_utility_1.Types.asString(object.beneficiary, { name: 'beneficiary' })),
127
+ chequebook: new typed_bytes_1.EthAddress(cafe_utility_1.Types.asString(object.chequebook, { name: 'chequebook' })),
128
+ payout: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(object.payout, { name: 'payout' })),
129
+ };
130
+ }
131
+ function asCashoutResult(x) {
132
+ const object = cafe_utility_1.Types.asObject(x, { name: 'cashout result' });
133
+ return {
134
+ recipient: cafe_utility_1.Types.asString(object.recipient, { name: 'recipient' }),
135
+ lastPayout: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(object.lastPayout, { name: 'lastPayout' })),
136
+ bounced: cafe_utility_1.Types.asBoolean(object.bounced, { name: 'bounced' }),
137
+ };
138
+ }
97
139
  /**
98
140
  * Deposit tokens from overlay address into chequebook
99
141
  *
@@ -114,7 +156,8 @@ async function depositTokens(requestOptions, amount, gasPrice) {
114
156
  params: { amount: amount.toString(10) },
115
157
  headers,
116
158
  });
117
- return response.data.transactionHash;
159
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
160
+ return new typed_bytes_1.TransactionId(cafe_utility_1.Types.asString(body.transactionHash, { name: 'transactionHash' }));
118
161
  }
119
162
  exports.depositTokens = depositTokens;
120
163
  /**
@@ -137,6 +180,7 @@ async function withdrawTokens(requestOptions, amount, gasPrice) {
137
180
  params: { amount: amount.toString(10) },
138
181
  headers,
139
182
  });
140
- return response.data.transactionHash;
183
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
184
+ return new typed_bytes_1.TransactionId(cafe_utility_1.Types.asString(body.transactionHash, { name: 'transactionHash' }));
141
185
  }
142
186
  exports.withdrawTokens = withdrawTokens;
@@ -1,13 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pingPeer = exports.getTopology = exports.removePeer = exports.getBlocklist = exports.getPeers = exports.getNodeAddresses = void 0;
3
+ exports.asBin = exports.pingPeer = exports.getTopology = exports.removePeer = exports.getBlocklist = exports.getPeers = exports.getNodeAddresses = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
4
5
  const http_1 = require("../../utils/http");
6
+ const typed_bytes_1 = require("../../utils/typed-bytes");
5
7
  async function getNodeAddresses(requestOptions) {
6
8
  const response = await (0, http_1.http)(requestOptions, {
7
9
  url: 'addresses',
8
10
  responseType: 'json',
9
11
  });
10
- return response.data;
12
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
13
+ return {
14
+ overlay: new typed_bytes_1.PeerAddress(cafe_utility_1.Types.asString(body.overlay, { name: 'overlay' })),
15
+ underlay: cafe_utility_1.Types.asArray(body.underlay, { name: 'underlay' }).map(x => cafe_utility_1.Types.asString(x, { name: 'underlay' })),
16
+ ethereum: new typed_bytes_1.EthAddress(cafe_utility_1.Types.asString(body.ethereum, { name: 'ethereum' })),
17
+ publicKey: new typed_bytes_1.PublicKey(cafe_utility_1.Types.asString(body.publicKey, { name: 'publicKey' })),
18
+ pssPublicKey: new typed_bytes_1.PublicKey(cafe_utility_1.Types.asString(body.pssPublicKey, { name: 'pssPublicKey' })),
19
+ };
11
20
  }
12
21
  exports.getNodeAddresses = getNodeAddresses;
13
22
  async function getPeers(requestOptions) {
@@ -15,7 +24,11 @@ async function getPeers(requestOptions) {
15
24
  url: 'peers',
16
25
  responseType: 'json',
17
26
  });
18
- return response.data.peers;
27
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
28
+ return cafe_utility_1.Types.asArray(body.peers, { name: 'peers' }).map(x => ({
29
+ address: cafe_utility_1.Types.asString(cafe_utility_1.Types.asObject(x, { name: 'peer' }).address, { name: 'address' }),
30
+ fullNode: cafe_utility_1.Types.asBoolean(cafe_utility_1.Types.asObject(x, { name: 'peer' }).fullNode, { name: 'fullNode' }),
31
+ }));
19
32
  }
20
33
  exports.getPeers = getPeers;
21
34
  async function getBlocklist(requestOptions) {
@@ -40,7 +53,52 @@ async function getTopology(requestOptions) {
40
53
  url: `topology`,
41
54
  responseType: 'json',
42
55
  });
43
- return response.data;
56
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
57
+ const bins = cafe_utility_1.Types.asObject(body.bins, { name: 'bins' });
58
+ return {
59
+ baseAddr: cafe_utility_1.Types.asString(body.baseAddr, { name: 'baseAddr' }),
60
+ population: cafe_utility_1.Types.asNumber(body.population, { name: 'population' }),
61
+ connected: cafe_utility_1.Types.asNumber(body.connected, { name: 'connected' }),
62
+ timestamp: cafe_utility_1.Types.asString(body.timestamp, { name: 'timestamp' }),
63
+ nnLowWatermark: cafe_utility_1.Types.asNumber(body.nnLowWatermark, { name: 'nnLowWatermark' }),
64
+ depth: cafe_utility_1.Types.asNumber(body.depth, { name: 'depth' }),
65
+ reachability: cafe_utility_1.Types.asString(body.reachability, { name: 'reachability' }),
66
+ networkAvailability: cafe_utility_1.Types.asString(body.networkAvailability, { name: 'networkAvailability' }),
67
+ bins: {
68
+ bin_0: asBin(bins.bin_0, 'bin_0'),
69
+ bin_1: asBin(bins.bin_1, 'bin_1'),
70
+ bin_2: asBin(bins.bin_2, 'bin_2'),
71
+ bin_3: asBin(bins.bin_3, 'bin_3'),
72
+ bin_4: asBin(bins.bin_4, 'bin_4'),
73
+ bin_5: asBin(bins.bin_5, 'bin_5'),
74
+ bin_6: asBin(bins.bin_6, 'bin_6'),
75
+ bin_7: asBin(bins.bin_7, 'bin_7'),
76
+ bin_8: asBin(bins.bin_8, 'bin_8'),
77
+ bin_9: asBin(bins.bin_9, 'bin_9'),
78
+ bin_10: asBin(bins.bin_10, 'bin_10'),
79
+ bin_11: asBin(bins.bin_11, 'bin_11'),
80
+ bin_12: asBin(bins.bin_12, 'bin_12'),
81
+ bin_13: asBin(bins.bin_13, 'bin_13'),
82
+ bin_14: asBin(bins.bin_14, 'bin_14'),
83
+ bin_15: asBin(bins.bin_15, 'bin_15'),
84
+ bin_16: asBin(bins.bin_16, 'bin_16'),
85
+ bin_17: asBin(bins.bin_17, 'bin_17'),
86
+ bin_18: asBin(bins.bin_18, 'bin_18'),
87
+ bin_19: asBin(bins.bin_19, 'bin_19'),
88
+ bin_20: asBin(bins.bin_20, 'bin_20'),
89
+ bin_21: asBin(bins.bin_21, 'bin_21'),
90
+ bin_22: asBin(bins.bin_22, 'bin_22'),
91
+ bin_23: asBin(bins.bin_23, 'bin_23'),
92
+ bin_24: asBin(bins.bin_24, 'bin_24'),
93
+ bin_25: asBin(bins.bin_25, 'bin_25'),
94
+ bin_26: asBin(bins.bin_26, 'bin_26'),
95
+ bin_27: asBin(bins.bin_27, 'bin_27'),
96
+ bin_28: asBin(bins.bin_28, 'bin_28'),
97
+ bin_29: asBin(bins.bin_29, 'bin_29'),
98
+ bin_30: asBin(bins.bin_30, 'bin_30'),
99
+ bin_31: asBin(bins.bin_31, 'bin_31'),
100
+ },
101
+ };
44
102
  }
45
103
  exports.getTopology = getTopology;
46
104
  async function pingPeer(requestOptions, peer) {
@@ -52,3 +110,23 @@ async function pingPeer(requestOptions, peer) {
52
110
  return response.data;
53
111
  }
54
112
  exports.pingPeer = pingPeer;
113
+ function asBin(value, name) {
114
+ const bin = cafe_utility_1.Types.asObject(value, { name });
115
+ if (!bin.disconnectedPeers) {
116
+ bin.disconnectedPeers = [];
117
+ }
118
+ if (!bin.connectedPeers) {
119
+ bin.connectedPeers = [];
120
+ }
121
+ return {
122
+ population: cafe_utility_1.Types.asNumber(bin.population, { name: 'population' }),
123
+ connected: cafe_utility_1.Types.asNumber(bin.connected, { name: 'connected' }),
124
+ connectedPeers: cafe_utility_1.Types.asArray(bin.connectedPeers, { name: 'connectedPeers' }).map(x => ({
125
+ address: cafe_utility_1.Types.asString(cafe_utility_1.Types.asObject(x, { name: 'connectedPeer' }).address, { name: 'address' }),
126
+ })),
127
+ disconnectedPeers: cafe_utility_1.Types.asArray(bin.disconnectedPeers, { name: 'disconnectedPeers' }).map(x => ({
128
+ address: cafe_utility_1.Types.asString(cafe_utility_1.Types.asObject(x, { name: 'disconnectedPeer' }).address, { name: 'address' }),
129
+ })),
130
+ };
131
+ }
132
+ exports.asBin = asBin;
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAllSettlements = exports.getSettlements = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
4
5
  const http_1 = require("../../utils/http");
6
+ const tokens_1 = require("../../utils/tokens");
7
+ const type_1 = require("../../utils/type");
5
8
  const settlementsEndpoint = 'settlements';
6
9
  /**
7
10
  * Get amount of sent and received from settlements with a peer
@@ -14,7 +17,12 @@ async function getSettlements(requestOptions, peer) {
14
17
  url: `${settlementsEndpoint}/${peer}`,
15
18
  responseType: 'json',
16
19
  });
17
- return response.data;
20
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
21
+ return {
22
+ peer: cafe_utility_1.Types.asString(body.peer, { name: 'peer' }),
23
+ sent: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.sent, { name: 'sent' })),
24
+ received: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.received, { name: 'received' })),
25
+ };
18
26
  }
19
27
  exports.getSettlements = getSettlements;
20
28
  /**
@@ -27,6 +35,18 @@ async function getAllSettlements(requestOptions) {
27
35
  url: settlementsEndpoint,
28
36
  responseType: 'json',
29
37
  });
30
- return response.data;
38
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
39
+ const totalSent = tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.totalSent, { name: 'totalSent' }));
40
+ const totalReceived = tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.totalReceived, { name: 'totalReceived' }));
41
+ const settlements = cafe_utility_1.Types.asArray(body.settlements, { name: 'settlements' }).map(x => cafe_utility_1.Types.asObject(x, { name: 'settlement' }));
42
+ return {
43
+ totalSent,
44
+ totalReceived,
45
+ settlements: settlements.map(x => ({
46
+ peer: cafe_utility_1.Types.asString(x.peer, { name: 'peer' }),
47
+ sent: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(x.sent, { name: 'sent' })),
48
+ received: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(x.received, { name: 'received' })),
49
+ })),
50
+ };
31
51
  }
32
52
  exports.getAllSettlements = getAllSettlements;
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRedistributionState = exports.stake = exports.getStake = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
5
+ const headers_1 = require("../../utils/headers");
4
6
  const http_1 = require("../../utils/http");
7
+ const tokens_1 = require("../../utils/tokens");
8
+ const type_1 = require("../../utils/type");
9
+ const typed_bytes_1 = require("../../utils/typed-bytes");
5
10
  const STAKE_ENDPOINT = 'stake';
6
11
  const REDISTRIBUTION_ENDPOINT = 'redistributionstate';
7
12
  /**
@@ -15,7 +20,8 @@ async function getStake(requestOptions) {
15
20
  responseType: 'json',
16
21
  url: `${STAKE_ENDPOINT}`,
17
22
  });
18
- return response.data.stakedAmount.toString();
23
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
24
+ return tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.stakedAmount, { name: 'stakedAmount' }));
19
25
  }
20
26
  exports.getStake = getStake;
21
27
  /**
@@ -26,19 +32,14 @@ exports.getStake = getStake;
26
32
  * @param options
27
33
  */
28
34
  async function stake(requestOptions, amount, options) {
29
- const headers = {};
30
- if (options?.gasPrice) {
31
- headers['gas-price'] = options.gasPrice.toString();
32
- }
33
- if (options?.gasLimit) {
34
- headers['gas-limit'] = options.gasLimit.toString();
35
- }
36
- await (0, http_1.http)(requestOptions, {
35
+ const repsonse = await (0, http_1.http)(requestOptions, {
37
36
  method: 'post',
38
37
  responseType: 'json',
39
38
  url: `${STAKE_ENDPOINT}/${amount}`,
40
- headers,
39
+ headers: (0, headers_1.prepareRequestHeaders)(null, options),
41
40
  });
41
+ const body = cafe_utility_1.Types.asObject(repsonse.data, { name: 'response.data' });
42
+ return new typed_bytes_1.TransactionId(cafe_utility_1.Types.asHexString(body.txHash, { name: 'txHash' }));
42
43
  }
43
44
  exports.stake = stake;
44
45
  /**
@@ -52,6 +53,23 @@ async function getRedistributionState(requestOptions) {
52
53
  responseType: 'json',
53
54
  url: REDISTRIBUTION_ENDPOINT,
54
55
  });
55
- return response.data;
56
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
57
+ return {
58
+ minimumGasFunds: tokens_1.DAI.fromWei((0, type_1.asNumberString)(body.minimumGasFunds, { name: 'minimumGasFunds' })),
59
+ hasSufficientFunds: cafe_utility_1.Types.asBoolean(body.hasSufficientFunds, { name: 'hasSufficientFunds' }),
60
+ isFrozen: cafe_utility_1.Types.asBoolean(body.isFrozen, { name: 'isFrozen' }),
61
+ isFullySynced: cafe_utility_1.Types.asBoolean(body.isFullySynced, { name: 'isFullySynced' }),
62
+ phase: cafe_utility_1.Types.asString(body.phase, { name: 'phase' }),
63
+ round: cafe_utility_1.Types.asNumber(body.round, { name: 'round' }),
64
+ lastWonRound: cafe_utility_1.Types.asNumber(body.lastWonRound, { name: 'lastWonRound' }),
65
+ lastPlayedRound: cafe_utility_1.Types.asNumber(body.lastPlayedRound, { name: 'lastPlayedRound' }),
66
+ lastFrozenRound: cafe_utility_1.Types.asNumber(body.lastFrozenRound, { name: 'lastFrozenRound' }),
67
+ lastSelectedRound: cafe_utility_1.Types.asNumber(body.lastSelectedRound, { name: 'lastSelectedRound' }),
68
+ lastSampleDurationSeconds: cafe_utility_1.Types.asNumber(body.lastSampleDurationSeconds, { name: 'lastSampleDurationSeconds' }),
69
+ block: cafe_utility_1.Types.asNumber(body.block, { name: 'block' }),
70
+ reward: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.reward, { name: 'reward' })),
71
+ fees: tokens_1.DAI.fromWei((0, type_1.asNumberString)(body.fees, { name: 'fees' })),
72
+ isHealthy: cafe_utility_1.Types.asBoolean(body.isHealthy, { name: 'isHealthy' }),
73
+ };
56
74
  }
57
75
  exports.getRedistributionState = getRedistributionState;
@@ -1,7 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.diluteBatch = exports.topUpBatch = exports.createPostageBatch = exports.getPostageBatchBuckets = exports.getPostageBatch = exports.getAllPostageBatches = exports.getGlobalPostageBatches = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
5
+ const duration_1 = require("../../utils/duration");
4
6
  const http_1 = require("../../utils/http");
7
+ const size_1 = require("../../utils/size");
8
+ const stamps_1 = require("../../utils/stamps");
9
+ const type_1 = require("../../utils/type");
10
+ const typed_bytes_1 = require("../../utils/typed-bytes");
11
+ const workaround_1 = require("../../utils/workaround");
5
12
  const STAMPS_ENDPOINT = 'stamps';
6
13
  const BATCHES_ENDPOINT = 'batches';
7
14
  async function getGlobalPostageBatches(requestOptions) {
@@ -10,7 +17,18 @@ async function getGlobalPostageBatches(requestOptions) {
10
17
  url: `${BATCHES_ENDPOINT}`,
11
18
  responseType: 'json',
12
19
  });
13
- return response.data.stamps;
20
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
21
+ const batches = cafe_utility_1.Types.asArray(body.batches, { name: 'batches' }).map(x => cafe_utility_1.Types.asObject(x, { name: 'batch' }));
22
+ return batches.map(x => ({
23
+ batchID: new typed_bytes_1.BatchId(cafe_utility_1.Types.asString(x.batchID, { name: 'batchID' })),
24
+ batchTTL: cafe_utility_1.Types.asNumber(x.batchTTL, { name: 'batchTTL' }),
25
+ bucketDepth: cafe_utility_1.Types.asNumber(x.bucketDepth, { name: 'bucketDepth' }),
26
+ depth: cafe_utility_1.Types.asNumber(x.depth, { name: 'depth' }),
27
+ immutable: cafe_utility_1.Types.asBoolean(x.immutable, { name: 'immutable' }),
28
+ owner: new typed_bytes_1.EthAddress(cafe_utility_1.Types.asString(x.owner, { name: 'owner' })),
29
+ start: cafe_utility_1.Types.asNumber(x.start, { name: 'start' }),
30
+ value: (0, type_1.asNumberString)(x.value, { name: 'value' }),
31
+ }));
14
32
  }
15
33
  exports.getGlobalPostageBatches = getGlobalPostageBatches;
16
34
  async function getAllPostageBatches(requestOptions) {
@@ -19,7 +37,33 @@ async function getAllPostageBatches(requestOptions) {
19
37
  url: `${STAMPS_ENDPOINT}`,
20
38
  responseType: 'json',
21
39
  });
22
- return response.data.stamps;
40
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
41
+ const stamps = cafe_utility_1.Types.asArray(body.stamps, { name: 'stamps' }).map(x => cafe_utility_1.Types.asObject(x, { name: 'stamp' }));
42
+ return stamps.map(x => {
43
+ const utilization = cafe_utility_1.Types.asNumber(x.utilization, { name: 'utilization' });
44
+ const depth = cafe_utility_1.Types.asNumber(x.depth, { name: 'depth' });
45
+ const bucketDepth = cafe_utility_1.Types.asNumber(x.bucketDepth, { name: 'bucketDepth' });
46
+ const usage = (0, stamps_1.getStampUsage)(utilization, depth, bucketDepth);
47
+ const batchTTL = (0, workaround_1.normalizeBatchTTL)(cafe_utility_1.Types.asNumber(x.batchTTL, { name: 'batchTTL' }));
48
+ const duration = duration_1.Duration.fromSeconds(batchTTL);
49
+ return {
50
+ batchID: new typed_bytes_1.BatchId(cafe_utility_1.Types.asString(x.batchID, { name: 'batchID' })),
51
+ utilization,
52
+ usable: cafe_utility_1.Types.asBoolean(x.usable, { name: 'usable' }),
53
+ label: cafe_utility_1.Types.asEmptiableString(x.label, { name: 'label' }),
54
+ depth,
55
+ amount: (0, type_1.asNumberString)(x.amount, { name: 'amount' }),
56
+ bucketDepth,
57
+ blockNumber: cafe_utility_1.Types.asNumber(x.blockNumber, { name: 'blockNumber' }),
58
+ immutableFlag: cafe_utility_1.Types.asBoolean(x.immutableFlag, { name: 'immutableFlag' }),
59
+ usage,
60
+ usageText: `${Math.round(usage * 100)}%`,
61
+ size: size_1.Size.fromBytes((0, stamps_1.getStampEffectiveBytes)(depth)),
62
+ remainingSize: size_1.Size.fromBytes(Math.ceil((0, stamps_1.getStampEffectiveBytes)(depth) * (1 - usage))),
63
+ theoreticalSize: size_1.Size.fromBytes((0, stamps_1.getStampTheoreticalBytes)(depth)),
64
+ duration,
65
+ };
66
+ });
23
67
  }
24
68
  exports.getAllPostageBatches = getAllPostageBatches;
25
69
  async function getPostageBatch(requestOptions, postageBatchId) {
@@ -28,7 +72,30 @@ async function getPostageBatch(requestOptions, postageBatchId) {
28
72
  url: `${STAMPS_ENDPOINT}/${postageBatchId}`,
29
73
  responseType: 'json',
30
74
  });
31
- return response.data;
75
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
76
+ const utilization = cafe_utility_1.Types.asNumber(body.utilization, { name: 'utilization' });
77
+ const depth = cafe_utility_1.Types.asNumber(body.depth, { name: 'depth' });
78
+ const bucketDepth = cafe_utility_1.Types.asNumber(body.bucketDepth, { name: 'bucketDepth' });
79
+ const usage = (0, stamps_1.getStampUsage)(utilization, depth, bucketDepth);
80
+ const batchTTL = (0, workaround_1.normalizeBatchTTL)(cafe_utility_1.Types.asNumber(body.batchTTL, { name: 'batchTTL' }));
81
+ const duration = duration_1.Duration.fromSeconds(batchTTL);
82
+ return {
83
+ batchID: new typed_bytes_1.BatchId(cafe_utility_1.Types.asString(body.batchID, { name: 'batchID' })),
84
+ utilization,
85
+ usable: cafe_utility_1.Types.asBoolean(body.usable, { name: 'usable' }),
86
+ label: cafe_utility_1.Types.asEmptiableString(body.label, { name: 'label' }),
87
+ depth,
88
+ amount: (0, type_1.asNumberString)(body.amount, { name: 'amount' }),
89
+ bucketDepth,
90
+ blockNumber: cafe_utility_1.Types.asNumber(body.blockNumber, { name: 'blockNumber' }),
91
+ immutableFlag: cafe_utility_1.Types.asBoolean(body.immutableFlag, { name: 'immutableFlag' }),
92
+ usage,
93
+ usageText: `${Math.round(usage * 100)}%`,
94
+ size: size_1.Size.fromBytes((0, stamps_1.getStampEffectiveBytes)(depth)),
95
+ remainingSize: size_1.Size.fromBytes(Math.ceil((0, stamps_1.getStampEffectiveBytes)(depth) * (1 - usage))),
96
+ theoreticalSize: size_1.Size.fromBytes((0, stamps_1.getStampTheoreticalBytes)(depth)),
97
+ duration,
98
+ };
32
99
  }
33
100
  exports.getPostageBatch = getPostageBatch;
34
101
  async function getPostageBatchBuckets(requestOptions, postageBatchId) {
@@ -37,7 +104,18 @@ async function getPostageBatchBuckets(requestOptions, postageBatchId) {
37
104
  url: `${STAMPS_ENDPOINT}/${postageBatchId}/buckets`,
38
105
  responseType: 'json',
39
106
  });
40
- return response.data;
107
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
108
+ return {
109
+ depth: cafe_utility_1.Types.asNumber(body.depth, { name: 'depth' }),
110
+ bucketDepth: cafe_utility_1.Types.asNumber(body.bucketDepth, { name: 'bucketDepth' }),
111
+ bucketUpperBound: cafe_utility_1.Types.asNumber(body.bucketUpperBound, { name: 'bucketUpperBound' }),
112
+ buckets: cafe_utility_1.Types.asArray(body.buckets, { name: 'buckets' })
113
+ .map(x => cafe_utility_1.Types.asObject(x, { name: 'bucket' }))
114
+ .map(x => ({
115
+ bucketID: cafe_utility_1.Types.asNumber(x.bucketID, { name: 'bucketID' }),
116
+ collisions: cafe_utility_1.Types.asNumber(x.collisions, { name: 'collisions' }),
117
+ })),
118
+ };
41
119
  }
42
120
  exports.getPostageBatchBuckets = getPostageBatchBuckets;
43
121
  async function createPostageBatch(requestOptions, amount, depth, options) {
@@ -55,7 +133,8 @@ async function createPostageBatch(requestOptions, amount, depth, options) {
55
133
  params: { label: options?.label },
56
134
  headers,
57
135
  });
58
- return response.data.batchID;
136
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
137
+ return new typed_bytes_1.BatchId(cafe_utility_1.Types.asString(body.batchID, { name: 'batchID' }));
59
138
  }
60
139
  exports.createPostageBatch = createPostageBatch;
61
140
  async function topUpBatch(requestOptions, id, amount) {
@@ -64,7 +143,8 @@ async function topUpBatch(requestOptions, id, amount) {
64
143
  url: `${STAMPS_ENDPOINT}/topup/${id}/${amount}`,
65
144
  responseType: 'json',
66
145
  });
67
- return response.data.batchID;
146
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
147
+ return new typed_bytes_1.BatchId(cafe_utility_1.Types.asString(body.batchID, { name: 'batchID' }));
68
148
  }
69
149
  exports.topUpBatch = topUpBatch;
70
150
  async function diluteBatch(requestOptions, id, depth) {
@@ -73,6 +153,7 @@ async function diluteBatch(requestOptions, id, depth) {
73
153
  url: `${STAMPS_ENDPOINT}/dilute/${id}/${depth}`,
74
154
  responseType: 'json',
75
155
  });
76
- return response.data.batchID;
156
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
157
+ return new typed_bytes_1.BatchId(cafe_utility_1.Types.asString(body.batchID, { name: 'batchID' }));
77
158
  }
78
159
  exports.diluteBatch = diluteBatch;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getWalletBalance = exports.getChainState = exports.getReserveState = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
4
5
  const http_1 = require("../../utils/http");
6
+ const tokens_1 = require("../../utils/tokens");
7
+ const type_1 = require("../../utils/type");
8
+ const workaround_1 = require("../../utils/workaround");
5
9
  const RESERVE_STATE_ENDPOINT = 'reservestate';
6
10
  const WALLET_ENDPOINT = 'wallet';
7
11
  const CHAIN_STATE_ENDPOINT = 'chainstate';
@@ -16,7 +20,12 @@ async function getReserveState(requestOptions) {
16
20
  url: `${RESERVE_STATE_ENDPOINT}`,
17
21
  responseType: 'json',
18
22
  });
19
- return response.data;
23
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
24
+ return {
25
+ commitment: cafe_utility_1.Types.asNumber(body.commitment, { name: 'commitment' }),
26
+ radius: cafe_utility_1.Types.asNumber(body.radius, { name: 'radius' }),
27
+ storageRadius: cafe_utility_1.Types.asNumber(body.storageRadius, { name: 'storageRadius' }),
28
+ };
20
29
  }
21
30
  exports.getReserveState = getReserveState;
22
31
  /**
@@ -30,7 +39,13 @@ async function getChainState(requestOptions) {
30
39
  url: `${CHAIN_STATE_ENDPOINT}`,
31
40
  responseType: 'json',
32
41
  });
33
- return response.data;
42
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
43
+ return {
44
+ block: cafe_utility_1.Types.asNumber(body.block, { name: 'block' }),
45
+ chainTip: cafe_utility_1.Types.asNumber(body.chainTip, { name: 'chainTip' }),
46
+ totalAmount: (0, type_1.asNumberString)(body.totalAmount, { name: 'totalAmount' }),
47
+ currentPrice: (0, workaround_1.normalizeCurrentPrice)(cafe_utility_1.Types.asNumber(body.currentPrice, { name: 'currentPrice' })),
48
+ };
34
49
  }
35
50
  exports.getChainState = getChainState;
36
51
  /**
@@ -44,6 +59,13 @@ async function getWalletBalance(requestOptions) {
44
59
  url: `${WALLET_ENDPOINT}`,
45
60
  responseType: 'json',
46
61
  });
47
- return response.data;
62
+ const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
63
+ return {
64
+ bzzBalance: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.bzzBalance, { name: 'bzzBalance' })),
65
+ nativeTokenBalance: tokens_1.DAI.fromWei((0, type_1.asNumberString)(body.nativeTokenBalance, { name: 'nativeTokenBalance' })),
66
+ chainID: cafe_utility_1.Types.asNumber(body.chainID, { name: 'chainID' }),
67
+ chequebookContractAddress: cafe_utility_1.Types.asString(body.chequebookContractAddress, { name: 'chequebookContractAddress' }),
68
+ walletAddress: cafe_utility_1.Types.asString(body.walletAddress, { name: 'walletAddress' }),
69
+ };
48
70
  }
49
71
  exports.getWalletBalance = getWalletBalance;