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
--- a/tests/src/eth/nonFungible.test.ts
+++ b/tests/src/eth/nonFungible.test.ts
@@ -406,8 +406,10 @@
   itEth('Can perform transferCross()', async ({helper}) => {
     const collection = await helper.nft.mintCollection(minter, {});
     const owner = await helper.eth.createAccountWithBalance(donor);
-    const receiver = helper.eth.createAccount();
+    const receiver = await helper.eth.createAccountWithBalance(donor);
     const to = helper.ethCrossAccount.fromAddress(receiver);
+    const toSubstrate = helper.ethCrossAccount.fromKeyringPair(minter);
+    
     const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});
 
     const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
@@ -432,6 +434,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);
+    }
   });
 });
 
modifiedtests/src/eth/reFungible.test.tsdiffbeforeafterboth
362 362
363 itEth('Can perform transferCross()', async ({helper}) => {363 itEth('Can perform transferCross()', async ({helper}) => {
364 const caller = await helper.eth.createAccountWithBalance(donor);364 const caller = await helper.eth.createAccountWithBalance(donor);
365 const receiver = helper.eth.createAccount();365 const receiver = await helper.eth.createAccountWithBalance(donor);
366 const to = helper.ethCrossAccount.fromAddress(receiver);366 const to = helper.ethCrossAccount.fromAddress(receiver);
367 const toSubstrate = helper.ethCrossAccount.fromKeyringPair(minter);
367 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Transferry', '6', '6');368 const collection = await helper.rft.mintCollection(minter, {});
369 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
368 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);370 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);
369371
370 const result = await contract.methods.mint(caller).send();372 const {tokenId} = await collection.mintToken(minter, 1n, {Ethereum: caller});
371 const tokenId = result.events.Transfer.returnValues.tokenId;
372373
373 {374 {
374 const result = await contract.methods.transferCross(to, tokenId).send({from: caller});375 const result = await contract.methods.transferCross(to, tokenId).send({from: caller});
390 expect(+balance).to.equal(1);391 expect(+balance).to.equal(1);
391 }392 }
393
394 {
395 const substrateResult = await contract.methods.transferCross(toSubstrate, tokenId).send({from: receiver});
396
397
398 const event = substrateResult.events.Transfer;
399 expect(event.address).to.be.equal(collectionAddress);
400 expect(event.returnValues.from).to.be.equal(receiver);
401 expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(minter.address));
402 expect(event.returnValues.tokenId).to.be.equal(`${tokenId}`);
403 }
404
405 {
406 const balance = await contract.methods.balanceOf(receiver).call();
407 expect(+balance).to.equal(0);
408 }
409
410 {
411 const balance = await helper.nft.getTokensByAddress(collection.collectionId, {Substrate: minter.address});
412 expect(balance).to.be.contain(tokenId);
413 }
392 });414 });
393415
394 itEth('transfer event on transfer from partial ownership to full ownership', async ({helper}) => {416 itEth('transfer event on transfer from partial ownership to full ownership', async ({helper}) => {