use crate::error::NeoResult;
use crate::value::NeoValue;
pub trait NeoContract {
fn name() -> &'static str;
fn version() -> &'static str;
fn author() -> &'static str;
fn description() -> &'static str;
}
pub trait NeoContractEntry {
fn deploy() -> NeoResult<()>;
fn update() -> NeoResult<()>;
fn destroy() -> NeoResult<()>;
}
pub trait NeoContractMethodTrait {
fn name() -> &'static str;
fn parameters() -> &'static [&'static str];
fn return_type() -> &'static str;
fn execute(args: &[NeoValue]) -> NeoResult<NeoValue>;
}