Terra Rust API

A rust API for Terrad's LCD system.

Warning

This is a WIP.

No security audit has been performed.

Randomness

The API is currently using random numbers via
let mut rng = rand::thread_rng();

Disclaimer

This may steal your money.

This is not investment advice.

Do your own research

Help ?

There is a CLI that uses this, which may be helpful.

We have also set up a Discord channel to discuss this, and other PFC things

If you think this was useful, feel free to delegate to the PFC validator. It will help defray the costs.

PFC - Terra/Luna is Pretty Freaking Cool right... feel free to drop me a line

An Example

```rust use terrarustapi::{Terra, GasOptions, PrivateKey}; use terrarustapi::coretypes::{Coin, Msg, StdSignMsg, StdSignature}; use terrarustapi::messages::MsgSend; use terrarustapi::authtypes::AuthAccountResult;

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

```

Examples

are located in the main 'terra-rust' repo * do_swap -- example on how to execute a custom contract. in this case a swap. ```shell

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

``` **(note) coins and amount need to be the same * set_code -- WIP .. how to deploy and initialize a smart contract

Docs