diff --git a/cli/src/input_parsers.rs b/cli/src/input_parsers.rs index 2e6337bba6..ba7e0bba1f 100644 --- a/cli/src/input_parsers.rs +++ b/cli/src/input_parsers.rs @@ -1,6 +1,6 @@ -use crate::sol_to_lamports; use clap::ArgMatches; use solana_sdk::{ + native_token::sol_to_lamports, pubkey::Pubkey, signature::{read_keypair, Keypair, KeypairUtil}, }; diff --git a/cli/src/lib.rs b/cli/src/lib.rs index 86ccbb1f32..5f07db925e 100644 --- a/cli/src/lib.rs +++ b/cli/src/lib.rs @@ -9,11 +9,3 @@ pub mod stake; 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 6c83a7eb59..25ecf8af66 100644 --- a/cli/src/wallet.rs +++ b/cli/src/wallet.rs @@ -1,5 +1,5 @@ use crate::{ - display::println_name_value, input_parsers::*, input_validators::*, lamports_to_sol, stake::*, + display::println_name_value, input_parsers::*, input_validators::*, stake::*, validator_info::*, vote::*, }; use chrono::prelude::*; @@ -23,6 +23,7 @@ use solana_sdk::{ instruction_processor_utils::DecodeError, loader_instruction, message::Message, + native_token::lamports_to_sol, 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 +}