-
Notifications
You must be signed in to change notification settings - Fork 94
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
Backwards incompatible change in patch version #520
Comments
cc @pgherveou |
Yeah that was my fault 🙈 #512 (comment) Sorry! |
No worries, it's a pretty straightforward fix. Would help to know whether 3.6.8 will also be yanked, or if we should pin the dependency to |
@prestwich this ruint PR should fix it, not super familiar with the project, so reviews are welcome 🙏 |
Yeah maybe we should yank and release |
Yanked it already to be safe, what about just fixing uint and then re-submitting? |
WRT fixing ruint, we can't change the dep specifier in the currently released versions. So if this change gets released outside a major, anyone using current versions of ruint will get broken. Updating ruint could solve that for most users, but we have at least one user stuck on ruint policy is also to support multiple dep major versions (as dropping support would be . so if this becomes So overall, we'd prefer not to update our existing support to the breaking change. If it becomes a major, we're happy to add the new support alongside the existing support This is your lib, so let me know what you want to do here. Appreciate the help :) |
so, we should release v4.0.0 with the breaking change and ruint can update later on using the PR I submitted |
Yep, exactly. Let me know what ya'll end up deciding and I'll coordinate any ruint changes |
@pgherveou how much do you need |
We have this function here It looks like we don't use Compact type now, and arbitrary contract storage do not rely on this method, so we should be safe for now, but I would like to read existing types that do define Compact field in the future. |
Without wanting to look to deep into this, but isn't |
it is invoked by the runtime when the contracts invoke a host function from pallet-contracts. |
But why not just directly decode from the memory? |
That's what we do, we decode the type from the contract's memory, we just need to make a bound check to make sure that we are not reading outside of the sandbox memory |
But at the point you are reading it, you are in trusted code? And you are declaring the type and not the contract. I really don't get why you need |
(call $seal_terminate
(i32.const 65536) ;; Pointer to "account" address (out of bound).
) Here reading |
You can just change this code here to this:
|
Updating from v3.6.4 -> v3.6.8 introduced a backwards incompatible change caught by ruint ci here.
Change was in this commit. Introduced in #512
Please consider yanking 3.6.7 & 3.6.8
The text was updated successfully, but these errors were encountered: