@iamnotdou/ccp 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.js","sourceRoot":"","sources":["../../src/contracts/abis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { CCPRegistryABI, ReserveVaultABI, SpendingLimitABI, AuditorStakingABI, FeeEscrowABI, ChallengeManagerABI, } from "./abis.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,WAAW,CAAC"}
package/dist/demo.js ADDED
@@ -0,0 +1,218 @@
1
+ /**
2
+ * CCP Full Demo Scenario
3
+ *
4
+ * Demonstrates the complete Containment Certificate Protocol flow
5
+ * with Hedera (settlement), Ledger (containment), and ENS (identity).
6
+ *
7
+ * Flow:
8
+ * 1. Auditor audits containment → stakes → signs attestation (Ledger)
9
+ * 2. Operator publishes certificate (Ledger-signed) → HCS event
10
+ * 3. Counterparty resolves agent ENS name → queries registry → verifies
11
+ * 4. Agent makes small payment (agent-only signature)
12
+ * 5. Agent makes large payment (Ledger co-signs)
13
+ * 6. Agent tries to exceed limit → BLOCKED (the cage holds)
14
+ * 7. Show full HCS event timeline via Mirror Node
15
+ *
16
+ * Usage: ccp demo (or: npm run demo)
17
+ * Requires: .env with Hedera testnet credentials + deployed contracts
18
+ */
19
+ import "dotenv/config";
20
+ import { formatUnits, keccak256, encodePacked } from "viem";
21
+ import { publicClient, getWalletClient } from "./client.js";
22
+ import { addresses, keys, hederaConfig } from "./config.js";
23
+ import { CCPRegistryABI, SpendingLimitABI, ReserveVaultABI, AuditorStakingABI, } from "./contracts/index.js";
24
+ import { attestCertificate } from "./auditor/attest.js";
25
+ import { ledgerSignCertificate, executeWithLedgerCosign } from "./ledger/cosigner.js";
26
+ import { publishCertificatePublished, publishAgentTransaction, publishTransactionBlocked, } from "./hcs/publisher.js";
27
+ import { discoverAgent } from "./ens/textRecords.js";
28
+ import { printEventTimeline } from "./hedera/mirrorNode.js";
29
+ // ─── Constants ───
30
+ const CONTAINMENT_BOUND = 50000000000n; // $50,000 USDC (6 decimals)
31
+ const AUDITOR_STAKE = 1500000000n; // $1,500 USDC
32
+ const SMALL_PAYMENT = 500000000n; // $500 USDC
33
+ const LARGE_PAYMENT = 7000000000n; // $7,000 USDC (above cosign threshold)
34
+ const OVER_LIMIT = 45000000000n; // $45,000 USDC (would exceed period limit)
35
+ async function main() {
36
+ console.log("╔══════════════════════════════════════════════╗");
37
+ console.log("║ CCP — Containment Certificate Protocol ║");
38
+ console.log("║ Demo: Hedera × Ledger × ENS ║");
39
+ console.log("╚══════════════════════════════════════════════╝\n");
40
+ const operatorWallet = getWalletClient(keys.operator);
41
+ const agentWallet = getWalletClient(keys.agent);
42
+ // Compute certificate hash (proper keccak256)
43
+ const certHash = keccak256(encodePacked(["address", "address", "uint256", "string"], [agentWallet.account.address, operatorWallet.account.address, BigInt(Date.now()), "ccp-v0.2"]));
44
+ // ════════════════════════════════════════════════
45
+ // Phase 1: Auditor Audit + Stake + Attest
46
+ // ════════════════════════════════════════════════
47
+ console.log("━━━ Phase 1: Auditor Audit & Attestation ━━━\n");
48
+ const { signature: auditorSig, auditResult } = await attestCertificate(certHash, addresses.spendingLimit, addresses.reserveVault, CONTAINMENT_BOUND, AUDITOR_STAKE);
49
+ console.log(`\n Audit result: ${auditResult.certClass}`);
50
+ console.log(` Auditor signature: ${auditorSig.slice(0, 20)}...`);
51
+ // ════════════════════════════════════════════════
52
+ // Phase 2: Operator Publishes Certificate
53
+ // ════════════════════════════════════════════════
54
+ console.log("\n━━━ Phase 2: Certificate Publication (Ledger-signed) ━━━\n");
55
+ const operatorSig = await ledgerSignCertificate(certHash);
56
+ // Build PublishParams struct
57
+ const publishParams = {
58
+ certHash,
59
+ agent: agentWallet.account.address,
60
+ certificateClass: 2, // C2
61
+ expiresAt: Math.floor(Date.now() / 1000) + 60 * 24 * 3600, // 60 days
62
+ containmentBound: CONTAINMENT_BOUND,
63
+ reserveVault: addresses.reserveVault,
64
+ spendingLimit: addresses.spendingLimit,
65
+ ipfsUri: "ipfs://QmCCPDemoCertificate",
66
+ };
67
+ const publishTx = await operatorWallet.writeContract({
68
+ address: addresses.registry,
69
+ abi: CCPRegistryABI,
70
+ functionName: "publish",
71
+ args: [publishParams, operatorSig, [auditorSig]],
72
+ });
73
+ await publicClient.waitForTransactionReceipt({ hash: publishTx });
74
+ console.log(` Certificate published: ${publishTx}`);
75
+ // Publish to HCS (non-fatal)
76
+ try {
77
+ await publishCertificatePublished(certHash, agentWallet.account.address, operatorWallet.account.address, "C2", formatUnits(CONTAINMENT_BOUND, 6));
78
+ }
79
+ catch (e) {
80
+ console.log(` [HCS] Event skipped: ${e.message?.slice(0, 60)}`);
81
+ }
82
+ // Verify on-chain
83
+ const isValid = await publicClient.readContract({
84
+ address: addresses.registry,
85
+ abi: CCPRegistryABI,
86
+ functionName: "isValid",
87
+ args: [certHash],
88
+ });
89
+ console.log(` Certificate valid: ${isValid}`);
90
+ // ════════════════════════════════════════════════
91
+ // Phase 3: Counterparty Verifies via ENS
92
+ // ════════════════════════════════════════════════
93
+ console.log("\n━━━ Phase 3: Counterparty Verification (ENS → Registry) ━━━\n");
94
+ // In production: counterparty resolves agent's ENS name
95
+ // For demo: simulate the discovery flow
96
+ console.log(" [Counterparty] Discovering agent via ENS...");
97
+ // Try ENS resolution with timeout (Sepolia RPC can be slow)
98
+ try {
99
+ const ensTimeout = new Promise((_, reject) => setTimeout(() => reject(new Error("timeout")), 5000));
100
+ const discovery = await Promise.race([discoverAgent("alpha.ccpdemo.eth"), ensTimeout]);
101
+ console.log(` ENS discovery:`, discovery);
102
+ }
103
+ catch (e) {
104
+ console.log(` [ENS] Skipped (${e.message?.slice(0, 30)}) — using direct registry query`);
105
+ }
106
+ // Direct registry verification (always works)
107
+ const [acceptable, foundCert] = await publicClient.readContract({
108
+ address: addresses.registry,
109
+ abi: CCPRegistryABI,
110
+ functionName: "verify",
111
+ args: [agentWallet.account.address, 1, 100000000000n], // minClass=C1, maxLoss=$100k
112
+ });
113
+ console.log(` Registry verify: acceptable=${acceptable}, certHash=${foundCert.slice(0, 18)}...`);
114
+ // Check auditor stake
115
+ const auditorWallet = getWalletClient(keys.auditor);
116
+ const stake = await publicClient.readContract({
117
+ address: addresses.auditorStaking,
118
+ abi: AuditorStakingABI,
119
+ functionName: "getStake",
120
+ args: [auditorWallet.account.address, certHash],
121
+ });
122
+ console.log(` Auditor stake: ${formatUnits(stake, 6)} USDC`);
123
+ // Check reserve
124
+ const reserveBalance = await publicClient.readContract({
125
+ address: addresses.reserveVault,
126
+ abi: ReserveVaultABI,
127
+ functionName: "getReserveBalance",
128
+ });
129
+ console.log(` Reserve balance: ${formatUnits(reserveBalance, 6)} USDC`);
130
+ console.log(` → VERIFICATION PASSED. Accepting transaction.\n`);
131
+ // ════════════════════════════════════════════════
132
+ // Phase 4: Agent Pays (Small — No Cosign)
133
+ // ════════════════════════════════════════════════
134
+ console.log("━━━ Phase 4: Small Payment ($500 — Agent Only) ━━━\n");
135
+ const counterpartyAddr = "0x000000000000000000000000000000000000dEaD";
136
+ const smallTx = await agentWallet.writeContract({
137
+ address: addresses.spendingLimit,
138
+ abi: SpendingLimitABI,
139
+ functionName: "execute",
140
+ args: [counterpartyAddr, SMALL_PAYMENT, "0x"],
141
+ });
142
+ await publicClient.waitForTransactionReceipt({ hash: smallTx });
143
+ console.log(` Transaction: ${smallTx}`);
144
+ const [spent1] = await publicClient.readContract({
145
+ address: addresses.spendingLimit,
146
+ abi: SpendingLimitABI,
147
+ functionName: "getSpentInPeriod",
148
+ });
149
+ console.log(` Period spent: ${formatUnits(spent1, 6)} / ${formatUnits(50000000000n, 6)} USDC`);
150
+ try {
151
+ await publishAgentTransaction(agentWallet.account.address, counterpartyAddr, formatUnits(SMALL_PAYMENT, 6), false, formatUnits(spent1, 6), "50000");
152
+ }
153
+ catch {
154
+ console.log(" [HCS] Event skipped");
155
+ }
156
+ // ════════════════════════════════════════════════
157
+ // Phase 5: Agent Pays (Large — Ledger Co-Signs)
158
+ // ════════════════════════════════════════════════
159
+ console.log("\n━━━ Phase 5: Large Payment ($7,000 — Ledger Co-Sign) ━━━\n");
160
+ const largeTx = await executeWithLedgerCosign(counterpartyAddr, LARGE_PAYMENT, addresses.spendingLimit);
161
+ const [spent2] = await publicClient.readContract({
162
+ address: addresses.spendingLimit,
163
+ abi: SpendingLimitABI,
164
+ functionName: "getSpentInPeriod",
165
+ });
166
+ console.log(` Period spent: ${formatUnits(spent2, 6)} / ${formatUnits(50000000000n, 6)} USDC`);
167
+ try {
168
+ await publishAgentTransaction(agentWallet.account.address, counterpartyAddr, formatUnits(LARGE_PAYMENT, 6), true, formatUnits(spent2, 6), "50000");
169
+ }
170
+ catch {
171
+ console.log(" [HCS] Event skipped");
172
+ }
173
+ // ════════════════════════════════════════════════
174
+ // Phase 6: Agent Exceeds Limit — BLOCKED
175
+ // ════════════════════════════════════════════════
176
+ console.log("\n━━━ Phase 6: Over-Limit Payment ($45,000 — BLOCKED) ━━━\n");
177
+ try {
178
+ await executeWithLedgerCosign(counterpartyAddr, OVER_LIMIT, addresses.spendingLimit);
179
+ console.log(" ERROR: Should have been blocked!");
180
+ }
181
+ catch (error) {
182
+ console.log(" ✗ TRANSACTION BLOCKED — Containment held!");
183
+ console.log(` Reason: ${error.message?.slice(0, 100)}`);
184
+ try {
185
+ await publishTransactionBlocked(agentWallet.account.address, formatUnits(OVER_LIMIT, 6), "EXCEEDS_PERIODIC_LIMIT", formatUnits(spent2, 6), "50000");
186
+ }
187
+ catch {
188
+ console.log(" [HCS] Event skipped");
189
+ }
190
+ }
191
+ const remaining = await publicClient.readContract({
192
+ address: addresses.spendingLimit,
193
+ abi: SpendingLimitABI,
194
+ functionName: "getRemainingAllowance",
195
+ });
196
+ console.log(` Remaining allowance: ${formatUnits(remaining, 6)} USDC`);
197
+ // ════════════════════════════════════════════════
198
+ // Phase 7: Show HCS Event Timeline
199
+ // ════════════════════════════════════════════════
200
+ console.log("\n━━━ Phase 7: Event Timeline (Hedera Consensus Service) ━━━");
201
+ if (hederaConfig.hcsTopicId) {
202
+ await printEventTimeline(hederaConfig.hcsTopicId);
203
+ }
204
+ else {
205
+ console.log(" [HCS] No topic ID configured — skipping timeline display");
206
+ }
207
+ // ════════════════════════════════════════════════
208
+ console.log("\n╔══════════════════════════════════════════════╗");
209
+ console.log("║ Demo Complete ║");
210
+ console.log("║ ║");
211
+ console.log("║ The cage held. The agent could not exceed ║");
212
+ console.log("║ its containment bound — even with Ledger ║");
213
+ console.log("║ co-signature. Smart contract limits are ║");
214
+ console.log("║ absolute. That is the CCP thesis. ║");
215
+ console.log("╚══════════════════════════════════════════════╝\n");
216
+ }
217
+ main().catch(console.error);
218
+ //# sourceMappingURL=demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Build the subname registration data for an agent fleet.
3
+ * This returns the data needed to register subnames via ENS contracts.
4
+ */
5
+ export function buildFleetSubnames(operatorName, agents) {
6
+ return agents.map((agent) => ({
7
+ label: agent.label,
8
+ fullName: `${agent.label}.${operatorName}`,
9
+ agentAddress: agent.address,
10
+ textRecords: {
11
+ "ccp.certificate": agent.certHash,
12
+ "ccp.class": agent.certClass,
13
+ "ccp.bound": agent.containmentBound,
14
+ "ccp.chain": agent.chainId,
15
+ "ccp.registry": agent.registryAddress,
16
+ "ccp.role": "agent",
17
+ },
18
+ }));
19
+ }
20
+ /**
21
+ * Build auditor ENS text records.
22
+ */
23
+ export function buildAuditorTextRecords(params) {
24
+ return {
25
+ "ccp.role": "auditor",
26
+ "ccp.specialization": params.specialization,
27
+ "ccp.attestation_count": params.attestationCount.toString(),
28
+ "ccp.challenge_count": params.challengeCount.toString(),
29
+ "ccp.active_stake": params.activeStake,
30
+ "ccp.staking_address": params.stakingAddress,
31
+ };
32
+ }
33
+ //# sourceMappingURL=subnames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subnames.js","sourceRoot":"","sources":["../../src/ens/subnames.ts"],"names":[],"mappings":"AA0BA;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAoB,EACpB,MAQE;IAEF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,YAAY,EAAE;QAC1C,YAAY,EAAE,KAAK,CAAC,OAAO;QAC3B,WAAW,EAAE;YACX,iBAAiB,EAAE,KAAK,CAAC,QAAQ;YACjC,WAAW,EAAE,KAAK,CAAC,SAAS;YAC5B,WAAW,EAAE,KAAK,CAAC,gBAAgB;YACnC,WAAW,EAAE,KAAK,CAAC,OAAO;YAC1B,cAAc,EAAE,KAAK,CAAC,eAAe;YACrC,UAAU,EAAE,OAAO;SACpB;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAMvC;IACC,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,oBAAoB,EAAE,MAAM,CAAC,cAAc;QAC3C,uBAAuB,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;QAC3D,qBAAqB,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE;QACvD,kBAAkB,EAAE,MAAM,CAAC,WAAW;QACtC,qBAAqB,EAAE,MAAM,CAAC,cAAc;KAC7C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { createPublicClient, http } from "viem";
2
+ import { sepolia } from "viem/chains";
3
+ import { normalize } from "viem/ens";
4
+ import { ensConfig } from "../config.js";
5
+ // ENS lives on Ethereum Sepolia (testnet) while CCP contracts live on Hedera.
6
+ // ENS is the cross-chain discovery layer: ENS name → text records → Hedera addresses.
7
+ const ensClient = createPublicClient({
8
+ chain: sepolia,
9
+ transport: http(ensConfig.rpcUrl),
10
+ });
11
+ // ─── CCP-specific ENS text record keys ───
12
+ export const CCP_TEXT_KEYS = {
13
+ CERTIFICATE: "ccp.certificate", // Active cert hash
14
+ CLASS: "ccp.class", // C1, C2, C3
15
+ BOUND: "ccp.bound", // Containment bound in USDC
16
+ CHAIN: "ccp.chain", // Chain ID where registry lives (296 = Hedera testnet)
17
+ REGISTRY: "ccp.registry", // Registry contract address
18
+ RESERVE: "ccp.reserve", // ReserveVault address
19
+ EXPIRES: "ccp.expires", // Certificate expiry timestamp
20
+ // Auditor-specific
21
+ ROLE: "ccp.role", // "operator", "auditor", "agent"
22
+ SPECIALIZATION: "ccp.specialization", // Audit scope
23
+ ATTESTATION_COUNT: "ccp.attestation_count",
24
+ CHALLENGE_COUNT: "ccp.challenge_count",
25
+ ACTIVE_STAKE: "ccp.active_stake",
26
+ LATEST_ATTESTATION: "ccp.latest_attestation",
27
+ };
28
+ /**
29
+ * Read all CCP text records from an ENS name.
30
+ * This is the entry point for the verification flow:
31
+ * ENS name → text records → certificate hash + chain → query Hedera registry
32
+ */
33
+ export async function getCCPTextRecords(ensName) {
34
+ const name = normalize(ensName);
35
+ const records = {};
36
+ const keys = [
37
+ { key: CCP_TEXT_KEYS.CERTIFICATE, field: "certificate" },
38
+ { key: CCP_TEXT_KEYS.CLASS, field: "class" },
39
+ { key: CCP_TEXT_KEYS.BOUND, field: "bound" },
40
+ { key: CCP_TEXT_KEYS.CHAIN, field: "chain" },
41
+ { key: CCP_TEXT_KEYS.REGISTRY, field: "registry" },
42
+ { key: CCP_TEXT_KEYS.RESERVE, field: "reserve" },
43
+ { key: CCP_TEXT_KEYS.EXPIRES, field: "expires" },
44
+ { key: CCP_TEXT_KEYS.ROLE, field: "role" },
45
+ { key: CCP_TEXT_KEYS.SPECIALIZATION, field: "specialization" },
46
+ { key: CCP_TEXT_KEYS.ATTESTATION_COUNT, field: "attestationCount" },
47
+ { key: CCP_TEXT_KEYS.CHALLENGE_COUNT, field: "challengeCount" },
48
+ ];
49
+ for (const { key, field } of keys) {
50
+ try {
51
+ const value = await ensClient.getEnsText({ name, key });
52
+ if (value)
53
+ records[field] = value;
54
+ }
55
+ catch {
56
+ // Record not set — skip
57
+ }
58
+ }
59
+ return records;
60
+ }
61
+ /**
62
+ * Resolve an ENS name to an Ethereum address.
63
+ */
64
+ export async function resolveENS(ensName) {
65
+ try {
66
+ const address = await ensClient.getEnsAddress({ name: normalize(ensName) });
67
+ return address;
68
+ }
69
+ catch {
70
+ return null;
71
+ }
72
+ }
73
+ /**
74
+ * Reverse resolve an address to an ENS name.
75
+ */
76
+ export async function reverseResolveENS(address) {
77
+ try {
78
+ const name = await ensClient.getEnsName({ address });
79
+ return name;
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
85
+ /**
86
+ * Full CCP discovery flow from ENS name:
87
+ * 1. Resolve name → address
88
+ * 2. Read CCP text records (cert hash, chain, registry)
89
+ * 3. Return everything needed to query the Hedera registry
90
+ */
91
+ export async function discoverAgent(ensName) {
92
+ console.log(` [ENS] Resolving ${ensName}...`);
93
+ const address = await resolveENS(ensName);
94
+ const records = await getCCPTextRecords(ensName);
95
+ console.log(` [ENS] Address: ${address || "not found"}`);
96
+ console.log(` [ENS] Certificate: ${records.certificate || "none"}`);
97
+ console.log(` [ENS] Class: ${records.class || "unknown"}`);
98
+ console.log(` [ENS] Chain: ${records.chain || "unknown"}`);
99
+ return {
100
+ ensName,
101
+ address,
102
+ certHash: records.certificate,
103
+ certClass: records.class,
104
+ chainId: records.chain ? parseInt(records.chain) : undefined,
105
+ registryAddress: records.registry,
106
+ reserveAddress: records.reserve,
107
+ containmentBound: records.bound,
108
+ role: records.role,
109
+ };
110
+ }
111
+ //# sourceMappingURL=textRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textRecords.js","sourceRoot":"","sources":["../../src/ens/textRecords.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { Client, TopicMessageQuery, TopicId, AccountId, PrivateKey } from "@hashgraph/sdk";
2
+ import { hederaConfig } from "../config.js";
3
+ /**
4
+ * Subscribe to CCP events on an HCS topic.
5
+ * Uses Hedera Mirror Node for historical + live messages.
6
+ */
7
+ export function subscribeToCCPEvents(topicIdStr, onEvent) {
8
+ const client = hederaConfig.network === "testnet" ? Client.forTestnet() : Client.forMainnet();
9
+ if (hederaConfig.hcsAccountId && hederaConfig.hcsPrivateKeyDer) {
10
+ client.setOperator(AccountId.fromString(hederaConfig.hcsAccountId), PrivateKey.fromStringDer(hederaConfig.hcsPrivateKeyDer));
11
+ }
12
+ else if (hederaConfig.accountId && hederaConfig.privateKey) {
13
+ const rawKey = hederaConfig.privateKey.startsWith("0x")
14
+ ? hederaConfig.privateKey.slice(2)
15
+ : hederaConfig.privateKey;
16
+ client.setOperator(AccountId.fromString(hederaConfig.accountId), PrivateKey.fromStringECDSA(rawKey));
17
+ }
18
+ const topicId = TopicId.fromString(topicIdStr);
19
+ new TopicMessageQuery()
20
+ .setTopicId(topicId)
21
+ .subscribe(client, null, (message) => {
22
+ const content = Buffer.from(message.contents).toString("utf8");
23
+ try {
24
+ const event = JSON.parse(content);
25
+ const seqNum = message.sequenceNumber.toNumber();
26
+ const timestamp = message.consensusTimestamp.toDate();
27
+ onEvent(event, seqNum, timestamp);
28
+ }
29
+ catch {
30
+ console.warn(" [HCS] Failed to parse message:", content.slice(0, 100));
31
+ }
32
+ });
33
+ console.log(` [HCS] Subscribed to topic ${topicIdStr}`);
34
+ }
35
+ /**
36
+ * Fetch historical CCP events from the Mirror Node REST API.
37
+ */
38
+ export async function fetchCCPHistory(topicIdStr) {
39
+ const baseUrl = hederaConfig.network === "testnet"
40
+ ? "https://testnet.mirrornode.hedera.com"
41
+ : "https://mainnet.mirrornode.hedera.com";
42
+ const url = `${baseUrl}/api/v1/topics/${topicIdStr}/messages?order=asc&limit=100`;
43
+ const response = await fetch(url);
44
+ const data = (await response.json());
45
+ return data.messages.map((msg) => {
46
+ const decoded = Buffer.from(msg.message, "base64").toString("utf8");
47
+ return JSON.parse(decoded);
48
+ });
49
+ }
50
+ //# sourceMappingURL=listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/hcs/listener.ts"],"names":[],"mappings":"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"}