Remove `seal_` prefixes from `contracts` API function identifiers
Introduce seal2 with the only change of removing the seal_ prefix from all pallet-contracts Wasm API functions.
Since all functions are prefixed with it anyway, the prefix is unnecessary and storing it on-chain as part of the function identifier is increasing the storage + user deposit + gas costs. The prefix is also an irritating thing for people looking into the pallet, we regularly get questions about this.
We would also get our ink! contracts a tiny bit smaller, for erc1155 it's about 50 bytes.
Please keep in mind that we can't actually rename as this would break existing contracts. We would need to add another version with the prefix removed that does the same thing. Since that would add a lot of repetitive code it should be solved in the macro (like allowing alias names for a function). We probably want to solve https://github.com/paritytech/substrate/issues/11344 first.
Blocked on #11344
No longer blocked.
Please keep in mind that we can't actually rename as this would break existing contracts.
Do we need to keep the seal_ prefixed aliases for __unstable__ versions though?
(for other versions the approach is nicely described here,
tl;dr: yes, we need it for all seal0,seal1,... versions of currently implemented host functions)
No. We are allowed to break __unstable__ versions. So no need to generate versions with prefixes for backwards compatible.
@athei @agryaznov This issue is closed, is this correct? If so, could you then please create a follow-up issues in ink for removing the seal_ prefixes from the FFI?