From 88f5bd3c38504c213bc95ea516fe336746692ed5 Mon Sep 17 00:00:00 2001 From: KaoImin Date: Mon, 18 Dec 2023 17:49:37 +0800 Subject: [PATCH] refactor: change some precompile input and output to tuple --- core/executor/src/precompiles/ckb_mbt_verify.rs | 4 +++- core/executor/src/precompiles/get_header.rs | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/executor/src/precompiles/ckb_mbt_verify.rs b/core/executor/src/precompiles/ckb_mbt_verify.rs index 349a6d64f..5b9c95bf5 100644 --- a/core/executor/src/precompiles/ckb_mbt_verify.rs +++ b/core/executor/src/precompiles/ckb_mbt_verify.rs @@ -67,7 +67,9 @@ impl PrecompileContract for CMBTVerify { } fn parse_input(input: &[u8]) -> Result { - ::decode(input).map_err(|_| err!(_, "decode input")) + <(VerifyProofPayload,) as AbiDecode>::decode(input) + .map(|r| r.0) + .map_err(|_| err!(_, "decode input")) } fn inner_verify_proof(payload: VerifyProofPayload) -> Result<(), PrecompileFailure> { diff --git a/core/executor/src/precompiles/get_header.rs b/core/executor/src/precompiles/get_header.rs index bca27de2b..dec2de745 100644 --- a/core/executor/src/precompiles/get_header.rs +++ b/core/executor/src/precompiles/get_header.rs @@ -1,10 +1,11 @@ -use ethers::abi::AbiDecode; +use ethers::abi::{AbiDecode, AbiEncode}; use evm::executor::stack::{PrecompileFailure, PrecompileOutput}; use evm::{Context, ExitError, ExitSucceed}; use protocol::types::{H160, H256}; use crate::precompiles::{axon_precompile_address, PrecompileContract}; +use crate::system_contract::ckb_light_client::ckb_light_client_abi; use crate::{err, system_contract::ckb_light_client::CkbHeaderReader, CURRENT_HEADER_CELL_ROOT}; #[derive(Default, Clone)] @@ -39,10 +40,13 @@ impl PrecompileContract for GetHeader { return err!("get header return None"); } + let header = + ::decode(header_opt.unwrap()).unwrap(); + Ok(( PrecompileOutput { exit_status: ExitSucceed::Returned, - output: header_opt.unwrap(), + output: AbiEncode::encode((header,)), }, gas, ))