@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
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Binary, Elliptic } from 'cafe-utility';
|
|
2
|
+
import { Bytes } from "./bytes.js";
|
|
3
|
+
import { convertCidToReference, convertReferenceToCid } from "./cid.js"; // TODO: add JSdocs for each class
|
|
4
|
+
const ENCODER = new TextEncoder();
|
|
5
|
+
export class PrivateKey extends Bytes {
|
|
6
|
+
constructor(bytes) {
|
|
7
|
+
super(bytes, 32);
|
|
8
|
+
}
|
|
9
|
+
publicKey() {
|
|
10
|
+
const [x, y] = Elliptic.privateKeyToPublicKey(Binary.uint256ToNumber(this.bytes, 'BE'));
|
|
11
|
+
return new PublicKey(Binary.concatBytes(Binary.numberToUint256(x, 'BE'), Binary.numberToUint256(y, 'BE')));
|
|
12
|
+
}
|
|
13
|
+
sign(data) {
|
|
14
|
+
const digest = Binary.concatBytes(ENCODER.encode(`\x19Ethereum Signed Message:\n32`), Binary.keccak256(data instanceof Uint8Array ? data : ENCODER.encode(data)));
|
|
15
|
+
const [r, s, v] = Elliptic.signMessage(digest, Binary.uint256ToNumber(this.bytes, 'BE'));
|
|
16
|
+
return new Signature(Binary.concatBytes(Binary.numberToUint256(r, 'BE'), Binary.numberToUint256(s, 'BE'), new Uint8Array([Number(v)])));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
PrivateKey.LENGTH = 32;
|
|
20
|
+
export class PublicKey extends Bytes {
|
|
21
|
+
constructor(bytes) {
|
|
22
|
+
const b = new Bytes(bytes);
|
|
23
|
+
if (b.length === 33) {
|
|
24
|
+
const [x, y] = Elliptic.publicKeyFromCompressed(b.toUint8Array());
|
|
25
|
+
super(Binary.concatBytes(Binary.numberToUint256(x, 'BE'), Binary.numberToUint256(y, 'BE')), 64);
|
|
26
|
+
} else {
|
|
27
|
+
super(bytes, 64);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
address() {
|
|
31
|
+
const x = Binary.uint256ToNumber(this.bytes.slice(0, 32), 'BE');
|
|
32
|
+
const y = Binary.uint256ToNumber(this.bytes.slice(32, 64), 'BE');
|
|
33
|
+
return new EthAddress(Elliptic.publicKeyToAddress([x, y]));
|
|
34
|
+
}
|
|
35
|
+
toCompressedUint8Array() {
|
|
36
|
+
const x = Binary.uint256ToNumber(this.bytes.slice(0, 32), 'BE');
|
|
37
|
+
const y = Binary.uint256ToNumber(this.bytes.slice(32, 64), 'BE');
|
|
38
|
+
return Elliptic.compressPublicKey([x, y]);
|
|
39
|
+
}
|
|
40
|
+
toCompressedHex() {
|
|
41
|
+
return Binary.uint8ArrayToHex(this.toCompressedUint8Array());
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
PublicKey.LENGTH = 64;
|
|
45
|
+
export class EthAddress extends Bytes {
|
|
46
|
+
constructor(bytes) {
|
|
47
|
+
super(bytes, 20);
|
|
48
|
+
}
|
|
49
|
+
toChecksum() {
|
|
50
|
+
return Elliptic.checksumEncode(this.bytes);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
EthAddress.LENGTH = 20;
|
|
54
|
+
export class Identifier extends Bytes {
|
|
55
|
+
constructor(bytes) {
|
|
56
|
+
super(bytes, 32);
|
|
57
|
+
}
|
|
58
|
+
static fromString(value) {
|
|
59
|
+
return new Identifier(Binary.keccak256(ENCODER.encode(value)));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
Identifier.LENGTH = 32;
|
|
63
|
+
export class Reference extends Bytes {
|
|
64
|
+
constructor(bytes) {
|
|
65
|
+
if (typeof bytes === 'string' && bytes.startsWith('bah5')) {
|
|
66
|
+
const decoded = convertCidToReference(bytes);
|
|
67
|
+
super(decoded.reference.bytes, 32);
|
|
68
|
+
} else {
|
|
69
|
+
super(bytes, [32, 64]);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
toCid(type) {
|
|
73
|
+
return convertReferenceToCid(this.bytes, type);
|
|
74
|
+
}
|
|
75
|
+
static isValid(value) {
|
|
76
|
+
try {
|
|
77
|
+
new Reference(value);
|
|
78
|
+
return true;
|
|
79
|
+
} catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
Reference.LENGTH = 32;
|
|
85
|
+
export class TransactionId extends Bytes {
|
|
86
|
+
constructor(bytes) {
|
|
87
|
+
super(bytes, 32);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
TransactionId.LENGTH = 32;
|
|
91
|
+
export class Span extends Bytes {
|
|
92
|
+
constructor(bytes) {
|
|
93
|
+
super(bytes, 8);
|
|
94
|
+
}
|
|
95
|
+
static fromBigInt(number) {
|
|
96
|
+
return new Span(Binary.numberToUint64(number, 'LE'));
|
|
97
|
+
}
|
|
98
|
+
toBigInt() {
|
|
99
|
+
return Binary.uint64ToNumber(this.bytes, 'LE');
|
|
100
|
+
}
|
|
101
|
+
static fromSlice(bytes, start) {
|
|
102
|
+
return new Span(bytes.slice(start, start + Span.LENGTH));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
Span.LENGTH = 8;
|
|
106
|
+
export class PeerAddress extends Bytes {
|
|
107
|
+
constructor(bytes) {
|
|
108
|
+
super(bytes, 32);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
PeerAddress.LENGTH = 32;
|
|
112
|
+
export class BatchId extends Bytes {
|
|
113
|
+
constructor(bytes) {
|
|
114
|
+
super(bytes, 32);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
BatchId.LENGTH = 32;
|
|
118
|
+
export class Signature extends Bytes {
|
|
119
|
+
constructor(bytes) {
|
|
120
|
+
super(bytes, 65);
|
|
121
|
+
}
|
|
122
|
+
static fromSlice(bytes, start) {
|
|
123
|
+
return new Signature(bytes.slice(start, start + Signature.LENGTH));
|
|
124
|
+
}
|
|
125
|
+
recoverPublicKey(digest) {
|
|
126
|
+
const r = Binary.uint256ToNumber(this.bytes.slice(0, 32), 'BE');
|
|
127
|
+
const s = Binary.uint256ToNumber(this.bytes.slice(32, 64), 'BE');
|
|
128
|
+
const v = BigInt(this.bytes[64]);
|
|
129
|
+
const [x, y] = Elliptic.recoverPublicKey(Binary.concatBytes(ENCODER.encode(`\x19Ethereum Signed Message:\n32`), Binary.keccak256(digest instanceof Uint8Array ? digest : ENCODER.encode(digest))), r, s, v);
|
|
130
|
+
return new PublicKey(Binary.concatBytes(Binary.numberToUint256(x, 'BE'), Binary.numberToUint256(y, 'BE')));
|
|
131
|
+
}
|
|
132
|
+
isValid(digest, expectedAddress) {
|
|
133
|
+
const publicKey = this.recoverPublicKey(digest);
|
|
134
|
+
const address = publicKey.address();
|
|
135
|
+
return address.equals(expectedAddress);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
Signature.LENGTH = 65;
|
|
139
|
+
export class Topic extends Bytes {
|
|
140
|
+
constructor(bytes) {
|
|
141
|
+
super(bytes, 32);
|
|
142
|
+
}
|
|
143
|
+
static fromString(value) {
|
|
144
|
+
return new Topic(Binary.keccak256(ENCODER.encode(value)));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
Topic.LENGTH = 32;
|
|
148
|
+
export class FeedIndex extends Bytes {
|
|
149
|
+
constructor(bytes) {
|
|
150
|
+
super(bytes, 8);
|
|
151
|
+
}
|
|
152
|
+
static fromBigInt(number) {
|
|
153
|
+
return new FeedIndex(Binary.numberToUint64(number, 'BE'));
|
|
154
|
+
}
|
|
155
|
+
toBigInt() {
|
|
156
|
+
return Binary.uint64ToNumber(this.bytes, 'BE');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
FeedIndex.LENGTH = 8;
|
|
160
|
+
FeedIndex.MINUS_ONE = new FeedIndex(new Uint8Array(8).fill(0xff, 0, 8));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/mjs/utils/url.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { BeeArgumentError } from "./error.js";
|
|
2
|
-
import { isObject } from "./type.js";
|
|
3
|
-
function isNodeJsError(e) {
|
|
4
|
-
return isObject(e) && typeof e.code === 'string';
|
|
5
|
-
}
|
|
6
2
|
/**
|
|
7
3
|
* Validates that passed string is valid URL of Bee.
|
|
8
4
|
* We support only HTTP and HTTPS protocols.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// TODO: Remove this file after the issue is fixed
|
|
2
|
+
export function normalizeBatchTTL(batchTTL) {
|
|
3
|
+
if (!Number.isInteger(batchTTL)) {
|
|
4
|
+
return 1;
|
|
5
|
+
}
|
|
6
|
+
if (batchTTL < 1) {
|
|
7
|
+
return 1;
|
|
8
|
+
}
|
|
9
|
+
if (batchTTL > 315569260) {
|
|
10
|
+
return 315569260;
|
|
11
|
+
}
|
|
12
|
+
return batchTTL;
|
|
13
|
+
}
|
|
14
|
+
export function normalizeCurrentPrice(currentPrice) {
|
|
15
|
+
if (!Number.isInteger(currentPrice)) {
|
|
16
|
+
return 24000;
|
|
17
|
+
}
|
|
18
|
+
if (currentPrice < 24000) {
|
|
19
|
+
return 24000;
|
|
20
|
+
}
|
|
21
|
+
return currentPrice;
|
|
22
|
+
}
|