diff --git a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-k8s.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-k8s.json.test.ts.snap index 3623f899..c5a72286 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-k8s.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-k8s.json.test.ts.snap @@ -587,7 +587,7 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel1[[Chaincode: chaincode1]] end class channel_my_channel1_padding subgraph_padding end diff --git a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-peer-dev-mode.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-peer-dev-mode.json.test.ts.snap index 849417a1..8b172668 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-peer-dev-mode.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode-peer-dev-mode.json.test.ts.snap @@ -3567,7 +3567,7 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel1[[Chaincode: chaincode1]] end class channel_my_channel1_padding subgraph_padding end diff --git a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap index c0338b48..80a0288a 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap @@ -3629,7 +3629,7 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel1[[Chaincode: chaincode1]] end class channel_my_channel1_padding subgraph_padding end diff --git a/e2e/__snapshots__/fablo-config-hlf2-1org-2chaincode-raft-ccaas.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-1org-2chaincode-raft-ccaas.json.test.ts.snap index 433f66a4..4da8ed30 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-1org-2chaincode-raft-ccaas.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-1org-2chaincode-raft-ccaas.json.test.ts.snap @@ -3813,14 +3813,14 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel1[[Chaincode: chaincode1]] end class channel_my_channel1_padding subgraph_padding end subgraph channel_my_channel2 [Channel: my-channel2] subgraph channel_my_channel2_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel2[[Chaincode: chaincode1]] end class channel_my_channel2_padding subgraph_padding end diff --git a/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-private-data.yaml.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-private-data.yaml.test.ts.snap index 208613d5..7eab022c 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-private-data.yaml.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-private-data.yaml.test.ts.snap @@ -4595,8 +4595,8 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_or_policy_chaincode[[Chaincode: or-policy-chaincode]] - chaincode_and_policy_chaincode[[Chaincode: and-policy-chaincode]] + chaincode_or_policy_chaincode_my_channel1[[Chaincode: or-policy-chaincode]] + chaincode_and_policy_chaincode_my_channel1[[Chaincode: and-policy-chaincode]] end class channel_my_channel1_padding subgraph_padding end diff --git a/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.test.ts.snap index 951bf0f9..a27b288b 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-2orgs-2chaincodes-raft.yaml.test.ts.snap @@ -6579,7 +6579,7 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel1[[Chaincode: chaincode1]] end class channel_my_channel1_padding subgraph_padding end @@ -6594,7 +6594,7 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel3 [Channel: my-channel3] subgraph channel_my_channel3_padding [ ] - chaincode_chaincode2[[Chaincode: chaincode2]] + chaincode_chaincode2_my_channel3[[Chaincode: chaincode2]] end class channel_my_channel3_padding subgraph_padding end diff --git a/e2e/__snapshots__/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.test.ts.snap index a4d8e5c8..31e2c8c8 100644 --- a/e2e/__snapshots__/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf2-3orgs-1chaincode-raft-explorer.json.test.ts.snap @@ -7193,7 +7193,7 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel1[[Chaincode: chaincode1]] end class channel_my_channel1_padding subgraph_padding end diff --git a/e2e/__snapshots__/fablo-config-hlf3-1orgs-1chaincode.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf3-1orgs-1chaincode.json.test.ts.snap index bdd7de2e..b7c2caeb 100644 --- a/e2e/__snapshots__/fablo-config-hlf3-1orgs-1chaincode.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf3-1orgs-1chaincode.json.test.ts.snap @@ -4029,7 +4029,7 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel1[[Chaincode: chaincode1]] end class channel_my_channel1_padding subgraph_padding end diff --git a/e2e/__snapshots__/fablo-config-hlf3-bft-1orgs-1chaincode.json.test.ts.snap b/e2e/__snapshots__/fablo-config-hlf3-bft-1orgs-1chaincode.json.test.ts.snap index 11a436f3..c03e6814 100644 --- a/e2e/__snapshots__/fablo-config-hlf3-bft-1orgs-1chaincode.json.test.ts.snap +++ b/e2e/__snapshots__/fablo-config-hlf3-bft-1orgs-1chaincode.json.test.ts.snap @@ -4054,7 +4054,7 @@ classDef subgraph_padding fill:none,stroke:none subgraph channel_my_channel1 [Channel: my-channel1] subgraph channel_my_channel1_padding [ ] - chaincode_chaincode1[[Chaincode: chaincode1]] + chaincode_chaincode1_my_channel1[[Chaincode: chaincode1]] end class channel_my_channel1_padding subgraph_padding end diff --git a/src/export-network-topology/generateMermaidDiagram.ts b/src/export-network-topology/generateMermaidDiagram.ts index 10cbbe73..41819e53 100644 --- a/src/export-network-topology/generateMermaidDiagram.ts +++ b/src/export-network-topology/generateMermaidDiagram.ts @@ -3,7 +3,7 @@ import { FabloConfigExtended, OrdererGroup } from "../types/FabloConfigExtended" const safeId = (id: string): string => id.replace(/[^a-zA-Z0-9_]/g, "_"); const ordererGroupId = (g: OrdererGroup): string => safeId(`ord_group_${g.name}_${g.orderers?.[0].address}`); const channelId = (channelName: string): string => safeId(`channel_${channelName}`); -const chaincodeId = (ccName: string): string => safeId(`chaincode_${ccName}`); +const chaincodeId = (ccName: string, channelName: string): string => safeId(`chaincode_${ccName}_${channelName}`); export function generateMermaidDiagram(config: FabloConfigExtended): string { const lines: string[] = ["graph LR"]; @@ -64,7 +64,7 @@ export function generateMermaidDiagram(config: FabloConfigExtended): string { // Add chaincodes for this channel (using cylinder shape) const channelChaincodes = config.chaincodes?.filter((cc) => cc.channel?.name === channel.name) ?? []; channelChaincodes.forEach((cc) => { - lines.push(` ${chaincodeId(cc.name)}[[Chaincode: ${cc.name}]]`); + lines.push(` ${chaincodeId(cc.name, channel.name)}[[Chaincode: ${cc.name}]]`); }); // Add dummy invisible node for empty channels to ensure visibility