NFT CrossRoad

NFT CrossRoad

Swiss Knife for NFTs!

The problem NFT CrossRoad solves

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.

  1. Sale
  2. Beacon
  3. SeeSaw

More on what they are and how they work here

Challenges I ran into

1. Verification of contracts on Polygon Mumbai

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 !

2. EPNS Channel Id

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.