diff --git a/cli/src/lib.rs b/cli/src/lib.rs index 9db1458a29..cc93ae77ed 100644 --- a/cli/src/lib.rs +++ b/cli/src/lib.rs @@ -8,11 +8,3 @@ pub mod input_validators; pub mod validator_info; pub mod vote; pub mod wallet; - -pub(crate) fn lamports_to_sol(lamports: u64) -> f64 { - lamports as f64 / 2u64.pow(34) as f64 -} - -pub(crate) fn sol_to_lamports(sol: f64) -> u64 { - (sol * 2u64.pow(34) as f64) as u64 -} diff --git a/cli/src/wallet.rs b/cli/src/wallet.rs index bf5e7ca710..2ead43ec80 100644 --- a/cli/src/wallet.rs +++ b/cli/src/wallet.rs @@ -1,6 +1,5 @@ use crate::{ - display::println_name_value, input_parsers::*, input_validators::*, lamports_to_sol, - sol_to_lamports, validator_info::*, vote::*, + display::println_name_value, input_parsers::*, input_validators::*, validator_info::*, vote::*, }; use chrono::prelude::*; use clap::{value_t_or_exit, App, AppSettings, Arg, ArgMatches, SubCommand}; @@ -23,6 +22,7 @@ use solana_sdk::{ instruction_processor_utils::DecodeError, loader_instruction, message::Message, + native_token::{lamports_to_sol, sol_to_lamports}, pubkey::Pubkey, signature::{Keypair, KeypairUtil, Signature}, system_instruction::SystemError, diff --git a/sdk/src/lib.rs b/sdk/src/lib.rs index 2a2d5dd7b7..76695be2c9 100644 --- a/sdk/src/lib.rs +++ b/sdk/src/lib.rs @@ -10,6 +10,7 @@ pub mod instruction_processor_utils; pub mod loader_instruction; pub mod message; pub mod native_loader; +pub mod native_token; pub mod packet; pub mod poh_config; pub mod pubkey; diff --git a/sdk/src/native_token.rs b/sdk/src/native_token.rs new file mode 100644 index 0000000000..b1e4d43eaf --- /dev/null +++ b/sdk/src/native_token.rs @@ -0,0 +1,12 @@ +/// There are 2^34 lamports in one sol +pub const SOL_LAMPORTS: u64 = 17_179_869_184; + +/// Approximately convert fractional native tokens (lamports) into native tokens (sol) +pub fn lamports_to_sol(lamports: u64) -> f64 { + lamports as f64 / SOL_LAMPORTS as f64 +} + +/// Approximately convert native tokens (sol) into fractional native tokens (lamports) +pub fn sol_to_lamports(sol: f64) -> u64 { + (sol * SOL_LAMPORTS as f64) as u64 +}