位流 SDK
Bitflow SDK是一个与Bitflow协议互动的强大而易于使用的库. 它为将Bitflow功能无缝地集成到您的应用程序提供了一套工具.
所有 Bitflow API 端点为 没有 API 密钥可公开访问. 未认证的请求受默认费率限制: 每个实施伙伴每分钟500个请求。 。 。 .
如果您的整合需要更高的限制,请查看 限速请求 区域改为电子邮件 帮助@ bitflow. finance 带有预填表. 你也可以联系团队 解析器。 。 。 .
目录
安装
使用 npm 安装 Bitflow SDK :
npm install @bitflowlabs/core-sdk
使用量
以下是在您项目中执行 Bitflow SDK 的分步指南 :
- 导入 SDK :
import { BitflowSDK } from '@bitflowlabs/core-sdk';
- 初始化 SDK :
SDK可以在没有论据的情况下被即时化. 内建默认用于所有主机URL,因此仅在必要时提供覆盖. 见 环境变量 用于所有可用选项的段落.
// Zero-config — uses built-in defaults for all host URLs.
const bitflow = new BitflowSDK();
// Override individual values as needed.
const bitflow = new BitflowSDK({
BITFLOW_PROVIDER_ADDRESS: string, // optional
BITFLOW_API_KEY: string, // optional
BITFLOW_API_HOST: string, // optional, default: https://bitflowsdk-api-test-7owjsmt8.uk.gateway.dev
READONLY_CALL_API_HOST: string, // optional, default: https://node.bitflowapis.finance
READONLY_CALL_API_KEY: string, // optional
KEEPER_API_HOST: string, // optional, default: https://bitflow-keeper-test-7owjsmt8.uc.gateway.dev
KEEPER_API_KEY: string, // optional
});
- 使用 SDK 方法与 Bitflow 协议交互. 见 可用函数 详细情况.
环境变量
所有配置都有内置默认——不需要环境变量启动.
当设定环境变量时,它优先于内置默认值。 直接传递到 new BitflowSDK({ ... }) 以最高优先.
| 变量 | 默认 |
|---|---|
BITFLOW_API_HOST | https://bitflowsdk-api-test-7owjsmt8.uk.gateway.dev |
READONLY_CALL_API_HOST | https://node.bitflowapis.finance |
KEEPER_API_HOST | https://bitflow-keeper-test-7owjsmt8.uc.gateway.dev |
BITFLOW_API_KEY | (无——适用公共费率限额) |
READONLY_CALL_API_KEY | (无——适用公共费率限额) |
KEEPER_API_KEY | (无——适用公共费率限额) |
BITFLOW_PROVIDER_ADDRESS | (无) |
要通过环境变量覆盖,请创建 .env 在工程根中的文件 :
# Override host URLs only if you need to point at a different environment
BITFLOW_API_HOST=https://bitflowsdk-api-test-7owjsmt8.uk.gateway.dev
READONLY_CALL_API_HOST=https://node.bitflowapis.finance
KEEPER_API_HOST=https://bitflow-keeper-test-7owjsmt8.uc.gateway.dev
# Optional: API keys for higher rate limits (see Rate Limit Request section below)
BITFLOW_API_KEY=<your_api_key_here>
READONLY_CALL_API_KEY=<your_readonly_api_key_here>
KEEPER_API_KEY=<your_keeper_api_key_here>
# Optional: your Stacks provider address
BITFLOW_PROVIDER_ADDRESS=<your_provider_address_here>
下一个.js NEXT_PUBLIC_ 对以上所有变量(如:. NEXT_PUBLIC_BITFLOW_API_HOST) (中文(简体) ).
可用函数
获取可用的托肯
获取所有可用的令牌列表 :
const tokens = await bitflow.getAvailableTokens();
console.log(tokens);
获取可能的交换
为给定的符号获取所有可能的交换选项 :
const tokenXId = 'token-stx'; // the `tokenId` prop from `Token` interface
const swapOptions = await bitflow.getPossibleSwaps(tokenXId);
console.log(swapOptions);
获取全部可能的托肯 Y
获取所有可以交换给给定的符号 :
const tokenXId = 'token-stx';
const possibleTokens = await bitflow.getAllPossibleTokenY(tokenXId);
console.log(possibleTokens);
获取所有可能的托肯 Y 路由
获得所有可能的路由, 在两个符号之间互换:
const tokenXId = 'token-usda';
const tokenYId = 'token-stx';
const routes = await bitflow.getAllPossibleTokenYRoutes(tokenXId, tokenYId);
console.log(routes);
获取路由引用
取出引文来交换两个符号:
const tokenXId = 'token-usda';
const tokenYId = 'token-stx';
const amount = 100; // Amount of tokenX to swap
const quoteResult = await bitflow.getQuoteForRoute(tokenXId, tokenYId, amount);
console.log(quoteResult);
获取交换参数
获取签署互换交易的必要参数 :
const swapExecutionData = {
route: selectedRoute,
amount: 100,
tokenXDecimals: selectedRoute.tokenXDecimals,
tokenYDecimals: selectedRoute.tokenYDecimals,
};
const senderAddress = 'your_stacks_address';
const slippageTolerance = 0.01; // 1%
const swapParams = await bitflow.getSwapParams(
swapExecutionData,
senderAddress,
slippageTolerance
);
console.log(swapParams); // Use this parameters to build your swap transaction
执行交换( 使用) @stacks/connect(中文(简体) )
此函数使用 @stacks/connect 执行互换交易的库 :
const swapExecutionData = {
route: selectedRoute,
amount: 100,
tokenXDecimals: selectedRoute.tokenXDecimals,
tokenYDecimals: selectedRoute.tokenYDecimals,
};
const senderAddress = 'your_stacks_address';
const slippageTolerance = 0.01; // 1%
await bitflow.executeSwap(
swapExecutionData,
senderAddress,
slippageTolerance,
stacksProvider, // a valid object of type `StacksProvider` from `@stacks/connect`
(data) => console.log('Swap executed:', data),
() => console.log('Swap cancelled')
);
类型
SDK 导出几种可以在应用程序中使用的类型脚本 :
- 位流SDKconfig : 代表 Bitflow SDK 的配置对象.
- 键 : 代表着它的属性.
- 交换选项 : 表示一个符号的可能交换选项 .
- 附加条件类型 : 表示交易中使用的后条件类型.
- 选中的分页路由 : 代表带有其细节的选定互换路径 .
- 路由引用 : 代表一个互换路线的引文.
- 出引经曰: 引用请求的结果,包括
RouteQuote以及所有可能的路线. - 换出数据 : 表示执行互换所需的数据.
- 交换DataParamsAnd 条件 : 表示执行/签署互换交易所需的参数和条件.
import {
Token,
SwapOptions,
SelectedSwapRoute,
QuoteResult,
SwapExecutionData,
SwapDataParamsAndPostConditions,
} from '@bitflowlabs/core-sdk';
解决问题
如果您在使用 Bitflow SDK 时遇到任何问题, 请检查以下 :
- 确保您安装了 SDK 的最新版本 .
- 请检查date=中的日期值 (帮助) 发送方Address参数使用有效的 Stacks 地址.
- 如果您通过环境变量压倒了主机URL, 请确保它们正确设置在您的
.env文档.
限速请求
如果您的整合需求超过 每个实施伙伴每分钟500个请求,单击下面的链接在您的邮件客户端中打开一个预填邮件:
如果链接不打开您的邮件客户端, 电子邮件 帮助@ bitflow. finance 主题
API Rate Limit Increase Request并包括以下内容:
- 项目/ 应用程序名称 -例如 MyDeFi 应用程序
- 简要说明 ——您的应用程序做什么以及如何使用 Bitflow API
- 网站/检索(如果公开) —— URL或无编号/A
- API 需要更高的限制 — Core API, 守护者 API, Stacks 节点( 或全部)
- 预期请求量 - 例如,高峰时段2 000个请求/分钟
- 使用大小写 ——例如服务器侧数据汇总,为N用户提供实时价格信息
- 联系人名称
- Discord 手柄 (可选)
我们的目标是在两个工作日内作出反应。 对于紧急请求,请联系 解析器。 。 。 .
许可证
这个项目根据麻省理工学院许可证获得许可----详情见LICENSE文件.