hedera-mirror-node
hedera-mirror-node copied to clipboard
Estimate transferToken precompile acceptance test fails
Description
The estimate transferToken precompile acceptance test fails when ran on previewnet.
Steps to reproduce
./gradlew :test:acceptance --info -Dcucumber.filter.tags=@acceptance
Additional context
2024-02-06T20:00:25.176Z INFO ForkJoinPool-1-worker-1 c.h.m.t.e.a.s.PrecompileContractFeature Executing step: I freeze a non fungible token
2024-02-06T20:00:26.715Z INFO ForkJoinPool-1-worker-3 c.h.m.t.e.a.c.TokenClient Transferred 10 tokens of 0.0.35876 from 0.0.35828 to 0.0.35847 via [email protected], isApproval false
2024-02-06T20:00:27.148Z INFO ForkJoinPool-1-worker-1 c.h.m.t.e.a.c.TokenClient Froze account 0.0.35828 with token 0.0.35882 via [email protected]
2024-02-06T20:00:27.328Z INFO reactor-http-epoll-3 c.h.m.t.e.a.c.MirrorNodeClient GET http://mirror-rest/api/v1/transactions/0.0.35828-1707249623-208000000: 200 OK
2024-02-06T20:00:27.329Z INFO ForkJoinPool-1-worker-2 c.h.m.t.e.a.s.EstimatePrecompileFeature Executing step: I call estimateGas with transferToken function and verify the estimated gas against HAPI
2024-02-06T20:00:27.403Z INFO reactor-http-epoll-4 c.h.m.t.e.a.c.MirrorNodeClient POST http://mirror-web3/api/v1/contracts/call: 200 OK
2024-02-06T20:00:28.345Z INFO reactor-http-epoll-3 c.h.m.t.e.a.c.MirrorNodeClient GET http://mirror-rest/api/v1/transactions/0.0.35828-1707249625-176000000: 200 OK
2024-02-06T20:00:28.346Z INFO ForkJoinPool-1-worker-1 c.h.m.t.e.a.s.PrecompileContractFeature Executing step: the mirror node REST API should return status 200 for the latest transaction
2024-02-06T20:00:28.353Z INFO reactor-http-epoll-4 c.h.m.t.e.a.c.MirrorNodeClient GET http://mirror-rest/api/v1/transactions/0.0.35828-1707249603-271000000: 200 OK
2024-02-06T20:00:28.354Z INFO ForkJoinPool-1-worker-1 c.h.m.t.e.a.s.PrecompileContractFeature Executing step: check if non fungible token is frozen
2024-02-06T20:00:28.407Z INFO reactor-http-epoll-2 c.h.m.t.e.a.c.MirrorNodeClient POST http://mirror-web3/api/v1/contracts/call: 200 OK
2024-02-06T20:00:28.408Z INFO ForkJoinPool-1-worker-1 c.h.m.t.e.a.s.PrecompileContractFeature Executing step: I unfreeze a non fungible token
2024-02-06T20:00:29.311Z ERROR ForkJoinPool-1-worker-2 c.h.m.t.e.a.s.EstimatePrecompileFeature Scenario failure:
I create estimate precompile contract with 0 balance
I create erc test contract with 0 balance
I get exchange rates
I successfully create Precompile contract with 0 balance
I successfully create fungible tokens
I successfully create non fungible tokens
I mint and verify a new nft
the mirror node REST API should return status 200 for the HAPI transaction
I set lower deviation at 5% and upper deviation at 20%
I call estimateGas with associate function for fungible token
I call estimateGas with associate function for NFT
I call estimateGas with dissociate token function without association for fungible token
I call estimateGas with dissociate token function without association for NFT
I call estimateGas with nested associate function that executes it twice for fungible token
I call estimateGas with nested associate function that executes it twice for NFT
I call estimate gas that associates FUNGIBLE token dissociates and fails token transfer
I call estimate gas that associates NFT token dissociates and fails token transfer
I associate the receiver account with the fungible token
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with dissociate token function for fungible token
I associate the receiver account with the NFT
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with dissociate token function for NFT
I call estimateGas with dissociate and associate nested function for fungible token
I call estimateGas with dissociate and associate nested function for NFT
I call estimateGas with approve function without association
I call estimateGas with approveNFT function without association
I call estimateGas with setApprovalForAll function without association
I associate contracts with the tokens and approve all nft serials
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with ERC approve function
I call estimateGas with setApprovalForAll function
I call estimateGas with transferFrom function without approval
I call estimateGas with ERC transferFrom function without approval
I approve receiver account to use the NFT with id 1
the mirror node REST API should return status 200 for the HAPI transaction
I approve the contract to use fungible token
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with transferFrom function with more than the approved allowance
I call estimateGas with ERC transferFrom function with more than the approved allowance
I call estimateGas with transferFromNFT with invalid serial number
I call estimateGas with transferNFT function
I approve the receiver account to use fungible token and transfer fungible token to the erc contract
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with ERC transferFrom function
I call estimateGas with ERC transfer function
I call estimateGas with associateTokens function for fungible tokens
I call estimateGas with associateTokens function for NFTs
I associate the fungible_kyc_unfrozen token with the receiver account
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with dissociateTokens function for fungible tokens
I associate the nft_kyc_unfrozen with the receiver account
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with dissociateTokens function for NFTs
I associate and approve the second receiver to use the fungible_kyc_unfrozen token
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with transferTokens function
I mint a new NFT and approve second receiver account to all serial numbers
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with transferNFTs function
I call estimateGas with cryptoTransfer function for hbars
I call estimateGas with cryptoTransfer function for nft
I call estimateGas with cryptoTransfer function for fungible tokens
I call estimateGas with burnToken function for fungible token
I call estimateGas with burnToken function for NFT
I call estimateGas with CreateFungibleToken function
I call estimateGas with CreateNFT function
I call estimateGas with CreateFungibleToken function with custom fees
I call estimateGas with CreateNFT function with custom fees
I approve and transfer fungible tokens to receiver account
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with WipeTokenAccount function
I call estimateGas with WipeTokenAccount function with invalid amount
I transfer NFT to receiver account
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with WipeNFTAccount function
I call estimateGas with WipeNFTAccount function with invalid serial number
I call estimateGas with GrantKYC function for fungible token
I call estimateGas with GrantKYC function for NFT
I call estimateGas with RevokeTokenKYC function for fungible token
I call estimateGas with RevokeTokenKYC function for NFT
I call estimateGas with Grant and Revoke KYC nested function
I call estimateGas with Freeze function for fungible token
I call estimateGas with Freeze function for NFT
I call estimateGas with Unfreeze function for fungible token
I call estimateGas with Unfreeze function for NFT
I call estimateGas with nested Freeze and Unfreeze function for fungible token
I call estimateGas with nested Freeze and Unfreeze function for NFT
I call estimateGas with delete function for Fungible token
I call estimateGas with delete function for NFT
I call estimateGas with delete function for invalid token address
I call estimateGas with updateTokenExpiryInfo function
I call estimateGas with updateTokenInfo function
I call estimateGas with updateTokenKeys function
I call estimateGas with pause function for fungible token
I call estimateGas with pause function for NFT
I call estimateGas with unpause function for fungible token
I call estimateGas with unpause function for NFT
I call estimateGas for nested pause and unpause function
I call estimateGas for nested pause, unpause NFT function
I call estimateGas with getTokenExpiryInfo function
I call estimateGas with isToken function
I call estimateGas with getTokenKey function for supply
I call estimateGas with getTokenKey function for KYC
I call estimateGas with getTokenKey function for freeze
I call estimateGas with getTokenKey function for admin
I call estimateGas with getTokenKey function for wipe
I call estimateGas with getTokenKey function for fee
I call estimateGas with getTokenKey function for pause
I call estimateGas with ERC allowance function for fungible token
I call estimateGas with getApproved function for NFT
I call estimateGas with ERC getApproved function for NFT
I call estimateGas with isApprovedForAll function
I call estimateGas with ERC isApprovedForAll function
I call estimateGas with name function for fungible token
I call estimateGas with name function for NFT
I call estimateGas with symbol function for fungible token
I call estimateGas with symbol function for NFT
I call estimateGas with decimals function for fungible token
I call estimateGas with totalSupply function for fungible token
I call estimateGas with totalSupply function for NFT
I call estimateGas with ownerOf function for NFT
I call estimateGas with tokenURI function for NFT
I call estimateGas with getFungibleTokenInfo function
I call estimateGas with getNonFungibleTokenInfo function
I call estimateGas with getTokenInfo function for fungible
I call estimateGas with getTokenInfo function for NFT
I call estimateGas with getTokenDefaultFreezeStatus function for fungible token
I call estimateGas with getTokenDefaultFreezeStatus function for NFT
I call estimateGas with getTokenDefaultKycStatus function for fungible token
I call estimateGas with getTokenDefaultKycStatus function for NFT
I call estimateGas with isKyc function for fungible token
I call estimateGas with isKyc function for NFT
I call estimateGas with isFrozen function for fungible token
I call estimateGas with isFrozen function for NFT
I call estimateGas with getTokenType function for fungible token
I call estimateGas with getTokenType function for NFT
I call estimateGas with redirect balanceOf function
I call estimateGas with redirect name function
I call estimateGas with redirect name function for NFT
I call estimateGas with redirect symbol function
I call estimateGas with redirect symbol function for NFT
I call estimateGas with redirect decimals function
I call estimateGas with redirect allowance function
I call estimateGas with redirect getOwnerOf function
I call estimateGas with redirect tokenURI function
I call estimateGas with redirect isApprovedForAll function
I transfer fungible token to the precompile contract
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with redirect transfer function
I call estimateGas with redirect transferFrom function
I call estimateGas with redirect approve function
I call estimateGas with redirect transferFrom NFT function
I call estimateGas with redirect setApprovalForAll function
I call estimateGas with exchange rate tinycents to tinybars
I call estimateGas with exchange rate tinybars to tinycents
I call estimate gas that mints FUNGIBLE token and gets the total supply and balance
I call estimate gas that mints NFT token and gets the total supply and balance
I call estimate gas that burns FUNGIBLE token and gets the total supply and balance
I call estimate gas that wipes FUNGIBLE token and gets the total supply and balance
I call estimate gas that wipes NFT token and gets the total supply and balance
I call estimate gas that pauses FUNGIBLE token, unpauses and gets the token status
I call estimate gas that pauses NFT token, unpauses and gets the token status
I call estimate gas that freezes FUNGIBLE token, unfreezes and gets freeze status
I call estimate gas that freezes NFT token, unfreezes and gets freeze status
I call estimate gas that approves FUNGIBLE token and gets allowance
I call estimate gas that approves NFT token and gets allowance
I call estimateGas with pseudo random seed
I call estimateGas with pseudo random number
I call estimateGas with balanceOf function for "FUNGIBLE" and verify the estimated gas against HAPI
I call estimateGas with balanceOf function for "NFT" and verify the estimated gas against HAPI
I update the account and token keys
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with transferToken function and verify the estimated gas against HAPI <- Transaction was unsuccessful: TransactionReceipt{[email protected], status=CONTRACT_REVERT_EXECUTED, exchangeRate=ExchangeRate{hbars=1, cents=12, expirationTime=2100-01-01T00:00:00Z, exchangeRateInCents=12.0}, accountId=null, fileId=null, contractId=0.0.35867, topicId=null, tokenId=null, topicSequenceNumber=null, topicRunningHash=null, totalSupply=0, scheduleId=null, scheduledTransactionId=null, serials=[], duplicates=[], children=[]}
I associate the contract with the receiver account
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with transferNFT function and verify the estimated gas against HAPI
I call estimateGas with mintToken function for fungible token and verify the estimated gas against HAPI
I call estimateGas with mintToken function for NFT and verify the estimated gas against HAPI
I approve the receiver to use the token
the mirror node REST API should return status 200 for the HAPI transaction
I call estimateGas with allowance function for fungible token and verify the estimated gas against HAPI
I call estimateGas with allowance function for NFT and verify the estimated gas against HAPI
I call estimateGas with approve function and verify the estimated gas against HAPI
I call estimateGas with approveNFT function and verify the estimated gas against HAPI
I call estimateGas with transferFrom function with fungible and verify the estimated gas against HAPI
I call estimateGas with transferFromNFT function and verify the estimated gas against HAPI
I call estimate gas that approves a FUNGIBLE token and transfers it
I approve and transfer NFT tokens to the precompile contract
the mirror node REST API should return status 200 for the HAPI transaction
I call estimate gas that approves a NFT token and transfers it
com.hedera.mirror.test.e2e.acceptance.client.NetworkException: Transaction was unsuccessful: TransactionReceipt{[email protected], status=CONTRACT_REVERT_EXECUTED, exchangeRate=ExchangeRate{hbars=1, cents=12, expirationTime=2100-01-01T00:00:00Z, exchangeRateInCents=12.0}, accountId=null, fileId=null, contractId=0.0.35867, topicId=null, tokenId=null, topicSequenceNumber=null, topicRunningHash=null, totalSupply=0, scheduleId=null, scheduledTransactionId=null, serials=[], duplicates=[], children=[]}
at com.hedera.mirror.test.e2e.acceptance.client.AbstractNetworkClient.getTransactionReceipt(AbstractNetworkClient.java:164)
at com.hedera.mirror.test.e2e.acceptance.client.AbstractNetworkClient.executeTransactionAndRetrieveReceipt(AbstractNetworkClient.java:135)
at com.hedera.mirror.test.e2e.acceptance.client.AbstractNetworkClient.executeTransactionAndRetrieveReceipt(AbstractNetworkClient.java:152)
at com.hedera.mirror.test.e2e.acceptance.client.ContractClient.executeContract(ContractClient.java:168)
at com.hedera.mirror.test.e2e.acceptance.steps.EstimatePrecompileFeature.executeContractTransaction(EstimatePrecompileFeature.java:1527)
at com.hedera.mirror.test.e2e.acceptance.steps.EstimatePrecompileFeature.executeTransferForFungibleWithGasLimit(EstimatePrecompileFeature.java:1588)
at ✽.I call estimateGas with transferToken function and verify the estimated gas against HAPI(classpath:features/contract/estimatePrecompile.feature:179)
Hedera network
previewnet
Version
0.98.0-rc1
Operating system
None