git.delta.rocks / unique-network / refs/commits / 942486a34d88

difftreelog

feat make `nft2rftMapping` and `rft2nftMapping` public in Fractionalizer.sol

Trubnikov Sergey2022-08-26parent: #f1d8c4a.patch.diff
in: master

2 files changed

modifiedtests/src/eth/fractionalizer/Fractionalizer.soldiffbeforeafterboth
16 }16 }
17 address rftCollection;17 address rftCollection;
18 mapping(address => bool) nftCollectionAllowList;18 mapping(address => bool) nftCollectionAllowList;
19 mapping(address => mapping(uint256 => uint256)) nft2rftMapping;19 mapping(address => mapping(uint256 => uint256)) public nft2rftMapping;
20 mapping(address => Token) rft2nftMapping;20 mapping(address => Token) public rft2nftMapping;
21 bytes32 refungibleCollectionType = keccak256(bytes("ReFungible"));21 bytes32 refungibleCollectionType = keccak256(bytes("ReFungible"));
2222
23 receive() external payable onlyOwner {}23 receive() external payable onlyOwner {}
modifiedtests/src/eth/fractionalizer/fractionalizer.test.tsdiffbeforeafterboth
--- a/tests/src/eth/fractionalizer/fractionalizer.test.ts
+++ b/tests/src/eth/fractionalizer/fractionalizer.test.ts
@@ -223,6 +223,28 @@
       },
     });
   });
+
+  itWeb3('Test fractionalizer NFT <-> RFT mapping ', async ({api, web3, privateKeyWrapper}) => {
+    const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+    const {fractionalizer, rftCollectionAddress} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+    const {rftTokenAddress, nftCollectionAddress, nftTokenId} = await createRFTToken(api, web3, owner, fractionalizer, 100n);
+
+    const {collectionId, tokenId} = tokenIdFromAddress(rftTokenAddress);
+    const refungibleAddress = collectionIdToAddress(collectionId);
+    expect(rftCollectionAddress).to.be.equal(refungibleAddress);
+    const refungibleTokenContract = uniqueRefungibleToken(web3, rftTokenAddress, owner);
+    await refungibleTokenContract.methods.approve(fractionalizer.options.address, 100).send();
+
+    const rft2nft = await fractionalizer.methods.rft2nftMapping(rftTokenAddress).call();
+    expect(rft2nft).to.be.like({
+      _collection: nftCollectionAddress,
+      _tokenId: nftTokenId,
+    });
+
+    const nft2rft = await fractionalizer.methods.nft2rftMapping(nftCollectionAddress, nftTokenId).call();
+    expect(nft2rft).to.be.eq(tokenId.toString());
+  });
 });