alpha-network-sdk 1.0.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 ADDED
@@ -0,0 +1,170 @@
1
+ # Alpha Network TypeScript SDK
2
+
3
+ > **The blockchain built for AI agents** — TypeScript/Node.js SDK v0.3.0
4
+
5
+ ## Features
6
+
7
+ - 🔗 Full REST API coverage via `AlphaClient`
8
+ - 🤖 High-level `AlphaAgent` for connect → register → earn flows
9
+ - 📡 Real-time `AlphaWebSocket` for block/tx/task event subscriptions
10
+ - 🎯 Zero external runtime dependencies (Node.js stdlib only)
11
+ - 📝 Full TypeScript types for all API responses
12
+ - ✅ Strict mode, ES2022, NodeNext modules
13
+
14
+ ## Quick Start
15
+
16
+ ```typescript
17
+ import { AlphaAgent } from "alpha-sdk";
18
+
19
+ const agent = new AlphaAgent({
20
+ nodeUrl: "http://localhost:8080",
21
+ address: "alpha1youraddresshere",
22
+ capabilities: ["inference", "validation"],
23
+ stake: 1000,
24
+ });
25
+
26
+ await agent.connect(); // verify node is reachable
27
+ await agent.register(); // register on-chain
28
+ agent.startEarning(); // start earning $ALPHA
29
+ ```
30
+
31
+ ## Installation
32
+
33
+ ```bash
34
+ npm install alpha-sdk
35
+ ```
36
+
37
+ Or run directly from source:
38
+
39
+ ```bash
40
+ git clone https://github.com/alpha-network/alpha
41
+ cd sdk/typescript
42
+ npm install
43
+ npm run build
44
+ ```
45
+
46
+ ## API Reference
47
+
48
+ ### `AlphaClient` — low-level REST client
49
+
50
+ ```typescript
51
+ const client = new AlphaClient("http://localhost:8080");
52
+
53
+ // Health & chain info
54
+ await client.health();
55
+ await client.chainInfo();
56
+
57
+ // Agents
58
+ await client.registerAgent(address, ["inference"], 1000);
59
+ await client.getAgent(agentId);
60
+ await client.listAgents("inference", 50);
61
+
62
+ // Transfers
63
+ await client.transfer(from, to, amount, "memo");
64
+
65
+ // Balances
66
+ await client.balance(address);
67
+
68
+ // Blocks
69
+ await client.latestBlock();
70
+ await client.blockByHeight(42);
71
+
72
+ // Tasks
73
+ await client.listTasks();
74
+ await client.availableTasks("inference");
75
+ await client.getTask(taskId);
76
+ await client.postTask("inference", 500, "sha256:...", postedBy);
77
+ await client.submitTaskResult(taskId, agentId, resultHash);
78
+
79
+ // Intelligence oracle
80
+ await client.topAgents("inference", 10);
81
+ await client.intelligenceStats(1000);
82
+ await client.intelligenceQuery("top", "inference");
83
+
84
+ // P2P peers
85
+ await client.peers();
86
+ await client.announcePeer("192.168.1.10", 8080);
87
+
88
+ // Sync status
89
+ await client.syncStatus();
90
+ ```
91
+
92
+ ### `AlphaAgent` — high-level agent
93
+
94
+ ```typescript
95
+ const agent = new AlphaAgent({
96
+ nodeUrl: "http://localhost:8080",
97
+ address: "alpha1youraddress",
98
+ capabilities: ["inference", "validation"],
99
+ stake: 1000,
100
+ });
101
+
102
+ await agent.connect(); // connect to network
103
+ await agent.register(); // register on-chain
104
+ await agent.balance(); // get $ALPHA balance
105
+ await agent.send(to, amount, memo); // send $ALPHA
106
+ await agent.getTasks(); // browse available tasks
107
+ await agent.submitResult(taskId, "my result string");
108
+ agent.startEarning(5000); // start earning (polls every 5s)
109
+ agent.stopEarning(); // stop earning loop
110
+ ```
111
+
112
+ ### `AlphaWebSocket` — real-time events
113
+
114
+ ```bash
115
+ npm install ws # optional peer dependency
116
+ ```
117
+
118
+ ```typescript
119
+ import { AlphaWebSocket } from "alpha-sdk";
120
+
121
+ const ws = new AlphaWebSocket("http://localhost:8081");
122
+ ws.on((event) => {
123
+ if (event.type === "block") {
124
+ console.log("New block:", event.data.height);
125
+ }
126
+ });
127
+ await ws.connect();
128
+ ```
129
+
130
+ Event types: `"block"` | `"transaction"` | `"task"` | `"raw"`
131
+
132
+ ## Running the Demo
133
+
134
+ Start the Alpha Network node first:
135
+
136
+ ```bash
137
+ ./scripts/run_testnet.sh
138
+ ```
139
+
140
+ Then run the demo earning agent:
141
+
142
+ ```bash
143
+ cd sdk/typescript
144
+ npm install
145
+ npx ts-node --esm examples/earn.ts
146
+ ```
147
+
148
+ Or with environment variables:
149
+
150
+ ```bash
151
+ ALPHA_NODE_URL=http://mynode:8080 npx ts-node --esm examples/earn.ts
152
+ ```
153
+
154
+ ## TypeScript Types
155
+
156
+ All API response types are exported:
157
+
158
+ ```typescript
159
+ import type {
160
+ Address, AgentID, Amount, Capability,
161
+ AgentIdentity, Block, Transaction, Task,
162
+ ChainInfo, TransferResult, BalanceResult,
163
+ RegisterResult, TaskSubmitResult,
164
+ PeerInfo, SyncStatus, HealthStatus,
165
+ } from "alpha-sdk";
166
+ ```
167
+
168
+ ## License
169
+
170
+ MIT — built by anonymous contributors for the Alpha Network.
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Alpha Network TypeScript SDK v0.3.1
3
+ * The blockchain built for AI agents.
4
+ *
5
+ * Zero external runtime dependencies — uses Node.js built-in http/https/crypto only.
6
+ */
7
+ export type Address = string;
8
+ export type AgentID = string;
9
+ export type Amount = number;
10
+ export type Capability = "validation" | "inference" | "data" | "governance" | string;
11
+ export interface AgentIdentity {
12
+ agent_id: AgentID;
13
+ address: Address;
14
+ capabilities: Capability[];
15
+ stake: Amount;
16
+ registered_at: number;
17
+ trust_score?: number;
18
+ }
19
+ export interface Block {
20
+ height: number;
21
+ hash: string;
22
+ prev_hash: string;
23
+ timestamp: number;
24
+ transactions: Transaction[];
25
+ validator_id: AgentID;
26
+ tx_count: number;
27
+ }
28
+ export interface Transaction {
29
+ tx_id: string;
30
+ type: string;
31
+ from: Address;
32
+ to: Address;
33
+ amount: Amount;
34
+ memo?: string;
35
+ timestamp: number;
36
+ }
37
+ export interface Task {
38
+ task_id: string;
39
+ capability: Capability;
40
+ reward: Amount;
41
+ input_hash: string;
42
+ deadline?: number;
43
+ posted_by?: Address;
44
+ status: "pending" | "assigned" | "completed" | "expired" | string;
45
+ created_at: number;
46
+ assigned_to?: AgentID[];
47
+ }
48
+ export interface ChainInfo {
49
+ chain_id: string;
50
+ token: string;
51
+ total_supply: Amount;
52
+ block_time_ms: number;
53
+ agent_count: number;
54
+ version: string;
55
+ consensus: string;
56
+ status: string;
57
+ height?: number;
58
+ blocks_per_sec?: number;
59
+ tx_count?: number;
60
+ uptime?: string;
61
+ circulating_supply?: Amount;
62
+ total_burned?: Amount;
63
+ }
64
+ export interface TransferResult {
65
+ success: boolean;
66
+ tx_id: string;
67
+ from: Address;
68
+ to: Address;
69
+ amount: Amount;
70
+ memo?: string;
71
+ status: string;
72
+ }
73
+ export interface BalanceResult {
74
+ success: boolean;
75
+ address: Address;
76
+ balance: Amount;
77
+ token: string;
78
+ }
79
+ export interface RegisterResult {
80
+ success: boolean;
81
+ agent_id: AgentID;
82
+ identity: AgentIdentity;
83
+ message: string;
84
+ }
85
+ export interface TaskSubmitResult {
86
+ success: boolean;
87
+ task_id: string;
88
+ status: string;
89
+ }
90
+ export interface PeerInfo {
91
+ address: string;
92
+ port: number;
93
+ agent_id?: string;
94
+ last_seen: number;
95
+ latency_ms: number;
96
+ }
97
+ export interface SyncStatus {
98
+ local_height: number;
99
+ peer_height?: number;
100
+ synced: boolean;
101
+ peers: number;
102
+ }
103
+ export interface HealthStatus {
104
+ status: string;
105
+ chain: string;
106
+ timestamp: number;
107
+ version: string;
108
+ height: number;
109
+ }
110
+ export interface IntelligenceStats {
111
+ [key: string]: unknown;
112
+ }
113
+ export interface SignedTransfer {
114
+ from: Address;
115
+ to: Address;
116
+ amount: Amount;
117
+ memo: string;
118
+ pubkey: string;
119
+ signature: string;
120
+ nonce: number;
121
+ timestamp: number;
122
+ }
123
+ /**
124
+ * Ed25519 key management and transfer signing for Alpha Network.
125
+ *
126
+ * Uses Node.js built-in crypto module — zero extra dependencies.
127
+ *
128
+ * Usage:
129
+ * const signer = TransferSigner.generate();
130
+ * console.log(signer.address); // alpha1…
131
+ * const req = signer.buildTransferRequest("alpha1to…", 1000, 0);
132
+ * const result = await client.transferSigned(req);
133
+ */
134
+ export declare class TransferSigner {
135
+ readonly publicKey: Buffer;
136
+ readonly pubkeyHex: string;
137
+ readonly address: Address;
138
+ private privateKey;
139
+ private constructor();
140
+ /** Generate a fresh Ed25519 keypair. */
141
+ static generate(): TransferSigner;
142
+ /** Load from a hex-encoded raw Ed25519 private key (64 hex chars = 32 bytes). */
143
+ static fromPrivateKeyHex(privkeyHex: string): TransferSigner;
144
+ /** Return the raw private key as hex (keep this secret!). */
145
+ privateKeyHex(): string;
146
+ /**
147
+ * Sign a transfer message.
148
+ * Canonical format: transfer:{from}:{to}:{amount}:{nonce}:{timestamp}
149
+ * Returns the 128-char hex signature.
150
+ */
151
+ signTransfer(toAddr: Address, amount: Amount, nonce: number, timestamp?: number): string;
152
+ /** Build a complete signed transfer request body. */
153
+ buildTransferRequest(toAddr: Address, amount: Amount, nonce: number, memo?: string): SignedTransfer;
154
+ }
155
+ export declare class AlphaClient {
156
+ readonly baseUrl: string;
157
+ constructor(nodeUrl?: string);
158
+ health(): Promise<HealthStatus>;
159
+ healthDetailed(): Promise<unknown>;
160
+ chainInfo(): Promise<ChainInfo>;
161
+ registerAgent(address: Address, capabilities: Capability[], stake: Amount): Promise<RegisterResult>;
162
+ getAgent(agentId: AgentID): Promise<{
163
+ identity: AgentIdentity;
164
+ trust_score: number;
165
+ balance?: Amount;
166
+ }>;
167
+ listAgents(capability?: Capability, limit?: number): Promise<{
168
+ agents: AgentIdentity[];
169
+ count: number;
170
+ }>;
171
+ transfer(from: Address, to: Address, amount: Amount, memo?: string): Promise<TransferResult>;
172
+ /** Submit a signed transfer (from TransferSigner.buildTransferRequest). */
173
+ transferSigned(signedReq: SignedTransfer): Promise<TransferResult>;
174
+ balance(address: Address): Promise<BalanceResult>;
175
+ latestBlock(): Promise<{
176
+ success: boolean;
177
+ block: Block;
178
+ }>;
179
+ blockByHeight(height: number): Promise<{
180
+ success: boolean;
181
+ block: Block;
182
+ }>;
183
+ listTasks(): Promise<{
184
+ success: boolean;
185
+ tasks: Task[];
186
+ count: number;
187
+ }>;
188
+ availableTasks(capability?: Capability): Promise<{
189
+ success: boolean;
190
+ tasks: Task[];
191
+ count: number;
192
+ }>;
193
+ getTask(taskId: string): Promise<{
194
+ success: boolean;
195
+ task: Task;
196
+ }>;
197
+ postTask(capability: Capability, reward: Amount, inputHash: string, postedBy?: Address, deadline?: number): Promise<{
198
+ success: boolean;
199
+ task_id: string;
200
+ status: string;
201
+ }>;
202
+ submitTaskResult(taskId: string, agentId: AgentID, resultHash: string, ipfsCid?: string): Promise<TaskSubmitResult>;
203
+ intelligenceQuery(type: "top" | "stats" | "profile", capability?: string, agentId?: AgentID, limit?: number): Promise<unknown>;
204
+ intelligenceStats(window?: number): Promise<{
205
+ success: boolean;
206
+ stats: IntelligenceStats;
207
+ }>;
208
+ topAgents(capability?: Capability, limit?: number): Promise<{
209
+ success: boolean;
210
+ agents: AgentIdentity[];
211
+ count: number;
212
+ }>;
213
+ peers(): Promise<{
214
+ peers: PeerInfo[];
215
+ count: number;
216
+ }>;
217
+ announcePeer(address: string, port: number, agentId?: AgentID): Promise<unknown>;
218
+ syncStatus(): Promise<SyncStatus>;
219
+ }
220
+ export declare class AlphaAgent {
221
+ private client;
222
+ private address;
223
+ private capabilities;
224
+ private stake;
225
+ private agentId?;
226
+ private earningInterval?;
227
+ private connected;
228
+ constructor(opts: {
229
+ nodeUrl?: string;
230
+ address: Address;
231
+ capabilities?: Capability[];
232
+ stake?: Amount;
233
+ });
234
+ /** Connect: verify the node is reachable and return chain info */
235
+ connect(): Promise<ChainInfo>;
236
+ /** Register this agent on-chain */
237
+ register(): Promise<RegisterResult>;
238
+ /**
239
+ * Start earning $ALPHA by polling for tasks and submitting results.
240
+ * @param intervalMs polling interval in milliseconds (default 5000)
241
+ */
242
+ startEarning(intervalMs?: number): void;
243
+ /** Stop the earning loop */
244
+ stopEarning(): void;
245
+ /** Get current $ALPHA balance */
246
+ balance(): Promise<Amount>;
247
+ /** Send $ALPHA to another address */
248
+ send(to: Address, amount: Amount, memo?: string): Promise<TransferResult>;
249
+ /** Send $ALPHA with an Ed25519 signature proving ownership */
250
+ sendSigned(signedReq: SignedTransfer): Promise<TransferResult>;
251
+ /** Get available tasks for this agent's capabilities */
252
+ getTasks(): Promise<Task[]>;
253
+ /** Submit a result for a task */
254
+ submitResult(taskId: string, result: string): Promise<TaskSubmitResult>;
255
+ /** One tick of the earning loop */
256
+ private _earnTick;
257
+ }
258
+ export type WebSocketEvent = {
259
+ type: "block";
260
+ data: Block;
261
+ } | {
262
+ type: "transaction";
263
+ data: Transaction;
264
+ } | {
265
+ type: "task";
266
+ data: Task;
267
+ } | {
268
+ type: "raw";
269
+ data: unknown;
270
+ };
271
+ export type EventHandler = (event: WebSocketEvent) => void;
272
+ /**
273
+ * AlphaWebSocket subscribes to real-time Alpha Network events.
274
+ *
275
+ * Uses the `ws` npm package when available (Node < 22 doesn't have a built-in
276
+ * WebSocket client). Falls back gracefully if ws is not installed.
277
+ *
278
+ * Install optionally: npm install ws
279
+ */
280
+ export declare class AlphaWebSocket {
281
+ private wsUrl;
282
+ private handlers;
283
+ private ws;
284
+ constructor(nodeUrl?: string);
285
+ /** Subscribe to all events */
286
+ on(handler: EventHandler): this;
287
+ /** Connect and begin receiving events */
288
+ connect(): Promise<void>;
289
+ /** Disconnect */
290
+ close(): void;
291
+ }
292
+ declare const _default: {
293
+ AlphaClient: typeof AlphaClient;
294
+ AlphaAgent: typeof AlphaAgent;
295
+ AlphaWebSocket: typeof AlphaWebSocket;
296
+ TransferSigner: typeof TransferSigner;
297
+ };
298
+ export default _default;
299
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,395 @@
1
+ /**
2
+ * Alpha Network TypeScript SDK v0.3.1
3
+ * The blockchain built for AI agents.
4
+ *
5
+ * Zero external runtime dependencies — uses Node.js built-in http/https/crypto only.
6
+ */
7
+ import * as http from "node:http";
8
+ import * as https from "node:https";
9
+ import { URL } from "node:url";
10
+ import * as crypto from "node:crypto";
11
+ // ─── Ed25519 Transfer Signer ──────────────────────────────────────────────────
12
+ /**
13
+ * Ed25519 key management and transfer signing for Alpha Network.
14
+ *
15
+ * Uses Node.js built-in crypto module — zero extra dependencies.
16
+ *
17
+ * Usage:
18
+ * const signer = TransferSigner.generate();
19
+ * console.log(signer.address); // alpha1…
20
+ * const req = signer.buildTransferRequest("alpha1to…", 1000, 0);
21
+ * const result = await client.transferSigned(req);
22
+ */
23
+ export class TransferSigner {
24
+ publicKey;
25
+ pubkeyHex;
26
+ address;
27
+ privateKey;
28
+ constructor(privateKey, publicKey) {
29
+ this.privateKey = privateKey;
30
+ this.publicKey = publicKey;
31
+ this.pubkeyHex = publicKey.toString("hex");
32
+ // Derive Alpha address: alpha1 + first 40 hex chars of SHA256(pubkey)
33
+ const h = crypto.createHash("sha256").update(publicKey).digest("hex").slice(0, 40);
34
+ this.address = `alpha1${h}`;
35
+ }
36
+ /** Generate a fresh Ed25519 keypair. */
37
+ static generate() {
38
+ const { publicKey, privateKey } = crypto.generateKeyPairSync("ed25519");
39
+ const pubBuf = publicKey.export({ type: "spki", format: "der" });
40
+ const privBuf = privateKey.export({ type: "pkcs8", format: "der" });
41
+ // Extract raw 32-byte public key from SPKI DER
42
+ const rawPub = pubBuf.subarray(pubBuf.length - 32);
43
+ return new TransferSigner(privBuf, rawPub);
44
+ }
45
+ /** Load from a hex-encoded raw Ed25519 private key (64 hex chars = 32 bytes). */
46
+ static fromPrivateKeyHex(privkeyHex) {
47
+ const rawPriv = Buffer.from(privkeyHex, "hex");
48
+ // Create KeyObject from raw seed
49
+ const privKey = crypto.createPrivateKey({
50
+ key: rawPriv,
51
+ format: "der",
52
+ type: "pkcs8",
53
+ });
54
+ const pubKey = crypto.createPublicKey(privKey);
55
+ const pubDer = pubKey.export({ type: "spki", format: "der" });
56
+ const rawPub = pubDer.subarray(pubDer.length - 32);
57
+ return new TransferSigner(rawPriv, rawPub);
58
+ }
59
+ /** Return the raw private key as hex (keep this secret!). */
60
+ privateKeyHex() {
61
+ return this.privateKey.toString("hex");
62
+ }
63
+ /**
64
+ * Sign a transfer message.
65
+ * Canonical format: transfer:{from}:{to}:{amount}:{nonce}:{timestamp}
66
+ * Returns the 128-char hex signature.
67
+ */
68
+ signTransfer(toAddr, amount, nonce, timestamp) {
69
+ const ts = timestamp ?? Math.floor(Date.now() / 1000);
70
+ const message = `transfer:${this.address}:${toAddr}:${amount}:${nonce}:${ts}`;
71
+ const sig = crypto.sign(null, Buffer.from(message), this.privateKey);
72
+ return sig.toString("hex");
73
+ }
74
+ /** Build a complete signed transfer request body. */
75
+ buildTransferRequest(toAddr, amount, nonce, memo = "") {
76
+ const ts = Math.floor(Date.now() / 1000);
77
+ return {
78
+ from: this.address,
79
+ to: toAddr,
80
+ amount,
81
+ memo,
82
+ pubkey: this.pubkeyHex,
83
+ signature: this.signTransfer(toAddr, amount, nonce, ts),
84
+ nonce,
85
+ timestamp: ts,
86
+ };
87
+ }
88
+ }
89
+ // ─── HTTP helper ──────────────────────────────────────────────────────────────
90
+ function request(method, rawUrl, body) {
91
+ return new Promise((resolve, reject) => {
92
+ const u = new URL(rawUrl);
93
+ const isHttps = u.protocol === "https:";
94
+ const lib = isHttps ? https : http;
95
+ const data = body ? JSON.stringify(body) : undefined;
96
+ const opts = {
97
+ hostname: u.hostname,
98
+ port: u.port || (isHttps ? 443 : 80),
99
+ path: u.pathname + u.search,
100
+ method,
101
+ headers: {
102
+ "Content-Type": "application/json",
103
+ Accept: "application/json",
104
+ ...(data ? { "Content-Length": Buffer.byteLength(data) } : {}),
105
+ },
106
+ };
107
+ const req = lib.request(opts, (res) => {
108
+ let raw = "";
109
+ res.on("data", (chunk) => (raw += chunk.toString()));
110
+ res.on("end", () => {
111
+ try {
112
+ const parsed = JSON.parse(raw);
113
+ resolve(parsed);
114
+ }
115
+ catch {
116
+ reject(new Error(`Non-JSON response (${res.statusCode}): ${raw}`));
117
+ }
118
+ });
119
+ });
120
+ req.on("error", reject);
121
+ if (data)
122
+ req.write(data);
123
+ req.end();
124
+ });
125
+ }
126
+ // ─── AlphaClient — low-level REST client ─────────────────────────────────────
127
+ export class AlphaClient {
128
+ baseUrl;
129
+ constructor(nodeUrl = "http://localhost:8080") {
130
+ this.baseUrl = nodeUrl.replace(/\/$/, "");
131
+ }
132
+ // --- Health ---
133
+ health() {
134
+ return request("GET", `${this.baseUrl}/health`);
135
+ }
136
+ healthDetailed() {
137
+ return request("GET", `${this.baseUrl}/api/v1/health/detailed`);
138
+ }
139
+ // --- Chain info ---
140
+ chainInfo() {
141
+ return request("GET", `${this.baseUrl}/api/v1/chain/info`);
142
+ }
143
+ // --- Agent registry ---
144
+ registerAgent(address, capabilities, stake) {
145
+ return request("POST", `${this.baseUrl}/api/v1/agents/register`, { address, capabilities, stake });
146
+ }
147
+ getAgent(agentId) {
148
+ return request("GET", `${this.baseUrl}/api/v1/agents/${agentId}`);
149
+ }
150
+ listAgents(capability, limit = 50) {
151
+ const q = new URLSearchParams();
152
+ if (capability)
153
+ q.set("capability", capability);
154
+ q.set("limit", String(limit));
155
+ return request("GET", `${this.baseUrl}/api/v1/agents?${q}`);
156
+ }
157
+ // --- Transfers ---
158
+ transfer(from, to, amount, memo) {
159
+ return request("POST", `${this.baseUrl}/api/v1/transfer`, { from, to, amount, memo: memo ?? "" });
160
+ }
161
+ /** Submit a signed transfer (from TransferSigner.buildTransferRequest). */
162
+ transferSigned(signedReq) {
163
+ return request("POST", `${this.baseUrl}/api/v1/transfer`, signedReq);
164
+ }
165
+ // --- Balances ---
166
+ balance(address) {
167
+ return request("GET", `${this.baseUrl}/api/v1/accounts/${address}/balance`);
168
+ }
169
+ // --- Blocks ---
170
+ latestBlock() {
171
+ return request("GET", `${this.baseUrl}/api/v1/blocks/latest`);
172
+ }
173
+ blockByHeight(height) {
174
+ return request("GET", `${this.baseUrl}/api/v1/blocks/${height}`);
175
+ }
176
+ // --- Tasks ---
177
+ listTasks() {
178
+ return request("GET", `${this.baseUrl}/api/v1/tasks`);
179
+ }
180
+ availableTasks(capability) {
181
+ const q = new URLSearchParams();
182
+ if (capability)
183
+ q.set("capability", capability);
184
+ return request("GET", `${this.baseUrl}/api/v1/tasks/available?${q}`);
185
+ }
186
+ getTask(taskId) {
187
+ return request("GET", `${this.baseUrl}/api/v1/tasks/${taskId}`);
188
+ }
189
+ postTask(capability, reward, inputHash, postedBy, deadline) {
190
+ return request("POST", `${this.baseUrl}/api/v1/tasks/post`, {
191
+ capability,
192
+ reward,
193
+ input_hash: inputHash,
194
+ posted_by: postedBy ?? "",
195
+ deadline: deadline ?? 0,
196
+ });
197
+ }
198
+ submitTaskResult(taskId, agentId, resultHash, ipfsCid) {
199
+ return request("POST", `${this.baseUrl}/api/v1/tasks/${taskId}/submit`, { agent_id: agentId, result_hash: resultHash, ipfs_cid: ipfsCid ?? "" });
200
+ }
201
+ // --- Intelligence oracle ---
202
+ intelligenceQuery(type, capability, agentId, limit = 10) {
203
+ const q = new URLSearchParams({ type, limit: String(limit) });
204
+ if (capability)
205
+ q.set("capability", capability);
206
+ if (agentId)
207
+ q.set("agent_id", agentId);
208
+ return request("GET", `${this.baseUrl}/api/v1/intelligence/query?${q}`);
209
+ }
210
+ intelligenceStats(window = 1000) {
211
+ return request("GET", `${this.baseUrl}/api/v1/intelligence/stats?window=${window}`);
212
+ }
213
+ topAgents(capability, limit = 10) {
214
+ const q = new URLSearchParams({ limit: String(limit) });
215
+ if (capability)
216
+ q.set("capability", capability);
217
+ return request("GET", `${this.baseUrl}/api/v1/intelligence/top?${q}`);
218
+ }
219
+ // --- P2P peers ---
220
+ peers() {
221
+ return request("GET", `${this.baseUrl}/api/v1/peers`);
222
+ }
223
+ announcePeer(address, port, agentId) {
224
+ return request("POST", `${this.baseUrl}/api/v1/peers/announce`, {
225
+ address,
226
+ port,
227
+ agent_id: agentId ?? "",
228
+ });
229
+ }
230
+ // --- Sync status ---
231
+ syncStatus() {
232
+ return request("GET", `${this.baseUrl}/api/v1/sync/status`);
233
+ }
234
+ }
235
+ // ─── AlphaAgent — high-level agent class ──────────────────────────────────────
236
+ export class AlphaAgent {
237
+ client;
238
+ address;
239
+ capabilities;
240
+ stake;
241
+ agentId;
242
+ earningInterval;
243
+ connected = false;
244
+ constructor(opts) {
245
+ this.client = new AlphaClient(opts.nodeUrl);
246
+ this.address = opts.address;
247
+ this.capabilities = opts.capabilities ?? ["validation"];
248
+ this.stake = opts.stake ?? 1000;
249
+ }
250
+ /** Connect: verify the node is reachable and return chain info */
251
+ async connect() {
252
+ const info = await this.client.chainInfo();
253
+ this.connected = true;
254
+ return info;
255
+ }
256
+ /** Register this agent on-chain */
257
+ async register() {
258
+ const result = await this.client.registerAgent(this.address, this.capabilities, this.stake);
259
+ this.agentId = result.agent_id;
260
+ return result;
261
+ }
262
+ /**
263
+ * Start earning $ALPHA by polling for tasks and submitting results.
264
+ * @param intervalMs polling interval in milliseconds (default 5000)
265
+ */
266
+ startEarning(intervalMs = 5000) {
267
+ if (this.earningInterval)
268
+ return; // already earning
269
+ this.earningInterval = setInterval(async () => {
270
+ try {
271
+ await this._earnTick();
272
+ }
273
+ catch {
274
+ // Swallow errors — keep earning loop alive
275
+ }
276
+ }, intervalMs);
277
+ }
278
+ /** Stop the earning loop */
279
+ stopEarning() {
280
+ if (this.earningInterval) {
281
+ clearInterval(this.earningInterval);
282
+ this.earningInterval = undefined;
283
+ }
284
+ }
285
+ /** Get current $ALPHA balance */
286
+ async balance() {
287
+ const result = await this.client.balance(this.address);
288
+ return result.balance;
289
+ }
290
+ /** Send $ALPHA to another address */
291
+ async send(to, amount, memo) {
292
+ return this.client.transfer(this.address, to, amount, memo);
293
+ }
294
+ /** Send $ALPHA with an Ed25519 signature proving ownership */
295
+ async sendSigned(signedReq) {
296
+ return this.client.transferSigned(signedReq);
297
+ }
298
+ /** Get available tasks for this agent's capabilities */
299
+ async getTasks() {
300
+ const cap = this.capabilities[0];
301
+ const result = await this.client.availableTasks(cap);
302
+ return result.tasks ?? [];
303
+ }
304
+ /** Submit a result for a task */
305
+ async submitResult(taskId, result) {
306
+ if (!this.agentId)
307
+ throw new Error("Not registered — call register() first");
308
+ // Hash the result string into a hex digest
309
+ const resultHash = crypto.createHash("sha256").update(result).digest("hex");
310
+ return this.client.submitTaskResult(taskId, this.agentId, resultHash);
311
+ }
312
+ /** One tick of the earning loop */
313
+ async _earnTick() {
314
+ if (!this.agentId)
315
+ return;
316
+ const tasks = await this.getTasks();
317
+ for (const task of tasks.slice(0, 3)) {
318
+ // Simulate doing the work
319
+ const mockResult = `result_for_${task.task_id}_by_${this.agentId}`;
320
+ try {
321
+ await this.submitResult(task.task_id, mockResult);
322
+ }
323
+ catch {
324
+ // Task may already be claimed — continue
325
+ }
326
+ }
327
+ }
328
+ }
329
+ /**
330
+ * AlphaWebSocket subscribes to real-time Alpha Network events.
331
+ *
332
+ * Uses the `ws` npm package when available (Node < 22 doesn't have a built-in
333
+ * WebSocket client). Falls back gracefully if ws is not installed.
334
+ *
335
+ * Install optionally: npm install ws
336
+ */
337
+ export class AlphaWebSocket {
338
+ wsUrl;
339
+ handlers = [];
340
+ ws = null;
341
+ constructor(nodeUrl = "http://localhost:8081") {
342
+ // Convert http(s) → ws(s)
343
+ this.wsUrl = nodeUrl.replace(/^http/, "ws").replace(/\/$/, "") + "/ws";
344
+ }
345
+ /** Subscribe to all events */
346
+ on(handler) {
347
+ this.handlers.push(handler);
348
+ return this;
349
+ }
350
+ /** Connect and begin receiving events */
351
+ async connect() {
352
+ // Try loading `ws` as an optional peer dependency
353
+ let WS;
354
+ try {
355
+ const mod = await import("ws");
356
+ WS = (mod.default ?? mod);
357
+ }
358
+ catch {
359
+ throw new Error("WebSocket support requires the `ws` package: npm install ws\n" +
360
+ "Alternatively use the REST polling API.");
361
+ }
362
+ const socket = new WS(this.wsUrl);
363
+ this.ws = socket;
364
+ socket.on("message", (raw) => {
365
+ try {
366
+ const text = raw instanceof Buffer ? raw.toString() : String(raw);
367
+ const data = JSON.parse(text);
368
+ const event = data.type === "block"
369
+ ? { type: "block", data: data.data }
370
+ : data.type === "transaction"
371
+ ? { type: "transaction", data: data.data }
372
+ : data.type === "task"
373
+ ? { type: "task", data: data.data }
374
+ : { type: "raw", data };
375
+ this.handlers.forEach((h) => h(event));
376
+ }
377
+ catch {
378
+ // Ignore unparseable frames
379
+ }
380
+ });
381
+ socket.on("error", (err) => {
382
+ console.error("[AlphaWebSocket] error:", err);
383
+ });
384
+ }
385
+ /** Disconnect */
386
+ close() {
387
+ if (this.ws) {
388
+ this.ws.close();
389
+ this.ws = null;
390
+ }
391
+ }
392
+ }
393
+ // ─── Exports ──────────────────────────────────────────────────────────────────
394
+ export default { AlphaClient, AlphaAgent, AlphaWebSocket, TransferSigner };
395
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AA4ItC,iFAAiF;AAEjF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IAChB,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,OAAO,CAAU;IAClB,UAAU,CAAS;IAE3B,YAAoB,UAAkB,EAAE,SAAiB;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3C,sEAAsE;QACtE,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;IAC9B,CAAC;IAED,wCAAwC;IACxC,MAAM,CAAC,QAAQ;QACb,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,iFAAiF;IACjF,MAAM,CAAC,iBAAiB,CAAC,UAAkB;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,iCAAiC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;YACtC,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,6DAA6D;IAC7D,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,YAAY,CACV,MAAe,EACf,MAAc,EACd,KAAa,EACb,SAAkB;QAElB,MAAM,EAAE,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,YAAY,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,qDAAqD;IACrD,oBAAoB,CAClB,MAAe,EACf,MAAc,EACd,KAAa,EACb,IAAI,GAAG,EAAE;QAET,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,EAAE,EAAE,MAAM;YACV,MAAM;YACN,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,KAAK;YACL,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF,SAAS,OAAO,CACd,MAAc,EACd,MAAc,EACd,IAAc;IAEd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAErD,MAAM,IAAI,GAAwB;YAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM;YAC3B,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D;SACF,CAAC;QAEF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACpC,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC7D,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;oBACpC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,IAAI,IAAI;YAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAEhF,MAAM,OAAO,WAAW;IACb,OAAO,CAAS;IAEzB,YAAY,OAAO,GAAG,uBAAuB;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB;IAEjB,MAAM;QACJ,OAAO,OAAO,CAAe,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,cAAc;QACZ,OAAO,OAAO,CAAU,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAC3E,CAAC;IAED,qBAAqB;IAErB,SAAS;QACP,OAAO,OAAO,CAAY,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACxE,CAAC;IAED,yBAAyB;IAEzB,aAAa,CACX,OAAgB,EAChB,YAA0B,EAC1B,KAAa;QAEb,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,IAAI,CAAC,OAAO,yBAAyB,EACxC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CACjC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,OAAgB;QACvB,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,kBAAkB,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,UAAU,CAAC,UAAuB,EAAE,KAAK,GAAG,EAAE;QAC5C,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,UAAU;YAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,oBAAoB;IAEpB,QAAQ,CACN,IAAa,EACb,EAAW,EACX,MAAc,EACd,IAAa;QAEb,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,IAAI,CAAC,OAAO,kBAAkB,EACjC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CACvC,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,cAAc,CAAC,SAAyB;QACtC,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,IAAI,CAAC,OAAO,kBAAkB,EACjC,SAAS,CACV,CAAC;IACJ,CAAC;IAED,mBAAmB;IAEnB,OAAO,CAAC,OAAgB;QACtB,OAAO,OAAO,CACZ,KAAK,EACL,GAAG,IAAI,CAAC,OAAO,oBAAoB,OAAO,UAAU,CACrD,CAAC;IACJ,CAAC;IAED,iBAAiB;IAEjB,WAAW;QACT,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAChE,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,kBAAkB,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,gBAAgB;IAEhB,SAAS;QACP,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,cAAc,CACZ,UAAuB;QAEvB,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,UAAU;YAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,2BAA2B,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,CAAC,MAAc;QACpB,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,iBAAiB,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,CACN,UAAsB,EACtB,MAAc,EACd,SAAiB,EACjB,QAAkB,EAClB,QAAiB;QAEjB,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,oBAAoB,EAAE;YAC1D,UAAU;YACV,MAAM;YACN,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,QAAQ,IAAI,EAAE;YACzB,QAAQ,EAAE,QAAQ,IAAI,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CACd,MAAc,EACd,OAAgB,EAChB,UAAkB,EAClB,OAAgB;QAEhB,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,IAAI,CAAC,OAAO,iBAAiB,MAAM,SAAS,EAC/C,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,8BAA8B;IAE9B,iBAAiB,CACf,IAAiC,EACjC,UAAmB,EACnB,OAAiB,EACjB,KAAK,GAAG,EAAE;QAEV,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,UAAU;YAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,OAAO;YAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,8BAA8B,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,iBAAiB,CAAC,MAAM,GAAG,IAAI;QAC7B,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,qCAAqC,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CACP,UAAuB,EACvB,KAAK,GAAG,EAAE;QAEV,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,UAAU;YAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,oBAAoB;IAEpB,KAAK;QACH,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,YAAY,CAAC,OAAe,EAAE,IAAY,EAAE,OAAiB;QAC3D,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,wBAAwB,EAAE;YAC9D,OAAO;YACP,IAAI;YACJ,QAAQ,EAAE,OAAO,IAAI,EAAE;SACxB,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;IAEtB,UAAU;QACR,OAAO,OAAO,CAAa,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC1E,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,UAAU;IACb,MAAM,CAAc;IACpB,OAAO,CAAU;IACjB,YAAY,CAAe;IAC3B,KAAK,CAAS;IACd,OAAO,CAAW;IAClB,eAAe,CAAkC;IACjD,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,IAKX;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAC5C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,KAAK,CACX,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,UAAU,GAAG,IAAI;QAC5B,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,CAAC,kBAAkB;QACpD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC5C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;QACH,CAAC,EAAE,UAAU,CAAC,CAAC;IACjB,CAAC;IAED,4BAA4B;IAC5B,WAAW;QACT,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACnC,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,IAAI,CAAC,EAAW,EAAE,MAAc,EAAE,IAAa;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,UAAU,CAAC,SAAyB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,QAAQ;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAA2B,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,MAAc;QAC/C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC7E,2CAA2C;QAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,mCAAmC;IAC3B,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACrC,0BAA0B;YAC1B,MAAM,UAAU,GAAG,cAAc,IAAI,CAAC,OAAO,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACnE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,yCAAyC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAYD;;;;;;;GAOG;AACH,MAAM,OAAO,cAAc;IACjB,KAAK,CAAS;IACd,QAAQ,GAAmB,EAAE,CAAC;IAC9B,EAAE,GAAY,IAAI,CAAC;IAE3B,YAAY,OAAO,GAAG,uBAAuB;QAC3C,0BAA0B;QAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;IACzE,CAAC;IAED,8BAA8B;IAC9B,EAAE,CAAC,OAAqB;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,OAAO;QACX,kDAAkD;QAClD,IAAI,EAGH,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAc,CAAC,CAAC;YACzC,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAc,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,+DAA+D;gBAC7D,yCAAyC,CAC5C,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;QAEjB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,GAAG,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4C,CAAC;gBACzE,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,OAAO;oBACnB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAa,EAAE;oBAC7C,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa;wBAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,IAAmB,EAAE;wBACzD,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;4BACtB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAY,EAAE;4BAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,IAAI,CAAC,EAAwB,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAED,iFAAiF;AAEjF,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "alpha-network-sdk",
3
+ "version": "1.0.0",
4
+ "description": "Alpha Network TypeScript/Node.js SDK — the blockchain built for AI agents. Register agents, earn $ALPHA, sign transfers with Ed25519.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "check": "tsc --noEmit",
21
+ "dev": "tsc --watch",
22
+ "prepublishOnly": "npm run build"
23
+ },
24
+ "peerDependenciesMeta": {
25
+ "ws": {
26
+ "optional": true
27
+ }
28
+ },
29
+ "peerDependencies": {
30
+ "ws": ">=8.0.0"
31
+ },
32
+ "devDependencies": {
33
+ "typescript": "^5.4.0",
34
+ "@types/node": "^20.0.0",
35
+ "@types/ws": "^8.5.10"
36
+ },
37
+ "keywords": [
38
+ "alpha-network",
39
+ "blockchain",
40
+ "ai-agents",
41
+ "sdk",
42
+ "typescript",
43
+ "crypto",
44
+ "proof-of-intelligence",
45
+ "web3",
46
+ "ed25519",
47
+ "p2p"
48
+ ],
49
+ "license": "MIT",
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "https://github.com/galaxiaalphanet/Alpha-Network"
53
+ },
54
+ "homepage": "https://alphanetx.xyz",
55
+ "engines": {
56
+ "node": ">=18.0.0"
57
+ }
58
+ }