0.1.6 |
|
---|---|
0.1.5 |
|
0.1.2 |
|
#99 in #iota
用于 iota-spammer
235KB
5.5K SLoC
在 Rust 中实现的非官方 IOTA API。
这是将 IOTA Java/JS API 转换为 Rust 的一个版本。它可行,但我还不建议用它处理真实货币。话虽如此,如果您有任何建议或遇到任何问题,请告诉我。
以下是一些您可能想使用此库的原因
- 它实现了非常快速的本地 PoW(在我的笔记本电脑上,MwM = 14 时为 1-2 秒,MwM = 9 时为 4-6 毫秒)
- 您将受益于 Rust 非常优秀的类型系统
- 此库比 Jota 更活跃地维护
- 既然库已经工作正常,我将沉迷于它,以提高安全性、性能和可用性
- 这会让我个人感到高兴 :)
文档
https://docs.rs/iota-lib-rs-preview
此库目前需要 nightly rust 来构建。
已完成的事项
- 加密
- Curl
- Kerl
- PearlDiver
- ISS
- HMAC
- 签名
- 模型
- 包
- 输入
- 输入
- 邻居
- 签名
- 交易
- 转账
- 工具
- 校验和
- 常量
- 转换器
- 输入验证器
- IotaAPIUtils
- IotaUnitConversion
- IotaUnits
- 多重签名
- SeedRandomGenerator
- 计时器
- TrytesConverter
- API
- IRI API 调用和响应
- 添加邻居
- 附加到 Tangle
- 查找交易
- 获取余额
- 广播交易
- 存储交易
- 获取包含状态
- 获取邻居
- 获取节点信息
- 获取提示
- 获取待批准的交易
- 获取 trytes
- 删除邻居
- 是否有地址被花费
- 检查一致性
- 易于使用的包装器/辅助函数
- 创建新地址
- 获取新地址
- 发送 trytes
- 存储和广播
- 获取输入
- 准备转账
- 遍历包
- 发送转账
- 获取包
- IRI API 调用和响应
以下是如何发送交易的一个示例:(注意,我们在 send_transfer()
中使用地址作为种子……不要这样做)
extern crate iota_lib_rs;
extern crate futures;
use iota_lib_rs::iota_api;
use iota_lib_rs::iota_api::SendTransferOptions;
use iota_lib_rs::utils::trytes_converter;
use iota_lib_rs::model::*;
use futures::executor::block_on;
fn main() {
let trytes = "HELLOWORLDHELLOWORLDHELLOWORLDHELLOWORLDHELLOWORLDHELLOWORLDHELLOWORLDHELLOWORLDD";
let message = trytes_converter::to_trytes("Hello World").unwrap();
let mut transfer = Transfer::default();
*transfer.value_mut() = 0;
*transfer.address_mut() = trytes.to_string();
*transfer.message_mut() = message;
let api = iota_api::API::new("https://trinity.iota.fm");
let options = SendTransferOptions{
seed: trytes.to_string(),
depth: 3,
min_weight_magnitude: 14,
local_pow: true,
threads: None,
inputs: None,
reference: None,
remainder_address: None,
security: None,
hmac_key: None,
};
// This line is commented out because travis CI can't handle it,
// but you should uncomment it
let tx = block_on(api.send_transfers(vec![transfer], options)).unwrap();
println!("{:?}", tx);
}
捐赠
如果您愿意,您可以在以下地址找到我的捐赠地址
依赖项
~19–30MB
~527K SLoC