4 个版本
0.2.0 | 2022 年 1 月 24 日 |
---|---|
0.1.1-beta | 2021 年 11 月 5 日 |
0.1.0 | 2021 年 11 月 6 日 |
0.1.0-beta | 2021 年 11 月 5 日 |
#15 in #avalanche
205KB
3K SLoC
xavax-avalanche
Avalanche 网络的一站式 SDK
交易格式解析、加密学以及其他功能!
- 交易签名
- AVM 和 PVM 交易格式。
- Avalanche 和 EVM 加密学(Bech32 地址、管理密钥链、BIP39 & BIP44 用于 HD 钱包和助记词等)。
- Avalanche 节点的完整 JSONRPC API(从节点获取信息或提交交易!)
此 SDK 是一个一站式 Crate,可以帮助您在 avalanche 网络上构建您心中所想的一切!(进行中)。
请参阅文档:[docs.xavax.io](https://docs.xavax.io)。
详细信息:xavax-avalanche 能做什么?
未选择任何功能时,此 Crate 可以
创建交易或任何在 AVM、PVM 和原子 EVM 交易格式中定义的数据类型。您还可以从原始编码有效载荷(CB58 编码,avalanche 网络中使用的编码)解析到 Rust 数据类型,反之亦然!
request-api
功能
request-api
功能增加了对 Avalanche JSON RPC API 的支持,并允许发送 https 请求并相应地获取响应,有了此功能,您确实可以做到从获取当前交易费用到向网络发送原始交易的一切!
该功能包括 AVM & PVM json-rpc 以及 Ortelius 指数器 RPC。
crypto-api
功能
crypto-api
功能增加了 Avalanche 和 EVM 的密钥链创建以及签名和验证!这意味着 secp256k1、SHA256、KECCAK256 和 RIPEMD160。
此功能允许您从 bip39 种子短语创建密钥链,并允许生成新的种子短语(使用密码学安全的熵源,crypto-rng)。
使用所有功能,您可以
创建一个 avalanche 钱包!或者也许创建一个使用 avalanche 的游戏!
您可以将代码编译成 WASM,并使用编译后的 WASM 进行与网络相关的操作!
您还可以在 avalanche 上创建子网以及添加自定义区块链,这个区块链是做什么的,将由您和您的想象力来回答...
您可以使用Avalanche JSONRPC从Avalanche节点获取您想要的任何信息!
创建交易,签名并发送它们!
以下是一些需要注意的事项
xavax-avalanche
目前处于非常早期的开发阶段,文档也在不断更新中,整个SDK也是如此。欢迎就SDK提问,文档将不断更新,并增加更多使用SDK的示例。
功能完整性
Avalanche虚拟机(AVM)已经实现了大约99%,目前缺少的是CreateAssetTx。
Atomic EVM格式已经完全实现,这允许在Avalanche上的C-Chain等EVM链之间导入/导出。
平台虚拟机(PVM)已经完全实现,尽管子网和自定义链仍在ava-labs的开发中。
这个库尚未经过全面测试,尽管我相信大多数功能都能正常工作。
我建议您今天使用这个库进行研究和开发,如果您发现任何问题或错误,请在本地的GitHub仓库创建问题!
文档
xavax-avalanche
的文档非常早期,随着时间的推移,将会有更多文档的介绍。
文档将位于
xavax-api文档
- 自定义,更好的文档。docs.rs
- 标准Rust文档
用法与示例
请查看文档以获取更多详细示例。
将此行添加到您的Cargo.toml
文件中
[dependencies]
xavax-avalanche = "0.1.0"
如果您需要额外的功能(强烈推荐)
[dependencies]
xavax-avalanche = { version = "0.1.0", features = ["request-api", "crypto-api"] }
您可以创建一个BaseTx(默认交易),以及其他交易类型
use xavax_avalanche::avm::tx_format::*;
//Create a base tx
let mut tx: BaseTx = BaseTx::default();
//You can Manually set the values
tx.type_id = 0;
tx.network_id = 5;
//Turn the payload into bytes:
let payload = tx.to_bytes();
// Or encode the BaseTx into a CB58 string (this the format in which it will be sent to the avalanche network when signed)
let cb58_encoded_tx = tx.to_cb58();
您可以将现有的字节负载解析为结构体
use xavax_avalanche::avm::tx_format::*;
let mut tx: BaseTx = BaseTx::default();
/* pretend that this is a BaseTx byte payload */
let tx_bytes: Vec<u8> = [0, 0, 0, 0, 0, 0, 0, 0, 0,].to_vec();
/* you could also decode CB58 to bytes */
let tx_bytes: Vec<u8> = decode_cb58("cSjfNPretendthatthisisaCB58StringPayload!FGlweODksd");
//Parse the bytes into a BaseTx data struct.
tx.from_bytes(&tx_bytes);
变更,路线图和信息
这个库非常早期;文档、更多测试等都在开发中,请随时关注我或xavax,或创建GitHub问题或pull请求!
API信息始终可以在xavax网站上找到。
更多关于xavax的信息可以在xavax.io和twitter上找到。
许可
xavax-avalanche以宽松的Apache 2.0许可证发布 <3
现在就享受美好的时光吧...
依赖项
~2–19MB
~247K SLoC