-
Notifications
You must be signed in to change notification settings - Fork 456
Finalize ink! 3.0 integration #493
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This new codegen is based on the (also) new ink! IR.
…ctors Also this implementation avoids a lot of code duplication with the similar code generation for dispatch trait impl of ink! messages.
… impls This works even in precense of type aliases.
Codecov Report
@@ Coverage Diff @@
## master #493 +/- ##
==========================================
+ Coverage 62.42% 67.00% +4.57%
==========================================
Files 145 148 +3
Lines 6805 6300 -505
==========================================
- Hits 4248 4221 -27
+ Misses 2557 2079 -478
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🌮
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👏👏👏
Finalization: ink! 3.0
This PR finalizes the implementation and integration of the new ink! 3.0.
ToDo List
miri
fails forink_core
'sbitstash
unit tests. We should investigate why.ink_core::env::println
todebug_println
to make usage intent very clear.ink_core/env
provided hasheshash_bytes
to hash some raw input byteshash_encoded
to hash some SCALE encodable entity of typeT
ink_core/hash
module and move all linkers to the above definitions.ink_lang
using#[doc(hidden)]
that are not user facing definitions but only required for the underlying code generation.scale
andscale-info
intoink_lang
so that contract writers can simply use that one instead of having to depend on those crates directly themselves.cargo-contract new
template for the changes.crates
directory.ink_core
intoink_env
andink_storage
crate. Maybe renameink_env
toink_runtime
.ink_prelude
toink_memory
, mirroring the plannedink_storage
crate.ink_core/storage2
->storage
ink_metadata/layout2
->layout
ink_core
API specific to this purpose.Env::Hash
.topics[0]
as the event's hashed signature if the ink! event is not anonymous.MAX_EVENT_TOPICS
but cannot distinguish between existing special-casedtopics[0]
or not we need to make sure that non-anonymous events can actually only have up toMAX_EVENT_TOPICS - 1
topics.README.md
__ink_
prefixed identifiers generically to be usable by all ink! language macros.#[ink::test]
proc. macro to newerink_lang_ir
andink_lang_codegen
crates.3.0.0
.ink_lang_ir
andink_lang_codegen
crates fromink_lang_macro
. (Part 3)