ProjectOpenSea / seadrop

Smart contracts for primary drops on EVM chains

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SeadDrop v2 discussion

dcapitator opened this issue · comments

-_decodeOrder for erc721OffererImplementation is asserting tokenType is erc155 and it pass in ur test because u always pass type ERC1155.

    const offerItem = {
      itemType: 3, // ERC1155
      token: token.address,
      identifierOrCriteria: toBN(tokenId),
      startAmount: toBN(quantity),
      endAmount: toBN(quantity),
    };

-in ERC721OffererImplemenation do u still have to check if seaport have "InvalidContractOrder" if qtty = 0?

_castAndInvert(minimumReceived[0].amount != 0);

This isn't a bug, it is intentional as a way to specify a number of ERC721s to be minted (by spoofing as a ERC1155) as a workaround in Seaport.

ERC1155SeaDropCloneable override _afterTokenTransfer to auto approve conduit , but we use ERC1155ConduitPreapproved

(Should not mint with feeBps > 10_000) test reverts for a different reson , currently for : InvalidProof

u have to replace mintParams in createOrder payload with mintParamsInvalidFeeBps

mintAllowList test

(Should not mint a signed mint after exceeding max mints per wallet) test reverts with SignatureAlreadyUsed in the second attempt of minting inside that "it" block..

expectation to revert on maxWallet exceeded .. should sign new mint with diff salt !

mintSigned test

(Should not mint an allow list stage after exceeding max token supply) test reverts with PayerNotAllowed instead of the block test "MintQuantityExceedsMaxSupply" or "MintQuantityExceedsMaxMintedPerWalletForTokenId" and the quantity need to be updated before creatingOrder depends on which case u are testing

minAllowList ERC1155

decodingOrder must have errors handling correct order :

          if(errorBuffer << 255 != 0 ) {
          revert MustSpecifyERC1155ConsiderationItemForSeaDropMint();
          }. else  if (errorBuffer << 254 != 0) {
                revert UnsupportedExtraDataVersion(version);
            } else if (errorBuffer << 253 != 0) {
                revert InvalidSubstandard(substandard);
            } else if (errorBuffer << 252 != 0) {
                revert InvalidExtraDataEncoding(version);
            }

otherwise testing substandard will revert as InvalidExtraDataEncoding
and testing MustSpecifyERC1155ConsiderationItemForSeaDropMint will revert as UnsupportedExtraDataVersion

Closing due to staleness, please open a new issue if you are still having issues

decodingOrder must have errors handling correct order :

          if(errorBuffer << 255 != 0 ) {
          revert MustSpecifyERC1155ConsiderationItemForSeaDropMint();
          }. else  if (errorBuffer << 254 != 0) {
                revert UnsupportedExtraDataVersion(version);
            } else if (errorBuffer << 253 != 0) {
                revert InvalidSubstandard(substandard);
            } else if (errorBuffer << 252 != 0) {
                revert InvalidExtraDataEncoding(version);
            }

otherwise testing substandard will revert as InvalidExtraDataEncoding and testing MustSpecifyERC1155ConsiderationItemForSeaDropMint will revert as UnsupportedExtraDataVersion

it just didnt get an answer on .. @ryanio i geuss the reverts have wrong order .. i tested substandard error and it got reverted for invalidExtraDataEncoding.. and MustSpecifyERC1155ConsiderationItemForSeaDropMint reverted as UnsupporedExtraDataVersion

MintQuantityExceedsMaxMintedPerWalletForTokenId

here too .. @ryanio

(Should not mint with feeBps > 10_000) test reverts for a different reson , currently for : InvalidProof

u have to replace mintParams in createOrder payload with mintParamsInvalidFeeBps

mintAllowList test

also i guess this test reverts for diff reason that it should be .