名称: Bankr 开发 - 项目模板 description: 当用户询问“搭建Bankr项目”、“创建新的Bankr机器人”、“构建Bankr Web服务”、“创建Bankr仪表板”、“构建Bankr CLI工具”、“Bankr项目结构”、“Bankr项目类型”,或需要关于不同Bankr API集成的目录结构和模板指导时,应使用此技能。 版本: 1.0.0
Bankr 项目模板
Bankr API项目的目录结构和模板。
可用模板
| 模板 | 使用场景 | 关键特性 |
|---|---|---|
| 机器人 | 自动化任务 | 轮询循环、调度器、状态流 |
| Web服务 | HTTP API | REST端点、Webhook、异步处理 |
| 仪表板 | Web界面 | 前端+后端、实时更新 |
| CLI | 命令行工具 | 子命令、交互式提示 |
机器人模板
用于自动化交易机器人、价格监控器、警报系统和计划任务。
目录结构
{项目名称}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── src/
│ ├── index.ts # 主入口点,带调度器
│ ├── bankr-client.ts # Bankr API客户端(来自bankr-client-patterns技能)
│ ├── types.ts # TypeScript接口
│ └── config.ts # 配置加载
└── scripts/
└── run.sh # 便捷脚本
关键特性
- 轮询循环:可配置间隔进行重复检查
- 状态流:实时作业状态更新
- 错误处理:带退避机制的自动重试
- 环境配置:基于
.env的配置 - 优雅关机:处理SIGINT/SIGTERM信号
使用场景
- 价格监控和警报
- 自动化交易策略
- 投资组合再平衡
- 计划市场分析
- DCA自动化
入口点模式 (index.ts)
import { execute } from "./bankr-client";
const INTERVAL = 60000; // 1分钟
async function runBot() {
console.log("启动Bankr机器人...");
while (true) {
try {
const result = await execute(
"检查ETH价格",
(msg) => console.log("状态:", msg)
);
if (result.status === "completed") {
console.log("结果:", result.response);
// 在此添加您的逻辑
}
} catch (error) {
console.error("错误:", error);
}
await new Promise(r => setTimeout(r, INTERVAL));
}
}
runBot();
Web服务模板
用于封装或扩展Bankr功能的HTTP API。
目录结构
{项目名称}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── src/
│ ├── index.ts # 服务器入口点
│ ├── server.ts # Express/Fastify服务器设置
│ ├── routes/
│ │ ├── health.ts # 健康检查端点
│ │ └── bankr.ts # Bankr代理/扩展路由
│ ├── bankr-client.ts # Bankr API客户端
│ ├── types.ts # TypeScript接口
│ └── config.ts # 配置加载
└── scripts/
└── run.sh
关键特性
- REST API端点:清晰的API设计
- 请求验证:输入清理
- 异步作业处理:非阻塞操作
- Webhook支持:作业完成时的回调
- 速率限制:防止滥用
- CORS:跨源支持
使用场景
- Bankr的API网关
- 自定义交易API
- Webhook集成
- 移动应用后端
- 微服务架构
额外依赖
{
"dependencies": {
"express": "^4.18.0"
}
}
或对于Fastify:
{
"dependencies": {
"fastify": "^4.25.0"
}
}
仪表板模板
用于Web界面,支持投资组合跟踪、市场分析或监控。
目录结构
{项目名称}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── server/
│ ├── index.ts # 后端服务器
│ ├── bankr-client.ts # Bankr API客户端
│ ├── routes/
│ │ └── api.ts # 前端API路由
│ └── types.ts
├── public/
│ ├── index.html # 主HTML页面
│ ├── styles.css # 基本样式
│ └── app.js # 前端JavaScript
└── scripts/
└── run.sh
关键特性
- 简单前端:HTML/CSS/JS(无需构建步骤)
- 后端API:用于Bankr操作的Express服务器
- 实时更新:轮询状态变化
- 投资组合显示:代币余额和价值
- 市场数据:价格图表和分析
使用场景
- 投资组合跟踪仪表板
- 交易界面
- 市场监控
- 头寸管理
- 分析仪表板
前端模式 (app.js)
async function checkPrice() {
const response = await fetch('/api/price/ETH');
const data = await response.json();
document.getElementById('eth-price').textContent = data.price;
}
setInterval(checkPrice, 30000);
checkPrice();
CLI模板
用于带有子命令和交互功能的命令行工具。
目录结构
{项目名称}/
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── README.md
├── src/
│ ├── index.ts # CLI入口点,使用commander.js
│ ├── commands/
│ │ ├── trade.ts # 交易命令
│ │ ├── price.ts # 价格查询命令
│ │ └── status.ts # 作业状态命令
│ ├── bankr-client.ts # Bankr API客户端
│ └── types.ts
└── scripts/
└── run.sh
关键特性
- Commander.js:带子命令的CLI框架
- 交互式提示:需要时的用户输入
- 进度指示器:轮询期间的状态显示
- 彩色输出:更好的用户体验
- 帮助系统:从命令自动生成
使用场景
- 个人交易工具
- 脚本和自动化
- DevOps集成
- 快速价格检查
- 批量操作
额外依赖
{
"dependencies": {
"commander": "^12.0.0"
}
}
CLI模式 (index.ts)
import { program } from "commander";
import { price } from "./commands/price";
import { trade } from "./commands/trade";
program
.name("bankr-cli")
.description("用于Bankr操作的CLI")
.version("1.0.0");
program
.command("price <代币>")
.description("获取代币价格")
.action(price);
program
.command("trade <操作> <数量> <代币>")
.description("执行交易")
.option("-c, --chain <链>", "目标链", "base")
.action(trade);
program.parse();
选择模板
| 需求 | 推荐模板 |
|---|---|
| 自动重复任务 | 机器人 |
| HTTP API集成 | Web服务 |
| 可视化界面 | 仪表板 |
| 终端工具 | CLI |
| 价格警报 | 机器人 |
| 交易API | Web服务 |
| 投资组合查看器 | 仪表板 |
| 快速交易 | CLI |
共享文件
所有模板共享常见文件。加载bankr-client-patterns技能以获取:
bankr-client.ts- 完整API客户端package.json- 基础依赖tsconfig.json- TypeScript配置.env.example- 环境模板.gitignore- 标准忽略文件
搭建后的下一步
- 安装依赖:
bun install或npm install - 配置API密钥:复制
.env.example到.env并添加BANKR_API_KEY - 自定义:根据您的使用场景修改模板
- 运行:开发时使用
bun dev或npm run dev - 构建:生产环境使用
bun run build或npm run build