Fix byte prefix of write instruction in generated clients #13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Write instruction of the Loader v3 program contains a
bytesargument which expects au64prefix. However, the generated clients currently use au32prefix because of the lack of information coming from the Anchor IDL.The Anchor IDL can only type this as
{ type: "bytes" }which is assumed to be au32prefixed byte array. When converting the Anchor IDL into a Codama IDL in order to generate clients, that is also the assumption Codama makes.This PR fixes this issue by adding a new "before" visitor that manually update that prefix from
u32tou64. It also adds a couple of tests to ensure transactions that write to buffers can be sent successfully.Shout out to Andy for flagging this in one of his latest videos.