token-cli: use program_client for blockhash
This commit is contained in:
parent
3d42786e6e
commit
c5caba0d63
|
@ -69,7 +69,7 @@ impl<'a> Config<'a> {
|
||||||
));
|
));
|
||||||
let sign_only = matches.is_present(SIGN_ONLY_ARG.name);
|
let sign_only = matches.is_present(SIGN_ONLY_ARG.name);
|
||||||
let program_client: Arc<dyn ProgramClient<ProgramRpcClientSendTransaction>> = if sign_only {
|
let program_client: Arc<dyn ProgramClient<ProgramRpcClientSendTransaction>> = if sign_only {
|
||||||
let blockhash = value_of(matches, BLOCKHASH_ARG.name);
|
let blockhash = value_of(matches, BLOCKHASH_ARG.name).unwrap_or_default();
|
||||||
Arc::new(ProgramOfflineClient::new(
|
Arc::new(ProgramOfflineClient::new(
|
||||||
blockhash,
|
blockhash,
|
||||||
ProgramRpcClientSendTransaction,
|
ProgramRpcClientSendTransaction,
|
||||||
|
|
|
@ -3138,7 +3138,7 @@ async fn handle_tx<'a>(
|
||||||
) -> Result<TransactionReturnData, Error> {
|
) -> Result<TransactionReturnData, Error> {
|
||||||
let fee_payer = Some(&config.fee_payer);
|
let fee_payer = Some(&config.fee_payer);
|
||||||
|
|
||||||
let recent_blockhash = config.rpc_client.get_latest_blockhash().await?;
|
let recent_blockhash = config.program_client.get_latest_blockhash().await?;
|
||||||
let message = if let Some(nonce_account) = config.nonce_account.as_ref() {
|
let message = if let Some(nonce_account) = config.nonce_account.as_ref() {
|
||||||
let mut message = Message::new_with_nonce(
|
let mut message = Message::new_with_nonce(
|
||||||
instructions,
|
instructions,
|
||||||
|
@ -3151,9 +3151,9 @@ async fn handle_tx<'a>(
|
||||||
} else {
|
} else {
|
||||||
Message::new_with_blockhash(&instructions, fee_payer, &recent_blockhash)
|
Message::new_with_blockhash(&instructions, fee_payer, &recent_blockhash)
|
||||||
};
|
};
|
||||||
let fee = config.rpc_client.get_fee_for_message(&message).await?;
|
|
||||||
|
|
||||||
if !config.sign_only {
|
if !config.sign_only {
|
||||||
|
let fee = config.rpc_client.get_fee_for_message(&message).await?;
|
||||||
check_fee_payer_balance(config, minimum_balance_for_rent_exemption + fee).await?;
|
check_fee_payer_balance(config, minimum_balance_for_rent_exemption + fee).await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -243,7 +243,7 @@ where
|
||||||
|
|
||||||
/// Program client for offline signing.
|
/// Program client for offline signing.
|
||||||
pub struct ProgramOfflineClient<ST> {
|
pub struct ProgramOfflineClient<ST> {
|
||||||
maybe_blockhash: Option<Hash>,
|
blockhash: Hash,
|
||||||
_send: ST,
|
_send: ST,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -254,9 +254,9 @@ impl<ST> fmt::Debug for ProgramOfflineClient<ST> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<ST> ProgramOfflineClient<ST> {
|
impl<ST> ProgramOfflineClient<ST> {
|
||||||
pub fn new(maybe_blockhash: Option<Hash>, send: ST) -> Self {
|
pub fn new(blockhash: Hash, send: ST) -> Self {
|
||||||
Self {
|
Self {
|
||||||
maybe_blockhash,
|
blockhash,
|
||||||
_send: send,
|
_send: send,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -275,7 +275,7 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn get_latest_blockhash(&self) -> ProgramClientResult<Hash> {
|
async fn get_latest_blockhash(&self) -> ProgramClientResult<Hash> {
|
||||||
Ok(self.maybe_blockhash.unwrap())
|
Ok(self.blockhash)
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn send_transaction(&self, transaction: &Transaction) -> ProgramClientResult<ST::Output> {
|
async fn send_transaction(&self, transaction: &Transaction) -> ProgramClientResult<ST::Output> {
|
||||||
|
|
Loading…
Reference in New Issue