Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
Signed-off-by: georgi-l95 <[email protected]>
  • Loading branch information
georgi-l95 committed Sep 15, 2022
1 parent 20d02a4 commit ecee529
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 28 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/acceptance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
tags: [v*]

jobs:
acceptance-tests:
suite:
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down
55 changes: 28 additions & 27 deletions packages/server/tests/acceptance/htsPrecompile.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -180,15 +180,6 @@ describe('@htsprecompile Acceptance Tests', async function () {
const beforeAmount = (await txBefore.wait()).events.filter(e => e.event === 'AllowanceValue')[0].args.amount.toNumber();
const { responseCode } = (await txBefore.wait()).events.filter(e => e.event === 'ResponseCode')[0].args;
expect(responseCode).to.equal(TX_SUCCESS_CODE);

//Give approval for account[2] to use HTSTokens which are owned by baseHTSContract
await baseHTSContract.approvePublic(HTSTokenContractAddress, accounts[2].wallet.address, amount, { gasLimit: 1_000_000 });

//Check if approval was given
const txAfter = await baseHTSContract.allowancePublic(HTSTokenContractAddress, BaseHTSContractAddress, accounts[2].wallet.address);
const afterAmount = (await txAfter.wait()).events.filter(e => e.event === 'AllowanceValue')[0].args.amount.toNumber();
expect(beforeAmount).to.equal(0);
expect(afterAmount).to.equal(amount);

// grant KYC
{
Expand All @@ -206,13 +197,21 @@ describe('@htsprecompile Acceptance Tests', async function () {
await baseHTSContract.cryptoTransferTokenPublic(baseHTSContract.address, HTSTokenContractAddress, amount);
expect(await HTSTokenContract.balanceOf(baseHTSContract.address)).to.equal(amount);
expect(await HTSTokenContract.balanceOf(accounts[2].wallet.address)).to.be.equal(0);

//Give approval for account[2] to use HTSTokens which are owned by baseHTSContract
await baseHTSContract.approvePublic(HTSTokenContractAddress, accounts[2].wallet.address, amount, { gasLimit: 1_000_000 });

//Check if approval was given
const txAfter = await baseHTSContract.allowancePublic(HTSTokenContractAddress, BaseHTSContractAddress, accounts[2].wallet.address);
const afterAmount = (await txAfter.wait()).events.filter(e => e.event === 'AllowanceValue')[0].args.amount.toNumber();
expect(beforeAmount).to.equal(0);
expect(afterAmount).to.equal(amount);

//transfer token which are owned by baseHTSContract using signer account[2] with transferFrom to account[1]
await HTSTokenContract.connect(accounts[2].wallet).transferFrom(baseHTSContract.address, accounts[1].wallet.address, amount, { gasLimit: 1_000_000 });

expect(await HTSTokenContract.balanceOf(accounts[1].wallet.address)).to.be.equal(amount);

//revoke KYC for next tests
{
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(HTSTokenContractAddress, accounts[1].wallet.address, { gasLimit: 1_000_000 });
const responseCodeRevokeKyc = (await revokeKycTx.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode;
Expand All @@ -225,7 +224,6 @@ describe('@htsprecompile Acceptance Tests', async function () {
}
});

// Depends on https://github.com/hashgraph/hedera-services/pull/3798
it('should be able to execute setApprovalForAllPublic', async function() {
const txBefore = (await baseHTSContract.isApprovedForAllPublic(NftHTSTokenContractAddress, BaseHTSContractAddress, accounts[1].wallet.address));
const txBeforeReceipt = await txBefore.wait();
Expand Down Expand Up @@ -305,19 +303,19 @@ describe('@htsprecompile Acceptance Tests', async function () {
await NFTokenContract.connect(accounts[1].wallet).transferFrom(accounts[1].wallet.address, accounts[0].address, NftSerialNumber, { gasLimit: 1_000_000 });

{
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(HTSTokenContractAddress, accounts[0].wallet.address, { gasLimit: 1_000_000 });
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(NftHTSTokenContractAddress, accounts[0].wallet.address, { gasLimit: 1_000_000 });
const responseCodeRevokeKyc = (await revokeKycTx.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode;
expect(responseCodeRevokeKyc).to.equal(TX_SUCCESS_CODE);
}

{
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(HTSTokenContractAddress, accounts[1].wallet.address, { gasLimit: 1_000_000 });
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(NftHTSTokenContractAddress, accounts[1].wallet.address, { gasLimit: 1_000_000 });
const responseCodeRevokeKyc = (await revokeKycTx.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode;
expect(responseCodeRevokeKyc).to.equal(TX_SUCCESS_CODE);
}

{
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(HTSTokenContractAddress, baseHTSContract.address, { gasLimit: 1_000_000 });
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(NftHTSTokenContractAddress, baseHTSContract.address, { gasLimit: 1_000_000 });
const responseCodeRevokeKyc = (await revokeKycTx.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode;
expect(responseCodeRevokeKyc).to.equal(TX_SUCCESS_CODE);
}
Expand Down Expand Up @@ -646,31 +644,31 @@ describe('@htsprecompile Acceptance Tests', async function () {

it('should be able to grant KYC, tranfer hts tokens and revoke KYC', async function() {
// check if KYC is revoked
await checkKyc(baseHTSContractOwner, HTSTokenContractAddress, accounts[1].wallet.address, false);
await checkKyc(baseHTSContractOwner, HTSTokenContractAddress, accounts[2].wallet.address, false);

// grant KYC
const grantKycTx = await baseHTSContractOwner.grantTokenKycPublic(HTSTokenContractAddress, accounts[1].wallet.address, { gasLimit: 1_000_000 });
const grantKycTx = await baseHTSContractOwner.grantTokenKycPublic(HTSTokenContractAddress, accounts[2].wallet.address, { gasLimit: 1_000_000 });
const responseCodeGrantKyc = (await grantKycTx.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode;
expect(responseCodeGrantKyc).to.equal(TX_SUCCESS_CODE);

// check if KYC is granted
await checkKyc(baseHTSContractOwner, HTSTokenContractAddress, accounts[1].wallet.address, true);
await checkKyc(baseHTSContractOwner, HTSTokenContractAddress, accounts[2].wallet.address, true);

// transfer hts
const amount = 10;
const balanceBefore = await HTSTokenContract.balanceOf(accounts[1].wallet.address);
await baseHTSContract.cryptoTransferTokenPublic(accounts[1].wallet.address, HTSTokenContractAddress, amount);
const balanceAfter = await HTSTokenContract.balanceOf(accounts[1].wallet.address);
const balanceBefore = await HTSTokenContract.balanceOf(accounts[2].wallet.address);
await baseHTSContract.connect(accounts[0].wallet).cryptoTransferTokenPublic(accounts[2].wallet.address, HTSTokenContractAddress, amount);
const balanceAfter = await HTSTokenContract.balanceOf(accounts[2].wallet.address);

expect(balanceBefore + amount).to.equal(balanceAfter);

// revoke KYC
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(HTSTokenContractAddress, accounts[1].wallet.address, { gasLimit: 1_000_000 });
const revokeKycTx = await baseHTSContractOwner.revokeTokenKycPublic(HTSTokenContractAddress, accounts[2].wallet.address, { gasLimit: 1_000_000 });
const responseCodeRevokeKyc = (await revokeKycTx.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode;
expect(responseCodeRevokeKyc).to.equal(TX_SUCCESS_CODE);

// check if KYC is revoked
await checkKyc(baseHTSContractOwner, HTSTokenContractAddress, accounts[1].wallet.address, false);
await checkKyc(baseHTSContractOwner, HTSTokenContractAddress, accounts[2].wallet.address, false);
});
});

Expand Down Expand Up @@ -743,8 +741,8 @@ describe('@htsprecompile Acceptance Tests', async function () {
expect(tokenExpiryInfoAfter.autoRenewPeriod).to.equal(expiryInfo.autoRenewPeriod);
expect(newRenewAccountEvmAddress.toLowerCase()).to.equal(expectedRenewAddress.toLowerCase());

//use close to with delta 200 seconds, because we don't know the exact second it was set to expiry
expect(tokenExpiryInfoAfter.second).to.be.closeTo(epoch, 200);
//use close to with delta 300 seconds, because we don't know the exact second it was set to expiry
expect(tokenExpiryInfoAfter.second).to.be.closeTo(epoch, 300);
});

it('should be able to get and update non fungible token expiry info', async function() {
Expand Down Expand Up @@ -785,8 +783,8 @@ describe('@htsprecompile Acceptance Tests', async function () {
expect(tokenExpiryInfoAfter.autoRenewPeriod).to.equal(expiryInfo.autoRenewPeriod);
expect(newRenewAccountEvmAddress.toLowerCase()).to.equal(expectedRenewAddress.toLowerCase());

//use close to with delta 200 seconds, because we don't know the exact second it was set to expiry
expect(tokenExpiryInfoAfter.second).to.be.closeTo(epoch, 200);
//use close to with delta 300 seconds, because we don't know the exact second it was set to expiry
expect(tokenExpiryInfoAfter.second).to.be.closeTo(epoch, 300);
});
});

Expand Down Expand Up @@ -814,9 +812,12 @@ describe('@htsprecompile Acceptance Tests', async function () {
let NftSerialNumber2;

async function setKyc(tokenAddress) {
const grantKycTx = await baseHTSContractOwner.grantTokenKycPublic(tokenAddress, accounts[1].wallet.address, { gasLimit: 1_000_000 });
const grantKycTx = await baseHTSContractOwner.grantTokenKycPublic(tokenAddress, accounts[0].wallet.address, { gasLimit: 1_000_000 });
expect((await grantKycTx.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode).to.equal(TX_SUCCESS_CODE);

const grantKycTx1 = await baseHTSContractOwner.grantTokenKycPublic(tokenAddress, accounts[1].wallet.address, { gasLimit: 1_000_000 });
expect((await grantKycTx1.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode).to.equal(TX_SUCCESS_CODE);

const grantKycTx2 = await baseHTSContractOwner.grantTokenKycPublic(tokenAddress, accounts[2].wallet.address, { gasLimit: 1_000_000 });
expect((await grantKycTx2.wait()).events.filter(e => e.event === 'ResponseCode')[0].args.responseCode).to.equal(TX_SUCCESS_CODE);
}
Expand Down

0 comments on commit ecee529

Please sign in to comment.