Skip to content

Commit

Permalink
fixes 0 ID nft transfers (#390)
Browse files Browse the repository at this point in the history
closes #389

Co-authored-by: schmanu <[email protected]>
  • Loading branch information
schmanu and schmanu authored Mar 4, 2022
1 parent 4f81a5e commit c6ca4b0
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
26 changes: 22 additions & 4 deletions src/__tests__/parser.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -255,19 +255,31 @@ describe("Parsing CSVs ", () => {
it("parses valid collectible transfers", async () => {
const rowWithErc721AndAddress = ["nft", testData.addresses.dummyErc721Address, validReceiverAddress, "", "1"];
const rowWithErc721AndENS = ["nft", testData.addresses.dummyErc721Address, "receiver2.eth", "", "69"];
const rowWithErc721AndIDZero = ["nft", testData.addresses.dummyErc721Address, "receiver1.eth", "", "0"];
const rowWithErc1155AndAddress = ["nft", testData.addresses.dummyErc1155Address, validReceiverAddress, "69", "420"];
const rowWithErc1155AndENS = ["nft", testData.addresses.dummyErc1155Address, "receiver3.eth", "9", "99"];

const [payment, warnings] = await CSVParser.parseCSV(
csvStringFromRows(rowWithErc721AndAddress, rowWithErc721AndENS, rowWithErc1155AndAddress, rowWithErc1155AndENS),
csvStringFromRows(
rowWithErc721AndAddress,
rowWithErc721AndENS,
rowWithErc721AndIDZero,
rowWithErc1155AndAddress,
rowWithErc1155AndENS,
),
mockTokenInfoProvider,
mockCollectibleTokenInfoProvider,
mockEnsResolver,
);
expect(warnings).to.be.empty;
expect(payment).to.have.lengthOf(4);
const [transferErc721AndAddress, transferErc721AndENS, transferErc1155AndAddress, transferErc1155AndENS] =
payment as CollectibleTransfer[];
expect(payment).to.have.lengthOf(5);
const [
transferErc721AndAddress,
transferErc721AndENS,
transferErc721AndIDZero,
transferErc1155AndAddress,
transferErc1155AndENS,
] = payment as CollectibleTransfer[];
expect(transferErc721AndAddress.receiver).to.equal(validReceiverAddress);
expect(transferErc721AndAddress.tokenAddress).to.equal(testData.addresses.dummyErc721Address);
expect(transferErc721AndAddress.amount).to.be.undefined;
Expand All @@ -280,6 +292,12 @@ describe("Parsing CSVs ", () => {
expect(transferErc721AndENS.amount).to.be.undefined;
expect(transferErc721AndENS.receiverEnsName).to.equal("receiver2.eth");

expect(transferErc721AndIDZero.receiver).to.equal(testData.addresses.receiver1);
expect(transferErc721AndIDZero.tokenAddress).to.equal(testData.addresses.dummyErc721Address);
expect(transferErc721AndIDZero.tokenId.isEqualTo(new BigNumber(0))).to.be.true;
expect(transferErc721AndIDZero.amount).to.be.undefined;
expect(transferErc721AndIDZero.receiverEnsName).to.equal("receiver1.eth");

expect(transferErc1155AndAddress.receiver).to.equal(validReceiverAddress);
expect(transferErc1155AndAddress.tokenAddress.toLowerCase()).to.equal(
testData.addresses.dummyErc1155Address.toLowerCase(),
Expand Down
2 changes: 1 addition & 1 deletion src/parser/validation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ const isCollectibleTokenValid = (row: CollectibleTransfer): string[] =>
row.tokenName === "TOKEN_NOT_FOUND" ? [`No token contract was found at ${row.tokenAddress}`] : [];

const isTokenIdPositive = (row: CollectibleTransfer): string[] =>
row.tokenId.isGreaterThan(0) ? [] : [`Only positive Token IDs possible: ${row.tokenId.toFixed()}`];
row.tokenId.isPositive() ? [] : [`Only positive Token IDs possible: ${row.tokenId.toFixed()}`];

const isTokenIdInteger = (row: CollectibleTransfer): string[] =>
row.tokenId.isInteger() ? [] : [`Token IDs must be integer numbers: ${row.tokenId.toFixed()}`];
Expand Down

0 comments on commit c6ca4b0

Please sign in to comment.