Swiss Knife for NFTs!
NFT projects are always faced with a choice between value accrual on mainnet or cost efficiency of other L2s/Chains. This project's intention is to bring NFT projects out of this dilemma and establish a solution without compromising either of these 2 choices. Each Protocol is unique and has its own needs. Hence NFTCrossRoad presents 3 unique solutions.
Polygon Mumbai don't verify contracts directly from API; you need to manually verify it by uploading a flattened file or solidity-generated JSON output. This would have been okay in other cases, but for connext, if you import the interfaces as it is, it has a lot of dependencies, and it creates cyclic dependency, so you cannot flat it The other way of SOLC also doesn't work since polygonscan is crashing due to its huge size.
I spent nearly ~2h, just to get these contracts verified, then realized instead of importing IConnext from the connext repo as suggested docs, I could define my own interface.
interface IConnext { function xcall( uint32 _destination, address _to, address _asset, address _delegate, uint256 _amount, uint256 _slippage, bytes calldata _callData ) external payable returns (bytes32); }
Would keep your generated output fairly small, you can now flat the contracts, and your contract also doesn't look bulky on the code section of scanners. And yep, it worked; NFT CrossRoad contracts are now verified on polygonscan !
I thought there was a different unique channel id created, spent a good amount of time debugging transactions to find so. Once I talked with EPNS Team, it was clarified that the channel id is nothing but the creator's address.