godprotocol 1.0.796 → 1.0.798
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/.babelrc +3 -0
- package/Index.js +8 -21
- package/Loader_sequence/main.js +259 -358
- package/Objects/Account.js +178 -337
- package/Objects/Block.js +53 -58
- package/Objects/Blockweb.js +27 -34
- package/Objects/Chain.js +115 -118
- package/Objects/Explorer.js +30 -37
- package/Objects/Filesystem.js +95 -80
- package/Objects/Frame.js +43 -48
- package/Objects/Manager.js +68 -77
- package/Objects/Opcodes.js +32 -97
- package/Objects/Oracle.js +23 -39
- package/Objects/Virtual_machine.js +125 -261
- package/build/Account.js +162 -0
- package/build/Block.js +65 -0
- package/build/Blockweb.js +36 -0
- package/build/Chain.js +119 -0
- package/build/Explorer.js +47 -0
- package/build/Filesystem.js +127 -0
- package/build/Frame.js +52 -0
- package/build/Index.js +15 -0
- package/build/Manager.js +99 -0
- package/build/Opcodes.js +39 -0
- package/build/Oracle.js +42 -0
- package/build/Virtual_machine.js +128 -0
- package/build/add.js +41 -0
- package/build/create_server.js +119 -0
- package/build/framer.js +57 -0
- package/build/functions.js +82 -0
- package/build/hash.js +14 -0
- package/build/jmp.js +19 -0
- package/build/main.js +283 -0
- package/build/opcodes.js +42 -0
- package/build/privacy.js +27 -0
- package/build/services.js +50 -0
- package/build/std.js +11 -0
- package/framer.js +39 -31
- package/opcodes/add.js +14 -40
- package/opcodes/jmp.js +10 -14
- package/opcodes/std.js +5 -9
- package/opcodes.js +25 -29
- package/package.json +3 -3
- package/readme.md +71 -95
- package/types/Account.d.ts +73 -0
- package/types/Block.d.ts +22 -0
- package/types/Blockweb.d.ts +14 -0
- package/types/Chain.d.ts +35 -0
- package/types/Explorer.d.ts +9 -0
- package/types/Filesystem.d.ts +23 -0
- package/types/Frame.d.ts +14 -0
- package/types/Manager.d.ts +21 -0
- package/types/Opcodes.d.ts +11 -0
- package/types/Oracle.d.ts +17 -0
- package/types/Virtual_machine.d.ts +20 -0
- package/types/index.d.ts +4 -0
- package/utils/create_server.js +65 -622
- package/utils/functions.js +31 -43
- package/utils/hash.js +10 -11
- package/utils/privacy.js +10 -15
- package/utils/services.js +32 -33
package/opcodes.js
CHANGED
|
@@ -1,42 +1,38 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _add = require("./opcodes/add");
|
|
8
|
-
var _jmp = require("./opcodes/jmp");
|
|
9
|
-
var _std = require("./opcodes/std");
|
|
10
|
-
var _services = require("./utils/services");
|
|
11
1
|
// import { socket_send } from "./Socket";
|
|
2
|
+
import { ops } from "./opcodes/add";
|
|
3
|
+
import { hold, jmp, jmp_if } from "./opcodes/jmp";
|
|
4
|
+
import { stdout } from "./opcodes/std";
|
|
5
|
+
import { post_request } from "./utils/services";
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
const opcodes = (account) => {
|
|
8
|
+
let set = account.vm.set;
|
|
9
|
+
|
|
10
|
+
ops.map((op) => {
|
|
11
|
+
set(op.name, (args) => {
|
|
17
12
|
if (!args) return;
|
|
13
|
+
|
|
18
14
|
try {
|
|
19
|
-
|
|
15
|
+
let result = eval(`${args.op0} ${op.sign} ${args.op1}`);
|
|
16
|
+
|
|
20
17
|
return result;
|
|
21
18
|
} catch (e) {
|
|
22
19
|
console.log(e.message);
|
|
23
20
|
}
|
|
24
21
|
});
|
|
25
22
|
});
|
|
26
|
-
|
|
27
|
-
set("
|
|
28
|
-
set("
|
|
29
|
-
set("
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
|
|
24
|
+
set("hold", hold);
|
|
25
|
+
set("jmp", jmp);
|
|
26
|
+
set("jmp_if", jmp_if);
|
|
27
|
+
|
|
28
|
+
set("send", (data) => post_request(data, account.vm.stdin));
|
|
32
29
|
// set("socket_send", socket_send);
|
|
33
30
|
|
|
34
|
-
set("stdout",
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
31
|
+
set("stdout", stdout);
|
|
32
|
+
|
|
33
|
+
["run", "load", "parse", "create_account"].map((op) =>
|
|
34
|
+
set(op, (arg) => arg && arg.op0 && account[op](arg && arg.op0))
|
|
35
|
+
);
|
|
40
36
|
};
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
|
|
38
|
+
export default opcodes;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "godprotocol",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.798",
|
|
4
4
|
"description": "A data mediator.",
|
|
5
5
|
"main": "Index.js",
|
|
6
|
-
"types": "index.d.ts",
|
|
6
|
+
"types": "types/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
9
|
"start": "nodemon -r esm Index.js",
|
|
10
|
-
"prepack": "npmignore
|
|
10
|
+
"prepack": "npmignore"
|
|
11
11
|
},
|
|
12
12
|
"author": "Savvy",
|
|
13
13
|
"license": "ISC",
|
package/readme.md
CHANGED
|
@@ -10,135 +10,111 @@ npm install godprotocol --save
|
|
|
10
10
|
|
|
11
11
|
### Brief Description
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
This package is developing a framework for the Web 4.0
|
|
14
|
+
It is to help provide multiple compute instances for servers and also data flexibility and transactions.
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
You can get overall comprehension in just 4 method calls.
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
- [**/load:**](#load) Load instruction sequence to the server.
|
|
19
|
-
- [**/run:**](#run) Execute the instruction sequence.
|
|
20
|
-
- [**/parse:**](#parse) Retrieve and process results from the server.
|
|
18
|
+
## Create an Account
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
## /create_account
|
|
25
|
-
|
|
26
|
-
The /create_account endpoint creates a new account in the God Protocol. This account is necessary for using other features and handling data and tasks in the decentralised system.
|
|
27
|
-
|
|
28
|
-
### Example Usage
|
|
20
|
+
Accounts comes with their own VM, thereby providing concurrency on processes being executed.
|
|
29
21
|
|
|
30
22
|
```js
|
|
31
|
-
import
|
|
23
|
+
import start from "godprotocol";
|
|
32
24
|
|
|
33
|
-
|
|
34
|
-
let
|
|
25
|
+
// Create an initial account
|
|
26
|
+
let initiator = start(`name`, { private: true || false });
|
|
27
|
+
// if private is set to `true`, communication to the account instance must be validated by sigining with the private key.
|
|
28
|
+
// N.B your keypairs are generated offline.
|
|
35
29
|
```
|
|
36
30
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
| Parameter | Possible Values | Default Value | Type | Description |
|
|
43
|
-
| --------- | ---------------- | ------------- | ------- | ------------------------------------------------------------- |
|
|
44
|
-
| `name` | Any string | `initiator` | string | The name to associate with the new account. |
|
|
45
|
-
| `meta` | `{private:true}` | `{}` | object | Optional. Configuration object for account settings. |
|
|
46
|
-
| `private` | `true`, `false` | `false` | boolean | Nested in `meta`. Specifies if the account should be private. |
|
|
31
|
+
| `Parameters` | Type | Description |
|
|
32
|
+
| ------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `name` | string | Account names can be any valid variable string. Such as a Public Key |
|
|
34
|
+
| `private` | object:boolean | default `false`, if set to true, then any payloads sent to the account must be signed using the private key belonging to the account `name` |
|
|
47
35
|
|
|
48
|
-
##
|
|
36
|
+
## Load Instructions
|
|
49
37
|
|
|
50
|
-
The
|
|
38
|
+
The load method is the second in the pipeline,
|
|
39
|
+
It is used to set your programs into the network web,
|
|
40
|
+
where its data can continue to be accessed, and subsequent
|
|
41
|
+
calls can be made on the loaded program.
|
|
51
42
|
|
|
52
|
-
###
|
|
43
|
+
### Usage
|
|
53
44
|
|
|
54
45
|
```js
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
instructions: ["
|
|
58
|
-
account:
|
|
46
|
+
initiator.load(
|
|
47
|
+
{
|
|
48
|
+
instructions: ["link Account/initiator/Datatypes/Number", "write 7", "pop"],
|
|
49
|
+
account: `public_key`,
|
|
59
50
|
},
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
// Callback function logic
|
|
63
|
-
},
|
|
64
|
-
});
|
|
51
|
+
cb
|
|
52
|
+
);
|
|
65
53
|
```
|
|
66
54
|
|
|
67
|
-
|
|
68
|
-
| ---------------------- | ------------------------------------------------------------------------------------------ | ----------------- | ---------------------- | ----------------------------------------------------------------- |
|
|
69
|
-
| `program` | `{ instructions: [], account: "" }` | None | object | Object containing program instructions and associated account. |
|
|
70
|
-
| `program.instructions` | Array of [`instructions`](https://godprotocol-web.vercel.app/loader_sequence#instructions) | [] | array | Array of program instructions. |
|
|
71
|
-
| `program.account` | Any string | `"initiator"` | string | Associated account for program execution. |
|
|
72
|
-
| `signature` | String | None | string | Optional. Signature for private account access. |
|
|
73
|
-
| `callback` | Function or `account.run{}` | None | `function` or `object` | Optional. Function to call upon completion of the load operation. |
|
|
55
|
+
Type `method`
|
|
74
56
|
|
|
75
|
-
|
|
76
|
-
|
|
57
|
+
| `Parameters` | Type | Destructure | Description |
|
|
58
|
+
| ------------ | -------- | -------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
59
|
+
| `program` | object | `instructions` | An array of opcode-operands generated by the [`Loader Sequence`](https://godprotocol-web.vercel.app/loader_sequence) |
|
|
60
|
+
| | | `account` | Account instance to load and execute the program in. |
|
|
61
|
+
| `cb` | function | | A function that is called with the blocks mined during the execution. |
|
|
77
62
|
|
|
78
|
-
##
|
|
63
|
+
## Run Program
|
|
79
64
|
|
|
80
|
-
The
|
|
65
|
+
The run is technically the second in the pipeline.
|
|
81
66
|
|
|
82
|
-
###
|
|
67
|
+
### Usage
|
|
83
68
|
|
|
84
69
|
```js
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
physical_address: "
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
},
|
|
91
|
-
signature: "signature_string",
|
|
92
|
-
callback: () => {
|
|
93
|
-
// Callback function logic
|
|
70
|
+
initiator.run(
|
|
71
|
+
{
|
|
72
|
+
physical_address: "Account/initiator/Datatypes/Number", // This points to a chain
|
|
73
|
+
query: { blocks: 0 }, // Basically saying, index 0 block in physical_address chain, run again its instructions.
|
|
74
|
+
account: `public_key`,
|
|
94
75
|
},
|
|
95
|
-
|
|
76
|
+
cb
|
|
77
|
+
);
|
|
78
|
+
// N.B If query is missing, then VM starts execution from the block-index-0
|
|
96
79
|
```
|
|
97
80
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
| `
|
|
101
|
-
|
|
|
102
|
-
| `payload
|
|
103
|
-
| `
|
|
104
|
-
|
|
|
105
|
-
| `
|
|
81
|
+
Type `method`
|
|
82
|
+
|
|
83
|
+
| `Parameters` | Type | Destructure | Description |
|
|
84
|
+
| ------------ | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
85
|
+
| `payload` | object | `physical_address` | [`Physical Addresses`](https://godprotocol-web.vercel.app/physical_address) are logical namespace locations of tokens. They are derived from the high-level representation of the program's instructions. |
|
|
86
|
+
| | object | `query` | A valid blockweb explorer query, you can read the explorer documentation [here](https://godprotocol-web.vercel.app/explorer) |
|
|
87
|
+
| | string | `account` | Account instance to execute the instructions in. |
|
|
88
|
+
| `cb` | function | | A function that is called with the blocks mined during the execution. |
|
|
106
89
|
|
|
107
|
-
|
|
108
|
-
The /run endpoint in the God Protocol framework allows users to execute a program with a specified payload, which includes the physical address (`payload.physical_address`), associated account (`payload.account`), and query (`payload.query`). If the account is private, a payload `signature` is required. An optional `callback` function can be provided to handle completion events, which may include further execution instructions (`account.run`).
|
|
109
|
-
If (`query`) is missing, then the most recent block's program in the chain is executed.
|
|
90
|
+
## Parse Result
|
|
110
91
|
|
|
111
|
-
|
|
92
|
+
The parse is technically the third of the pipeline. It takes like parameters as the `run` method.
|
|
112
93
|
|
|
113
|
-
|
|
94
|
+
### Usage
|
|
114
95
|
|
|
115
|
-
|
|
96
|
+
It is used to retrieve blocks and chains, and also extract their properties.
|
|
116
97
|
|
|
117
98
|
```js
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
physical_address: "
|
|
121
|
-
|
|
122
|
-
|
|
99
|
+
initiator.parse(
|
|
100
|
+
{
|
|
101
|
+
physical_address: "Account/initiator/Datatypes/Number", // This points to a chain
|
|
102
|
+
query: { blocks: 0 }, // Basically saying, index 0 block in physical_address chain, retrieve it.
|
|
103
|
+
account: `public_key`,
|
|
123
104
|
},
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
},
|
|
128
|
-
});
|
|
105
|
+
cb
|
|
106
|
+
);
|
|
107
|
+
// N.B If query isn't provided, then you parse the chain.
|
|
129
108
|
```
|
|
130
109
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
| `
|
|
134
|
-
|
|
|
135
|
-
| `payload
|
|
136
|
-
| `
|
|
137
|
-
|
|
|
138
|
-
| `
|
|
139
|
-
|
|
140
|
-
**Description:**
|
|
141
|
-
The /parse endpoint in the God Protocol framework parses data from the specified payload, which includes the physical address (`payload.physical_address`), associated account (`payload.account`), and an optional query (`payload.query`). If the account is private, a payload `signature` is required. An optional `callback` function can be provided to handle completion events, which may include further execution instructions (`account.run`). This endpoint returns the matched block to the callback if a query is included, or the entire chain of the path if no query is provided.
|
|
110
|
+
Type `method`
|
|
111
|
+
|
|
112
|
+
| `Parameters` | Type | Destructure | Description |
|
|
113
|
+
| ------------ | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
114
|
+
| `payload` | object | `physical_address` | [`Physical Addresses`](https://godprotocol-web.vercel.app/physical_address) are logical namespace locations of tokens. They are derived from the high-level representation of the program's instructions. |
|
|
115
|
+
| | object | `query` | A valid blockweb explorer query, you can read the explorer documentation [here](https://godprotocol-web.vercel.app/explorer) |
|
|
116
|
+
| | string | `account` | Account instance to execute the instructions in. |
|
|
117
|
+
| `cb` | function | | A function that is called with the blocks mined during the execution. |
|
|
142
118
|
|
|
143
119
|
See the [package source](https://github.com/immanuel-savvy/godprotocol.git) for more details.
|
|
144
120
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import Loader_sequence from "../Loader_sequence/main";
|
|
2
|
+
import Filesystem from "./Filesystem";
|
|
3
|
+
import Virtual_machine from "./Virtual_machine";
|
|
4
|
+
|
|
5
|
+
interface Meta {
|
|
6
|
+
private?: boolean;
|
|
7
|
+
manager?: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface Program {
|
|
11
|
+
instructions: string[];
|
|
12
|
+
account: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface LoadPayload {
|
|
16
|
+
program: Program;
|
|
17
|
+
signature: string;
|
|
18
|
+
callback?: (data: any) => void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface ParsePayload {
|
|
22
|
+
payload: any;
|
|
23
|
+
signature: string;
|
|
24
|
+
callback?: (data: any) => void;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface RunRequest {
|
|
28
|
+
payload: any;
|
|
29
|
+
signature: string;
|
|
30
|
+
callback?: (data: any) => void;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface AccountPayload {
|
|
34
|
+
name: string;
|
|
35
|
+
meta?: Meta;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface EndpointPayload {
|
|
39
|
+
[key: string]: any;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
declare class Account extends Filesystem {
|
|
43
|
+
name: string;
|
|
44
|
+
private: boolean;
|
|
45
|
+
manager: any;
|
|
46
|
+
account: Account;
|
|
47
|
+
physical_address: string;
|
|
48
|
+
compiler: Loader_sequence;
|
|
49
|
+
chain: any;
|
|
50
|
+
vm: Virtual_machine;
|
|
51
|
+
mine_buffer: Record<string, any>;
|
|
52
|
+
|
|
53
|
+
constructor(name: string, meta?: Meta);
|
|
54
|
+
|
|
55
|
+
get_account(name: string): Account;
|
|
56
|
+
manage_buffer(callback?: (data: any) => void): string;
|
|
57
|
+
buff(block: any, pid: string): void;
|
|
58
|
+
flush_buffer(pid: string): void;
|
|
59
|
+
load(payload: LoadPayload): void;
|
|
60
|
+
parse(payload: ParsePayload): void;
|
|
61
|
+
run(request: RunRequest): void;
|
|
62
|
+
run_callback(callback: any, payload: any): void;
|
|
63
|
+
validate(
|
|
64
|
+
payload: any,
|
|
65
|
+
signature: string,
|
|
66
|
+
callback?: (data: any) => void
|
|
67
|
+
): boolean;
|
|
68
|
+
stringify(str?: boolean): string | object;
|
|
69
|
+
create_account(payload: AccountPayload): Account;
|
|
70
|
+
endpoint(endpoint: string, payload: EndpointPayload): void;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export default Account;
|
package/types/Block.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Chain from "./Chain"; // Adjust the import according to your project structure
|
|
2
|
+
|
|
3
|
+
declare class Block {
|
|
4
|
+
chain: Chain;
|
|
5
|
+
data: any;
|
|
6
|
+
metadata: Record<string, any>;
|
|
7
|
+
children: Block[];
|
|
8
|
+
index: number;
|
|
9
|
+
previous_hash?: string;
|
|
10
|
+
hash?: string;
|
|
11
|
+
cursor?: any;
|
|
12
|
+
datapath?: string;
|
|
13
|
+
timelapse?: any;
|
|
14
|
+
|
|
15
|
+
constructor(chain: Chain);
|
|
16
|
+
|
|
17
|
+
generate_hash(): void;
|
|
18
|
+
store(no_curs?: boolean): void;
|
|
19
|
+
stringify(str?: boolean): string | object;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default Block;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Chain from "./Chain";
|
|
2
|
+
|
|
3
|
+
declare class Blockweb {
|
|
4
|
+
mgr: any;
|
|
5
|
+
physical_addresses: Record<string, string>;
|
|
6
|
+
chains: Record<string, Chain>;
|
|
7
|
+
|
|
8
|
+
constructor(mgr: any);
|
|
9
|
+
|
|
10
|
+
get(addr: string): Chain | undefined;
|
|
11
|
+
set(parent: any, name: string): Chain;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default Blockweb;
|
package/types/Chain.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import Block from "./Block";
|
|
2
|
+
import Explorer from "./Explorer";
|
|
3
|
+
|
|
4
|
+
declare class Chain extends Explorer {
|
|
5
|
+
parent: any;
|
|
6
|
+
account: any;
|
|
7
|
+
name: string;
|
|
8
|
+
physical_address: string;
|
|
9
|
+
pending_children: Block[];
|
|
10
|
+
connections: Block[];
|
|
11
|
+
blocks: Block[];
|
|
12
|
+
txs: any[];
|
|
13
|
+
height: number;
|
|
14
|
+
cursor: number;
|
|
15
|
+
cursors: number[];
|
|
16
|
+
buffs: any[];
|
|
17
|
+
start_time?: number;
|
|
18
|
+
hash: string;
|
|
19
|
+
|
|
20
|
+
constructor(parent: any, name?: string);
|
|
21
|
+
|
|
22
|
+
append_buffer(): void;
|
|
23
|
+
set_cursor(cursor: number): void;
|
|
24
|
+
get_buffer(): any;
|
|
25
|
+
generate_hash(): void;
|
|
26
|
+
get_block(index: number): Block | undefined;
|
|
27
|
+
add_tx(instruction: any): void;
|
|
28
|
+
mine(vm: any, no_curs?: boolean): Block;
|
|
29
|
+
add_block(block: Block): void;
|
|
30
|
+
get_latest_block(): Block | undefined;
|
|
31
|
+
stringify(str?: boolean): string | Record<string, any>;
|
|
32
|
+
add_chain(name: string): Chain;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export default Chain;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare class Filesystem {
|
|
2
|
+
base_address: string;
|
|
3
|
+
physical_address: string;
|
|
4
|
+
name: string;
|
|
5
|
+
hash: string;
|
|
6
|
+
account: any;
|
|
7
|
+
manager: any;
|
|
8
|
+
|
|
9
|
+
constructor();
|
|
10
|
+
|
|
11
|
+
parse_path(path: string): any;
|
|
12
|
+
read(datapath: string): any;
|
|
13
|
+
save(content: any, chain: any, just_obj?: boolean): string | object;
|
|
14
|
+
data_addr(type: string): string;
|
|
15
|
+
get_type(chain: any): string;
|
|
16
|
+
write(arg: any, context: any): void;
|
|
17
|
+
name_hash(): void;
|
|
18
|
+
set_paths(chain: any): void;
|
|
19
|
+
add_chain(name: string, parent: any): any;
|
|
20
|
+
account_chain(account: any): any;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default Filesystem;
|
package/types/Frame.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare class Frame {
|
|
2
|
+
parent: Frame | null;
|
|
3
|
+
object: any;
|
|
4
|
+
children: Frame[];
|
|
5
|
+
instructions: (string | Frame)[];
|
|
6
|
+
|
|
7
|
+
constructor(object: any, parent?: Frame | null);
|
|
8
|
+
|
|
9
|
+
frame(object: any): Frame;
|
|
10
|
+
to_instruction(): void;
|
|
11
|
+
flatten_instructions(): string[];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default Frame;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Account from "./Account";
|
|
2
|
+
import Blockweb from "./Blockweb";
|
|
3
|
+
import Oracle from "./Oracle";
|
|
4
|
+
|
|
5
|
+
declare class Manager {
|
|
6
|
+
accounts: { [key: string]: Account };
|
|
7
|
+
running: number;
|
|
8
|
+
tracks: { [key: string]: any };
|
|
9
|
+
web: Blockweb;
|
|
10
|
+
oracle: Oracle;
|
|
11
|
+
clock: NodeJS.Timeout | null;
|
|
12
|
+
|
|
13
|
+
constructor();
|
|
14
|
+
|
|
15
|
+
start_clock(): void;
|
|
16
|
+
get_account(name: string): Account | undefined;
|
|
17
|
+
add_account(name: string, meta?: { private?: boolean }): Account;
|
|
18
|
+
push(program: { sequence: string[]; account: Account; pid: string }): void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default Manager;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare class Opcodes {
|
|
2
|
+
opcodes: { [key: string]: (args?: any) => any };
|
|
3
|
+
|
|
4
|
+
constructor();
|
|
5
|
+
|
|
6
|
+
set(opcode: string, circuit: (args?: any) => any): void;
|
|
7
|
+
prepare_operation(opcode: string, context: any): void;
|
|
8
|
+
stdin(object: any, cb?: () => void): void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default Opcodes;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
|
|
3
|
+
declare class Oracle {
|
|
4
|
+
fs: typeof fs;
|
|
5
|
+
mgr: any;
|
|
6
|
+
datapaths: { [key: string]: { type: string; obj: any } };
|
|
7
|
+
|
|
8
|
+
constructor(mgr: any);
|
|
9
|
+
|
|
10
|
+
set(path: string, data: { type: string; obj: any }): void;
|
|
11
|
+
|
|
12
|
+
get(path: string): { type: string; obj: any } | undefined;
|
|
13
|
+
|
|
14
|
+
write(addr: string, data: any, meta?: { encoding: string }): void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default Oracle;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Opcodes from "./Opcodes";
|
|
2
|
+
|
|
3
|
+
declare class Virtual_machine extends Opcodes {
|
|
4
|
+
account: any;
|
|
5
|
+
contexts: any[];
|
|
6
|
+
stack: any[];
|
|
7
|
+
track: any;
|
|
8
|
+
|
|
9
|
+
constructor(context: any);
|
|
10
|
+
|
|
11
|
+
get_context(index?: number): any;
|
|
12
|
+
|
|
13
|
+
parse_arg(arg: string, is_cursor: boolean): any;
|
|
14
|
+
|
|
15
|
+
split_instruction(instruction: string): { opcode: string; args: string };
|
|
16
|
+
|
|
17
|
+
execute(instruction: string, track: any): void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default Virtual_machine;
|
package/types/index.d.ts
ADDED