gagliardetto / anchor-go

Generate Go clients from anchor IDLs for Solana blockchain programs
MIT License
135 stars 30 forks source link

missing struts #20

Open berlinguyinca opened 2 months ago

berlinguyinca commented 2 months ago

hi,

thanks for your hard work, I'm trying to generate the interfaces to the jupiter.idl and i Iend up with lots of missing types.

Example: image

All these structs are missing, except for SwapCrema

The interfaces were generated with the IDL from here:

https://solscan.io/account/JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4#anchorProgramIdl

and the output of anchor-go was

wohlgemuth@beast:~/IdeaProjects/blockdb/blockchain/decoders/solana/idl$ anchor-go --src jupiter.json 
[+] Generating client from IDL: jupiter.json
[?] idl.Events is defined, but generator is not implemented yet.
[?] idl.Errors is defined, but generator is not implemented yet.
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/instructions.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/types.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/accounts.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/Route.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/RouteWithTokenLedger.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/SharedAccountsRoute.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/SharedAccountsRouteWithTokenLedger.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/ExactOutRoute.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/SharedAccountsExactOutRoute.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/SetTokenLedger.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/CreateOpenOrders.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/CreateProgramOpenOrders.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/Claim.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/ClaimToken.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/CreateTokenLedger.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/testing_utils.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/Route_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/RouteWithTokenLedger_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/SharedAccountsRoute_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/SharedAccountsRouteWithTokenLedger_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/ExactOutRoute_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/SharedAccountsExactOutRoute_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/SetTokenLedger_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/CreateOpenOrders_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/CreateProgramOpenOrders_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/Claim_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/ClaimToken_test.go
[✓] /home/wohlgemuth/IdeaProjects/blockdb/blockchain/decoders/solana/idl/generated/jupiter/CreateTokenLedger_test.go

Don't forget to import the necessary dependencies!

        go get github.com/gagliardetto/solana-go@v1.4.0
        go get github.com/gagliardetto/binary@v0.6.1
        go get github.com/gagliardetto/treeout@v0.1.4
        go get github.com/gagliardetto/gofuzz@v1.2.2
        go get github.com/stretchr/testify@v1.6.1
        go get github.com/davecgh/go-spew@v1.1.1

any idea what the issues are?

berlinguyinca commented 2 months ago

Ok I managed to compile the code now, by manually modifying the files and removing the 'swap' in front of the failing ones.

image

Sadly the trests are failing now with 'enum to complicated' and I'm trying to find a clear example how to actually use the idl in go, to parse my transaction instructions.

berlinguyinca commented 2 months ago

The test errros, as example:

image