git.delta.rocks / unique-network / refs/commits / b30d78a48678

difftreelog

added substrate interraction in tests `transferCross`

PraetorP2022-11-15parent: #bbafef4.patch.diff
in: master

3 files changed

modifiedtests/src/eth/fungible.test.tsdiffbeforeafterboth
--- a/tests/src/eth/fungible.test.ts
+++ b/tests/src/eth/fungible.test.ts
@@ -234,6 +234,7 @@
     const owner = await helper.eth.createAccountWithBalance(donor);
     const receiver = await helper.eth.createAccountWithBalance(donor);
     const to = helper.ethCrossAccount.fromAddress(receiver);
+    const toSubstrate = helper.ethCrossAccount.fromKeyringPair(donor);
     const collection = await helper.ft.mintCollection(alice);
     await collection.mint(alice, 200n, {Ethereum: owner});
 
@@ -259,6 +260,27 @@
       const balance = await contract.methods.balanceOf(receiver).call();
       expect(+balance).to.equal(50);
     }
+    
+    {
+      const result = await contract.methods.transferCross(toSubstrate, 50).send({from: owner});
+      
+      const event = result.events.Transfer;
+      expect(event.address).to.be.equal(collectionAddress);
+      expect(event.returnValues.from).to.be.equal(owner);
+      expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(donor.address));
+      expect(event.returnValues.value).to.be.equal('50');
+    }
+
+    {
+      const balance = await collection.getBalance({Ethereum: owner});
+      expect(balance).to.equal(100n);
+    }
+
+    {
+      const balance = await collection.getBalance({Substrate: donor.address});
+      expect(balance).to.equal(50n);
+    }
+    
   });
   
   itEth('Can perform transfer()', async ({helper}) => {
modifiedtests/src/eth/nonFungible.test.tsdiffbeforeafterboth
406 itEth('Can perform transferCross()', async ({helper}) => {406 itEth('Can perform transferCross()', async ({helper}) => {
407 const collection = await helper.nft.mintCollection(minter, {});407 const collection = await helper.nft.mintCollection(minter, {});
408 const owner = await helper.eth.createAccountWithBalance(donor);408 const owner = await helper.eth.createAccountWithBalance(donor);
409 const receiver = helper.eth.createAccount();409 const receiver = await helper.eth.createAccountWithBalance(donor);
410 const to = helper.ethCrossAccount.fromAddress(receiver);410 const to = helper.ethCrossAccount.fromAddress(receiver);
411 const toSubstrate = helper.ethCrossAccount.fromKeyringPair(minter);
412
411 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});413 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});
412414
433 expect(+balance).to.equal(1);435 expect(+balance).to.equal(1);
434 }436 }
437
438 {
439 const substrateResult = await contract.methods.transferCross(toSubstrate, tokenId).send({from: receiver});
440
441
442 const event = substrateResult.events.Transfer;
443 expect(event.address).to.be.equal(collectionAddress);
444 expect(event.returnValues.from).to.be.equal(receiver);
445 expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(minter.address));
446 expect(event.returnValues.tokenId).to.be.equal(`${tokenId}`);
447 }
448
449 {
450 const balance = await contract.methods.balanceOf(receiver).call();
451 expect(+balance).to.equal(0);
452 }
453
454 {
455 const balance = await helper.nft.getTokensByAddress(collection.collectionId, {Substrate: minter.address});
456 expect(balance).to.be.contain(tokenId);
457 }
435 });458 });
436});459});
437460
modifiedtests/src/eth/reFungible.test.tsdiffbeforeafterboth
--- a/tests/src/eth/reFungible.test.ts
+++ b/tests/src/eth/reFungible.test.ts
@@ -362,13 +362,14 @@
   
   itEth('Can perform transferCross()', async ({helper}) => {
     const caller = await helper.eth.createAccountWithBalance(donor);
-    const receiver = helper.eth.createAccount();
+    const receiver = await helper.eth.createAccountWithBalance(donor);
     const to = helper.ethCrossAccount.fromAddress(receiver);
-    const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Transferry', '6', '6');
+    const toSubstrate = helper.ethCrossAccount.fromKeyringPair(minter);
+    const collection = await helper.rft.mintCollection(minter, {});
+    const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
     const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);
 
-    const result = await contract.methods.mint(caller).send();
-    const tokenId = result.events.Transfer.returnValues.tokenId;
+    const {tokenId} = await collection.mintToken(minter, 1n, {Ethereum: caller});
 
     {
       const result = await contract.methods.transferCross(to, tokenId).send({from: caller});
@@ -389,6 +390,27 @@
       const balance = await contract.methods.balanceOf(receiver).call();
       expect(+balance).to.equal(1);
     }
+    
+    {
+      const substrateResult = await contract.methods.transferCross(toSubstrate, tokenId).send({from: receiver});
+      
+
+      const event = substrateResult.events.Transfer;
+      expect(event.address).to.be.equal(collectionAddress);
+      expect(event.returnValues.from).to.be.equal(receiver);
+      expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(minter.address));
+      expect(event.returnValues.tokenId).to.be.equal(`${tokenId}`);
+    }
+
+    {
+      const balance = await contract.methods.balanceOf(receiver).call();
+      expect(+balance).to.equal(0);
+    }
+
+    {
+      const balance = await helper.nft.getTokensByAddress(collection.collectionId, {Substrate: minter.address});
+      expect(balance).to.be.contain(tokenId);
+    }
   });
 
   itEth('transfer event on transfer from partial ownership to full ownership', async ({helper}) => {