jaelis-node 1.4.1 → 1.7.0
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/README.md +83 -7
- package/lib/JAELIS-VM/lib/unified/cross-chain-deploy.js +1678 -0
- package/lib/JAELIS-VM/lib/unified/index.js +79 -1
- package/lib/index.js +791 -14
- package/lib/settlement-server.js +999 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,36 @@ JAELIS is a next-generation blockchain with a **Universal Virtual Machine** that
|
|
|
13
13
|
|
|
14
14
|
## Universal VM - Core Innovation
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
JAELIS provides **TWO deployment systems** for maximum flexibility:
|
|
17
|
+
|
|
18
|
+
### Option 1: Unified VM (Cross-Language Magic)
|
|
19
|
+
|
|
20
|
+
Compile **MULTIPLE contracts from MULTIPLE languages** into **ONE unified bytecode bundle** with **ONE ABI**:
|
|
21
|
+
|
|
22
|
+
```javascript
|
|
23
|
+
// Deploy unified bundle - ALL languages compile to ONE bytecode!
|
|
24
|
+
const result = await jaelis.deployUnified({
|
|
25
|
+
from: '0x...',
|
|
26
|
+
sources: [
|
|
27
|
+
{ code: solidityCode, language: 'solidity', name: 'Token' },
|
|
28
|
+
{ code: rustCode, language: 'rust', name: 'DeFi' },
|
|
29
|
+
{ code: moveCode, language: 'move', name: 'NFT' }
|
|
30
|
+
]
|
|
31
|
+
});
|
|
32
|
+
// ALL contracts share memory and can call each other DIRECTLY!
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Option 2: Multi-VM (Native Compatibility)
|
|
36
|
+
|
|
37
|
+
Deploy to **native VMs** for exact compatibility with original chain behavior:
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
await jaelis.deploySolanaProgram({ bytecode, programId, owner }); // → SVM
|
|
41
|
+
await jaelis.deployMoveModule({ bytecode, moduleName, owner }); // → MoveVM
|
|
42
|
+
await jaelis.deployTonContract({ code, data, owner }); // → TVM
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Language Support Matrix
|
|
17
46
|
|
|
18
47
|
| Language | Ecosystem | Status |
|
|
19
48
|
|----------|-----------|--------|
|
|
@@ -24,12 +53,10 @@ The JAELIS Universal VM executes contracts from multiple ecosystems natively:
|
|
|
24
53
|
| **Cairo** | StarkNet | Production |
|
|
25
54
|
| **Vyper** | Ethereum (Python-like) | Production |
|
|
26
55
|
|
|
27
|
-
### Cross-Language Contract Calls
|
|
28
|
-
|
|
29
|
-
A Solidity contract can call a Rust contract. A Move module can interact with FunC. All native, all on-chain:
|
|
56
|
+
### Cross-Language Contract Calls (NO BRIDGES!)
|
|
30
57
|
|
|
31
58
|
```javascript
|
|
32
|
-
// Solidity
|
|
59
|
+
// Solidity → Rust call - DIRECT, no bridges needed!
|
|
33
60
|
await jaelis.crossContractCall({
|
|
34
61
|
from: solidityContract,
|
|
35
62
|
to: rustProgram,
|
|
@@ -140,6 +167,54 @@ Options:
|
|
|
140
167
|
--reward-recipient <address> Wallet address for node rewards (ANY chain!)
|
|
141
168
|
```
|
|
142
169
|
|
|
170
|
+
## Block Sync & Node Status
|
|
171
|
+
|
|
172
|
+
Your node automatically syncs with the JAELIS network:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# Check sync status
|
|
176
|
+
curl -X POST http://localhost:8545 \
|
|
177
|
+
-H "Content-Type: application/json" \
|
|
178
|
+
-d '{"jsonrpc":"2.0","method":"jaelis_syncing","params":[],"id":1}'
|
|
179
|
+
|
|
180
|
+
# Response when syncing:
|
|
181
|
+
{
|
|
182
|
+
"currentBlock": "0x1a4",
|
|
183
|
+
"highestBlock": "0x2f8",
|
|
184
|
+
"syncedBlocks": 420,
|
|
185
|
+
"remainingBlocks": 340,
|
|
186
|
+
"percentComplete": "55.26%"
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
# Response when fully synced:
|
|
190
|
+
false
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Node Registry & Lifetime Tracking
|
|
194
|
+
|
|
195
|
+
When your node connects, it registers with the JAELIS network. Your contributions are tracked **forever** - even across restarts:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# See all connected nodes (run on main RPC)
|
|
199
|
+
curl -X POST https://rpc.jaelis.io \
|
|
200
|
+
-H "Content-Type: application/json" \
|
|
201
|
+
-d '{"jsonrpc":"2.0","method":"jaelis_node_getNodes","params":[],"id":1}'
|
|
202
|
+
|
|
203
|
+
# Get network-wide node stats
|
|
204
|
+
curl -X POST https://rpc.jaelis.io \
|
|
205
|
+
-H "Content-Type: application/json" \
|
|
206
|
+
-d '{"jsonrpc":"2.0","method":"jaelis_node_getStats","params":[],"id":1}'
|
|
207
|
+
|
|
208
|
+
# Response:
|
|
209
|
+
{
|
|
210
|
+
"lifetimeNodes": 142, # All nodes that EVER connected
|
|
211
|
+
"activeNodes": 23, # Currently online
|
|
212
|
+
"validators": 8, # Opted-in validators
|
|
213
|
+
"totalUptime": "45d 12h", # Cumulative network uptime
|
|
214
|
+
"byAddressType": { "evm": 89, "solana": 31, "bitcoin": 22 }
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
143
218
|
## RPC Methods
|
|
144
219
|
|
|
145
220
|
Your node exposes standard JSON-RPC plus JAELIS-specific methods:
|
|
@@ -148,9 +223,10 @@ Your node exposes standard JSON-RPC plus JAELIS-specific methods:
|
|
|
148
223
|
| Method | Description |
|
|
149
224
|
|--------|-------------|
|
|
150
225
|
| `jaelis_getSupportedLanguages` | Returns: `['solidity', 'rust', 'move', 'func', 'cairo', 'vyper']` |
|
|
151
|
-
| `
|
|
226
|
+
| `jaelis_deployUnified` | Deploy unified bundle (multiple languages → ONE bytecode!) |
|
|
227
|
+
| `jaelis_deployContract` | Deploy single contract in any supported language |
|
|
152
228
|
| `jaelis_executeContract` | Execute contract method |
|
|
153
|
-
| `jaelis_crossContractCall` | Call between contracts of different languages |
|
|
229
|
+
| `jaelis_crossContractCall` | Call between contracts of different languages (NO BRIDGES!) |
|
|
154
230
|
|
|
155
231
|
### Cross-Chain Settlement Methods
|
|
156
232
|
| Method | Description |
|