@weave_protocol/domere 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.
Files changed (104) hide show
  1. package/PLANNING.md +231 -0
  2. package/README.md +50 -0
  3. package/dist/anchoring/ethereum.d.ts +135 -0
  4. package/dist/anchoring/ethereum.d.ts.map +1 -0
  5. package/dist/anchoring/ethereum.js +474 -0
  6. package/dist/anchoring/ethereum.js.map +1 -0
  7. package/dist/anchoring/index.d.ts +93 -0
  8. package/dist/anchoring/index.d.ts.map +1 -0
  9. package/dist/anchoring/index.js +184 -0
  10. package/dist/anchoring/index.js.map +1 -0
  11. package/dist/anchoring/merkle.d.ts +91 -0
  12. package/dist/anchoring/merkle.d.ts.map +1 -0
  13. package/dist/anchoring/merkle.js +203 -0
  14. package/dist/anchoring/merkle.js.map +1 -0
  15. package/dist/anchoring/solana.d.ts +85 -0
  16. package/dist/anchoring/solana.d.ts.map +1 -0
  17. package/dist/anchoring/solana.js +301 -0
  18. package/dist/anchoring/solana.js.map +1 -0
  19. package/dist/constants.d.ts +130 -0
  20. package/dist/constants.d.ts.map +1 -0
  21. package/dist/constants.js +536 -0
  22. package/dist/constants.js.map +1 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +37 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/language/code-analyzer.d.ts +80 -0
  28. package/dist/language/code-analyzer.d.ts.map +1 -0
  29. package/dist/language/code-analyzer.js +489 -0
  30. package/dist/language/code-analyzer.js.map +1 -0
  31. package/dist/language/detector.d.ts +53 -0
  32. package/dist/language/detector.d.ts.map +1 -0
  33. package/dist/language/detector.js +248 -0
  34. package/dist/language/detector.js.map +1 -0
  35. package/dist/language/index.d.ts +61 -0
  36. package/dist/language/index.d.ts.map +1 -0
  37. package/dist/language/index.js +109 -0
  38. package/dist/language/index.js.map +1 -0
  39. package/dist/language/nl-analyzer.d.ts +59 -0
  40. package/dist/language/nl-analyzer.d.ts.map +1 -0
  41. package/dist/language/nl-analyzer.js +350 -0
  42. package/dist/language/nl-analyzer.js.map +1 -0
  43. package/dist/language/semantic.d.ts +48 -0
  44. package/dist/language/semantic.d.ts.map +1 -0
  45. package/dist/language/semantic.js +329 -0
  46. package/dist/language/semantic.js.map +1 -0
  47. package/dist/storage/index.d.ts +6 -0
  48. package/dist/storage/index.d.ts.map +1 -0
  49. package/dist/storage/index.js +6 -0
  50. package/dist/storage/index.js.map +1 -0
  51. package/dist/storage/memory.d.ts +48 -0
  52. package/dist/storage/memory.d.ts.map +1 -0
  53. package/dist/storage/memory.js +211 -0
  54. package/dist/storage/memory.js.map +1 -0
  55. package/dist/thread/drift.d.ts +43 -0
  56. package/dist/thread/drift.d.ts.map +1 -0
  57. package/dist/thread/drift.js +248 -0
  58. package/dist/thread/drift.js.map +1 -0
  59. package/dist/thread/index.d.ts +9 -0
  60. package/dist/thread/index.d.ts.map +1 -0
  61. package/dist/thread/index.js +9 -0
  62. package/dist/thread/index.js.map +1 -0
  63. package/dist/thread/intent.d.ts +68 -0
  64. package/dist/thread/intent.d.ts.map +1 -0
  65. package/dist/thread/intent.js +333 -0
  66. package/dist/thread/intent.js.map +1 -0
  67. package/dist/thread/manager.d.ts +85 -0
  68. package/dist/thread/manager.d.ts.map +1 -0
  69. package/dist/thread/manager.js +305 -0
  70. package/dist/thread/manager.js.map +1 -0
  71. package/dist/thread/weave.d.ts +61 -0
  72. package/dist/thread/weave.d.ts.map +1 -0
  73. package/dist/thread/weave.js +158 -0
  74. package/dist/thread/weave.js.map +1 -0
  75. package/dist/tools/index.d.ts +18 -0
  76. package/dist/tools/index.d.ts.map +1 -0
  77. package/dist/tools/index.js +102 -0
  78. package/dist/tools/index.js.map +1 -0
  79. package/dist/types.d.ts +466 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +48 -0
  82. package/dist/types.js.map +1 -0
  83. package/package.json +24 -0
  84. package/src/anchoring/ethereum.ts +568 -0
  85. package/src/anchoring/index.ts +236 -0
  86. package/src/anchoring/merkle.ts +256 -0
  87. package/src/anchoring/solana.ts +370 -0
  88. package/src/constants.ts +566 -0
  89. package/src/index.ts +43 -0
  90. package/src/language/code-analyzer.ts +564 -0
  91. package/src/language/detector.ts +297 -0
  92. package/src/language/index.ts +129 -0
  93. package/src/language/nl-analyzer.ts +411 -0
  94. package/src/language/semantic.ts +385 -0
  95. package/src/storage/index.ts +6 -0
  96. package/src/storage/memory.ts +271 -0
  97. package/src/thread/drift.ts +319 -0
  98. package/src/thread/index.ts +9 -0
  99. package/src/thread/intent.ts +409 -0
  100. package/src/thread/manager.ts +414 -0
  101. package/src/thread/weave.ts +205 -0
  102. package/src/tools/index.ts +107 -0
  103. package/src/types.ts +736 -0
  104. package/tsconfig.json +19 -0
@@ -0,0 +1,474 @@
1
+ /**
2
+ * Dōmere - The Judge Protocol
3
+ * Ethereum Anchoring Client
4
+ *
5
+ * Note: This is the client interface. The actual Ethereum contract
6
+ * should be deployed separately.
7
+ */
8
+ import { DEFAULT_CONFIG, PROTOCOL_FEES } from '../constants.js';
9
+ // ============================================================================
10
+ // Ethereum Anchoring Client
11
+ // ============================================================================
12
+ export class EthereumAnchorClient {
13
+ config;
14
+ isTestnet;
15
+ constructor(config) {
16
+ this.config = {
17
+ rpc_url: config?.rpc_url ?? DEFAULT_CONFIG.anchoring.ethereum_rpc,
18
+ contract_address: config?.contract_address ?? DEFAULT_CONFIG.anchoring.ethereum_contract,
19
+ chain_id: config?.chain_id ?? 1, // Mainnet default
20
+ };
21
+ this.isTestnet = this.config.rpc_url.includes('sepolia') ||
22
+ this.config.rpc_url.includes('goerli') ||
23
+ this.config.chain_id !== 1;
24
+ }
25
+ /**
26
+ * Prepare anchor data for Ethereum
27
+ */
28
+ prepareAnchorData(request) {
29
+ return {
30
+ threadId: this.stringToBytes32(request.thread_id),
31
+ merkleRoot: this.ensureBytes32(request.merkle_root),
32
+ hopCount: request.hop_count,
33
+ intentHash: this.ensureBytes32(request.intent_hash),
34
+ compliant: request.compliant,
35
+ };
36
+ }
37
+ /**
38
+ * Estimate gas cost
39
+ */
40
+ async estimateGas() {
41
+ // Typical gas for storing thread anchor data
42
+ const gasLimit = 80000; // Conservative estimate
43
+ // This would normally be fetched from the network
44
+ // Using placeholder values
45
+ const gasPriceGwei = 30; // Moderate gas price
46
+ const gasPriceWei = gasPriceGwei * 1e9;
47
+ const gasCostWei = gasLimit * gasPriceWei;
48
+ const gasCostEth = gasCostWei / 1e18;
49
+ // Protocol fee is 5% of gas
50
+ const protocolFeeEth = gasCostEth * (PROTOCOL_FEES.ethereum.protocol_fee_bps / 10000);
51
+ const totalEth = gasCostEth + protocolFeeEth;
52
+ return {
53
+ gas_limit: gasLimit,
54
+ gas_price_gwei: gasPriceGwei,
55
+ estimated_eth: gasCostEth.toFixed(6),
56
+ protocol_fee_eth: protocolFeeEth.toFixed(6),
57
+ total_eth: totalEth.toFixed(6),
58
+ };
59
+ }
60
+ /**
61
+ * Create anchor transaction
62
+ *
63
+ * Returns unsigned transaction data for client-side signing.
64
+ */
65
+ async createAnchorTransaction(request) {
66
+ const anchorData = this.prepareAnchorData(request);
67
+ const cost = await this.estimateGas();
68
+ // Encode function call: anchorThread(bytes32,bytes32,uint256,bytes32,bool)
69
+ const functionSelector = '0x' + this.keccak256('anchorThread(bytes32,bytes32,uint256,bytes32,bool)').slice(0, 8);
70
+ const encodedData = functionSelector +
71
+ this.encodeBytes32(anchorData.threadId) +
72
+ this.encodeBytes32(anchorData.merkleRoot) +
73
+ this.encodeUint256(anchorData.hopCount) +
74
+ this.encodeBytes32(anchorData.intentHash) +
75
+ this.encodeBool(anchorData.compliant);
76
+ return {
77
+ to: this.config.contract_address,
78
+ data: encodedData,
79
+ value: '0', // Protocol fee handled by contract
80
+ gas_limit: cost.gas_limit,
81
+ chain_id: this.config.chain_id,
82
+ estimated_cost: cost,
83
+ };
84
+ }
85
+ /**
86
+ * Submit signed transaction
87
+ */
88
+ async submitSignedTransaction(signedTransaction) {
89
+ // This is a placeholder - real implementation would:
90
+ // 1. Submit to Ethereum RPC (eth_sendRawTransaction)
91
+ // 2. Wait for confirmation
92
+ // 3. Return result
93
+ const network = this.isTestnet ? 'ethereum-sepolia' : 'ethereum';
94
+ // Simulate success for testing
95
+ const mockTxHash = '0x' + Array(64).fill(0).map(() => Math.floor(Math.random() * 16).toString(16)).join('');
96
+ const mockBlockNumber = 19000000 + Math.floor(Math.random() * 100000);
97
+ return {
98
+ success: true,
99
+ network,
100
+ transaction_id: mockTxHash,
101
+ block: mockBlockNumber,
102
+ timestamp: new Date(),
103
+ network_fee: '0.002',
104
+ protocol_fee: '0.0001',
105
+ total_cost: '0.0021',
106
+ verification_url: this.getExplorerUrl(mockTxHash),
107
+ };
108
+ }
109
+ /**
110
+ * Verify anchor on-chain
111
+ */
112
+ async verifyAnchor(threadId, expectedMerkleRoot) {
113
+ // In production, this would call the contract's verifyAnchor function
114
+ const network = this.isTestnet ? 'ethereum-sepolia' : 'ethereum';
115
+ return {
116
+ valid: true,
117
+ thread_id: threadId,
118
+ merkle_root: expectedMerkleRoot,
119
+ anchor: {
120
+ network,
121
+ transaction_id: 'verification_pending',
122
+ timestamp: new Date(),
123
+ verified: false,
124
+ },
125
+ verified_at: new Date(),
126
+ };
127
+ }
128
+ /**
129
+ * Create batch certification transaction
130
+ */
131
+ async createCertificationTransaction(config) {
132
+ // Encode function call: certifyPeriod(bytes32,bytes32,uint256,uint256,uint256,uint256)
133
+ const functionSelector = '0x' + this.keccak256('certifyPeriod(bytes32,bytes32,uint256,uint256,uint256,uint256)').slice(0, 8);
134
+ const encodedData = functionSelector +
135
+ this.encodeBytes32(this.stringToBytes32(config.period_id)) +
136
+ this.encodeBytes32(this.ensureBytes32(config.merkle_root)) +
137
+ this.encodeUint256(config.attestation_count) +
138
+ this.encodeUint256(config.violation_count) +
139
+ this.encodeUint256(Math.floor(config.period_start.getTime() / 1000)) +
140
+ this.encodeUint256(Math.floor(config.period_end.getTime() / 1000));
141
+ return {
142
+ to: this.config.contract_address,
143
+ data: encodedData,
144
+ estimated_cost: await this.estimateGas(),
145
+ };
146
+ }
147
+ /**
148
+ * Get explorer URL
149
+ */
150
+ getExplorerUrl(txHash) {
151
+ const base = this.isTestnet
152
+ ? 'https://sepolia.etherscan.io'
153
+ : 'https://etherscan.io';
154
+ return `${base}/tx/${txHash}`;
155
+ }
156
+ /**
157
+ * Get contract address
158
+ */
159
+ getContractAddress() {
160
+ return this.config.contract_address;
161
+ }
162
+ // ============================================================================
163
+ // Encoding Utilities
164
+ // ============================================================================
165
+ /**
166
+ * Convert string to bytes32 hex
167
+ */
168
+ stringToBytes32(str) {
169
+ const crypto = require('crypto');
170
+ const hash = crypto.createHash('sha256').update(str).digest('hex');
171
+ return '0x' + hash;
172
+ }
173
+ /**
174
+ * Ensure value is bytes32 format
175
+ */
176
+ ensureBytes32(hex) {
177
+ let cleanHex = hex.startsWith('0x') ? hex.slice(2) : hex;
178
+ cleanHex = cleanHex.padStart(64, '0');
179
+ return '0x' + cleanHex;
180
+ }
181
+ /**
182
+ * Encode bytes32 for ABI
183
+ */
184
+ encodeBytes32(value) {
185
+ const clean = value.startsWith('0x') ? value.slice(2) : value;
186
+ return clean.padStart(64, '0');
187
+ }
188
+ /**
189
+ * Encode uint256 for ABI
190
+ */
191
+ encodeUint256(value) {
192
+ return value.toString(16).padStart(64, '0');
193
+ }
194
+ /**
195
+ * Encode bool for ABI
196
+ */
197
+ encodeBool(value) {
198
+ return value ? '0'.repeat(63) + '1' : '0'.repeat(64);
199
+ }
200
+ /**
201
+ * Simple keccak256 (placeholder - use ethers.js in production)
202
+ */
203
+ keccak256(input) {
204
+ // In production, use ethers.js keccak256
205
+ // This is a placeholder that returns a deterministic hash
206
+ const crypto = require('crypto');
207
+ return crypto.createHash('sha256').update(input).digest('hex');
208
+ }
209
+ }
210
+ // ============================================================================
211
+ // Ethereum Contract ABI (for reference)
212
+ // ============================================================================
213
+ export const ETHEREUM_CONTRACT_ABI = [
214
+ {
215
+ "inputs": [
216
+ { "name": "threadId", "type": "bytes32" },
217
+ { "name": "merkleRoot", "type": "bytes32" },
218
+ { "name": "hopCount", "type": "uint256" },
219
+ { "name": "intentHash", "type": "bytes32" },
220
+ { "name": "compliant", "type": "bool" }
221
+ ],
222
+ "name": "anchorThread",
223
+ "outputs": [],
224
+ "stateMutability": "payable",
225
+ "type": "function"
226
+ },
227
+ {
228
+ "inputs": [
229
+ { "name": "periodId", "type": "bytes32" },
230
+ { "name": "merkleRoot", "type": "bytes32" },
231
+ { "name": "attestationCount", "type": "uint256" },
232
+ { "name": "violationCount", "type": "uint256" },
233
+ { "name": "periodStart", "type": "uint256" },
234
+ { "name": "periodEnd", "type": "uint256" }
235
+ ],
236
+ "name": "certifyPeriod",
237
+ "outputs": [],
238
+ "stateMutability": "payable",
239
+ "type": "function"
240
+ },
241
+ {
242
+ "inputs": [
243
+ { "name": "threadId", "type": "bytes32" },
244
+ { "name": "expectedMerkleRoot", "type": "bytes32" }
245
+ ],
246
+ "name": "verifyAnchor",
247
+ "outputs": [
248
+ { "name": "valid", "type": "bool" },
249
+ { "name": "timestamp", "type": "uint256" }
250
+ ],
251
+ "stateMutability": "view",
252
+ "type": "function"
253
+ },
254
+ {
255
+ "inputs": [
256
+ { "name": "threadId", "type": "bytes32" },
257
+ { "name": "attestationHash", "type": "bytes32" },
258
+ { "name": "merkleProof", "type": "bytes32[]" }
259
+ ],
260
+ "name": "verifyAttestation",
261
+ "outputs": [{ "name": "", "type": "bool" }],
262
+ "stateMutability": "view",
263
+ "type": "function"
264
+ },
265
+ {
266
+ "anonymous": false,
267
+ "inputs": [
268
+ { "indexed": true, "name": "threadId", "type": "bytes32" },
269
+ { "indexed": false, "name": "merkleRoot", "type": "bytes32" },
270
+ { "indexed": false, "name": "anchorer", "type": "address" },
271
+ { "indexed": false, "name": "timestamp", "type": "uint256" }
272
+ ],
273
+ "name": "ThreadAnchored",
274
+ "type": "event"
275
+ },
276
+ {
277
+ "anonymous": false,
278
+ "inputs": [
279
+ { "indexed": true, "name": "periodId", "type": "bytes32" },
280
+ { "indexed": false, "name": "merkleRoot", "type": "bytes32" },
281
+ { "indexed": false, "name": "attestationCount", "type": "uint256" },
282
+ { "indexed": false, "name": "timestamp", "type": "uint256" }
283
+ ],
284
+ "name": "PeriodCertified",
285
+ "type": "event"
286
+ }
287
+ ];
288
+ // ============================================================================
289
+ // Solidity Contract (for reference)
290
+ // ============================================================================
291
+ export const ETHEREUM_CONTRACT_SOURCE = `
292
+ // SPDX-License-Identifier: MIT
293
+ pragma solidity ^0.8.19;
294
+
295
+ /**
296
+ * @title DomereProtocol
297
+ * @dev Thread anchoring and compliance certification for AI agent security
298
+ */
299
+ contract DomereProtocol {
300
+
301
+ // Protocol fee (5% of gas, calculated off-chain and sent as msg.value)
302
+ uint256 public protocolFeeBps = 500;
303
+ address public treasury;
304
+ address public owner;
305
+
306
+ struct ThreadAnchor {
307
+ bytes32 merkleRoot;
308
+ uint256 hopCount;
309
+ bytes32 intentHash;
310
+ bool compliant;
311
+ uint256 timestamp;
312
+ address anchorer;
313
+ }
314
+
315
+ struct CompliancePeriod {
316
+ bytes32 merkleRoot;
317
+ uint256 attestationCount;
318
+ uint256 violationCount;
319
+ uint256 periodStart;
320
+ uint256 periodEnd;
321
+ uint256 timestamp;
322
+ bool certified;
323
+ }
324
+
325
+ mapping(bytes32 => ThreadAnchor) public anchors;
326
+ mapping(bytes32 => CompliancePeriod) public periods;
327
+ mapping(address => bool) public authorizedAnchors;
328
+
329
+ event ThreadAnchored(
330
+ bytes32 indexed threadId,
331
+ bytes32 merkleRoot,
332
+ address anchorer,
333
+ uint256 timestamp
334
+ );
335
+
336
+ event PeriodCertified(
337
+ bytes32 indexed periodId,
338
+ bytes32 merkleRoot,
339
+ uint256 attestationCount,
340
+ uint256 timestamp
341
+ );
342
+
343
+ modifier onlyOwner() {
344
+ require(msg.sender == owner, "Not owner");
345
+ _;
346
+ }
347
+
348
+ constructor(address _treasury) {
349
+ owner = msg.sender;
350
+ treasury = _treasury;
351
+ authorizedAnchors[msg.sender] = true;
352
+ }
353
+
354
+ /**
355
+ * @dev Anchor a thread to the blockchain
356
+ */
357
+ function anchorThread(
358
+ bytes32 threadId,
359
+ bytes32 merkleRoot,
360
+ uint256 hopCount,
361
+ bytes32 intentHash,
362
+ bool compliant
363
+ ) external payable {
364
+ require(anchors[threadId].timestamp == 0, "Thread already anchored");
365
+
366
+ // Store anchor
367
+ anchors[threadId] = ThreadAnchor({
368
+ merkleRoot: merkleRoot,
369
+ hopCount: hopCount,
370
+ intentHash: intentHash,
371
+ compliant: compliant,
372
+ timestamp: block.timestamp,
373
+ anchorer: msg.sender
374
+ });
375
+
376
+ // Transfer protocol fee to treasury
377
+ if (msg.value > 0) {
378
+ payable(treasury).transfer(msg.value);
379
+ }
380
+
381
+ emit ThreadAnchored(threadId, merkleRoot, msg.sender, block.timestamp);
382
+ }
383
+
384
+ /**
385
+ * @dev Certify a compliance period
386
+ */
387
+ function certifyPeriod(
388
+ bytes32 periodId,
389
+ bytes32 merkleRoot,
390
+ uint256 attestationCount,
391
+ uint256 violationCount,
392
+ uint256 periodStart,
393
+ uint256 periodEnd
394
+ ) external payable {
395
+ require(authorizedAnchors[msg.sender], "Not authorized");
396
+
397
+ periods[periodId] = CompliancePeriod({
398
+ merkleRoot: merkleRoot,
399
+ attestationCount: attestationCount,
400
+ violationCount: violationCount,
401
+ periodStart: periodStart,
402
+ periodEnd: periodEnd,
403
+ timestamp: block.timestamp,
404
+ certified: true
405
+ });
406
+
407
+ if (msg.value > 0) {
408
+ payable(treasury).transfer(msg.value);
409
+ }
410
+
411
+ emit PeriodCertified(periodId, merkleRoot, attestationCount, block.timestamp);
412
+ }
413
+
414
+ /**
415
+ * @dev Verify a thread anchor
416
+ */
417
+ function verifyAnchor(
418
+ bytes32 threadId,
419
+ bytes32 expectedMerkleRoot
420
+ ) external view returns (bool valid, uint256 timestamp) {
421
+ ThreadAnchor memory anchor = anchors[threadId];
422
+ return (
423
+ anchor.merkleRoot == expectedMerkleRoot && anchor.timestamp > 0,
424
+ anchor.timestamp
425
+ );
426
+ }
427
+
428
+ /**
429
+ * @dev Verify an attestation using Merkle proof
430
+ */
431
+ function verifyAttestation(
432
+ bytes32 threadId,
433
+ bytes32 attestationHash,
434
+ bytes32[] calldata merkleProof
435
+ ) external view returns (bool) {
436
+ ThreadAnchor memory anchor = anchors[threadId];
437
+ require(anchor.timestamp > 0, "Thread not anchored");
438
+
439
+ bytes32 computedHash = attestationHash;
440
+ for (uint256 i = 0; i < merkleProof.length; i++) {
441
+ bytes32 proofElement = merkleProof[i];
442
+ if (computedHash <= proofElement) {
443
+ computedHash = keccak256(abi.encodePacked(computedHash, proofElement));
444
+ } else {
445
+ computedHash = keccak256(abi.encodePacked(proofElement, computedHash));
446
+ }
447
+ }
448
+
449
+ return computedHash == anchor.merkleRoot;
450
+ }
451
+
452
+ /**
453
+ * @dev Authorize an address to certify periods
454
+ */
455
+ function authorizeAnchor(address addr) external onlyOwner {
456
+ authorizedAnchors[addr] = true;
457
+ }
458
+
459
+ /**
460
+ * @dev Revoke authorization
461
+ */
462
+ function revokeAuthorization(address addr) external onlyOwner {
463
+ authorizedAnchors[addr] = false;
464
+ }
465
+
466
+ /**
467
+ * @dev Update treasury address
468
+ */
469
+ function setTreasury(address _treasury) external onlyOwner {
470
+ treasury = _treasury;
471
+ }
472
+ }
473
+ `;
474
+ //# sourceMappingURL=ethereum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethereum.js","sourceRoot":"","sources":["../../src/anchoring/ethereum.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Dōmere - The Judge Protocol
3
+ * Anchoring Module
4
+ */
5
+ export { MerkleTree, BatchAnchor } from './merkle.js';
6
+ export { SolanaAnchorClient, SOLANA_PROGRAM_IDL } from './solana.js';
7
+ export { EthereumAnchorClient, ETHEREUM_CONTRACT_ABI, ETHEREUM_CONTRACT_SOURCE } from './ethereum.js';
8
+ import type { AnchorRequest, AnchorResult, AnchorVerification, BlockchainNetwork, Thread } from '../types.js';
9
+ import { SolanaAnchorClient } from './solana.js';
10
+ import { EthereumAnchorClient } from './ethereum.js';
11
+ export declare class AnchoringService {
12
+ private solana;
13
+ private ethereum;
14
+ private pendingBatch;
15
+ constructor(config?: {
16
+ solana?: {
17
+ rpc_url?: string;
18
+ program_id?: string;
19
+ };
20
+ ethereum?: {
21
+ rpc_url?: string;
22
+ contract_address?: string;
23
+ };
24
+ });
25
+ /**
26
+ * Prepare thread for anchoring
27
+ */
28
+ prepareThreadAnchor(thread: Thread): AnchorRequest;
29
+ /**
30
+ * Estimate anchoring cost
31
+ */
32
+ estimateCost(network: BlockchainNetwork): Promise<{
33
+ network: BlockchainNetwork;
34
+ network_fee: string;
35
+ protocol_fee: string;
36
+ total: string;
37
+ currency: string;
38
+ }>;
39
+ /**
40
+ * Create anchor transaction (unsigned)
41
+ */
42
+ createAnchorTransaction(request: AnchorRequest): Promise<{
43
+ network: BlockchainNetwork;
44
+ transaction_data: unknown;
45
+ estimated_cost: unknown;
46
+ instructions: string;
47
+ }>;
48
+ /**
49
+ * Submit signed transaction
50
+ */
51
+ submitSignedTransaction(network: BlockchainNetwork, signedTransaction: string): Promise<AnchorResult>;
52
+ /**
53
+ * Verify anchor on-chain
54
+ */
55
+ verifyAnchor(network: BlockchainNetwork, threadId: string, expectedMerkleRoot: string): Promise<AnchorVerification>;
56
+ /**
57
+ * Start a batch for efficient anchoring
58
+ */
59
+ startBatch(): void;
60
+ /**
61
+ * Add thread to batch
62
+ */
63
+ addToBatch(thread: Thread): void;
64
+ /**
65
+ * Finalize batch and get root
66
+ */
67
+ finalizeBatch(): {
68
+ root: string;
69
+ count: number;
70
+ thread_ids: string[];
71
+ };
72
+ /**
73
+ * Get proof for specific thread in batch
74
+ */
75
+ getBatchProof(threadId: string): {
76
+ proof: string[];
77
+ positions: number[];
78
+ root: string;
79
+ } | null;
80
+ /**
81
+ * Clear batch
82
+ */
83
+ clearBatch(): void;
84
+ /**
85
+ * Get explorer URL for transaction
86
+ */
87
+ getExplorerUrl(network: BlockchainNetwork, txHash: string): string;
88
+ /**
89
+ * Get client for direct access
90
+ */
91
+ getClient(network: BlockchainNetwork): SolanaAnchorClient | EthereumAnchorClient;
92
+ }
93
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/anchoring/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEtG,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACP,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAOrD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,YAAY,CAA4B;gBAEpC,MAAM,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACnD,QAAQ,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5D;IAKD;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAelD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC;QACtD,OAAO,EAAE,iBAAiB,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAsBF;;OAEG;IACG,uBAAuB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;QAC7D,OAAO,EAAE,iBAAiB,CAAC;QAC3B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAoBF;;OAEG;IACG,uBAAuB,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,YAAY,CAAC;IAQxB;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,kBAAkB,CAAC;IAQ9B;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAgBhC;;OAEG;IACH,aAAa,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB;IAYD;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;QAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI;IAQR;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAQlE;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,oBAAoB;CAOjF"}