# debojyoti10cc/v4-template architecture

> Architecture diagram of the GitHub repository debojyoti10cc/v4-template, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/debojyoti10cc/v4-template
- Repository: https://github.com/debojyoti10cc/v4-template

## Overview

This repository is a Uniswap v4 hook template. Its example contract demonstrates before- and after-swap behavior, while its scripts support deploying the hook, creating a pool with liquidity, adding liquidity, and swapping tokens. The README identifies BaseScript.sol as the place to configure token addresses. Source excerpts were unavailable, so the script relationships reflect documented purposes; internal calls and helper usage are not inferred.

Main entry points: [`script/base/BaseScript.sol`](https://github.com/debojyoti10cc/v4-template/blob/main/script/base/BaseScript.sol) (Base script), [`src/Counter.sol`](https://github.com/debojyoti10cc/v4-template/blob/main/src/Counter.sol) (Counter hook), [`script/00_DeployHook.s.sol`](https://github.com/debojyoti10cc/v4-template/blob/main/script/00_DeployHook.s.sol) (Deploy hook), [`script/01_CreatePoolAndAddLiquidity.s.sol`](https://github.com/debojyoti10cc/v4-template/blob/main/script/01_CreatePoolAndAddLiquidity.s.sol) (Create pool)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_hook["Example hook"]
  node_counter["Counter hook<br/>[Counter.sol]"]
end

subgraph group_scripts["Local operations"]
  node_deploy["Deploy hook"]
  node_create["Create pool"]
  node_add["Add liquidity"]
  node_swap["Swap tokens<br/>[03_Swap.s.sol]"]
end

subgraph group_shared["Script support"]
  node_base["Base script<br/>[BaseScript.sol]"]
  node_liquidity["Liquidity helpers"]
end

node_developer(("Developer"))

node_developer -->|"deploys hook"| node_deploy
node_developer -->|"creates pool"| node_create
node_developer -->|"adds liquidity"| node_add
node_developer -->|"swaps tokens"| node_swap
node_counter -->|"handles before/after swap"| node_counter
node_base -->|"configures tokens"| node_deploy
node_base -->|"configures tokens"| node_create
node_base -->|"configures tokens"| node_add
node_base -->|"configures tokens"| node_swap

click node_counter "https://github.com/debojyoti10cc/v4-template/blob/main/src/Counter.sol"
click node_deploy "https://github.com/debojyoti10cc/v4-template/blob/main/script/00_DeployHook.s.sol"
click node_create "https://github.com/debojyoti10cc/v4-template/blob/main/script/01_CreatePoolAndAddLiquidity.s.sol"
click node_add "https://github.com/debojyoti10cc/v4-template/blob/main/script/02_AddLiquidity.s.sol"
click node_swap "https://github.com/debojyoti10cc/v4-template/blob/main/script/03_Swap.s.sol"
click node_base "https://github.com/debojyoti10cc/v4-template/blob/main/script/base/BaseScript.sol"
click node_liquidity "https://github.com/debojyoti10cc/v4-template/blob/main/script/base/LiquidityHelpers.sol"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_counter toneBlue
class node_deploy,node_create,node_add,node_swap toneAmber
class node_base,node_liquidity toneMint
class node_developer toneIndigo
```

## Components

### Example hook

- [Counter hook](https://github.com/debojyoti10cc/v4-template/blob/main/src/Counter.sol): `src/Counter.sol`

### Local operations

- [Deploy hook](https://github.com/debojyoti10cc/v4-template/blob/main/script/00_DeployHook.s.sol): `script/00_DeployHook.s.sol`
- [Create pool](https://github.com/debojyoti10cc/v4-template/blob/main/script/01_CreatePoolAndAddLiquidity.s.sol): `script/01_CreatePoolAndAddLiquidity.s.sol`
- [Add liquidity](https://github.com/debojyoti10cc/v4-template/blob/main/script/02_AddLiquidity.s.sol): `script/02_AddLiquidity.s.sol`
- [Swap tokens](https://github.com/debojyoti10cc/v4-template/blob/main/script/03_Swap.s.sol): `script/03_Swap.s.sol`

### Script support

- [Base script](https://github.com/debojyoti10cc/v4-template/blob/main/script/base/BaseScript.sol): `script/base/BaseScript.sol`
- [Liquidity helpers](https://github.com/debojyoti10cc/v4-template/blob/main/script/base/LiquidityHelpers.sol): `script/base/LiquidityHelpers.sol`

### Other components

- **Developer**

## Connections

- Developer → Deploy hook: deploys hook (evidence: `README.md`)
- Developer → Create pool: creates pool (evidence: `README.md`)
- Developer → Add liquidity: adds liquidity (evidence: `README.md`)
- Developer → Swap tokens: swaps tokens (evidence: `README.md`)
- Counter hook → Counter hook: handles before/after swap (evidence: `README.md`)
- Base script → Deploy hook: configures tokens (evidence: `README.md`)
- Base script → Create pool: configures tokens (evidence: `README.md`)
- Base script → Add liquidity: configures tokens (evidence: `README.md`)
- Base script → Swap tokens: configures tokens (evidence: `README.md`)
