-
Notifications
You must be signed in to change notification settings - Fork 477
Implement missing host functions #2653
Copy link
Copy link
Open
Labels
A-eDSLConcerning the Rust eDSL as a total.Concerning the Rust eDSL as a total.A-examples[examples] Work item[examples] Work itemA-ink_env[ink_env] work item[ink_env] work itemA-ink_lang[ink_lang] Work item[ink_lang] Work itemB-enhancementNew feature or requestNew feature or requestE-mentor-availableA mentor for this issue is availableA mentor for this issue is available
Metadata
Metadata
Assignees
Labels
A-eDSLConcerning the Rust eDSL as a total.Concerning the Rust eDSL as a total.A-examples[examples] Work item[examples] Work itemA-ink_env[ink_env] work item[ink_env] work itemA-ink_lang[ink_lang] Work item[ink_lang] Work itemB-enhancementNew feature or requestNew feature or requestE-mentor-availableA mentor for this issue is availableA mentor for this issue is available
Type
Projects
Status
No status
pallet-revivehas added a number of host functions that we don't support in ink! yet. I've just compiled the list and am creating this tracking issue for them.fn get_immutable_data(output: &mut &mut [u8]);fn set_immutable_data(data: &[u8]);fn balance_of(addr: &[u8; 20], output: &mut [u8; 32]);fn chain_id(output: &mut [u8; 32]);fn gas_price() -> u64;fn base_fee(output: &mut [u8; 32]);fn call_data_size() -> u64;fn origin(output: &mut [u8; 20]);fn code_size(addr: &[u8; 20]) -> u64;fn call_data_load(output: &mut [u8; 32], offset: u32);fn gas_limit() -> u64;fn set_storage_or_clear(flags: StorageFlags, key: &[u8; 32], value: &[u8; 32]) -> Option<u32>;fn get_storage_or_zero(flags: StorageFlags, key: &[u8; 32], output: &mut [u8; 32]);fn return_data_size() -> u64;fn return_data_copy(output: &mut &mut [u8], offset: u32);fn ref_time_left() -> u64;fn block_author(output: &mut [u8; 20]);fn block_hash(block_number: &[u8; 32], output: &mut [u8; 32]);Having the host functions supported is not a requirement for an ink! v6 release. Some are easy to implement, while others (e.g.
immutable data) require more thought about the design.