@leofcoin/messages 1.4.8 → 1.4.9

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.
@@ -0,0 +1,34 @@
1
+ import TransactionMessage from './transaction.js';
2
+ import ValidatorMessage from './validator.js';
3
+ import { BigNumber } from '@leofcoin/utils';
4
+ import { messageInput } from '../types.js';
5
+ export default class BlockMessage {
6
+ #private;
7
+ decoded: {
8
+ index: Number;
9
+ previousHash: String;
10
+ timestamp: String;
11
+ reward: BigNumber;
12
+ fees: BigNumber;
13
+ transactions: TransactionMessage['decoded'][];
14
+ validators: ValidatorMessage['decoded'][];
15
+ };
16
+ encoded: any;
17
+ get messageName(): string;
18
+ constructor(buffer: messageInput);
19
+ init(buffer: any): Promise<this>;
20
+ create(decoded: any): any;
21
+ encode(decoded?: any): Uint8Array;
22
+ decode(encoded?: any): {
23
+ index: Number;
24
+ previousHash: String;
25
+ timestamp: String;
26
+ reward: BigNumber;
27
+ fees: BigNumber;
28
+ transactions: import("@leofcoin/types").Transaction[];
29
+ validators: {
30
+ address: string;
31
+ reward: BigNumber;
32
+ }[];
33
+ };
34
+ }
@@ -0,0 +1,46 @@
1
+ import protobuf from 'protobufjs';
2
+
3
+ class BlockMessage {
4
+ // @ts-ignore
5
+ decoded;
6
+ encoded;
7
+ get messageName() {
8
+ return 'BlockMessage';
9
+ }
10
+ #message;
11
+ constructor(buffer) {
12
+ if (buffer instanceof BlockMessage)
13
+ return buffer;
14
+ return this.init(buffer);
15
+ // super(buffer, proto, { name })
16
+ }
17
+ async init(buffer) {
18
+ const root = await protobuf.load('./exports/proto-block.proto');
19
+ // Obtain a message type
20
+ this.#message = root.lookupType('LeofcoinMessages.BlockMessage');
21
+ if (buffer instanceof Object) {
22
+ this.decoded = buffer;
23
+ this.encode(this.decoded);
24
+ }
25
+ else {
26
+ this.encoded = buffer;
27
+ this.decode(this.encoded);
28
+ }
29
+ return this;
30
+ }
31
+ create(decoded) {
32
+ return this.#message.create(decoded);
33
+ }
34
+ encode(decoded) {
35
+ decoded = decoded || this.decoded;
36
+ this.encoded = this.#message.encode(this.create(decoded)).finish();
37
+ return this.encoded;
38
+ }
39
+ decode(encoded) {
40
+ encoded = encoded || this.encoded;
41
+ this.decoded = this.#message.decode(encoded);
42
+ return this.decoded;
43
+ }
44
+ }
45
+
46
+ export { BlockMessage as default };
@@ -0,0 +1,30 @@
1
+ package LeofcoinMessages;
2
+ syntax = "proto3";
3
+
4
+ message TransactionMessage {
5
+ float timestamp = 1;
6
+ string from = 2;
7
+ string to = 3;
8
+ string method = 4;
9
+ repeated string params = 5;
10
+ bytes signature = 6;
11
+ optional float nonce = 7;
12
+ optional bool depends_on = 8;
13
+ optional bool priority = 9;
14
+ }
15
+
16
+
17
+ message ValidatorMessage {
18
+ string address = 1;
19
+ string reward = 2;
20
+ }
21
+
22
+ message BlockMessage {
23
+ float index = 1;
24
+ string previous_hash = 2;
25
+ float timestamp = 3;
26
+ string reward = 4;
27
+ string fees = 5;
28
+ repeated TransactionMessage transactions = 6;
29
+ repeated ValidatorMessage validators = 7;
30
+ }
package/package.json CHANGED
@@ -1,66 +1,68 @@
1
- {
2
- "name": "@leofcoin/messages",
3
- "version": "1.4.8",
4
- "description": "",
5
- "exports": {
6
- ".": {
7
- "import": "./exports/index.js",
8
- "types": "./exports/index.d.ts"
9
- },
10
- "./block": {
11
- "import": "./exports/block.js",
12
- "types": "./exports/block.d.ts"
13
- },
14
- "./bw-request": {
15
- "import": "./exports/bw-request.js",
16
- "types": "./exports/bw-request.d.ts"
17
- },
18
- "./bw": {
19
- "import": "./exports/bw.js",
20
- "types": "./exports/bw.d.ts"
21
- },
22
- "./contract": {
23
- "import": "./exports/contract.js",
24
- "types": "./exports/contract.d.ts"
25
- },
26
- "./last-block-request": {
27
- "import": "./exports/last-block-request.js",
28
- "types": "./exports/last-block-request.d.ts"
29
- },
30
- "./last-block": {
31
- "import": "./exports/last-block.js",
32
- "types": "./exports/last-block.d.ts"
33
- },
34
- "./transaction": {
35
- "import": "./exports/transaction.js",
36
- "types": "./exports/transaction.d.ts"
37
- },
38
- "./state": {
39
- "import": "./exports/state.js",
40
- "types": "./exports/state.d.ts"
41
- }
42
- },
43
- "files": [
44
- "exports"
45
- ],
46
- "type": "module",
47
- "scripts": {
48
- "prettier": "prettier src --config ./../../.prettierrc --write",
49
- "test": "node test",
50
- "build": "rollup -c"
51
- },
52
- "keywords": [],
53
- "author": "",
54
- "license": "MIT",
55
- "devDependencies": {
56
- "@rollup/plugin-typescript": "^11.0.0",
57
- "rollup": "^3.10.0",
58
- "tslib": "^2.4.1",
59
- "typescript": "^5.2.2"
60
- },
61
- "dependencies": {
62
- "@leofcoin/codec-format-interface": "^1.6.18",
63
- "@leofcoin/utils": "^1.1.5",
64
- "@vandeurenglenn/easy-worker": "^1.0.2"
65
- }
66
- }
1
+ {
2
+ "name": "@leofcoin/messages",
3
+ "version": "1.4.9",
4
+ "description": "",
5
+ "private": false,
6
+ "exports": {
7
+ ".": {
8
+ "import": "./exports/index.js",
9
+ "types": "./exports/index.d.ts"
10
+ },
11
+ "./block": {
12
+ "import": "./exports/block.js",
13
+ "types": "./exports/block.d.ts"
14
+ },
15
+ "./bw-request": {
16
+ "import": "./exports/bw-request.js",
17
+ "types": "./exports/bw-request.d.ts"
18
+ },
19
+ "./bw": {
20
+ "import": "./exports/bw.js",
21
+ "types": "./exports/bw.d.ts"
22
+ },
23
+ "./contract": {
24
+ "import": "./exports/contract.js",
25
+ "types": "./exports/contract.d.ts"
26
+ },
27
+ "./last-block-request": {
28
+ "import": "./exports/last-block-request.js",
29
+ "types": "./exports/last-block-request.d.ts"
30
+ },
31
+ "./last-block": {
32
+ "import": "./exports/last-block.js",
33
+ "types": "./exports/last-block.d.ts"
34
+ },
35
+ "./transaction": {
36
+ "import": "./exports/transaction.js",
37
+ "types": "./exports/transaction.d.ts"
38
+ },
39
+ "./state": {
40
+ "import": "./exports/state.js",
41
+ "types": "./exports/state.d.ts"
42
+ }
43
+ },
44
+ "files": [
45
+ "exports"
46
+ ],
47
+ "type": "module",
48
+ "scripts": {
49
+ "prettier": "prettier src --config ./../../.prettierrc --write",
50
+ "test": "node test",
51
+ "build": "rollup -c"
52
+ },
53
+ "keywords": [],
54
+ "author": "",
55
+ "license": "MIT",
56
+ "devDependencies": {
57
+ "@rollup/plugin-typescript": "^11.0.0",
58
+ "rollup": "^3.10.0",
59
+ "tslib": "^2.4.1",
60
+ "typescript": "^5.2.2"
61
+ },
62
+ "dependencies": {
63
+ "@leofcoin/codec-format-interface": "^1.6.18",
64
+ "@leofcoin/utils": "^1.1.14",
65
+ "@vandeurenglenn/easy-worker": "^1.0.2",
66
+ "protobufjs": "^7.2.6"
67
+ }
68
+ }