use anyhow::Result;
use wasm_encoder::{EntityType, ImportSection};
use super::ImportLayout;
pub const SCRATCH_KEY_OFFSET: i32 = 0;
pub const SCRATCH_VALUE_OFFSET: i32 = 16;
pub const SCRATCH_KEY_SIZE: i32 = 16;
pub const SCRATCH_VALUE_SIZE: i32 = 8;
pub fn build_imports(needs_storage: bool) -> Result<(ImportSection, ImportLayout, u32)> {
let mut imports = ImportSection::new();
let mut import_layout = ImportLayout::default();
let mut imported_functions = 0u32;
if needs_storage {
imports.import("neo", "storage_get", EntityType::Function(0));
import_layout.storage_get = Some(imported_functions);
imported_functions += 1;
imports.import("neo", "storage_put", EntityType::Function(1));
import_layout.storage_put = Some(imported_functions);
imported_functions += 1;
imports.import("neo", "storage_delete", EntityType::Function(2));
import_layout.storage_delete = Some(imported_functions);
imported_functions += 1;
}
Ok((imports, import_layout, imported_functions))
}