You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
According to ABI specification dynamic part of byte arrays should be encoded like this: enc(X) = enc(k) pad_right(X)
Right now they are properly encoded for events, but not for methods. For methods byte arrays are not padded to full chunks of 32 bytes, but are encoded like this:
enc(X) = enc(k) X
Curiously python ethereum API is compatible with this encoding, so this test passes:
Looks like an issue in both ethereum API and Vyper, that will likely cause problems in production. Also harmonizing encoding format will allow using the same algorithm for both event and method args.
The text was updated successfully, but these errors were encountered:
According to ABI specification dynamic part of byte arrays should be encoded like this:
enc(X) = enc(k) pad_right(X)
Right now they are properly encoded for events, but not for methods. For methods byte arrays are not padded to full chunks of 32 bytes, but are encoded like this:
enc(X) = enc(k) X
Curiously python ethereum API is compatible with this encoding, so this test passes:
Looks like an issue in both ethereum API and Vyper, that will likely cause problems in production. Also harmonizing encoding format will allow using the same algorithm for both event and method args.
The text was updated successfully, but these errors were encountered: