CappedCrowdsale mintable ERC721 - PullRequest
       61

CappedCrowdsale mintable ERC721

0 голосов
/ 13 сентября 2018

Я задал тот же вопрос здесь , алиасинг здесь, чтобы привлечь больше внимания.Я подумываю о заключении договора купли-продажи с ограниченным количеством участников с использованием CappedCrowdsale и MintableERC721 OpenZeppelin.Интересно, лучше ли чеканить токены, как только достигнут предел, или чекать отдельно, как только получен платеж?Я начал строить это, предполагая чеканить в конце распродажи, но я не уверен в некоторых вещах.Я придумала следующее:

pragma solidity ^0.4.24;
import "./openzeppelin-solidity/contracts/crowdsale/validation/CappedCrowdsale.sol"; 
import "./openzeppelin-solidity/contracts/token/ERC721/ERC721Full.sol";
import "./openzeppelin-solidity/contracts/token/ERC721/ERC721Mintable.sol";
//import "./openzeppelin-solidity/contracts/token/ERC721/IERC721.sol";

contract SSale is CappedCrowdsale, ERC721Full {

using SafeMath for uint256;
/*
??? using ERC721Mintable for ERC721Full; ???
uint256 private _rate;
address private _wallet;
*/
IERC721 private _token;

/* @param _rate for Crowdsale
   @param _wallet for Crowdsale
   @param _token for Crowdsale
   @param _cap for CappedCrowdsale
   @param name for ERC721Full
   @param symbol for ERC721Full
*/
constructor(uint256 _rate, address _wallet, IERC721 token,
uint _cap,
string name, string symbol) public
Crowdsale(_rate, _wallet, _token)
CappedCrowdsale(_cap)
ERC721Full(name, symbol){}
}

В текущей версии выдается объявление об ошибке: идентификатор не найден или не уникален в строке 17:

IERC721Full private _token;

CappedCrowdsale наследуется Crowdsale контракт, который принимает (uint256 тариф, адресный кошелек, токен IERC20) в качестве параметров в дополнение к _cap of CappedCrowdsale.В моем случае мне пришлось бы заменить IERC20 на IERC721.

Я не уверен, должен ли / как импортировать ERC721Full и интерфейс ERC721Mintable, потому что ERC721Mintable не принимает параметров конструктора, но наследует ERC721Full, который принимает имя из двух строк, символ соответственно.Буду признателен за любые советы, исправления и предложения по импорту соответствующих библиотек и соответствующим образом построению конструктора.Не стесняйтесь комментировать и мой выбор библиотеки, дайте мне знать, что вы думаете о 0xcert, Modular-Networks.

1 Ответ

0 голосов
/ 21 января 2019

Вы можете изучить подход Су Квадраты.

https://github.com/su-squares/ethereum-contract/blob/master/contracts/SuNFT.sol

https://tenthousandsu.com

Это работало путем чеканки 10 000 токенов во время создания контракта.Жетоны принадлежали самому договору.Тогда люди могут покупать токены из контракта.

Причина, по которой мы выбрали этот подход, заключается в том, что каждый из токенов уже был виден на домашней странице.Также мы хотели назначить метаданные токенам до того, как они были проданы.

Вы можете использовать такой подход или использовать другой.

...