63个版本 (38个稳定版)

1.2.20 2022年3月20日
1.2.17 2022年2月25日
1.1.8 2021年12月17日
1.1.1 2021年11月23日
0.2.6 2021年7月29日

#14 in #terra


4 crates 使用

Apache-2.0

490KB
4K SLoC

Terra Rust API

Terrad的LCD系统的Rust API。

警告

这是一个工作进度(WIP)。

尚未进行安全审计。

随机性

API当前正在通过以下方式使用随机数:
let mutrng= rand::thread_rng();

免责声明

这可能会偷走您的钱。

这不是投资建议。

请自行研究

帮助?

有一个CLI使用这个API,可能有所帮助。

我们还建立了一个Discord频道来讨论这个问题,以及其他PFC相关事宜。

如果您认为这很有用,请随时将投票委托给PFC验证者。这将有助于减轻成本。

PFC - Terra/Luna非常酷...请随时联系我

示例

use terra_rust_api::{Terra, GasOptions, PrivateKey};
use terra_rust_api::core_types::{Coin, Msg, StdSignMsg, StdSignature};
use terra_rust_api::messages::MsgSend;
use terra_rust_api::auth_types::AuthAccountResult;

// set up the LCD client
let gas_opts = GasOptions::create_with_gas_estimate("50ukrw",1.4);
let t = Terra::lcd_client("https://bombay-lcd.terra.dev/", "bombay-12", &gas_opts).await?;
// generate a private key
let secp = Secp256k1::new();
let from_key = PrivateKey::from_words(&secp,"your secret words");
let from_public_key = from_key.public_key(&secp);
// generate the message SEND 1000 uluna from your private key to someone else
let coin: Coin = Coin::parse("1000uluna")?.unwrap();
let from_account = from_public_key.account()?;
let send: MsgSend = MsgSend::create(from_account, "terra1usws7c2c6cs7nuc8vma9qzaky5pkgvm2uag6rh", vec![coin]);
// generate the transaction & calc fees
let messages = vec![send];
// and submit the message(s) to the chain
let resp = terra.submit_transaction_sync(
                    &secp,
                    &from_key,
                    &messages,
                    None
                )
                .await?;
 println!("{}", resp.txhash)
 

示例

位于主'terra-rust'仓库中

  • do_swap -- 如何执行自定义合约的示例。在这种情况下是一个交换。

cargo run --example do_swap -- --wallet tequilla test terra13e4jmcjnwrauvl2fnjdwex0exuzd8zrh5xk29v  1.0 1000000 uluna --max-spread
  0.10 --coins 1000000uluna  -l https://bombay-lcd.terra.dev -c bombay-12

**(注意)硬币和金额需要相同

  • sign_message -- 使用您的密钥签名一个随机字符串

文档

依赖项

~23–40MB
~557K SLoC