فهرست منبع

service/sol: Hardcode tx fee and don't use deprecated API.

parazyd 4 سال پیش
والد
کامیت
9c989f1907
1فایلهای تغییر یافته به همراه7 افزوده شده و 7 حذف شده
  1. 7 7
      src/service/sol.rs

+ 7 - 7
src/service/sol.rs

@@ -10,7 +10,7 @@ use serde::Serialize;
 use serde_json::{json, Value};
 use solana_client::{blockhash_query::BlockhashQuery, rpc_client::RpcClient};
 use solana_sdk::{
-    native_token::lamports_to_sol,
+    native_token::{lamports_to_sol, sol_to_lamports},
     program_pack::Pack,
     pubkey::Pubkey,
     signature::{Signature, Signer},
@@ -75,8 +75,8 @@ impl SolClient {
         let main_sol_balance =
             rpc.get_balance(&self.main_keypair.pubkey()).map_err(SolFailed::from)?;
 
-        let fees = rpc.get_fees()?;
-        let lamports_per_signature = fees.fee_calculator.lamports_per_signature;
+        // 0.0001 is the maximum that could happen
+        let lamports_per_signature = sol_to_lamports(0.0001);
         let required_funds = lamports_per_signature * 3;
 
         Ok(main_sol_balance > required_funds)
@@ -492,9 +492,9 @@ impl NetworkClient for SolClient {
 
         let mut tx = Transaction::new_with_payer(&[instruction], Some(&self.main_keypair.pubkey()));
         let bhq = BlockhashQuery::default();
-        match bhq.get_blockhash_and_fee_calculator(&rpc, rpc.commitment()) {
+        match bhq.get_blockhash(&rpc, rpc.commitment()) {
             Err(_) => panic!("Couldn't connect to RPC"),
-            Ok(v) => tx.sign(&[&self.main_keypair], v.0),
+            Ok(v) => tx.sign(&[&self.main_keypair], v),
         }
 
         let _signature = rpc.send_and_confirm_transaction(&tx).map_err(SolFailed::from)?;
@@ -532,9 +532,9 @@ pub fn sign_and_send_transaction(
     signers: Vec<&Keypair>,
 ) -> SolResult<Signature> {
     let bhq = BlockhashQuery::default();
-    match bhq.get_blockhash_and_fee_calculator(rpc, rpc.commitment()) {
+    match bhq.get_blockhash(rpc, rpc.commitment()) {
         Err(_) => return Err(SolFailed::RpcError("Couldn't connect to RPC".into())),
-        Ok(v) => tx.sign(&signers, v.0),
+        Ok(v) => tx.sign(&signers, v),
     }
 
     match rpc.send_and_confirm_transaction(&tx) {