@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.
- package/README.md +192 -50
- package/dist/cjs/bee-dev.js +78 -0
- package/dist/cjs/bee.js +341 -417
- package/dist/cjs/chunk/bmt.js +15 -32
- package/dist/cjs/chunk/cac.js +26 -36
- package/dist/cjs/chunk/soc.js +56 -51
- package/dist/cjs/feed/identifier.js +3 -28
- package/dist/cjs/feed/index.js +95 -44
- package/dist/cjs/feed/retrievable.js +11 -22
- package/dist/cjs/index.js +17 -1
- package/dist/cjs/manifest/manifest.js +369 -0
- package/dist/cjs/modules/bytes.js +24 -12
- package/dist/cjs/modules/bzz.js +24 -34
- package/dist/cjs/modules/chunk.js +13 -7
- package/dist/cjs/modules/debug/balance.js +29 -4
- package/dist/cjs/modules/debug/chequebook.js +60 -16
- package/dist/cjs/modules/debug/connectivity.js +82 -4
- package/dist/cjs/modules/debug/settlements.js +22 -2
- package/dist/cjs/modules/debug/stake.js +29 -11
- package/dist/cjs/modules/debug/stamps.js +88 -7
- package/dist/cjs/modules/debug/states.js +25 -3
- package/dist/cjs/modules/debug/status.js +45 -47
- package/dist/cjs/modules/debug/transactions.js +27 -5
- package/dist/cjs/modules/envelope.js +8 -6
- package/dist/cjs/modules/feed.js +25 -10
- package/dist/cjs/modules/grantee.js +18 -12
- package/dist/cjs/modules/gsoc.js +24 -0
- package/dist/cjs/modules/pinning.js +13 -2
- package/dist/cjs/modules/pss.js +9 -3
- package/dist/cjs/modules/soc.js +9 -4
- package/dist/cjs/modules/stewardship.js +7 -3
- package/dist/cjs/modules/tag.js +35 -3
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/stamper/stamper.js +43 -0
- package/dist/cjs/types/debug.js +16 -1
- package/dist/cjs/types/index.js +2 -24
- package/dist/cjs/utils/bytes.js +67 -115
- package/dist/cjs/utils/chunk-size.js +17 -0
- package/dist/cjs/utils/chunk-stream.browser.js +85 -0
- package/dist/cjs/utils/chunk-stream.js +84 -0
- package/dist/cjs/utils/cid.js +5 -6
- package/dist/cjs/utils/collection.browser.js +2 -2
- package/dist/cjs/utils/collection.js +3 -2
- package/dist/cjs/utils/collection.node.js +0 -2
- package/dist/cjs/utils/constants.js +7 -3
- package/dist/cjs/utils/data.browser.js +6 -3
- package/dist/cjs/utils/data.js +8 -4
- package/dist/cjs/utils/duration.js +51 -0
- package/dist/cjs/utils/expose.js +11 -40
- package/dist/cjs/utils/headers.js +79 -52
- package/dist/cjs/utils/http.js +34 -10
- package/dist/cjs/utils/mime.js +78 -0
- package/dist/cjs/utils/pss.js +3 -4
- package/dist/cjs/utils/redundancy.js +18 -14
- package/dist/cjs/utils/resource-locator.js +17 -0
- package/dist/cjs/utils/size.js +35 -0
- package/dist/cjs/utils/stamps.js +67 -51
- package/dist/cjs/utils/tar-uploader.browser.js +2 -2
- package/dist/cjs/utils/tar-uploader.js +2 -2
- package/dist/cjs/utils/tokens.js +144 -0
- package/dist/cjs/utils/type.js +142 -350
- package/dist/cjs/utils/typed-bytes.js +179 -0
- package/dist/cjs/utils/upload-progress.js +2 -0
- package/dist/cjs/utils/url.js +0 -4
- package/dist/cjs/utils/workaround.js +27 -0
- package/dist/index.browser.min.js +1 -2
- package/dist/index.browser.min.js.map +1 -1
- package/dist/mjs/bee-dev.js +98 -0
- package/dist/mjs/bee.js +367 -411
- package/dist/mjs/chunk/bmt.js +13 -29
- package/dist/mjs/chunk/cac.js +26 -34
- package/dist/mjs/chunk/soc.js +57 -53
- package/dist/mjs/feed/identifier.js +3 -26
- package/dist/mjs/feed/index.js +98 -51
- package/dist/mjs/feed/retrievable.js +12 -23
- package/dist/mjs/index.js +10 -1
- package/dist/mjs/manifest/manifest.js +371 -0
- package/dist/mjs/modules/bytes.js +27 -15
- package/dist/mjs/modules/bzz.js +25 -32
- package/dist/mjs/modules/chunk.js +16 -8
- package/dist/mjs/modules/debug/balance.js +61 -4
- package/dist/mjs/modules/debug/chequebook.js +116 -16
- package/dist/mjs/modules/debug/connectivity.js +144 -3
- package/dist/mjs/modules/debug/settlements.js +46 -2
- package/dist/mjs/modules/debug/stake.js +69 -11
- package/dist/mjs/modules/debug/stamps.js +184 -7
- package/dist/mjs/modules/debug/states.js +55 -3
- package/dist/mjs/modules/debug/status.js +97 -45
- package/dist/mjs/modules/debug/transactions.js +61 -5
- package/dist/mjs/modules/envelope.js +11 -9
- package/dist/mjs/modules/feed.js +26 -10
- package/dist/mjs/modules/grantee.js +35 -13
- package/dist/mjs/modules/gsoc.js +16 -0
- package/dist/mjs/modules/pinning.js +23 -2
- package/dist/mjs/modules/pss.js +10 -4
- package/dist/mjs/modules/soc.js +10 -5
- package/dist/mjs/modules/stewardship.js +14 -4
- package/dist/mjs/modules/tag.js +93 -3
- package/dist/mjs/package.json +2 -1
- package/dist/mjs/stamper/stamper.js +39 -0
- package/dist/mjs/types/debug.js +15 -1
- package/dist/mjs/types/index.js +2 -24
- package/dist/mjs/utils/bytes.js +63 -104
- package/dist/mjs/utils/chunk-size.js +13 -0
- package/dist/mjs/utils/chunk-stream.browser.js +85 -0
- package/dist/mjs/utils/chunk-stream.js +87 -0
- package/dist/mjs/utils/cid.js +5 -6
- package/dist/mjs/utils/collection.browser.js +2 -2
- package/dist/mjs/utils/collection.js +2 -2
- package/dist/mjs/utils/collection.node.js +0 -2
- package/dist/mjs/utils/constants.js +6 -2
- package/dist/mjs/utils/data.browser.js +9 -3
- package/dist/mjs/utils/data.js +12 -4
- package/dist/mjs/utils/duration.js +47 -0
- package/dist/mjs/utils/expose.js +2 -7
- package/dist/mjs/utils/headers.js +73 -48
- package/dist/mjs/utils/http.js +33 -11
- package/dist/mjs/utils/mime.js +75 -0
- package/dist/mjs/utils/pss.js +3 -4
- package/dist/mjs/utils/redundancy.js +18 -8
- package/dist/mjs/utils/resource-locator.js +13 -0
- package/dist/mjs/utils/size.js +31 -0
- package/dist/mjs/utils/stamps.js +47 -44
- package/dist/mjs/utils/tar-uploader.browser.js +2 -2
- package/dist/mjs/utils/tar-uploader.js +2 -2
- package/dist/mjs/utils/tokens.js +139 -0
- package/dist/mjs/utils/type.js +216 -310
- package/dist/mjs/utils/typed-bytes.js +160 -0
- package/dist/mjs/utils/upload-progress.js +1 -0
- package/dist/mjs/utils/url.js +0 -4
- package/dist/mjs/utils/workaround.js +22 -0
- package/dist/types/bee-dev.d.ts +5 -0
- package/dist/types/bee.d.ts +88 -165
- package/dist/types/chunk/bmt.d.ts +2 -2
- package/dist/types/chunk/cac.d.ts +7 -24
- package/dist/types/chunk/soc.d.ts +15 -15
- package/dist/types/feed/identifier.d.ts +2 -4
- package/dist/types/feed/index.d.ts +14 -18
- package/dist/types/feed/retrievable.d.ts +3 -4
- package/dist/types/index.d.ts +28 -1
- package/dist/types/manifest/manifest.d.ts +106 -0
- package/dist/types/modules/bytes.d.ts +8 -5
- package/dist/types/modules/bzz.d.ts +8 -10
- package/dist/types/modules/chunk.d.ts +4 -3
- package/dist/types/modules/debug/balance.d.ts +3 -2
- package/dist/types/modules/debug/chequebook.d.ts +7 -6
- package/dist/types/modules/debug/connectivity.d.ts +5 -3
- package/dist/types/modules/debug/settlements.d.ts +2 -1
- package/dist/types/modules/debug/stake.d.ts +4 -2
- package/dist/types/modules/debug/stamps.d.ts +5 -4
- package/dist/types/modules/debug/status.d.ts +6 -25
- package/dist/types/modules/debug/transactions.d.ts +5 -4
- package/dist/types/modules/envelope.d.ts +3 -2
- package/dist/types/modules/feed.d.ts +20 -16
- package/dist/types/modules/grantee.d.ts +7 -6
- package/dist/types/modules/gsoc.d.ts +7 -0
- package/dist/types/modules/pinning.d.ts +2 -4
- package/dist/types/modules/pss.d.ts +4 -3
- package/dist/types/modules/soc.d.ts +3 -2
- package/dist/types/modules/stewardship.d.ts +4 -4
- package/dist/types/modules/tag.d.ts +2 -1
- package/dist/types/stamper/stamper.d.ts +15 -0
- package/dist/types/types/debug.d.ts +63 -115
- package/dist/types/types/index.d.ts +103 -204
- package/dist/types/utils/bytes.d.ts +16 -90
- package/dist/types/utils/chunk-size.d.ts +1 -0
- package/dist/types/utils/chunk-stream.browser.d.ts +6 -0
- package/dist/types/utils/chunk-stream.d.ts +6 -0
- package/dist/types/utils/cid.d.ts +3 -2
- package/dist/types/utils/collection.browser.d.ts +2 -2
- package/dist/types/utils/collection.d.ts +2 -1
- package/dist/types/utils/collection.node.d.ts +0 -1
- package/dist/types/utils/constants.d.ts +4 -1
- package/dist/types/utils/duration.d.ts +17 -0
- package/dist/types/utils/error.d.ts +2 -2
- package/dist/types/utils/expose.d.ts +2 -7
- package/dist/types/utils/headers.d.ts +3 -4
- package/dist/types/utils/mime.d.ts +1 -0
- package/dist/types/utils/pss.d.ts +2 -2
- package/dist/types/utils/resource-locator.d.ts +6 -0
- package/dist/types/utils/size.d.ts +16 -0
- package/dist/types/utils/stamps.d.ts +27 -33
- package/dist/types/utils/tar-uploader.browser.d.ts +3 -4
- package/dist/types/utils/tar-uploader.d.ts +3 -4
- package/dist/types/utils/tokens.d.ts +77 -0
- package/dist/types/utils/type.d.ts +20 -52
- package/dist/types/utils/typed-bytes.d.ts +68 -0
- package/dist/types/utils/upload-progress.d.ts +4 -0
- package/dist/types/utils/workaround.d.ts +2 -0
- package/package.json +11 -17
- package/dist/cjs/chunk/signer.js +0 -126
- package/dist/cjs/chunk/span.js +0 -25
- package/dist/cjs/feed/json.js +0 -28
- package/dist/cjs/feed/topic.js +0 -25
- package/dist/cjs/feed/type.js +0 -15
- package/dist/cjs/modules/debug/chunk.js +0 -21
- package/dist/cjs/modules/debug/tag.js +0 -19
- package/dist/cjs/utils/eth.js +0 -216
- package/dist/cjs/utils/hash.js +0 -21
- package/dist/cjs/utils/hex.js +0 -150
- package/dist/cjs/utils/reference.js +0 -36
- package/dist/index.browser.min.js.LICENSE.txt +0 -8
- package/dist/mjs/chunk/signer.js +0 -114
- package/dist/mjs/chunk/span.js +0 -21
- package/dist/mjs/feed/json.js +0 -26
- package/dist/mjs/feed/topic.js +0 -19
- package/dist/mjs/feed/type.js +0 -10
- package/dist/mjs/modules/debug/chunk.js +0 -17
- package/dist/mjs/modules/debug/tag.js +0 -15
- package/dist/mjs/utils/eth.js +0 -192
- package/dist/mjs/utils/hash.js +0 -16
- package/dist/mjs/utils/hex.js +0 -135
- package/dist/mjs/utils/reference.js +0 -29
- package/dist/types/chunk/signer.d.ts +0 -31
- package/dist/types/chunk/span.d.ts +0 -10
- package/dist/types/feed/json.d.ts +0 -4
- package/dist/types/feed/topic.d.ts +0 -3
- package/dist/types/feed/type.d.ts +0 -6
- package/dist/types/modules/debug/chunk.d.ts +0 -10
- package/dist/types/modules/debug/tag.d.ts +0 -8
- package/dist/types/utils/eth.d.ts +0 -67
- package/dist/types/utils/hash.d.ts +0 -9
- package/dist/types/utils/hex.d.ts +0 -86
- package/dist/types/utils/reference.d.ts +0 -2
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { Types } from 'cafe-utility';
|
|
1
2
|
import { http } from "../../utils/http.js";
|
|
3
|
+
import { BZZ } from "../../utils/tokens.js";
|
|
4
|
+
import { asNumberString } from "../../utils/type.js";
|
|
2
5
|
const balancesEndpoint = 'balances';
|
|
3
6
|
const consumedEndpoint = 'consumed';
|
|
4
7
|
/**
|
|
@@ -11,7 +14,24 @@ export async function getAllBalances(requestOptions) {
|
|
|
11
14
|
url: balancesEndpoint,
|
|
12
15
|
responseType: 'json'
|
|
13
16
|
});
|
|
14
|
-
|
|
17
|
+
const body = Types.asObject(response.data, {
|
|
18
|
+
name: 'response.data'
|
|
19
|
+
});
|
|
20
|
+
const balances = Types.asArray(body.balances, {
|
|
21
|
+
name: 'balances'
|
|
22
|
+
}).map(x => Types.asObject(x, {
|
|
23
|
+
name: 'balance'
|
|
24
|
+
}));
|
|
25
|
+
return {
|
|
26
|
+
balances: balances.map(x => ({
|
|
27
|
+
peer: Types.asString(x.peer, {
|
|
28
|
+
name: 'peer'
|
|
29
|
+
}),
|
|
30
|
+
balance: BZZ.fromPLUR(asNumberString(x.balance, {
|
|
31
|
+
name: 'balance'
|
|
32
|
+
}))
|
|
33
|
+
}))
|
|
34
|
+
};
|
|
15
35
|
}
|
|
16
36
|
/**
|
|
17
37
|
* Get the balances with a specific peer including prepaid services
|
|
@@ -24,7 +44,17 @@ export async function getPeerBalance(requestOptions, address) {
|
|
|
24
44
|
url: `${balancesEndpoint}/${address}`,
|
|
25
45
|
responseType: 'json'
|
|
26
46
|
});
|
|
27
|
-
|
|
47
|
+
const body = Types.asObject(response.data, {
|
|
48
|
+
name: 'response.data'
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
peer: Types.asString(body.peer, {
|
|
52
|
+
name: 'peer'
|
|
53
|
+
}),
|
|
54
|
+
balance: BZZ.fromPLUR(asNumberString(body.balance, {
|
|
55
|
+
name: 'balance'
|
|
56
|
+
}))
|
|
57
|
+
};
|
|
28
58
|
}
|
|
29
59
|
/**
|
|
30
60
|
* Get the past due consumption balances with all known peers
|
|
@@ -36,7 +66,24 @@ export async function getPastDueConsumptionBalances(requestOptions) {
|
|
|
36
66
|
url: consumedEndpoint,
|
|
37
67
|
responseType: 'json'
|
|
38
68
|
});
|
|
39
|
-
|
|
69
|
+
const body = Types.asObject(response.data, {
|
|
70
|
+
name: 'response.data'
|
|
71
|
+
});
|
|
72
|
+
const balances = Types.asArray(body.balances, {
|
|
73
|
+
name: 'balances'
|
|
74
|
+
}).map(x => Types.asObject(x, {
|
|
75
|
+
name: 'balance'
|
|
76
|
+
}));
|
|
77
|
+
return {
|
|
78
|
+
balances: balances.map(x => ({
|
|
79
|
+
peer: Types.asString(x.peer, {
|
|
80
|
+
name: 'peer'
|
|
81
|
+
}),
|
|
82
|
+
balance: BZZ.fromPLUR(asNumberString(x.balance, {
|
|
83
|
+
name: 'balance'
|
|
84
|
+
}))
|
|
85
|
+
}))
|
|
86
|
+
};
|
|
40
87
|
}
|
|
41
88
|
/**
|
|
42
89
|
* Get the past due consumption balance with a specific peer
|
|
@@ -49,5 +96,15 @@ export async function getPastDueConsumptionPeerBalance(requestOptions, address)
|
|
|
49
96
|
url: `${consumedEndpoint}/${address}`,
|
|
50
97
|
responseType: 'json'
|
|
51
98
|
});
|
|
52
|
-
|
|
99
|
+
const body = Types.asObject(response.data, {
|
|
100
|
+
name: 'response.data'
|
|
101
|
+
});
|
|
102
|
+
return {
|
|
103
|
+
peer: Types.asString(body.peer, {
|
|
104
|
+
name: 'peer'
|
|
105
|
+
}),
|
|
106
|
+
balance: BZZ.fromPLUR(asNumberString(body.balance, {
|
|
107
|
+
name: 'balance'
|
|
108
|
+
}))
|
|
109
|
+
};
|
|
53
110
|
}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { Types } from 'cafe-utility';
|
|
2
|
+
import { prepareRequestHeaders } from "../../utils/headers.js";
|
|
1
3
|
import { http } from "../../utils/http.js";
|
|
4
|
+
import { BZZ } from "../../utils/tokens.js";
|
|
5
|
+
import { asNumberString } from "../../utils/type.js";
|
|
6
|
+
import { EthAddress, TransactionId } from "../../utils/typed-bytes.js";
|
|
2
7
|
const chequebookEndpoint = 'chequebook';
|
|
3
8
|
/**
|
|
4
9
|
* Get the address of the chequebook contract used
|
|
@@ -10,7 +15,14 @@ export async function getChequebookAddress(requestOptions) {
|
|
|
10
15
|
url: chequebookEndpoint + '/address',
|
|
11
16
|
responseType: 'json'
|
|
12
17
|
});
|
|
13
|
-
|
|
18
|
+
const body = Types.asObject(response.data, {
|
|
19
|
+
name: 'response.data'
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
chequebookAddress: Types.asString(body.chequebookAddress, {
|
|
23
|
+
name: 'chequebookAddress'
|
|
24
|
+
})
|
|
25
|
+
};
|
|
14
26
|
}
|
|
15
27
|
/**
|
|
16
28
|
* Get the balance of the chequebook
|
|
@@ -22,7 +34,17 @@ export async function getChequebookBalance(requestOptions) {
|
|
|
22
34
|
url: chequebookEndpoint + '/balance',
|
|
23
35
|
responseType: 'json'
|
|
24
36
|
});
|
|
25
|
-
|
|
37
|
+
const body = Types.asObject(response.data, {
|
|
38
|
+
name: 'response.data'
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
availableBalance: BZZ.fromPLUR(asNumberString(body.availableBalance, {
|
|
42
|
+
name: 'availableBalance'
|
|
43
|
+
})),
|
|
44
|
+
totalBalance: BZZ.fromPLUR(asNumberString(body.totalBalance, {
|
|
45
|
+
name: 'totalBalance'
|
|
46
|
+
}))
|
|
47
|
+
};
|
|
26
48
|
}
|
|
27
49
|
/**
|
|
28
50
|
* Get last cashout action for the peer
|
|
@@ -35,7 +57,20 @@ export async function getLastCashoutAction(requestOptions, peer) {
|
|
|
35
57
|
url: chequebookEndpoint + `/cashout/${peer}`,
|
|
36
58
|
responseType: 'json'
|
|
37
59
|
});
|
|
38
|
-
|
|
60
|
+
const body = Types.asObject(response.data, {
|
|
61
|
+
name: 'response.data'
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
peer: Types.asString(body.peer, {
|
|
65
|
+
name: 'peer'
|
|
66
|
+
}),
|
|
67
|
+
uncashedAmount: BZZ.fromPLUR(asNumberString(body.uncashedAmount, {
|
|
68
|
+
name: 'uncashedAmount'
|
|
69
|
+
})),
|
|
70
|
+
transactionHash: Types.asNullableString(body.transactionHash),
|
|
71
|
+
lastCashedCheque: Types.asNullable(x => asCheque(x), body.lastCashedCheque),
|
|
72
|
+
result: Types.asNullable(x => asCashoutResult(x), body.result)
|
|
73
|
+
};
|
|
39
74
|
}
|
|
40
75
|
/**
|
|
41
76
|
* Cashout the last cheque for the peer
|
|
@@ -45,20 +80,18 @@ export async function getLastCashoutAction(requestOptions, peer) {
|
|
|
45
80
|
* @param options
|
|
46
81
|
*/
|
|
47
82
|
export async function cashoutLastCheque(requestOptions, peer, options) {
|
|
48
|
-
const headers = {};
|
|
49
|
-
if (options?.gasPrice) {
|
|
50
|
-
headers['gas-price'] = options.gasPrice.toString();
|
|
51
|
-
}
|
|
52
|
-
if (options?.gasLimit) {
|
|
53
|
-
headers['gas-limit'] = options.gasLimit.toString();
|
|
54
|
-
}
|
|
55
83
|
const response = await http(requestOptions, {
|
|
56
84
|
method: 'post',
|
|
57
85
|
url: chequebookEndpoint + `/cashout/${peer}`,
|
|
58
86
|
responseType: 'json',
|
|
59
|
-
headers
|
|
87
|
+
headers: prepareRequestHeaders(null, options)
|
|
88
|
+
});
|
|
89
|
+
const body = Types.asObject(response.data, {
|
|
90
|
+
name: 'response.data'
|
|
60
91
|
});
|
|
61
|
-
return
|
|
92
|
+
return new TransactionId(Types.asString(body.transactionHash, {
|
|
93
|
+
name: 'transactionHash'
|
|
94
|
+
}));
|
|
62
95
|
}
|
|
63
96
|
/**
|
|
64
97
|
* Get last cheques for the peer
|
|
@@ -71,7 +104,16 @@ export async function getLastChequesForPeer(requestOptions, peer) {
|
|
|
71
104
|
url: chequebookEndpoint + `/cheque/${peer}`,
|
|
72
105
|
responseType: 'json'
|
|
73
106
|
});
|
|
74
|
-
|
|
107
|
+
const body = Types.asObject(response.data, {
|
|
108
|
+
name: 'response.data'
|
|
109
|
+
});
|
|
110
|
+
return {
|
|
111
|
+
peer: Types.asString(body.peer, {
|
|
112
|
+
name: 'peer'
|
|
113
|
+
}),
|
|
114
|
+
lastreceived: Types.asNullable(x => asCheque(x), body.lastreceived),
|
|
115
|
+
lastsent: Types.asNullable(x => asCheque(x), body.lastsent)
|
|
116
|
+
};
|
|
75
117
|
}
|
|
76
118
|
/**
|
|
77
119
|
* Get last cheques for all peers
|
|
@@ -83,7 +125,55 @@ export async function getLastCheques(requestOptions) {
|
|
|
83
125
|
url: chequebookEndpoint + '/cheque',
|
|
84
126
|
responseType: 'json'
|
|
85
127
|
});
|
|
86
|
-
|
|
128
|
+
const body = Types.asObject(response.data, {
|
|
129
|
+
name: 'response.data'
|
|
130
|
+
});
|
|
131
|
+
const lastcheques = Types.asArray(body.lastcheques, {
|
|
132
|
+
name: 'lastcheques'
|
|
133
|
+
}).map(x => Types.asObject(x, {
|
|
134
|
+
name: 'lastcheque'
|
|
135
|
+
}));
|
|
136
|
+
return {
|
|
137
|
+
lastcheques: lastcheques.map(x => ({
|
|
138
|
+
peer: Types.asString(x.peer, {
|
|
139
|
+
name: 'peer'
|
|
140
|
+
}),
|
|
141
|
+
lastreceived: Types.asNullable(y => asCheque(y), x.lastreceived),
|
|
142
|
+
lastsent: Types.asNullable(y => asCheque(y), x.lastsent)
|
|
143
|
+
}))
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function asCheque(x) {
|
|
147
|
+
const object = Types.asObject(x, {
|
|
148
|
+
name: 'cheque'
|
|
149
|
+
});
|
|
150
|
+
return {
|
|
151
|
+
beneficiary: new EthAddress(Types.asString(object.beneficiary, {
|
|
152
|
+
name: 'beneficiary'
|
|
153
|
+
})),
|
|
154
|
+
chequebook: new EthAddress(Types.asString(object.chequebook, {
|
|
155
|
+
name: 'chequebook'
|
|
156
|
+
})),
|
|
157
|
+
payout: BZZ.fromPLUR(asNumberString(object.payout, {
|
|
158
|
+
name: 'payout'
|
|
159
|
+
}))
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function asCashoutResult(x) {
|
|
163
|
+
const object = Types.asObject(x, {
|
|
164
|
+
name: 'cashout result'
|
|
165
|
+
});
|
|
166
|
+
return {
|
|
167
|
+
recipient: Types.asString(object.recipient, {
|
|
168
|
+
name: 'recipient'
|
|
169
|
+
}),
|
|
170
|
+
lastPayout: BZZ.fromPLUR(asNumberString(object.lastPayout, {
|
|
171
|
+
name: 'lastPayout'
|
|
172
|
+
})),
|
|
173
|
+
bounced: Types.asBoolean(object.bounced, {
|
|
174
|
+
name: 'bounced'
|
|
175
|
+
})
|
|
176
|
+
};
|
|
87
177
|
}
|
|
88
178
|
/**
|
|
89
179
|
* Deposit tokens from overlay address into chequebook
|
|
@@ -107,7 +197,12 @@ export async function depositTokens(requestOptions, amount, gasPrice) {
|
|
|
107
197
|
},
|
|
108
198
|
headers
|
|
109
199
|
});
|
|
110
|
-
|
|
200
|
+
const body = Types.asObject(response.data, {
|
|
201
|
+
name: 'response.data'
|
|
202
|
+
});
|
|
203
|
+
return new TransactionId(Types.asString(body.transactionHash, {
|
|
204
|
+
name: 'transactionHash'
|
|
205
|
+
}));
|
|
111
206
|
}
|
|
112
207
|
/**
|
|
113
208
|
* Withdraw tokens from the chequebook to the overlay address
|
|
@@ -131,5 +226,10 @@ export async function withdrawTokens(requestOptions, amount, gasPrice) {
|
|
|
131
226
|
},
|
|
132
227
|
headers
|
|
133
228
|
});
|
|
134
|
-
|
|
229
|
+
const body = Types.asObject(response.data, {
|
|
230
|
+
name: 'response.data'
|
|
231
|
+
});
|
|
232
|
+
return new TransactionId(Types.asString(body.transactionHash, {
|
|
233
|
+
name: 'transactionHash'
|
|
234
|
+
}));
|
|
135
235
|
}
|
|
@@ -1,17 +1,56 @@
|
|
|
1
|
+
import { Types } from 'cafe-utility';
|
|
1
2
|
import { http } from "../../utils/http.js";
|
|
3
|
+
import { EthAddress, PeerAddress, PublicKey } from "../../utils/typed-bytes.js";
|
|
2
4
|
export async function getNodeAddresses(requestOptions) {
|
|
3
5
|
const response = await http(requestOptions, {
|
|
4
6
|
url: 'addresses',
|
|
5
7
|
responseType: 'json'
|
|
6
8
|
});
|
|
7
|
-
|
|
9
|
+
const body = Types.asObject(response.data, {
|
|
10
|
+
name: 'response.data'
|
|
11
|
+
});
|
|
12
|
+
return {
|
|
13
|
+
overlay: new PeerAddress(Types.asString(body.overlay, {
|
|
14
|
+
name: 'overlay'
|
|
15
|
+
})),
|
|
16
|
+
underlay: Types.asArray(body.underlay, {
|
|
17
|
+
name: 'underlay'
|
|
18
|
+
}).map(x => Types.asString(x, {
|
|
19
|
+
name: 'underlay'
|
|
20
|
+
})),
|
|
21
|
+
ethereum: new EthAddress(Types.asString(body.ethereum, {
|
|
22
|
+
name: 'ethereum'
|
|
23
|
+
})),
|
|
24
|
+
publicKey: new PublicKey(Types.asString(body.publicKey, {
|
|
25
|
+
name: 'publicKey'
|
|
26
|
+
})),
|
|
27
|
+
pssPublicKey: new PublicKey(Types.asString(body.pssPublicKey, {
|
|
28
|
+
name: 'pssPublicKey'
|
|
29
|
+
}))
|
|
30
|
+
};
|
|
8
31
|
}
|
|
9
32
|
export async function getPeers(requestOptions) {
|
|
10
33
|
const response = await http(requestOptions, {
|
|
11
34
|
url: 'peers',
|
|
12
35
|
responseType: 'json'
|
|
13
36
|
});
|
|
14
|
-
|
|
37
|
+
const body = Types.asObject(response.data, {
|
|
38
|
+
name: 'response.data'
|
|
39
|
+
});
|
|
40
|
+
return Types.asArray(body.peers, {
|
|
41
|
+
name: 'peers'
|
|
42
|
+
}).map(x => ({
|
|
43
|
+
address: Types.asString(Types.asObject(x, {
|
|
44
|
+
name: 'peer'
|
|
45
|
+
}).address, {
|
|
46
|
+
name: 'address'
|
|
47
|
+
}),
|
|
48
|
+
fullNode: Types.asBoolean(Types.asObject(x, {
|
|
49
|
+
name: 'peer'
|
|
50
|
+
}).fullNode, {
|
|
51
|
+
name: 'fullNode'
|
|
52
|
+
})
|
|
53
|
+
}));
|
|
15
54
|
}
|
|
16
55
|
export async function getBlocklist(requestOptions) {
|
|
17
56
|
const response = await http(requestOptions, {
|
|
@@ -33,7 +72,72 @@ export async function getTopology(requestOptions) {
|
|
|
33
72
|
url: `topology`,
|
|
34
73
|
responseType: 'json'
|
|
35
74
|
});
|
|
36
|
-
|
|
75
|
+
const body = Types.asObject(response.data, {
|
|
76
|
+
name: 'response.data'
|
|
77
|
+
});
|
|
78
|
+
const bins = Types.asObject(body.bins, {
|
|
79
|
+
name: 'bins'
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
baseAddr: Types.asString(body.baseAddr, {
|
|
83
|
+
name: 'baseAddr'
|
|
84
|
+
}),
|
|
85
|
+
population: Types.asNumber(body.population, {
|
|
86
|
+
name: 'population'
|
|
87
|
+
}),
|
|
88
|
+
connected: Types.asNumber(body.connected, {
|
|
89
|
+
name: 'connected'
|
|
90
|
+
}),
|
|
91
|
+
timestamp: Types.asString(body.timestamp, {
|
|
92
|
+
name: 'timestamp'
|
|
93
|
+
}),
|
|
94
|
+
nnLowWatermark: Types.asNumber(body.nnLowWatermark, {
|
|
95
|
+
name: 'nnLowWatermark'
|
|
96
|
+
}),
|
|
97
|
+
depth: Types.asNumber(body.depth, {
|
|
98
|
+
name: 'depth'
|
|
99
|
+
}),
|
|
100
|
+
reachability: Types.asString(body.reachability, {
|
|
101
|
+
name: 'reachability'
|
|
102
|
+
}),
|
|
103
|
+
networkAvailability: Types.asString(body.networkAvailability, {
|
|
104
|
+
name: 'networkAvailability'
|
|
105
|
+
}),
|
|
106
|
+
bins: {
|
|
107
|
+
bin_0: asBin(bins.bin_0, 'bin_0'),
|
|
108
|
+
bin_1: asBin(bins.bin_1, 'bin_1'),
|
|
109
|
+
bin_2: asBin(bins.bin_2, 'bin_2'),
|
|
110
|
+
bin_3: asBin(bins.bin_3, 'bin_3'),
|
|
111
|
+
bin_4: asBin(bins.bin_4, 'bin_4'),
|
|
112
|
+
bin_5: asBin(bins.bin_5, 'bin_5'),
|
|
113
|
+
bin_6: asBin(bins.bin_6, 'bin_6'),
|
|
114
|
+
bin_7: asBin(bins.bin_7, 'bin_7'),
|
|
115
|
+
bin_8: asBin(bins.bin_8, 'bin_8'),
|
|
116
|
+
bin_9: asBin(bins.bin_9, 'bin_9'),
|
|
117
|
+
bin_10: asBin(bins.bin_10, 'bin_10'),
|
|
118
|
+
bin_11: asBin(bins.bin_11, 'bin_11'),
|
|
119
|
+
bin_12: asBin(bins.bin_12, 'bin_12'),
|
|
120
|
+
bin_13: asBin(bins.bin_13, 'bin_13'),
|
|
121
|
+
bin_14: asBin(bins.bin_14, 'bin_14'),
|
|
122
|
+
bin_15: asBin(bins.bin_15, 'bin_15'),
|
|
123
|
+
bin_16: asBin(bins.bin_16, 'bin_16'),
|
|
124
|
+
bin_17: asBin(bins.bin_17, 'bin_17'),
|
|
125
|
+
bin_18: asBin(bins.bin_18, 'bin_18'),
|
|
126
|
+
bin_19: asBin(bins.bin_19, 'bin_19'),
|
|
127
|
+
bin_20: asBin(bins.bin_20, 'bin_20'),
|
|
128
|
+
bin_21: asBin(bins.bin_21, 'bin_21'),
|
|
129
|
+
bin_22: asBin(bins.bin_22, 'bin_22'),
|
|
130
|
+
bin_23: asBin(bins.bin_23, 'bin_23'),
|
|
131
|
+
bin_24: asBin(bins.bin_24, 'bin_24'),
|
|
132
|
+
bin_25: asBin(bins.bin_25, 'bin_25'),
|
|
133
|
+
bin_26: asBin(bins.bin_26, 'bin_26'),
|
|
134
|
+
bin_27: asBin(bins.bin_27, 'bin_27'),
|
|
135
|
+
bin_28: asBin(bins.bin_28, 'bin_28'),
|
|
136
|
+
bin_29: asBin(bins.bin_29, 'bin_29'),
|
|
137
|
+
bin_30: asBin(bins.bin_30, 'bin_30'),
|
|
138
|
+
bin_31: asBin(bins.bin_31, 'bin_31')
|
|
139
|
+
}
|
|
140
|
+
};
|
|
37
141
|
}
|
|
38
142
|
export async function pingPeer(requestOptions, peer) {
|
|
39
143
|
const response = await http(requestOptions, {
|
|
@@ -42,4 +146,41 @@ export async function pingPeer(requestOptions, peer) {
|
|
|
42
146
|
method: 'POST'
|
|
43
147
|
});
|
|
44
148
|
return response.data;
|
|
149
|
+
}
|
|
150
|
+
export function asBin(value, name) {
|
|
151
|
+
const bin = Types.asObject(value, {
|
|
152
|
+
name
|
|
153
|
+
});
|
|
154
|
+
if (!bin.disconnectedPeers) {
|
|
155
|
+
bin.disconnectedPeers = [];
|
|
156
|
+
}
|
|
157
|
+
if (!bin.connectedPeers) {
|
|
158
|
+
bin.connectedPeers = [];
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
population: Types.asNumber(bin.population, {
|
|
162
|
+
name: 'population'
|
|
163
|
+
}),
|
|
164
|
+
connected: Types.asNumber(bin.connected, {
|
|
165
|
+
name: 'connected'
|
|
166
|
+
}),
|
|
167
|
+
connectedPeers: Types.asArray(bin.connectedPeers, {
|
|
168
|
+
name: 'connectedPeers'
|
|
169
|
+
}).map(x => ({
|
|
170
|
+
address: Types.asString(Types.asObject(x, {
|
|
171
|
+
name: 'connectedPeer'
|
|
172
|
+
}).address, {
|
|
173
|
+
name: 'address'
|
|
174
|
+
})
|
|
175
|
+
})),
|
|
176
|
+
disconnectedPeers: Types.asArray(bin.disconnectedPeers, {
|
|
177
|
+
name: 'disconnectedPeers'
|
|
178
|
+
}).map(x => ({
|
|
179
|
+
address: Types.asString(Types.asObject(x, {
|
|
180
|
+
name: 'disconnectedPeer'
|
|
181
|
+
}).address, {
|
|
182
|
+
name: 'address'
|
|
183
|
+
})
|
|
184
|
+
}))
|
|
185
|
+
};
|
|
45
186
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { Types } from 'cafe-utility';
|
|
1
2
|
import { http } from "../../utils/http.js";
|
|
3
|
+
import { BZZ } from "../../utils/tokens.js";
|
|
4
|
+
import { asNumberString } from "../../utils/type.js";
|
|
2
5
|
const settlementsEndpoint = 'settlements';
|
|
3
6
|
/**
|
|
4
7
|
* Get amount of sent and received from settlements with a peer
|
|
@@ -11,7 +14,20 @@ export async function getSettlements(requestOptions, peer) {
|
|
|
11
14
|
url: `${settlementsEndpoint}/${peer}`,
|
|
12
15
|
responseType: 'json'
|
|
13
16
|
});
|
|
14
|
-
|
|
17
|
+
const body = Types.asObject(response.data, {
|
|
18
|
+
name: 'response.data'
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
peer: Types.asString(body.peer, {
|
|
22
|
+
name: 'peer'
|
|
23
|
+
}),
|
|
24
|
+
sent: BZZ.fromPLUR(asNumberString(body.sent, {
|
|
25
|
+
name: 'sent'
|
|
26
|
+
})),
|
|
27
|
+
received: BZZ.fromPLUR(asNumberString(body.received, {
|
|
28
|
+
name: 'received'
|
|
29
|
+
}))
|
|
30
|
+
};
|
|
15
31
|
}
|
|
16
32
|
/**
|
|
17
33
|
* Get settlements with all known peers and total amount sent or received
|
|
@@ -23,5 +39,33 @@ export async function getAllSettlements(requestOptions) {
|
|
|
23
39
|
url: settlementsEndpoint,
|
|
24
40
|
responseType: 'json'
|
|
25
41
|
});
|
|
26
|
-
|
|
42
|
+
const body = Types.asObject(response.data, {
|
|
43
|
+
name: 'response.data'
|
|
44
|
+
});
|
|
45
|
+
const totalSent = BZZ.fromPLUR(asNumberString(body.totalSent, {
|
|
46
|
+
name: 'totalSent'
|
|
47
|
+
}));
|
|
48
|
+
const totalReceived = BZZ.fromPLUR(asNumberString(body.totalReceived, {
|
|
49
|
+
name: 'totalReceived'
|
|
50
|
+
}));
|
|
51
|
+
const settlements = Types.asArray(body.settlements, {
|
|
52
|
+
name: 'settlements'
|
|
53
|
+
}).map(x => Types.asObject(x, {
|
|
54
|
+
name: 'settlement'
|
|
55
|
+
}));
|
|
56
|
+
return {
|
|
57
|
+
totalSent,
|
|
58
|
+
totalReceived,
|
|
59
|
+
settlements: settlements.map(x => ({
|
|
60
|
+
peer: Types.asString(x.peer, {
|
|
61
|
+
name: 'peer'
|
|
62
|
+
}),
|
|
63
|
+
sent: BZZ.fromPLUR(asNumberString(x.sent, {
|
|
64
|
+
name: 'sent'
|
|
65
|
+
})),
|
|
66
|
+
received: BZZ.fromPLUR(asNumberString(x.received, {
|
|
67
|
+
name: 'received'
|
|
68
|
+
}))
|
|
69
|
+
}))
|
|
70
|
+
};
|
|
27
71
|
}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { Types } from 'cafe-utility';
|
|
2
|
+
import { prepareRequestHeaders } from "../../utils/headers.js";
|
|
1
3
|
import { http } from "../../utils/http.js";
|
|
4
|
+
import { BZZ, DAI } from "../../utils/tokens.js";
|
|
5
|
+
import { asNumberString } from "../../utils/type.js";
|
|
6
|
+
import { TransactionId } from "../../utils/typed-bytes.js";
|
|
2
7
|
const STAKE_ENDPOINT = 'stake';
|
|
3
8
|
const REDISTRIBUTION_ENDPOINT = 'redistributionstate';
|
|
4
9
|
/**
|
|
@@ -12,7 +17,12 @@ export async function getStake(requestOptions) {
|
|
|
12
17
|
responseType: 'json',
|
|
13
18
|
url: `${STAKE_ENDPOINT}`
|
|
14
19
|
});
|
|
15
|
-
|
|
20
|
+
const body = Types.asObject(response.data, {
|
|
21
|
+
name: 'response.data'
|
|
22
|
+
});
|
|
23
|
+
return BZZ.fromPLUR(asNumberString(body.stakedAmount, {
|
|
24
|
+
name: 'stakedAmount'
|
|
25
|
+
}));
|
|
16
26
|
}
|
|
17
27
|
/**
|
|
18
28
|
* Stake given amount of tokens.
|
|
@@ -22,19 +32,18 @@ export async function getStake(requestOptions) {
|
|
|
22
32
|
* @param options
|
|
23
33
|
*/
|
|
24
34
|
export async function stake(requestOptions, amount, options) {
|
|
25
|
-
const
|
|
26
|
-
if (options?.gasPrice) {
|
|
27
|
-
headers['gas-price'] = options.gasPrice.toString();
|
|
28
|
-
}
|
|
29
|
-
if (options?.gasLimit) {
|
|
30
|
-
headers['gas-limit'] = options.gasLimit.toString();
|
|
31
|
-
}
|
|
32
|
-
await http(requestOptions, {
|
|
35
|
+
const repsonse = await http(requestOptions, {
|
|
33
36
|
method: 'post',
|
|
34
37
|
responseType: 'json',
|
|
35
38
|
url: `${STAKE_ENDPOINT}/${amount}`,
|
|
36
|
-
headers
|
|
39
|
+
headers: prepareRequestHeaders(null, options)
|
|
40
|
+
});
|
|
41
|
+
const body = Types.asObject(repsonse.data, {
|
|
42
|
+
name: 'response.data'
|
|
37
43
|
});
|
|
44
|
+
return new TransactionId(Types.asHexString(body.txHash, {
|
|
45
|
+
name: 'txHash'
|
|
46
|
+
}));
|
|
38
47
|
}
|
|
39
48
|
/**
|
|
40
49
|
* Get current status of node in redistribution game
|
|
@@ -47,5 +56,54 @@ export async function getRedistributionState(requestOptions) {
|
|
|
47
56
|
responseType: 'json',
|
|
48
57
|
url: REDISTRIBUTION_ENDPOINT
|
|
49
58
|
});
|
|
50
|
-
|
|
59
|
+
const body = Types.asObject(response.data, {
|
|
60
|
+
name: 'response.data'
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
minimumGasFunds: DAI.fromWei(asNumberString(body.minimumGasFunds, {
|
|
64
|
+
name: 'minimumGasFunds'
|
|
65
|
+
})),
|
|
66
|
+
hasSufficientFunds: Types.asBoolean(body.hasSufficientFunds, {
|
|
67
|
+
name: 'hasSufficientFunds'
|
|
68
|
+
}),
|
|
69
|
+
isFrozen: Types.asBoolean(body.isFrozen, {
|
|
70
|
+
name: 'isFrozen'
|
|
71
|
+
}),
|
|
72
|
+
isFullySynced: Types.asBoolean(body.isFullySynced, {
|
|
73
|
+
name: 'isFullySynced'
|
|
74
|
+
}),
|
|
75
|
+
phase: Types.asString(body.phase, {
|
|
76
|
+
name: 'phase'
|
|
77
|
+
}),
|
|
78
|
+
round: Types.asNumber(body.round, {
|
|
79
|
+
name: 'round'
|
|
80
|
+
}),
|
|
81
|
+
lastWonRound: Types.asNumber(body.lastWonRound, {
|
|
82
|
+
name: 'lastWonRound'
|
|
83
|
+
}),
|
|
84
|
+
lastPlayedRound: Types.asNumber(body.lastPlayedRound, {
|
|
85
|
+
name: 'lastPlayedRound'
|
|
86
|
+
}),
|
|
87
|
+
lastFrozenRound: Types.asNumber(body.lastFrozenRound, {
|
|
88
|
+
name: 'lastFrozenRound'
|
|
89
|
+
}),
|
|
90
|
+
lastSelectedRound: Types.asNumber(body.lastSelectedRound, {
|
|
91
|
+
name: 'lastSelectedRound'
|
|
92
|
+
}),
|
|
93
|
+
lastSampleDurationSeconds: Types.asNumber(body.lastSampleDurationSeconds, {
|
|
94
|
+
name: 'lastSampleDurationSeconds'
|
|
95
|
+
}),
|
|
96
|
+
block: Types.asNumber(body.block, {
|
|
97
|
+
name: 'block'
|
|
98
|
+
}),
|
|
99
|
+
reward: BZZ.fromPLUR(asNumberString(body.reward, {
|
|
100
|
+
name: 'reward'
|
|
101
|
+
})),
|
|
102
|
+
fees: DAI.fromWei(asNumberString(body.fees, {
|
|
103
|
+
name: 'fees'
|
|
104
|
+
})),
|
|
105
|
+
isHealthy: Types.asBoolean(body.isHealthy, {
|
|
106
|
+
name: 'isHealthy'
|
|
107
|
+
})
|
|
108
|
+
};
|
|
51
109
|
}
|