fix: translateAddress should not rely on PublicKey constructor nam#1138
Conversation
to remove after solana-foundation/anchor#1138 is merged
to remove after solana-foundation/anchor#1138 is merged
63bd1f3 to
cad856e
Compare
|
|
||
| import { translateAddress } from "../src/program/common"; | ||
|
|
||
| describe("program/common", () => { |
There was a problem hiding this comment.
Thank you for these tests!
|
0xCryptoSheik we are now back to the failing test that led to his hacky implementation of i have added a check that just returns the input if it already has a |
|
Sorry @paul-schaaf I'm not sure I follow but I'll try. This is the problem you describe in #1101 right, with my patch we're expecting that a PublicKey created before (where / how ?) after going through the It's very well possible you have 2 different version of To check this, inside the package you can do: If you have a single version / hoisted, then it might not be the case of 2 different versions, or at least, not the simple case. If the publicKey is generated / verified in a package that bundles
which version could we release first exactly? Hope this makes sense & helps a bit, lmk. |
actually, if we cannot find a fix for this soon, we can first roll back to the impl before #1098 and release that as part of the thing is even if we have 2 different versions of Pubkey, I dont see how that should fail your tests. Ive logged the inputs to the running seems to be just one version |
|
I wonder if it would help to not bundle |
|
continued my debugging and it turns out it's not the |
|
@paul-schaaf sgtm. |
|
@paul-schaaf thank you for the explanation, sorry, I don't have time to follow-up as thoroughly as I'd like on this issue. |
Not sure it'd change anything for this particular issue, but yes I believe it'd be best to have it as a |
Since anchor is used in web projects which will minify/mangle function
names, checking an input object for a custom constructor name is unsafe.
Moreover, checking the type of the input Address is unnecessary since
`PublicKey`'s constructor handles:
- `string`
- `array`
- object with a `{ _bn }` shape (like `PublicKey` itself)
310a2ac to
7712004
Compare
|
@paul-schaaf, had to force-push to the branch to sign the commit |
Temp fix before solana-foundation/anchor#1138 is merged to master
|
@armaniferrante can we please release a patch version of the anchor client that includes this commit? |
Done v0.19.1-beta.1 |
Since anchor is used in web projects which will minify/mangle function
names, checking an input object for a custom constructor name is unsafe.
Moreover, checking the type of the input Address is unnecessary since
PublicKey's constructor handles:stringarray{ _bn }shape (likePublicKeyitself)For additional safety, a unit test should be added to prevent
PublicKeyto stop supporting this unexpectedly.
See
PublicKeyimplementation: