@babylonlabs-io/babylon-proto-ts (英语)
巴比伦比特币采集协议
类型脚本 图书馆
* 安装
npm i @babylonlabs-io/babylon-proto-ts
QQ 快速启动
这个库为"巴比伦比特币取景协议"提供TypeScript绑定,既提供低等原生出品出口,也提供高等客户抽象.
基本用途
使用 SDK 访问客户端、 信件和公用事业 :
import { createBabylonSDK } from "@babylonlabs-io/babylon-proto-ts";
const sdk = createBabylonSDK({ rpcUrl: "https://babylon-rpc.example.com" });
// Connect the client
await sdk.connect();
// Query BTC staking rewards for an address
const btcRewards = await sdk.client.getRewardsForBTCStaking("bbn1...");
// Query BABY staking delegations and rewards
const delegations = await sdk.client.getBabyStakingDelegations("bbn1...");
const babyRewards = await sdk.client.getRewardsForBABYStaking("bbn1...");
// Get all validators
const validators = await sdk.client.getValidators();
// Query balance
const balance = await sdk.client.getBalance("bbn1...", "ubbn");
// Get Bitcoin tip height
const btcTipHeight = await sdk.client.getBTCTipHeight();
钱包整合
对于需要创建和签署交易的应用程序,使用所提供的登记和氨基类型:
import { createBabylonSDK } from "@babylonlabs-io/babylon-proto-ts";
import { SigningStargateClient } from "@cosmjs/stargate";
const sdk = createBabylonSDK({ rpcUrl: "https://babylon-rpc.example.com" });
// Create signing client with Babylon support
const client = await SigningStargateClient.connectWithSigner(
rpc,
offlineSigner as OfflineSigner,
{
registry: sdk.utils.createRegistry(),
aminoTypes: sdk.utils.createAminoTypes(),
},
);
// BTC Staking: Withdraw BTC staking rewards message
const btcWithdrawMsg =
sdk.messages.createWithdrawRewardForBTCStakingMsg("bbn1...");
// BABY Staking: Stake BABY tokens message
const stakeMsg = sdk.messages.createStakeBABYMsg(
"bbn1...", // delegator address
"bbnvalidator...", // validator address
{ denom: "ubbn", amount: "1000000" }, // 1 BBN
);
// BABY Staking: Withdraw BABY staking rewards message
const withdrawMsg = sdk.messages.createWithdrawRewardForBABYStakingMsg(
"bbn1...",
"bbnvalidator...",
);
直接 Protobuf 访问
对于高级用途,您可以直接导入原型:
import { btcstaking, incentivequery } from "@babylonlabs-io/babylon-proto-ts"
// Use protobuf types directly
const stakingParams = btcstaking.Params.fromPartial({...})
const rewardQuery = incentivequery.QueryRewardGaugesRequest.fromPartial({...})
API 参考
SDK 函数
createBabylonSDK(config: BabylonConfig): BabylonSDK
创建全面的 SDK 实例,其中包含客户端,消息和公用设施.
- 参数:
config.rpcUrl: 巴比伦网络的 RPC 端点 URL
- 回返情况: SDK 对象
client, (中文(简体) ),messages, (中文(简体) ),utils,以及connect()方法
SDK 方法
sdk.connect(): Promise<void>
初始化客户端连接到巴比伦网络.
客户方法(通过sdk.客户端)
sdk.client.getRewardsForBTCStaking(address: string): Promise<number>
获取给定地址的 BTC 奖励总额 .
- 参数:
address: 要查询的巴比伦地址
- 回返情况: BTC奖金总额(数目)
sdk.client.getBalance(address: string, denom?: string): Promise<number>
获得地址特定符号的余额.
- 参数:
address: 要查询的巴比伦地址denom: 托肯面额(默认为"ubbn"(中文(简体) )
- 回返情况: 余额(数目)
sdk.client.getBTCTipHeight(): Promise<number>
获取当前 Bitcoin 块链尖端高度 .
- 回返情况: 比特币尖端高度( 数字)
sdk.client.getBabyStakingDelegations(address: string): Promise<DelegationResponse[]>
获得所有BABY标志性代表团的地址.
- 参数:
address: 要查询的巴比伦地址
- 回返情况: 代表团的答复
sdk.client.getRewardsForBABYStaking(address: string): Promise<DelegationDelegatorReward[]>
获取所有BABY 代表团奖励 特定地址.
- 参数:
address: 要查询的巴比伦地址
- 回返情况: 代表团奖励系列
sdk.client.getValidators(): Promise<Validator[]>
在网络中获取所有验证器 .
- 回返情况: 所有验证符的矩阵
SDK 信件
sdk.messages.createWithdrawRewardForBTCStakingMsg(address: string)
创建从 Bitcoin 抓取奖励的信息 .
- 参数:
address:巴比伦地址来收回奖励
- 回返情况: 带有正确类型和值的信件对象, 准备签名和广播
sdk.messages.createStakeBABYMsg(delegatorAddress: string, validatorAddress: string, amount: Coin)
为取取 BABY 令牌创建信件 .
- 参数:
delegatorAddress: 授权方的巴比伦地址validatorAddress: 验证人的巴比伦地址amount: 赌注的金额(有金额和下限的coin对象)
- 回返情况: 带有正确类型和值的信件对象, 准备签名和广播
sdk.messages.createUnstakeBABYMsg(delegatorAddress: string, validatorAddress: string, amount: Coin)
为不抓取的 BABY 令牌创建信件 .
- 参数:
delegatorAddress: 授权方的巴比伦地址validatorAddress: 验证人的巴比伦地址amount: 未取出的数量( 带有数量和阴茎的阴性对象)
- 回返情况: 带有正确类型和值的信件对象, 准备签名和广播
sdk.messages.createWithdrawRewardForBABYStakingMsg(delegatorAddress: string, validatorAddress: string)
为退出BABY获取奖励创建消息 .
- 参数:
delegatorAddress: 授权方的巴比伦地址validatorAddress: 验证人的巴比伦地址
- 回返情况: 带有正确类型和值的信件对象, 准备签名和广播
SDK 公用事业
sdk.utils.createRegistry(): Registry
创建所有巴比伦信件类型的 CosmJS 注册 .
sdk.utils.createAminoTypes(): AminoTypes
创建巴比伦消息的氨基类型,这是硬件钱包兼容性所需的.
sdk.utils.normalizeCosmjsAmount(amount: string): string
将 CosmJS 的精度从18- 十进制改为标准 ubbn 格式.
- 参数:
amount: 来自 CosmJS 的金额字符串(带有18个小数精度)
- 回返情况: 标准中归正数作为字符串
ubbn格式
sdk.utils.normalizeRewardResponse(response: QueryDelegationTotalRewardsResponse)
规范 CosmJS 对标准的奖励响应 ubbn 格式.
- 参数:
response: 来自 CosmJS 的查询委托书
- 回返情况: 标准数额的普通奖励数组
ubbn格式
Protobuf出口
库输出所有直接生成的原生生物类型,允许高级使用
QQ 提交格式和自动发布
这个项目使用 常规武器委员会 财务报告和审定财务报表 语义释放 自动化 版本化,更动日志生成,和npm出版.
* 如何运作
- 所有承诺都必须遵循 常规武器委员会 格式.
- 当更改合并为
main分支 :semantic-release分析消息- 确定适当的语义版本凸起( E)
major, (中文(简体) ),minor, (中文(简体) ),patch(中文(简体) ) - 更新
CHANGELOG.md - 在 Git 中标记发布
- 将新版本发布到 npm (如果配置)
QQ 提交信件示例
feat: add support for slashing script
fix: handle invalid staking tx gracefully
docs: update README with commit conventions
refactor!: remove deprecated method and cleanup types
说明: 对于断开更改,添加一个
!在类型之后( 譬如说.feat!:或者说refactor!:并包括对断裂的描述 改变承诺体.
· 释出
只需使用适当的格式将您的更改输入并合并到 main。 。 。 .
CI 管道将自动处理版本和发布,不使用手工
需要标记或版本突起.