difftreelog
Add test: refungible ERC-20
in: master
1 file changed
tests/src/eth/reFungibleToken.test.tsdiffbeforeafterboth227 }227 }228 });228 });229230 [231 'transfer',232 // 'transferCross', // TODO233 ].map(testCase => 234 itEth(`Cannot ${testCase}() non-owned token`, async ({helper}) => {235 const owner = await helper.eth.createAccountWithBalance(donor);236 const receiver = await helper.eth.createAccountWithBalance(donor);237 const collection = await helper.rft.mintCollection(alice);238 const rftOwner = await collection.mintToken(alice, 10n, {Ethereum: owner});239 const rftReceiver = await collection.mintToken(alice, 10n, {Ethereum: receiver});240 const tokenIdNonExist = 9999999;241 242 const tokenAddress1 = helper.ethAddress.fromTokenId(collection.collectionId, rftOwner.tokenId);243 const tokenAddress2 = helper.ethAddress.fromTokenId(collection.collectionId, rftReceiver.tokenId);244 const tokenAddressNonExist = helper.ethAddress.fromTokenId(collection.collectionId, tokenIdNonExist);245 const tokenEvmOwner = helper.ethNativeContract.rftToken(tokenAddress1, owner);246 const tokenEvmReceiver = helper.ethNativeContract.rftToken(tokenAddress2, owner);247 const tokenEvmNonExist = helper.ethNativeContract.rftToken(tokenAddressNonExist, owner);248 249 // 1. Can transfer zero amount (EIP-20):250 await tokenEvmOwner.methods[testCase](receiver, 0).send({from: owner});251 // 2. Cannot transfer non-owned token:252 await expect(tokenEvmReceiver.methods[testCase](owner, 0).send({from: owner})).to.be.rejected;253 await expect(tokenEvmReceiver.methods[testCase](owner, 5).send({from: owner})).to.be.rejected;254 // 3. Cannot transfer non-existing token:255 await expect(tokenEvmNonExist.methods[testCase](owner, 0).send({from: owner})).to.be.rejected;256 await expect(tokenEvmNonExist.methods[testCase](owner, 5).send({from: owner})).to.be.rejected;257258 // 4. Storage is not corrupted:259 expect(await rftOwner.getTop10Owners()).to.deep.eq([{Ethereum: owner.toLowerCase()}]);260 expect(await rftReceiver.getTop10Owners()).to.deep.eq([{Ethereum: receiver.toLowerCase()}]);261 expect(await helper.rft.getTokenTop10Owners(collection.collectionId, tokenIdNonExist)).to.deep.eq([]); // TODO262263 // 4.1 Tokens can be transferred:264 await tokenEvmOwner.methods[testCase](receiver, 10).send({from: owner});265 await tokenEvmReceiver.methods[testCase](owner, 10).send({from: receiver});266 expect(await rftOwner.getTop10Owners()).to.deep.eq([{Ethereum: receiver.toLowerCase()}]);267 expect(await rftReceiver.getTop10Owners()).to.deep.eq([{Ethereum: owner.toLowerCase()}]);268 }));229269230 itEth('Can perform repartition()', async ({helper}) => {270 itEth('Can perform repartition()', async ({helper}) => {231 const owner = await helper.eth.createAccountWithBalance(donor);271 const owner = await helper.eth.createAccountWithBalance(donor);