Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ Smart contract sets allow you to incorporate **business logic** into your
application by deploying smart contracts that run on the blockchain. You can add
a smart contract set via different methods as part of your development workflow.

## IDE project structure**

## IDE project structure


The EVM IDE project structure in code studio is thoughtfully organized to
support efficient smart contract development, testing, and deployment. Each
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ Smart contract sets allow you to incorporate **business logic** into your
application by deploying smart contracts that run on the blockchain. You can add
a smart contract set via different methods as part of your development workflow.

## IDE project structure**

## IDE project structure


The EVM IDE project structure in code studio is thoughtfully organized to
support efficient smart contract development, testing, and deployment. Each
Expand Down
2 changes: 1 addition & 1 deletion content/docs/knowledge-bank/keys-and-security.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import { Card } from "fumadocs-ui/components/card";

## Security infrastructure

### 1. Hardware security modules (hsm)
### 1. Hardware security modules (HSM)

```typescript
interface HSMConfig {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,9 @@ Real-time logs provide visibility into **node operations**, including:
The **Hyperledger Fabric Node Dashboard** is designed to monitor and manage
Fabric nodes, focusing on consensus, network identity, and operational metrics.

### 2.1 details tab

### 2.1 Details tab


![Fabric Node Info](../../../img/platfrom-components/fabric-node-info.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,19 +97,19 @@ distribution, and failover mechanisms**.
SettleMint allows **flexible deployment** of its blockchain load balancer based
on the specific needs of an organization:

### **1. cloud-based load balancer**
### **1. Cloud-based load balancer**

- Deployed on cloud infrastructure (AWS, Azure, GCP) with **auto-scaling
capabilities**.
- Ideal for **enterprise-grade blockchain solutions**.

### **2. on-premises load balancer**
### **2. On-premises load balancer**

- Runs within a **private network** for **enhanced security and regulatory
compliance**.
- Suitable for **financial, government, and enterprise applications**.

### **3. hybrid load balancer**
### **3. Hybrid load balancer**

- A combination of **cloud and on-prem** nodes to balance traffic dynamically.
- Enables **cost efficiency and scalability** while ensuring **data privacy**.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,14 @@ nodes:

![Transaction Signer Keys Mapping](../../../img/platfrom-components/signer-key-mapping.png)

### **2. hardware security module (hsm) or vault integration**
### **2. Hardware security module (HSM) or vault integration**

- SettleMint allows integration with **AWS KMS, HashiCorp Vault, and other
secure key management services**.
- This approach keeps private keys **off-chain and protected from unauthorized
access**.

### **3. remote signing via api**
### **3. Remote signing via API**

- Instead of storing private keys on nodes, SettleMint supports **external
signing services** that handle digital signatures remotely.
Expand Down
1 change: 0 additions & 1 deletion content/docs/use-case-guides/asset-tokenization.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,6 @@ For more information on how to add a smart contract set,

### 2. Opening the integrated development environment IDE


To add and edit the smart contract code, you will use the IDE.

![Open Fullscreen](../../img/developer-guides/asset-tokenization/open-fullscreen.png)
Expand Down
25 changes: 11 additions & 14 deletions format-headings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ const ABBREVIATIONS = [
"AI",
"MCP",
"IDE",
"HSM",
"API",
"SDK",
"URL",
"JSON",
"GraphQL",

// Add more abbreviations here in UPPERCASE
// Example:
Expand Down Expand Up @@ -83,24 +89,15 @@ function processLine(line: string): string {
return line;
}

// Updated regex to handle all numbering patterns, but preserve existing formatting
// Updated regex to handle all cases including spaced asterisks
const headingRegex =
/^(#{1,6})\s*(\*\*)?(?:(\d{1,2}\.(?:\d{1,2})?)\.\s*)?([a-zA-Z].*?)(\*\*)?$/;
/^(#{1,6}\s*\*{0,2}\s*(?:\d+(?:\.\d+)?\.?\s*)?)([a-zA-Z])(.*?)$/;
const match = line.match(headingRegex);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (complexity): Consider simplifying the heading extraction by breaking the regex into clearer pieces and moving the heading processing into its own helper function to improve readability and reduce complexity

The change introduces a regex that uses additional captures and logic for reassembling the heading, which makes the code harder to follow. You can simplify the extraction by breaking the regex into clearer pieces and by moving the heading processing into its own helper. For example:

function parseHeading(line: string) {
  // Break the line into three groups: heading markers, prefix (including any numbering or asterisks), and the content.
  const parts = line.match(/^(#{1,6})(\s*\*{0,2}\s*(?:\d+(?:\.\d+)?\.?\s*))?(.*)$/);
  if (!parts) return null;
  const [, hashes, prefix = "", content] = parts;
  return { hashes, prefix, content };
}

function processLine(line: string): string {
  if (!line.startsWith("#")) return line;

  const parsed = parseHeading(line);
  if (parsed) {
    const { hashes, prefix, content } = parsed;
    return `${hashes}${prefix}${content.charAt(0).toUpperCase()}${content.slice(1)}`;
  }

  return line;
}

This refactoring isolates the regex parsing, makes the purpose of each capture clear, and reduces the complexity of the inline logic.


if (match) {
const [_, hashes, startBold, numbers, content, endBold] = match;

// Capitalize first letter of the content
const processedContent = content.charAt(0).toUpperCase() + content.slice(1);

// Reconstruct the line maintaining original formatting
if (startBold) {
// Only add ** if they were present in the original
return `${hashes} ${startBold}${numbers ? numbers + ". " : ""}${processedContent}${endBold || "**"}`;
} else {
return `${hashes} ${numbers ? numbers + ". " : ""}${processedContent}`;
}
const [_, prefix, firstLetter, rest] = match;
// Only capitalize the first letter, keep everything else exactly as is
return `${prefix}${firstLetter.toUpperCase()}${rest}`;
}

return line;
Expand Down