godprotocol 1.1.2 → 1.1.3
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/Datatypes/arr.js +276 -3
- package/Datatypes/bool.js +5 -3
- package/Datatypes/callable.js +4 -3
- package/Datatypes/cls.js +41 -0
- package/Datatypes/conf.js +117 -0
- package/Datatypes/func.js +22 -0
- package/Datatypes/functions/storage.js +20 -1
- package/Datatypes/instance.js +155 -0
- package/Datatypes/num.js +173 -3
- package/Datatypes/str.js +130 -3
- package/Datatypes/twa.js +81 -3
- package/Datatypes/voi.js +3 -3
- package/Index.js +1 -34
- package/Objects/Account.js +45 -29
- package/Objects/Blockweb.js +15 -28
- package/Objects/Callable.js +176 -16
- package/Objects/Chain.js +189 -28
- package/Objects/Datatypes.js +620 -0
- package/Objects/Manager.js +10 -2
- package/Objects/Oracle.js +229 -55
- package/Objects/Repository.js +6 -35
- package/Objects/Trinity.js +3 -3
- package/Objects/Utils.js +16 -0
- package/Objects/Virtual_machine.js +341 -11
- package/callables/functions/display.js +15 -1
- package/callables/functions/exit.js +10 -0
- package/callables/functions/net.js +27 -0
- package/callables/functions/twain.js +11 -0
- package/callables/register.js +23 -7
- package/package.json +1 -1
- package/utils/create_server.js +22 -8
- package/utils/hash.js +18 -0
- package/utils/ops.js +17 -0
- package/utils/services.js +2 -0
- package/utils/vm_utils.js +76 -43
- package/Objects/GDS/Arena_classic/.config +0 -1
- package/Objects/GDS/Arena_classic/Accounts/lola/.config +0 -1
package/utils/vm_utils.js
CHANGED
|
@@ -3,68 +3,101 @@ import Callable from "../Datatypes/callable";
|
|
|
3
3
|
import Num from "../Datatypes/num";
|
|
4
4
|
import Str from "../Datatypes/str";
|
|
5
5
|
import Twa from "../Datatypes/twa";
|
|
6
|
+
import Ins from "../Datatypes/instance";
|
|
6
7
|
import Voi from "../Datatypes/voi";
|
|
8
|
+
import Bool from "../Datatypes/bool";
|
|
9
|
+
import Instance from "../Datatypes/instance";
|
|
10
|
+
import Func from "../Datatypes/func";
|
|
11
|
+
import Cls from "../Datatypes/cls";
|
|
7
12
|
|
|
8
13
|
class Vm_utils {
|
|
9
|
-
constructor() {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.literal_methods = {
|
|
16
|
+
number: ['add','sub','div','mul', 'exp', 'floordiv', 'eq', "ne", "lt", 'gt', 'gte', 'lte', 'neg', 'abs', 'and', 'or', 'xor', 'lshift', 'rshift', 'invert'].map(i=>`__${i}__`).concat(['to_int', 'to_float', 'to_string', 'sqrt', 'log', 'sin', 'sinh', 'tanh', 'cosh', 'atanh', 'acosh', 'asinh', 'atan', 'acos', 'asin', 'cos', 'tan', 'round', 'factorial', 'ceil', 'floor', 'is_prime', 'is_even', 'is_odd', 'is_perfect_square', 'to_degrees', 'to_radians']),
|
|
17
|
+
string: ['upper','lower','title','slice', 'concat', 'find', 'includes', 'index', 'trim', 'split', 'padstart', 'padend', 'repeat', 'replace', 'startswith', 'endswith', 'count', 'length', 'reverse', 'is_numeric', 'is_empty', 'is_blank', 'charcode'],
|
|
18
|
+
array:[
|
|
19
|
+
'push', 'pop', 'length', 'run', 'copy', 'deepcopy', 'extend', 'slice', 'index', 'includes', 'replace', 'map', 'find', 'filter', 'padstart', 'padend', 'clear', 'to_string', 'reverse', 'repeat', 'join', 'splice'
|
|
20
|
+
],
|
|
21
|
+
twain: [
|
|
22
|
+
'entries', 'get', 'set', 'keys', 'clear', 'is_empty', 'values', 'copy', 'deepcopy', 'remove'
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
this.datatypes = ['string', 'number', 'void', 'boolean', 'array', 'twain']
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
gen_uid = ()=>{
|
|
30
|
+
return `_${Math.random().toString().replace('.', '')}_${Date.now()}`
|
|
31
|
+
}
|
|
10
32
|
|
|
11
|
-
|
|
12
|
-
let chain =
|
|
33
|
+
parse_dynamic = async(literal, options={})=>{
|
|
34
|
+
let {chain, config} = options;
|
|
13
35
|
|
|
14
|
-
|
|
15
|
-
|
|
36
|
+
let aircode = this.account.aircode;
|
|
37
|
+
let sequence = aircode.to_sequence(JSON.stringify(literal), chain.physical_address)
|
|
16
38
|
|
|
17
|
-
|
|
18
|
-
let
|
|
39
|
+
let res = await chain.add_config(sequence[0].body[0]);
|
|
40
|
+
let address = await this.execute(res, {chain})
|
|
19
41
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
42
|
+
return address;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
resolve_addr = (addr)=>{
|
|
46
|
+
if (!addr)return addr
|
|
47
|
+
|
|
48
|
+
if (addr.startsWith('@')){
|
|
49
|
+
addr = `${this.account.physical_address}/${addr.slice(2)}`
|
|
24
50
|
}
|
|
25
|
-
return type;
|
|
26
|
-
};
|
|
27
51
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
52
|
+
return addr;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
cloth_object = async addr=>{
|
|
56
|
+
|
|
57
|
+
}
|
|
31
58
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
59
|
+
cloth_content = async(content, options)=>{
|
|
60
|
+
let obj;
|
|
61
|
+
|
|
62
|
+
if (content instanceof Instance)return content;
|
|
63
|
+
|
|
64
|
+
switch(content.type){
|
|
65
|
+
case 'number':
|
|
66
|
+
obj = new Num(content, this.account)
|
|
67
|
+
break;
|
|
68
|
+
case 'string':
|
|
69
|
+
obj = new Str(content, this.account)
|
|
70
|
+
break;
|
|
71
|
+
case 'boolean':
|
|
72
|
+
obj = new Bool(content, this.account)
|
|
36
73
|
break;
|
|
37
|
-
case
|
|
38
|
-
|
|
74
|
+
case 'void':
|
|
75
|
+
obj = new Voi(content, this.account)
|
|
39
76
|
break;
|
|
40
|
-
case
|
|
41
|
-
|
|
77
|
+
case 'array':
|
|
78
|
+
obj = new Arr(content, this.account)
|
|
79
|
+
break
|
|
80
|
+
case 'twain':
|
|
81
|
+
obj = new Twa(content, this.account)
|
|
42
82
|
break;
|
|
43
|
-
case
|
|
44
|
-
|
|
83
|
+
case 'instance':
|
|
84
|
+
obj = new Instance(content, this.account)
|
|
45
85
|
break;
|
|
46
|
-
case
|
|
47
|
-
|
|
86
|
+
case 'function':
|
|
87
|
+
obj = new Func(content, this.account)
|
|
48
88
|
break;
|
|
49
|
-
case
|
|
50
|
-
|
|
89
|
+
case 'class':
|
|
90
|
+
obj = new Cls(content, this.account)
|
|
51
91
|
break;
|
|
52
92
|
default:
|
|
53
|
-
|
|
93
|
+
if (content.type === 'address'){
|
|
94
|
+
obj = new Func(content, this.account)
|
|
95
|
+
}else obj = content
|
|
96
|
+
// console.log(content, 'uh')
|
|
54
97
|
}
|
|
55
98
|
|
|
56
|
-
return
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
read_chain = async (address) => {
|
|
60
|
-
let chain = await this.handle_chain(address);
|
|
61
|
-
|
|
62
|
-
let content = await chain.read();
|
|
63
|
-
content =
|
|
64
|
-
(content && (await content.parse())) || (await this.parse_content(null));
|
|
65
|
-
|
|
66
|
-
return content;
|
|
67
|
-
};
|
|
99
|
+
return await obj.sync(options)
|
|
100
|
+
}
|
|
68
101
|
}
|
|
69
102
|
|
|
70
103
|
export default Vm_utils;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"servers":[{"port":1408,"hostname":"127.0.0.1","repo":true,"domain":"127.0.0.1:1408"},{"port":1409,"hostname":"127.0.0.1","repo":true,"domain":"127.0.0.1:1409"}]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"servers":[{"port":1408,"hostname":"127.0.0.1","repo":true,"domain":"127.0.0.1:1408"},{"port":1409,"hostname":"127.0.0.1","repo":true,"domain":"127.0.0.1:1409"}]}
|