godprotocol 1.0.841 → 1.0.842
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/Index.js +15 -17
- package/Loader_sequence/main.js +447 -292
- package/Loader_sequence/repository.js +27 -43
- package/Objects/Account.js +262 -237
- package/Objects/Block.js +78 -76
- package/Objects/Blockweb.js +36 -40
- package/Objects/Chain.js +164 -157
- package/Objects/Explorer.js +36 -39
- package/Objects/Filesystem.js +99 -82
- package/Objects/Frame.js +43 -48
- package/Objects/Manager.js +115 -108
- package/Objects/Opcodes.js +44 -44
- package/Objects/Oracle.js +93 -129
- package/Objects/Virtual_machine.js +145 -145
- package/framer.js +42 -35
- package/opcodes/add.js +9 -25
- package/opcodes/indices.js +15 -14
- package/opcodes/jmp.js +7 -12
- package/opcodes/std.js +7 -13
- package/opcodes.js +41 -58
- package/package.json +2 -3
- package/utils/create_server.js +71 -106
- 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/Objects/Explorer.js
CHANGED
|
@@ -1,57 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
8
|
-
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
9
|
-
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
10
|
-
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
11
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
12
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
13
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
14
|
-
var Explorer = /*#__PURE__*/_createClass(function Explorer() {
|
|
15
|
-
var _this = this;
|
|
16
|
-
_classCallCheck(this, Explorer);
|
|
17
|
-
_defineProperty(this, "chain_props", ["blocks"]);
|
|
18
|
-
_defineProperty(this, "explore", function (query) {
|
|
1
|
+
class Explorer {
|
|
2
|
+
constructor() {}
|
|
3
|
+
|
|
4
|
+
chain_props = ["blocks"];
|
|
5
|
+
|
|
6
|
+
explore = (query) => {
|
|
19
7
|
if (!query) return;
|
|
8
|
+
|
|
20
9
|
if (query.startsWith("{")) query = query.slice(1, -1);
|
|
21
10
|
query = query.split(":");
|
|
11
|
+
|
|
22
12
|
query[0] = query[0].split(".");
|
|
23
|
-
|
|
13
|
+
|
|
14
|
+
let q2 = Number(query[1]),
|
|
24
15
|
prop;
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
|
|
17
|
+
if (this.chain_props.includes(query[0][0])) prop = query[0][0];
|
|
18
|
+
|
|
19
|
+
let obj;
|
|
27
20
|
if (isNaN(q2)) {
|
|
28
|
-
|
|
29
|
-
for (
|
|
30
|
-
|
|
21
|
+
let arr = this[prop || "connections"];
|
|
22
|
+
for (let b = 0; b < arr.length; b++) {
|
|
23
|
+
let blk = this.build_block(arr[b]);
|
|
31
24
|
if (blk.hash === query[1]) {
|
|
32
25
|
obj = blk;
|
|
33
26
|
break;
|
|
34
27
|
}
|
|
35
28
|
}
|
|
36
29
|
} else if (q2 >= 0) {
|
|
37
|
-
|
|
38
|
-
for (
|
|
39
|
-
|
|
40
|
-
if (
|
|
41
|
-
obj =
|
|
30
|
+
let arr = this[prop || "connections"];
|
|
31
|
+
for (let b = 0; b < arr.length; b++) {
|
|
32
|
+
let blk = this.build_block(arr[b]);
|
|
33
|
+
if (blk.index === q2) {
|
|
34
|
+
obj = blk;
|
|
42
35
|
break;
|
|
43
36
|
}
|
|
44
37
|
}
|
|
45
38
|
} else {
|
|
46
|
-
obj =
|
|
47
|
-
}
|
|
48
|
-
if (!prop) for (var q = 0; q < query[0].length; q++) {
|
|
49
|
-
var que = query[0][q];
|
|
50
|
-
if (!obj) break;
|
|
51
|
-
obj = obj[que];
|
|
39
|
+
obj = this.build_block(this[prop || "connections"].slice(q2)[0]);
|
|
52
40
|
}
|
|
41
|
+
|
|
42
|
+
if (!prop)
|
|
43
|
+
for (let q = 0; q < query[0].length; q++) {
|
|
44
|
+
let que = query[0][q];
|
|
45
|
+
|
|
46
|
+
if (!obj) break;
|
|
47
|
+
obj = obj[que];
|
|
48
|
+
}
|
|
49
|
+
|
|
53
50
|
return obj;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export default Explorer;
|
package/Objects/Filesystem.js
CHANGED
|
@@ -1,54 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var _this = this;
|
|
17
|
-
_classCallCheck(this, Filesystem);
|
|
18
|
-
_defineProperty(this, "parse_path", function (path) {
|
|
19
|
-
if (!path || path && !path.includes("/")) return path;
|
|
20
|
-
return _this.read(path);
|
|
21
|
-
});
|
|
22
|
-
_defineProperty(this, "read", function (datapath) {
|
|
1
|
+
import { hash } from "../utils/hash";
|
|
2
|
+
|
|
3
|
+
class Filesystem {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.root = process.env.ROOT || __dirname;
|
|
6
|
+
this.base_address = process.env.BASE_ADDRESS || "Accounts";
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
parse_path = (path) => {
|
|
10
|
+
if (!path || (path && !path.includes("/"))) return path;
|
|
11
|
+
|
|
12
|
+
return this.read(path);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
read = (datapath) => {
|
|
23
16
|
if (!datapath) return null;
|
|
24
|
-
|
|
17
|
+
|
|
18
|
+
let type_folder = this.account.manager.oracle.get(datapath);
|
|
19
|
+
|
|
25
20
|
if (!type_folder) return datapath;
|
|
26
|
-
|
|
21
|
+
|
|
22
|
+
let content;
|
|
27
23
|
if (type_folder.type === "twain") {
|
|
28
24
|
content = {};
|
|
29
|
-
for (
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
for (let prop in type_folder.obj) {
|
|
26
|
+
let val = type_folder.obj[prop];
|
|
27
|
+
|
|
28
|
+
content[this.parse_path(prop)] = this.parse_path(val);
|
|
32
29
|
}
|
|
33
30
|
} else if (type_folder.type === "array") {
|
|
34
31
|
content = [];
|
|
35
|
-
type_folder.obj.map(
|
|
36
|
-
content.push(
|
|
32
|
+
type_folder.obj.map((t) => {
|
|
33
|
+
content.push(this.parse_path(t));
|
|
37
34
|
});
|
|
38
35
|
} else content = type_folder.obj;
|
|
36
|
+
|
|
39
37
|
return content;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
save = (content, chain, just_obj) => {
|
|
41
|
+
let addr, obj;
|
|
42
|
+
|
|
43
|
+
let type = typeof chain === "string" ? chain : this.get_type(chain);
|
|
44
|
+
|
|
44
45
|
if (type === "array" || type === "string") {
|
|
45
46
|
obj = [];
|
|
46
|
-
|
|
47
|
+
|
|
48
|
+
for (let curs in content)
|
|
49
|
+
obj.splice(Number(curs) || -1, 0, content[curs]);
|
|
50
|
+
|
|
47
51
|
if (type === "string") obj = obj.join(" ");
|
|
48
52
|
} else if (type === "twain") {
|
|
49
53
|
obj = {};
|
|
50
|
-
for (
|
|
51
|
-
obj[
|
|
54
|
+
for (let curs in content) {
|
|
55
|
+
obj[curs] = content[curs];
|
|
52
56
|
}
|
|
53
57
|
} else if (type === "number") {
|
|
54
58
|
obj = Number(content["-1"]);
|
|
@@ -56,71 +60,84 @@ var Filesystem = /*#__PURE__*/_createClass(function Filesystem() {
|
|
|
56
60
|
} else {
|
|
57
61
|
obj = null;
|
|
58
62
|
}
|
|
63
|
+
|
|
59
64
|
if (just_obj) return obj;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
|
|
66
|
+
addr = `${chain.path}/${hash(JSON.stringify(obj))}`;
|
|
67
|
+
this;
|
|
68
|
+
if (obj != null) this.manager.oracle.write(addr, obj);
|
|
69
|
+
|
|
70
|
+
this.manager.oracle.set(addr, { obj, type });
|
|
71
|
+
|
|
67
72
|
return addr;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
data_addr = (type) => {
|
|
76
|
+
return `${this.physical_address}/Datatypes/${type}`;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
get_type = (chain) => {
|
|
73
80
|
switch (chain.physical_address) {
|
|
74
|
-
case
|
|
81
|
+
case this.data_addr(`Number`):
|
|
75
82
|
return "number";
|
|
76
|
-
case
|
|
83
|
+
case this.data_addr(`String`):
|
|
77
84
|
return "string";
|
|
78
|
-
case
|
|
85
|
+
case this.data_addr(`Twain`):
|
|
79
86
|
return "twain";
|
|
80
|
-
case
|
|
87
|
+
case this.data_addr(`Array`):
|
|
81
88
|
return "array";
|
|
82
|
-
case
|
|
89
|
+
case this.data_addr(`Boolean`):
|
|
83
90
|
return "boolean";
|
|
84
|
-
case
|
|
91
|
+
case this.data_addr(`Void`):
|
|
85
92
|
return "void";
|
|
86
93
|
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
write = (arg, context) => {
|
|
97
|
+
let content = context.get_buffer();
|
|
98
|
+
|
|
90
99
|
if (!content || !arg) return;
|
|
100
|
+
|
|
91
101
|
content[context.cursor] = arg;
|
|
92
102
|
// console.log(`Writing: ${arg}`);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
name_hash = () => {
|
|
106
|
+
this.hash = hash(this.name);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
set_paths = (chain) => {
|
|
98
110
|
if (chain.parent && chain.parent.manager) {
|
|
99
111
|
chain.path = chain.parent.path;
|
|
100
112
|
return;
|
|
101
113
|
}
|
|
102
|
-
chain.path =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
114
|
+
chain.path = `${chain.parent ? chain.parent.path : this.base_address}/${
|
|
115
|
+
chain.hash
|
|
116
|
+
}`;
|
|
117
|
+
|
|
118
|
+
let fs = this.manager.oracle.fs;
|
|
119
|
+
|
|
120
|
+
if (!fs.existsSync(`${this.root}/${chain.path}`)) {
|
|
121
|
+
fs.mkdirSync(`${this.root}/${chain.path}`, { recursive: true });
|
|
108
122
|
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
add_chain = (name, parent) => {
|
|
126
|
+
let chain = this.manager.web.get(`${parent.physical_address}/${name}`);
|
|
127
|
+
if (!chain) chain = this.manager.web.set(parent, name);
|
|
128
|
+
|
|
113
129
|
return chain;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
account_chain = (account) => {
|
|
133
|
+
let chain = this.manager.web.get(account.physical_address);
|
|
134
|
+
|
|
117
135
|
if (!chain) {
|
|
118
|
-
chain =
|
|
136
|
+
chain = this.manager.web.set(account);
|
|
119
137
|
}
|
|
138
|
+
|
|
120
139
|
return chain;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
var _default = Filesystem;
|
|
126
|
-
exports["default"] = _default;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export default Filesystem;
|
package/Objects/Frame.js
CHANGED
|
@@ -1,52 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var Frame = /*#__PURE__*/_createClass(function Frame(_object, parent) {
|
|
22
|
-
var _this = this;
|
|
23
|
-
_classCallCheck(this, Frame);
|
|
24
|
-
_defineProperty(this, "frame", function (object) {
|
|
25
|
-
var frame = new Frame(object, _this);
|
|
26
|
-
_this.instructions.push(frame);
|
|
27
|
-
_this.children.push(frame);
|
|
1
|
+
import { array_to_nested_objects } from "../utils/functions";
|
|
2
|
+
|
|
3
|
+
class Frame {
|
|
4
|
+
constructor(object, parent) {
|
|
5
|
+
this.parent = parent;
|
|
6
|
+
|
|
7
|
+
this.object = Array.isArray(object)
|
|
8
|
+
? array_to_nested_objects(object)
|
|
9
|
+
: object;
|
|
10
|
+
|
|
11
|
+
this.children = new Array();
|
|
12
|
+
this.instructions = new Array();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
frame = (object) => {
|
|
16
|
+
let frame = new Frame(object, this);
|
|
17
|
+
|
|
18
|
+
this.instructions.push(frame);
|
|
19
|
+
this.children.push(frame);
|
|
20
|
+
|
|
28
21
|
return frame;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
to_instruction = () => {
|
|
25
|
+
for (let prop in this.object) {
|
|
26
|
+
let val = this.object[prop];
|
|
27
|
+
this.instructions.push(`chain ${prop}`);
|
|
28
|
+
|
|
29
|
+
val && this.frame(val).to_instruction();
|
|
30
|
+
|
|
31
|
+
this.instructions.push(`pop ${prop}`);
|
|
36
32
|
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
flatten_instructions = () => {
|
|
36
|
+
let inss = new Array();
|
|
37
|
+
|
|
38
|
+
for (let i = 0; i < this.instructions.length; i++) {
|
|
39
|
+
let ins = this.instructions[i];
|
|
40
|
+
if (ins instanceof Frame) inss.push(...ins.flatten_instructions());
|
|
41
|
+
else inss.push(ins);
|
|
43
42
|
}
|
|
44
43
|
return inss;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.instructions = new Array();
|
|
50
|
-
});
|
|
51
|
-
var _default = Frame;
|
|
52
|
-
exports["default"] = _default;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export default Frame;
|