pub(super) trait Precompile {
// Required methods
fn address(&self) -> Address;
fn signature(&self) -> &'static str;
// Provided methods
fn decode_call(&self, data: &[u8]) -> Result<Vec<String>> { ... }
fn decode_return(&self, data: &[u8]) -> Result<Vec<String>> { ... }
}