Open LucasSte opened 2 years ago
Same here while compiling an ERC721.
Did you find a workaround @LucasSte ?
Same here while compiling an ERC721.
Did you find a workaround @LucasSte ?
We haven't found a solution yet. Can you provide more details on what you're trying to achieve? We are certainly can find a way around.
If you are interesting in creating NFTs for Solana, for instance, you need to use the SPL-token integration and not ERC721. You can find more information about how to use the SPL-token on Solana and Solang here.
Hi and thanks for your answer ! I was dumbly trying to convert an erc721 contract and switch to solana like I was always there. But no, definitely no.
Thanks for the doc, I definitely need more knowledge before deploying on solana :)
I'm going to pick this up, we need it.
@xermicus thanks for linking to this issue! I didn't see it (probably should have dug through the issue tracker before spamming you guys! Sorry, I was in go mode :D)
So I think #1537 is slightly different than this one, though they're obviously related. This issue is that solang's pipeline fails on address.code
while my issue is about the parse and resolve component of the pipeline. I think that even if solang can't handle address.code
, the AST should still be built and errors should be pushed down the pipeline.
I'm coming at this as a client of only parse_and_resolve
, I just need an AST (with types, so parsetree is not enough) and I never touch anything else in the pipeline.
@xermicus just want to ping you on this. Would it be fair to reopen #1537 since it's a subproblem that could be fixed even if this issue is unfixed? The sema stage should not fail because of an address.code
, even if the rest of the pipeline cannot handle it.
@bkushigian yeah good point, it certainly can be implemented in sema but not in later stages. But let's just keep this issue only, implementing it in sema is part of it anyways :upside_down_face:
@bkushigian FIY I implemented it for sema in #1549
@xermicus thank you!
Removing from the OZ milestone for Polkadot; OppenZeppelin contracts check the address.code.length
to distinguish contract addresses, however on Polkadot we have the is_contract
builtin to do the same.
This contract works on Solc, but fails on Solang
The error is the following: