首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CONTRACT_REVERT_EXECUTED Hedera智能合同

CONTRACT_REVERT_EXECUTED Hedera智能合同
EN

Stack Overflow用户
提问于 2022-07-01 14:38:16
回答 1查看 158关注 0票数 0

CONTRACT_REVERT_EXECUTED不知道我做错了什么,但我试图调用一个函数,它接受一个参数,我确保它是正确的,但它仍然恢复。这是使用HederaTokenService的hashgraph。

Smart合同:

代码语言:javascript
复制
pragma solidity ^0.8.11;

import "./hip-206/HederaTokenService.sol";
import "./hip-206/HederaResponseCodes.sol";

contract Minting is HederaTokenService {

    address tokenAddress;
    bytes metadata;
    string baseURI = "abc";
    uint64 mintPrice;

function mintNonFungibleToken(uint64 _amount) external payable {
        bytes[] memory nftMetadatas = generateBytesArrayForHTS(
            baseURI,
            _amount
        );
        (
            int256 response,
            uint64 newTotalSupply,
        ) = HederaTokenService.mintToken(tokenAddress, _amount, metadata);

        if (response != HederaResponseCodes.SUCCESS) {
            revert("Mint Failed");
        }
    }

    // @dev Helper function which generates array of addresses required for HTSPrecompiled
    function generateAddressArrayForHTS(address _address, uint256 _items)
        internal
        pure
        returns (address[] memory _addresses)
    {
        _addresses = new address[](_items);
        for (uint256 i = 0; i < _items; i++) {
            _addresses[i] = _address;
        }
    }

    // @dev Helper function which generates array required for metadata by HTSPrecompiled
    function generateBytesArrayForHTS(bytes memory _bytes, uint256 _items)
        internal
        pure
        returns (bytes[] memory _bytesArray)
    {
        _bytesArray = new bytes[](_items);
        for (uint256 i = 0; i < _items; i++) {
            _bytesArray[i] = _bytes;
        }
    }

在js中调用事务:

代码语言:javascript
复制
  const contractMint = await new ContractExecuteTransaction()
    .setContractId(contractId)
    .setGas(3000000)
    .setFunction(
      "mintFungibleToken",
      new ContractFunctionParameters().addUint64(1)
    )
    .setMaxTransactionFee(new Hbar(2));
EN

回答 1

Stack Overflow用户

发布于 2022-07-01 17:16:38

看起来您试图从JS调用mintFungibleToken,但是智能契约没有mintFungibleToken函数;智能契约函数名为mintNonFungibleToken

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72830889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档