Cargo.toml:
[dependencies]
zebedee_rust = "0.1.4"
```rust use std::env; use zebedeerust::{ charges::*, gamertag::*, keysend::*, wallet::*, withdrawalrequest::*, ZebedeeClient, };
pub fn main() { let apikey: String = env::var("ZBDAPIKEY").unwrap(); let zebedeeclient = ZebedeeClient::new(apikey); let balance = getwalletdetails(zebedeeclient.clone()) .unwrap() .data .balance; println!("I have {} sats", balance);
// My friend owes me money when for lunch let me create an invoice.
let charge = Charge {
amount: 21_000_000.to_string(), // denominated in mili sats. 21,000,000 msats = 21,000 sats.
..Default::default()
};
let c = create_charge(zebedee_client.clone(), charge);
println!("I can send bolt 11 invoice {:#?}", c.unwrap().data.invoice);
// Let's do a keysend payment
let keysend_payload = Keysend {
amount: String::from("1000"),
pubkey: String::from("0333333310101010101010101010101010101010101010101010101010101010"),
callback_url: "https://somewebhookwebsitecallback.zyzx".to_string(),
..Default::default()
};
let res = keysend(zebedee_client.clone(), keysend_payload).unwrap();
println!("keysend response {:#?} ", res);
// Withdrawal requests are sort of like creating a voucher for someone to redeem bitcoin. For instance you can print these out on QR codes and people can claim the sats within the ZEBEDEE app.
let withdrawal_request = WithdrawalReqest {
amount: String::from(100_000.to_string()),
description: String::from("Wow you found the secret bitcoin I put in a public park!"),
..Default::default()
};
let voucher = create_withdrawal_request(zebedee_client.clone(), withdrawal_request).unwrap();
// let's check on this request to see if it's been claimed or when it expires.
let voucher_lookup = get_withdrawal_request(zebedee_client, voucher.data.id).unwrap();
} ```
```rust // Create Client this way with "setoauth" function. use std::env; use zebedeerust::{loginwithzbd::*, ZebedeeClient, PKCE};
pub fn main() { let apikey: String = env::var("ZBDAPIKEY").unwrap(); let oauthclientid: String = env::var("ZBDOAUTHCLIENTID").unwrap(); let oauthsecret: String = env::var("ZBDOAUTHSECRET").unwrap(); let redirecturi: String = env::var("ZBDREDIRECTURI").unwrap(); let state: String = env::var("ZBDOAUTH_STATE").unwrap();
let zebedee_client = ZebedeeClient::new(apikey)
.set_oauth(oauth_client_id, oauth_secret, redirect_uri, state)
.unwrap();
let pkce = PKCE::new_from_string(String::from("hellomynameiswhat"));
let url_for_user_auth: String =
create_auth_url(zebedee_client.clone(), pkce.challenge.clone()).unwrap();
// after user logs in with ZBD via the url from "url_for_user_auth" the callback url will get a code.
let fake_code = String::from("xxx11xx1-xxxx-xxxx-xxx1-1xx11xx111xx"); // for example we will plant this here.
// fetching auth token for the user.
let fetchbody = FetchPost::new(zebedee_client.clone(), fake_code, pkce.verifier);
let token_for_user = fetch_token(zebedee_client.clone(), fetchbody)
.unwrap()
.access_token;
// using fake_refresh_token as an example:
let fake_refresh_token = String::from("eyAAAAyomommagotocollegeAAAxxxXXAAAAasdfasdfsas");
// now with "user_data" you can get infromation like user_id, gamertag, email.
let user_data = fetch_user_data(zebedee_client.clone(), fake_refresh_token)
.unwrap()
.data;
} ```