godprotocol 1.1.0 → 1.1.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.
Files changed (98) hide show
  1. package/Datatypes/arr.js +11 -0
  2. package/Datatypes/bool.js +11 -0
  3. package/Datatypes/callable.js +11 -0
  4. package/Datatypes/functions/storage.js +5 -0
  5. package/Datatypes/num.js +11 -0
  6. package/Datatypes/str.js +11 -0
  7. package/Datatypes/twa.js +11 -0
  8. package/Datatypes/voi.js +11 -0
  9. package/Index.js +36 -2
  10. package/Objects/Account.js +35 -322
  11. package/Objects/Block.js +7 -80
  12. package/Objects/Blockweb.js +19 -26
  13. package/Objects/Callable.js +40 -0
  14. package/Objects/Chain.js +20 -244
  15. package/Objects/GDS/Arena_classic/.config +1 -0
  16. package/Objects/GDS/Arena_classic/Accounts/lola/.config +1 -0
  17. package/Objects/Manager.js +28 -294
  18. package/Objects/Oracle.js +67 -84
  19. package/Objects/Repository.js +67 -0
  20. package/Objects/Trinity.js +24 -0
  21. package/Objects/Virtual_machine.js +16 -206
  22. package/callables/functions/assign.js +6 -0
  23. package/callables/functions/display.js +3 -0
  24. package/callables/register.js +22 -0
  25. package/package.json +24 -43
  26. package/utils/create_server.js +35 -88
  27. package/utils/functions.js +0 -70
  28. package/utils/server.cert +23 -0
  29. package/utils/server.key +28 -0
  30. package/utils/services.js +61 -21
  31. package/utils/vm_utils.js +53 -275
  32. package/Executables/callables.js +0 -131
  33. package/Executables/executables.js +0 -230
  34. package/Executables/functions/adminstrator/adm_register.js +0 -29
  35. package/Executables/functions/adminstrator/native_components.js +0 -10
  36. package/Executables/functions/adminstrator/query_selectors.js +0 -10
  37. package/Executables/functions/adminstrator/render.js +0 -24
  38. package/Executables/functions/array_register.js +0 -161
  39. package/Executables/functions/assign.js +0 -19
  40. package/Executables/functions/display.js +0 -55
  41. package/Executables/functions/folder.js +0 -95
  42. package/Executables/functions/folder_register.js +0 -87
  43. package/Executables/functions/importcheck.js +0 -13
  44. package/Executables/functions/indices.js +0 -56
  45. package/Executables/functions/len.js +0 -22
  46. package/Executables/functions/methods/array.js +0 -272
  47. package/Executables/functions/methods/string.js +0 -197
  48. package/Executables/functions/methods/twain.js +0 -148
  49. package/Executables/functions/op.js +0 -15
  50. package/Executables/functions/price_register.js +0 -30
  51. package/Executables/functions/pricing.js +0 -26
  52. package/Executables/functions/servers/account.js +0 -81
  53. package/Executables/functions/servers/account_register.js +0 -56
  54. package/Executables/functions/servers/block.js +0 -21
  55. package/Executables/functions/servers/block_register.js +0 -18
  56. package/Executables/functions/servers/chain.js +0 -42
  57. package/Executables/functions/servers/chain_register.js +0 -28
  58. package/Executables/functions/set_error_catch.js +0 -34
  59. package/Executables/functions/string_register.js +0 -130
  60. package/Executables/functions/twain_register.js +0 -56
  61. package/Executables/functions/typecast.js +0 -43
  62. package/Executables/functions/utils.js +0 -9
  63. package/Executables/stack.js +0 -53
  64. package/Loader_sequence/main.js +0 -805
  65. package/Loader_sequence/repository.js +0 -33
  66. package/Objects/Explorer.js +0 -40
  67. package/Objects/Fee.js +0 -33
  68. package/Objects/Filesystem.js +0 -216
  69. package/Objects/Frame.js +0 -54
  70. package/Objects/Opcodes.js +0 -87
  71. package/Objects/Protocol.js +0 -5
  72. package/Trinity.js +0 -20
  73. package/callables.js +0 -172
  74. package/framer.js +0 -124
  75. package/opcodes/add.js +0 -15
  76. package/opcodes/indices.js +0 -82
  77. package/opcodes/jmp.js +0 -16
  78. package/opcodes/std.js +0 -12
  79. package/opcodes.js +0 -96
  80. package/readme.md +0 -133
  81. package/starter_scripts/constants.seq +0 -11
  82. package/tsconfig.json +0 -8
  83. package/types/Account.d.ts +0 -73
  84. package/types/Block.d.ts +0 -22
  85. package/types/Blockweb.d.ts +0 -14
  86. package/types/Chain.d.ts +0 -35
  87. package/types/Explorer.d.ts +0 -9
  88. package/types/Filesystem.d.ts +0 -23
  89. package/types/Frame.d.ts +0 -14
  90. package/types/Manager.d.ts +0 -21
  91. package/types/Opcodes.d.ts +0 -11
  92. package/types/Oracle.d.ts +0 -17
  93. package/types/Virtual_machine.d.ts +0 -20
  94. package/types/index.d.ts +0 -4
  95. package/utils/hash.js +0 -13
  96. package/utils/logger.js +0 -79
  97. package/utils/privacy.js +0 -22
  98. package/utils/type_coersion.js +0 -3
@@ -1,81 +0,0 @@
1
- const connect = (args, vm, options)=>{
2
- let {name, meta} = args;
3
-
4
- if (name.__classifier__ !== vm.get_type_address('string')){
5
- return vm.stderr({name:'Type_error', message: 'Account name must be a string'})
6
- }
7
- if (meta.__classifier__ !== vm.get_type_address('twain')){
8
- return vm.stderr({name:'Type_error', message: 'Account name must be a twain'})
9
- }
10
-
11
- name = vm.display(name)
12
- meta = vm.display(meta)
13
-
14
- let result = vm.account.manager.add_account(name, {...meta, string:true})
15
-
16
- vm.air_object(result, options)
17
- }
18
-
19
- const load = (args, vm, options)=>{
20
- let {account, payload} = args;
21
-
22
- if (account.__classifier__ !== vm.get_type_address('account')){
23
- return vm.stderr({name:'Type_error', message: 'account must be an Account instance'})
24
- }
25
- if (payload.__classifier__ !== vm.get_type_address('twain')){
26
- return vm.stderr({name:'Type_error', message: 'Payload must be a twain'})
27
- }
28
-
29
- account = vm.display(account, )
30
- payload = vm.display(payload, )
31
-
32
- vm.account.manager.endpoint('load', payload, (response)=>{
33
- vm.air_object(response, options)
34
- })
35
- }
36
-
37
- const run = (args, vm, options)=>{
38
- let {account, payload} = args;
39
-
40
- if (account.__classifier__ !== vm.get_type_address('account')){
41
- return vm.stderr({name:'Type_error', message: 'account must be an Account instance'})
42
- }
43
- if (payload.__classifier__ !== vm.get_type_address('twain')){
44
- return vm.stderr({name:'Type_error', message: 'Payload must be a twain'})
45
- }
46
-
47
- account = vm.display(account)
48
- payload = vm.display(payload)
49
-
50
- vm.account.manager.endpoint('run', payload, (response)=>{
51
- vm.air_object(response, options)
52
- })
53
- }
54
-
55
- const parse = (args, vm, options)=>{
56
- let {account, payload} = args;
57
-
58
- if (account.__classifier__ !== vm.get_type_address('account')){
59
- return vm.stderr({name:'Type_error', message: 'account must be an Account instance'})
60
- }
61
- if (payload.__classifier__ !== vm.get_type_address('twain')){
62
- return vm.stderr({name:'Type_error', message: 'Payload must be a twain'})
63
- }
64
-
65
- account = vm.display(account)
66
- payload = vm.display(payload)
67
-
68
- vm.account.manager.endpoint('parse', payload, (response)=>{
69
- vm.air_object(response, options)
70
- })
71
- }
72
-
73
- const servers = (args, vm, options) => {
74
- let {account} = args;
75
- account = vm.display(account, (res)=>{
76
- let acc = vm.account.manager.get_account(res.name);
77
- vm.air_object(acc.get_servers(), options)
78
- })
79
- }
80
-
81
- export {run, load, servers, parse, connect}
@@ -1,56 +0,0 @@
1
- import { connect, load, parse, run, servers } from "godprotocol/Executables/functions/servers/account";
2
-
3
- const account_register = (account)=>{
4
- let add_callable = account.vm.add_callable;
5
-
6
- add_callable('connect_', {
7
- callable: connect,
8
- config: {
9
- parameters: [
10
- {name:'name', position:0},
11
- {name:'meta', position:1},
12
- ]
13
- }
14
- })
15
-
16
- add_callable('load_', {
17
- callable: load,
18
- config: {
19
- parameters: [
20
- {name:'account', position:0},
21
- {name:'payload', position:1},
22
- ]
23
- }
24
- })
25
-
26
- add_callable('parse_', {
27
- callable: parse,
28
- config: {
29
- parameters: [
30
- {name:'account', position:0},
31
- {name:'payload', position:1},
32
- ]
33
- }
34
- })
35
-
36
- add_callable('run_', {
37
- callable: run,
38
- config: {
39
- parameters: [
40
- {name:'account', position:0},
41
- {name:'payload', position:1},
42
- ]
43
- }
44
- })
45
-
46
- add_callable('servers_', {
47
- callable: servers,
48
- config: {
49
- parameters: [
50
- {name:'account', position:0}
51
- ]
52
- }
53
- })
54
- }
55
-
56
- export default account_register;
@@ -1,21 +0,0 @@
1
- const get_block = (args, vm, options) =>{
2
- let {hash, chain} = args;
3
-
4
- if (hash.__classifier__ !== vm.get_type_address('string')){
5
- return vm.stderr({name:"Type_error", message:"Hash must be of type string"})
6
- }
7
- if (chain.__classifier__ !== vm.get_type_address('chain')){
8
- return vm.stderr({name:"Type_error", message:"chain must be of instance `Chain`"})
9
- }
10
- hash = vm.display(hash, true)
11
-
12
- vm.display(chain, res=>{
13
- let chain = vm.account.manager.web.get(res.physical_address)
14
- let blk = chain.explore(JSON.stringify({blocks: hash}))
15
- blk = blk && blk.stringify()
16
-
17
- vm.air_object(blk, options)
18
- })
19
- }
20
-
21
- export {get_block}
@@ -1,18 +0,0 @@
1
- import { get_block } from "./block";
2
-
3
- const block_register = (account)=>{
4
- let add_callable = account.vm.add_callable;
5
-
6
- add_callable('get_block_', {
7
- callable: get_block,
8
- config: {
9
- parameters: [
10
- {name:'hash', position:0},
11
- {name:'chain', position:1},
12
- ]
13
- }
14
- })
15
- }
16
-
17
-
18
- export default block_register
@@ -1,42 +0,0 @@
1
- const get_chain = (args, vm, options) =>{
2
- let {physical_address, account} = args;
3
-
4
- if (account.__classifier__ !== vm.get_type_address('account')){
5
- return vm.stderr({name:'Type_error', message: 'account must be an Account instance'})
6
- }
7
- if (physical_address.__classifier__ !== vm.get_type_address('string')){
8
- return vm.stderr({name:'Type_error', message: 'physical_address must be a string'})
9
- }
10
-
11
- physical_address = vm.display(physical_address)
12
-
13
- vm.display(account, res=>{
14
- let acc = vm.account.manager.get_account(res.name)
15
-
16
- let addr = acc.resolve_address(physical_address)
17
- let chain = vm.account.manager.web.get(addr)
18
-
19
- vm.air_object(chain && chain.stringify(), options)
20
- })
21
- }
22
-
23
- const explore = (args, vm, options)=>{
24
- let {chain, query} = args;
25
-
26
- if (![vm.get_type_address('string'), vm.get_type_address('twain')].includes(query.__classifier__)){
27
- return vm.stderr({name:"Type_error", message: "query must be of type string | twain"})
28
- }
29
- query = vm.display(query, true)
30
- if(typeof query !== 'string')query = JSON.stringify(query)
31
-
32
- vm.display(chain, res=>{
33
- let chn = vm.account.manager.web.get(res.physical_address)
34
- if (!chn)return vm.stderr({name: 'Chain_error', message: `${res.physical_address} not set.`})
35
-
36
- let blk = chn.explore(query)
37
-
38
- vm.air_object(blk && blk.stringify(), options)
39
- })
40
- }
41
-
42
- export {get_chain, explore}
@@ -1,28 +0,0 @@
1
- import { explore, get_chain } from "./chain";
2
-
3
- const chain_register = (account)=>{
4
- let add_callable = account.vm.add_callable;
5
-
6
- add_callable('get_block_', {
7
- callable: get_chain,
8
- config: {
9
- parameters: [
10
- {name:'physical_address', position:0},
11
- {name:'account', position:1},
12
- ]
13
- }
14
- })
15
-
16
- add_callable('explore_', {
17
- callable: explore,
18
- config: {
19
- parameters: [
20
- {name:'chain', position:0},
21
- {name:'query', position:1},
22
- ]
23
- }
24
- })
25
- }
26
-
27
-
28
- export default chain_register
@@ -1,34 +0,0 @@
1
- const set_error_catch = (args, vm)=>{
2
- // console.log(args)
3
- let {object, metadata} = args
4
-
5
- let inst = vm.track.sequence[vm.track.pointer +6]
6
- inst = parseInt(inst.split(' ')[1])
7
-
8
- for (let o=0; o< object.length; o++){
9
- let obj_addr = object[o]
10
- let obj, statc;
11
- if (obj_addr === '*'){
12
- obj = obj_addr
13
- }else{
14
- obj = vm.read_chain(obj_addr)
15
- }
16
-
17
- if (obj !== '*'){
18
- let name = vm.read_chain(obj.name_id)
19
-
20
- statc = vm.static_value(name)
21
- if(statc.static_value == null){
22
- return this.stderr(`Invalid argument to an Error object`)
23
- }
24
- }
25
-
26
- vm.push_int(statc? statc.static_value: obj, {object: obj, metadata, catch_pointer: inst})
27
- }
28
-
29
- vm.track.pointer += 17
30
-
31
- vm.pop_context()
32
- }
33
-
34
- export default set_error_catch
@@ -1,130 +0,0 @@
1
- import { case_, concat, includes, index, indexof, repeat, slice, split, trim } from "./methods/string";
2
-
3
- const string_register = (account)=>{
4
- let add_callable = account.vm.add_callable;
5
-
6
- add_callable('slice_', {
7
- callable: slice,
8
- config: {
9
- parameters: [
10
- {name:'str', position:0},
11
- {name:'start', position:1},
12
- {name:'end', position:2},
13
- ]
14
- }
15
- })
16
-
17
- add_callable('concat_', {
18
- callable: concat,
19
- config: {
20
- parameters: [
21
- {name:'str', position:0},
22
- {name:'other', position:1},
23
- {name:'index', position:2},
24
- ]
25
- }
26
- })
27
-
28
- add_callable('case_', {
29
- callable: case_,
30
- config: {
31
- parameters: [
32
- {name:'str', position:0},
33
- {name:'type', position:1},
34
- ]
35
- }
36
- })
37
-
38
- add_callable('index_', {
39
- callable: slice,
40
- config: {
41
- parameters: [
42
- {name:'str', position:0},
43
- {name:'n', position:1},
44
- ]
45
- }
46
- })
47
-
48
- add_callable('indexof_', {
49
- callable: slice,
50
- config: {
51
- parameters: [
52
- {name:'str', position:0},
53
- {name:'char', position:1},
54
- ]
55
- }
56
- })
57
-
58
- add_callable('includes_', {
59
- callable: slice,
60
- config: {
61
- parameters: [
62
- {name:'str', position:0},
63
- {name:'chars', position:1},
64
- ]
65
- }
66
- })
67
-
68
- add_callable('trim_', {
69
- callable: trim,
70
- config: {
71
- parameters: [
72
- {name:'str', position:0},
73
- {name:'char', position:1},
74
- {name:'type', position:2},
75
- ]
76
- }
77
- })
78
-
79
- add_callable('split_', {
80
- callable: split,
81
- config: {
82
- parameters: [
83
- {name:'str', position:0},
84
- {name:'char', position:1}
85
- ]
86
- }
87
- })
88
-
89
- add_callable('repeat_', {
90
- callable: repeat,
91
- config: {
92
- parameters: [
93
- {name: 'str', position:0},
94
- {name: 'n', position:1},
95
- ]
96
- }
97
- })
98
-
99
- add_callable('repeat_', {
100
- callable: index,
101
- config: {
102
- parameters: [
103
- {name: 'str', position:0},
104
- {name: 'n', position:1},
105
- ]
106
- }
107
- })
108
-
109
- add_callable('repeat_', {
110
- callable: indexof,
111
- config: {
112
- parameters: [
113
- {name: 'str', position:0},
114
- {name: 'char', position:1},
115
- ]
116
- }
117
- })
118
-
119
- add_callable('repeat_', {
120
- callable: includes,
121
- config: {
122
- parameters: [
123
- {name: 'str', position:0},
124
- {name: 'chars', position:1},
125
- ]
126
- }
127
- })
128
- }
129
-
130
- export default string_register
@@ -1,56 +0,0 @@
1
- import { entries, get, keys, set, unset } from "./methods/twain";
2
-
3
- const twain_register = (account)=>{
4
- let add_callable = account.vm.add_callable;
5
-
6
- add_callable('get_', {
7
- callable: get,
8
- config: {
9
- parameters:[
10
- {name: 'twain', position:0},
11
- {name: 'prop', position:1},
12
- ]
13
- }
14
- })
15
-
16
- add_callable('set_', {
17
- callable: set,
18
- config: {
19
- parameters:[
20
- {name: 'twain', position:0},
21
- {name: 'prop', position:1},
22
- {name: 'value', position:2},
23
- ]
24
- }
25
- })
26
-
27
- add_callable('keys_', {
28
- callable: keys,
29
- config: {
30
- parameters:[
31
- {name: 'twain', position:0}
32
- ]
33
- }
34
- })
35
-
36
- add_callable('entries_', {
37
- callable: entries,
38
- config: {
39
- parameters:[
40
- {name: 'twain', position:0}
41
- ]
42
- }
43
- })
44
-
45
- add_callable('unset_', {
46
- callable: unset,
47
- config: {
48
- parameters:[
49
- {name: 'twain', position:0},
50
- {name: 'prop', position:1},
51
- ]
52
- }
53
- })
54
- }
55
-
56
- export default twain_register
@@ -1,43 +0,0 @@
1
- const typecast =(args, vm, options)=>{
2
-
3
- // console.log(args, 'typecast args')
4
- let {type, obj}= args;
5
- type = vm.static_value(type)
6
- let static_type = type.static_value;
7
- let result;
8
-
9
- if (obj.hasOwnProperty('static_value')){
10
- if(static_type === 'boolean'){
11
- result= (!!obj.static_value)
12
-
13
- return {result: vm.static_cast(result, obj.__address__)};
14
- } else if(static_type === 'string'){
15
- result = obj.static_value.toString()
16
-
17
- return {result: vm.static_cast(result, obj.__address__)}
18
- } else if (static_type === 'number'){
19
- result = parseInt(obj.static_value)
20
- if (isNaN(result)){
21
- result = null
22
- }
23
- return {result: vm.static_cast(result, obj.__address__)};
24
- }else if (static_type === 'array'){
25
- if (obj.type === 'array'){
26
- return {result: obj}
27
- }
28
- }else if (static_type === 'twain'){
29
- if (obj.type === 'twain'){
30
- return {result: obj}
31
- }
32
- }
33
- } else if(obj.__print__) {
34
- console.log(obj)
35
- vm.exec({executable:obj.__print__, location:result=>{
36
- let res = typecast({...args, obj: result}, vm)
37
- res && vm.write_chain(res.result, options.location)
38
- }})
39
- }
40
- }
41
-
42
-
43
- export default typecast
@@ -1,9 +0,0 @@
1
- const get_address = (args, vm, options) => {
2
- return vm.air_object(args.object.__address__, options)
3
- }
4
-
5
- const get_id = (args, vm, options) => {
6
- return vm.air_object(args.object.__id__, options)
7
- }
8
-
9
- export {get_address, get_id}
@@ -1,53 +0,0 @@
1
- class Stack {
2
- constructor(vm){
3
- this.vm = vm;
4
-
5
- this.stacks = new Object()
6
- }
7
-
8
- has_stack = (stack)=>{
9
- stack = this.stacks[stack]
10
- return !!(stack && stack.length)
11
- }
12
-
13
- initiate = (stack)=>{
14
- let stack_arr = this.stacks[stack]
15
- if(!stack_arr){
16
- stack_arr = new Array({})
17
- this.stacks[stack] = stack_arr;
18
- }else stack_arr.push({})
19
- }
20
-
21
- push = (stack, block)=>{
22
- stack = this.stacks[stack]
23
- if(!stack)return
24
- let trace = stack.slice(-1)[0]
25
-
26
- trace[block.chain.name] = block;
27
- }
28
-
29
- pop = (stack_name)=>{
30
- let stack = this.stacks[stack_name]
31
- if (!stack)return
32
-
33
- let trace = stack.pop()
34
-
35
- this.repopulate(stack_name)
36
-
37
- return trace
38
- }
39
-
40
- repopulate = (stack)=>{
41
- let trace = this.stacks[stack].slice(-1)[0]
42
-
43
- for(let name in trace){
44
- let block = trace[name]
45
-
46
- let chain = this.vm.handle_chain(block.chain.physical_address)
47
- chain.forge_block(block.stringify())
48
- }
49
- }
50
- }
51
-
52
-
53
- export default Stack