Предупреждение! Ошибка при выполнении контракта [исполнение отменено]

У меня есть токен ERC20 Mintable+Burnable, созданный на Solidity 6.11, и контракт на продажу на Solidity 5.0. Я получаю сообщение об ошибке, когда отправляю ETH в контракт на продажу.

https://rinkeby.etherscan.io/tx/0xb793a7b7f3d5667a2ad5c38ecae273bd4c2fb7d627aa0383da7ab25a2ee71510

Я отдал роль минтера договору купли-продажи.

Это код договора купли-продажи:

pragma solidity ^0.5.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/tree/v2.5.1/contracts/crowdsale/emission/MintedCrowdsale.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/tree/v2.5.1/contracts/crowdsale/validation/CappedCrowdsale.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/tree/v2.5.1/contracts/crowdsale/Crowdsale.sol";

contract BotSale is Crowdsale, MintedCrowdsale, CappedCrowdsale {
constructor (
uint256 rate,
address payable wallet,
IERC20 token,
uint256 cap
)
MintedCrowdsale()
Crowdsale(rate, wallet, token)
CappedCrowdsale(cap)
public
{
// solhint-disable-previous-line no-empty-blocks
    }
}

Я установил Rate: 1000000000000000000 и Cap to: 96000000000000000000000000.

На всякий случай, если это поможет. Хотя я хочу спросить, это предел токенов или ETH? и я должен добавить десятичные знаки к кепке? Также я читал в документах openzeppelin, чтобы установить курс равным 1, если я хочу дать 1 токен в обмен на 1 ETH. Так я должен добавить десятичные дроби в скорости или нет?

Ответы (1)

Если вы хотите выдать кому-то «1 TKN for every 1 ETH», а ваши десятичные дроби равны 18, ваша ставка равна 1.

Чтобы рассчитать ставку, см. документацию по контрактам OpenZeppelin: https://docs.openzeppelin.com/contracts/2.x/crowdsales#crowdsale-rate .


Если у вас есть вопросы по использованию OpenZeppelin, вы можете задать их на форуме сообщества: https://forum.openzeppelin.com/

Раскрытие информации: я менеджер сообщества в OpenZeppelin