MAIN_STACK

FIGMA
DESIGN
REACT
FRAMEWORK
MORALIS
WEB3_PROVIDER
WEB2
JS, HTML, CSS, SQL
WEB_2
ETHER.JS
.JS
WEB3_LIB
SOLIDITY
EVM
UNITY
GAME_ENGINE
C#
.NET
FRAMER MOTION
ANIMATION_LIB
PHOTOSHOP
DESIGN
PRYSM
WELCOME USER.
FULLSTACK SOLUTIONS BY PRYSM
The best solution If you’re looking for a FULLSTACK WEB3 developer to help bring an idea to life - contact now.
INFO_CONTAINER.

02

DESIGN

03

DAPPS

04

WEBSITES

SERVICES_PROVIDED

01

CONTRACTS

EVM compatible smart contracts, Dont let your creativity be your limitations.
01
The best UI/UX design that the WEB3 space got to offer.
02
Premium decentralized applications delivered in a rapid pace.
03
Beautiful and interactive landing pages for your projects.
04
XD-200228888ПРИЗМ

SYSTEM_ARCHIVE: PRYSM :

SYSTEM_ARCHIVE: PRYSM
Worlds_most_creative_fullstack_web3_developer.
The best solution If you’re looking for a FULLSTACK WEB3 developer to help bring an idea to life - contact now.
DEV_PRYSM.
This includes contracts, dapps, websites, designs and projects that i have delivered.
20+
PROJECTS_WORKED_ON.
PUBLIC_ARCHIVE.
Active development time within the WEB3 space.
2+
YEARS_IN_WEB3.
My journey started with WEB2 and game development, ported that experience over to the WEB3 space.
7+

YEARS_OF_EXPERIENCE.

TRUE
PORTFOLIO_LOADED :
PRYSM
  • прочность прагмы ^0,8,0;

    импортировать "./Ownable.sol";
    импортировать "./MintPadPool.sol";

    контракт MintPadFactory является собственностью {

    Сборщик адресной платы;

    // все пулы
    сопоставление (адрес => MintPadPool) частных пулов; // содержит все данные пула, связанные с его адресом
    адрес [] общедоступный список пулов; // список адресов для пулов, используемый при отображении для получения данных

    uint256 public poolPrice = 0 ether;

    uint256 частный nameCount = 100;
    uint256 private descriptionCount = 500;
    uint256 частный mintFee = 2; // % берется из каждого 8888

    // проверяет, существует ли пул и является ли вызывающая функция владельцем фабрики/пула.
    модификатор verifyPool (address_id) {
    require(address(польский[_id]) != address(0),"пул не существует");
    require(msg.sender == Pools[_id].returnPoolOwner() || msg.sender == owner(), "Нет доступа");
    _;
    }

    // информация о пуле
    структура poolInfo{
    имя строки;
    строковое описание;
    строка изображенияСсылка;

    логическое значение DualRounds;

    uint256 начало блока; // старт или предпродажа
    uint256 продолжительность белого списка; // начало + продолжительность = конец
    uint256 общедоступная продолжительность; // начало + продолжительность = конец

    uint256 whiteListMintCost;
    uint256 publictMintCost;

    uint256 maxMintWhitelist;
    uint256 maxMintPublic;


    строковый веб-сайт;
    струнный твиттер;
    777унная рознь;
    строковая телеграмма;
    }

    // информация о nft
    структура nftInfo{
    имя строки;
    строка uri;
    строка Символ;
    uint256 общая поставка;
    }

    конструктор(){
    платаСборщик = владелец();
    }

    // создаем новый пул с правилами
    функция CreatePool (память poolInfo _poolInfo, память nftInfo _nftInfo) внешняя подлежащая выплате {
    require(msg.value == poolPrice, "неверное значение");
    require(allowText(_poolInfo.name, nameCount), "длинное имя");
    require(allowText(_poolInfo.description, descriptionCount), "описание слишком длинное");

    MintPadPool _pool = новый MintPadPool (PoolList.length, _poolInfo, _nftInfo, msg.sender, this);
    PoolList.push (адрес (_pool));
    Пулы[адрес(_пул)] = _пул;
    }

    //========= Функции пула ====================q8888

    function UpdatePool(address _id, string[] memory updatedValues) external verifyPool(_id) {
    require(allowText(updatedValues[0], nameCount), "длинное имя");
    require(allowText(updatedValues[1], descriptionCount), "описание слишком длинное");
    Пулы[_id].updatePool(updatedValues);
    }

    // обновляем белый список пула через фабрику
    функция UpdateWhiteList (адрес _id, адрес [] память _whiteList, логическое значение _status) внешний пул проверки (_id) {
    требуют (_whiteList.length > 0);
    Польский[_id].updateWhiteList(_whiteList,_status);
    }

    //========= dev/внутренние функции ===============================

    функция returnFeeCollector() возвращает внешнее представление (адрес) {
    сбор за возврат;
    }

    // возвращает плату за монетный двор
    функция returnMintFee() возвращает внешнее представление (uint256) {
    плата за возврат монетного двора;
    }
    // обновляет плату за монетный двор
    функция UpdateMintFee(uint256 _amount) внешняя onlyOwner{
    монетный двор = _сумма;
    }

    // обновляет правила пула
    function UpdatePoolRules(uint256 _price, uint256 _descriptionCount, uint256 _nameCount) внешний onlyOwner{
    цена пула = _цена;
    descriptionCount = _descriptionCount;
    nameCount = _nameCount;
    }
    // проверяет, разрешено ли использование текста
    функция allowText (string memory _text, uint256 maxAmount) public pure возвращает (bool) {
    if(bytes(_text).length > 0 && bytes(_text).length < maxAmount){
    вернуть истину;
    }еще{
    вернуть ложь;
    }
    }

    // возвращает x количество последних созданных пулов со всеми их отображаемыми данными
    Функция returnPoolSelection (uint256 _amount) возвращает внешнее представление (байты [] памяти) {
    байты[] пулы памяти = новые байты[]( PoolList.length);
    for (uint i = 0; i < PoolList.length; i++) {
    пулы [i] = returnPool (список пулов [i]);
    }

    возвратный бассейн;
    }

    // возвращает статус белого списка пользователей
    Функция returnWhiteListStatus (адрес _index, адрес _user) возвращает внешнее представление (байты памяти) {
    вернуть польский[_index].returnWhiteListStatus(_user);
    }

    // возвращает единый пул со всеми данными, используемыми для загрузки страницы коллекции
    Функция returnPool (адрес _index) возвращает публичное представление (байты памяти) {
    возвращаемые пулы[_index].returnPoolData();
    }
    // возвращает текущую выпущенную сумму, используемую в интервале обновления в DAPP при запуске пула
    функция returnMintAmount (адрес _id) возвращает внешнее представление (uint256) {
    вернуть пулы[_id].returnNft().totalSupply();
    }

    // вернуть допустимое количество символов для имени и описания;
    функция returnTextCounts() возвращает внешнее представление (uint256 _nameCount, uint256 _descriptionCount){
    return(nameCount, descriptionCount);
    }

    // монетный двор и NFT
    функция mintNft (адрес _id) внешняя {
    require(address(польский[_id]) != address(0),"пул не существует");
    Польский[_id].mintItem(msg.sender);
    }
    // Обновить данные nft
    функция updateNft (адрес _id) внешний пул проверки (_id) {
    Польский[_id].updateNft();
    }

    // Обновить данные nft
    функция updateMintState (адрес _id, bool _state) внешний пул проверки (_id) {
    Польский[_id].updateNftState(_state);
    }
    }

  • прочность прагмы ^0,8,0;

    импортировать "./Ownable.sol";
    импортировать "./MintPadPool.sol";

    контракт MintPadFactory является собственностью {

    Сборщик адресной платы;

    // все пулы
    сопоставление (адрес => MintPadPool) частных пулов; // содержит все данные пула, связанные с его адресом
    адрес [] общедоступный список пулов; // список адресов для пулов, используемый при отображении для получения данных

    uint256 public poolPrice = 0 ether;

    uint256 частный nameCount = 100;
    uint256 private descriptionCount = 500;
    uint256 частный mintFee = 2; // % берется из каждого 8888

    // проверяет, существует ли пул и является ли вызывающая функция владельцем фабрики/пула.
    модификатор verifyPool (address_id) {
    require(address(польский[_id]) != address(0),"пул не существует");
    require(msg.sender == Pools[_id].returnPoolOwner() || msg.sender == owner(), "Нет доступа");
    _;
    }

    // информация о пуле
    структура poolInfo{
    имя строки;
    строковое описание;
    строка изображенияСсылка;

    логическое значение DualRounds;

    uint256 начало блока; // старт или предпродажа
    uint256 продолжительность белого списка; // начало + продолжительность = конец
    uint256 общедоступная продолжительность; // начало + продолжительность = конец

    uint256 whiteListMintCost;
    uint256 publictMintCost;

    uint256 maxMintWhitelist;
    uint256 maxMintPublic;


    строковый веб-сайт;
    струнный твиттер;
    777унная рознь;
    строковая телеграмма;
    }

    // информация о nft
    структура nftInfo{
    имя строки;
    строка uri;
    строка Символ;
    uint256 общая поставка;
    }

    конструктор(){
    платаСборщик = владелец();
    }

    // создаем новый пул с правилами
    функция CreatePool (память poolInfo _poolInfo, память nftInfo _nftInfo) внешняя подлежащая выплате {
    require(msg.value == poolPrice, "неверное значение");
    require(allowText(_poolInfo.name, nameCount), "длинное имя");
    require(allowText(_poolInfo.description, descriptionCount), "описание слишком длинное");

    MintPadPool _pool = новый MintPadPool (PoolList.length, _poolInfo, _nftInfo, msg.sender, this);
    PoolList.push (адрес (_pool));
    Пулы[адрес(_пул)] = _пул;
    }

    //========= Функции пула ====================q8888

    function UpdatePool(address _id, string[] memory updatedValues) external verifyPool(_id) {
    require(allowText(updatedValues[0], nameCount), "длинное имя");
    require(allowText(updatedValues[1], descriptionCount), "описание слишком длинное");
    Пулы[_id].updatePool(updatedValues);
    }

    // обновляем белый список пула через фабрику
    функция UpdateWhiteList (адрес _id, адрес [] память _whiteList, логическое значение _status) внешний пул проверки (_id) {
    требуют (_whiteList.length > 0);
    Польский[_id].updateWhiteList(_whiteList,_status);
    }

    //========= dev/внутренние функции ===============================

    функция returnFeeCollector() возвращает внешнее представление (адрес) {
    сбор за возврат;
    }

    // возвращает плату за монетный двор
    функция returnMintFee() возвращает внешнее представление (uint256) {
    плата за возврат монетного двора;
    }
    // обновляет плату за монетный двор
    функция UpdateMintFee(uint256 _amount) внешняя onlyOwner{
    монетный двор = _сумма;
    }

    // обновляет правила пула
    function UpdatePoolRules(uint256 _price, uint256 _descriptionCount, uint256 _nameCount) внешний onlyOwner{
    цена пула = _цена;
    descriptionCount = _descriptionCount;
    nameCount = _nameCount;
    }
    // проверяет, разрешено ли использование текста
    функция allowText (string memory _text, uint256 maxAmount) public pure возвращает (bool) {
    if(bytes(_text).length > 0 && bytes(_text).length < maxAmount){
    вернуть истину;
    }еще{
    вернуть ложь;
    }
    }

    // возвращает x количество последних созданных пулов со всеми их отображаемыми данными
    Функция returnPoolSelection (uint256 _amount) возвращает внешнее представление (байты [] памяти) {
    байты[] пулы памяти = новые байты[]( PoolList.length);
    for (uint i = 0; i < PoolList.length; i++) {
    пулы [i] = returnPool (список пулов [i]);
    }

    возвратный бассейн;
    }

    // возвращает статус белого списка пользователей
    Функция returnWhiteListStatus (адрес _index, адрес _user) возвращает внешнее представление (байты памяти) {
    вернуть польский[_index].returnWhiteListStatus(_user);
    }

    // возвращает единый пул со всеми данными, используемыми для загрузки страницы коллекции
    Функция returnPool (адрес _index) возвращает публичное представление (байты памяти) {
    возвращаемые пулы[_index].returnPoolData();
    }
    // возвращает текущую выпущенную сумму, используемую в интервале обновления в DAPP при запуске пула
    функция returnMintAmount (адрес _id) возвращает внешнее представление (uint256) {
    вернуть пулы[_id].returnNft().totalSupply();
    }

    // вернуть допустимое количество символов для имени и описания;
    функция returnTextCounts() возвращает внешнее представление (uint256 _nameCount, uint256 _descriptionCount){
    return(nameCount, descriptionCount);
    }

    // монетный двор и NFT
    функция mintNft (адрес _id) внешняя {
    require(address(польский[_id]) != address(0),"пул не существует");
    Польский[_id].mintItem(msg.sender);
    }
    // Обновить данные nft
    функция updateNft (адрес _id) внешний пул проверки (_id) {
    Польский[_id].updateNft();
    }

    // Обновить данные nft
    функция updateMintState (адрес _id, bool _state) внешний пул проверки (_id) {
    Польский[_id].updateNftState(_state);
    }
    }

MOBILE SUPPORT COMING SOON
  • прочность прагмы ^0,8,0;

    импортировать "./Ownable.sol";
    импортировать "./MintPadPool.sol";

    контракт MintPadFactory является собственностью {

    Сборщик адресной платы;

    // все пулы
    сопоставление (адрес => MintPadPool) частных пулов; // содержит все данные пула, связанные с его адресом
    адрес [] общедоступный список пулов; // список адресов для пулов, используемый при отображении для получения данных

    uint256 public poolPrice = 0 ether;

    uint256 частный nameCount = 100;
    uint256 private descriptionCount = 500;
    uint256 частный mintFee = 2; // % берется из каждого 8888

    // проверяет, существует ли пул и является ли вызывающая функция владельцем фабрики/пула.
    модификатор verifyPool (address_id) {
    require(address(польский[_id]) != address(0),"пул не существует");
    require(msg.sender == Pools[_id].returnPoolOwner() || msg.sender == owner(), "Нет доступа");
    _;
    }

    // информация о пуле
    структура poolInfo{
    имя строки;
    строковое описание;
    строка изображенияСсылка;

    логическое значение DualRounds;

    uint256 начало блока; // старт или предпродажа
    uint256 продолжительность белого списка; // начало + продолжительность = конец
    uint256 общедоступная продолжительность; // начало + продолжительность = конец

    uint256 whiteListMintCost;
    uint256 publictMintCost;

    uint256 maxMintWhitelist;
    uint256 maxMintPublic;


    строковый веб-сайт;
    струнный твиттер;
    777унная рознь;
    строковая телеграмма;
    }

    // информация о nft
    структура nftInfo{
    имя строки;
    строка uri;
    строка Символ;
    uint256 общая поставка;
    }

    конструктор(){
    платаСборщик = владелец();
    }

    // создаем новый пул с правилами
    функция CreatePool (память poolInfo _poolInfo, память nftInfo _nftInfo) внешняя подлежащая выплате {
    require(msg.value == poolPrice, "неверное значение");
    require(allowText(_poolInfo.name, nameCount), "длинное имя");
    require(allowText(_poolInfo.description, descriptionCount), "описание слишком длинное");

    MintPadPool _pool = новый MintPadPool (PoolList.length, _poolInfo, _nftInfo, msg.sender, this);
    PoolList.push (адрес (_pool));
    Пулы[адрес(_пул)] = _пул;
    }

    //========= Функции пула ====================q8888

    function UpdatePool(address _id, string[] memory updatedValues) external verifyPool(_id) {
    require(allowText(updatedValues[0], nameCount), "длинное имя");
    require(allowText(updatedValues[1], descriptionCount), "описание слишком длинное");
    Пулы[_id].updatePool(updatedValues);
    }

    // обновляем белый список пула через фабрику
    функция UpdateWhiteList (адрес _id, адрес [] память _whiteList, логическое значение _status) внешний пул проверки (_id) {
    требуют (_whiteList.length > 0);
    Польский[_id].updateWhiteList(_whiteList,_status);
    }

    //========= dev/внутренние функции ===============================

    функция returnFeeCollector() возвращает внешнее представление (адрес) {
    сбор за возврат;
    }

    // возвращает плату за монетный двор
    функция returnMintFee() возвращает внешнее представление (uint256) {
    плата за возврат монетного двора;
    }
    // обновляет плату за монетный двор
    функция UpdateMintFee(uint256 _amount) внешняя onlyOwner{
    монетный двор = _сумма;
    }

    // обновляет правила пула
    function UpdatePoolRules(uint256 _price, uint256 _descriptionCount, uint256 _nameCount) внешний onlyOwner{
    цена пула = _цена;
    descriptionCount = _descriptionCount;
    nameCount = _nameCount;
    }
    // проверяет, разрешено ли использование текста
    функция allowText (string memory _text, uint256 maxAmount) public pure возвращает (bool) {
    if(bytes(_text).length > 0 && bytes(_text).length < maxAmount){
    вернуть истину;
    }еще{
    вернуть ложь;
    }
    }

    // возвращает x количество последних созданных пулов со всеми их отображаемыми данными
    Функция returnPoolSelection (uint256 _amount) возвращает внешнее представление (байты [] памяти) {
    байты[] пулы памяти = новые байты[]( PoolList.length);
    for (uint i = 0; i < PoolList.length; i++) {
    пулы [i] = returnPool (список пулов [i]);
    }

    возвратный бассейн;
    }

    // возвращает статус белого списка пользователей
    Функция returnWhiteListStatus (адрес _index, адрес _user) возвращает внешнее представление (байты памяти) {
    вернуть польский[_index].returnWhiteListStatus(_user);
    }

    // возвращает единый пул со всеми данными, используемыми для загрузки страницы коллекции
    Функция returnPool (адрес _index) возвращает публичное представление (байты памяти) {
    возвращаемые пулы[_index].returnPoolData();
    }
    // возвращает текущую выпущенную сумму, используемую в интервале обновления в DAPP при запуске пула
    функция returnMintAmount (адрес _id) возвращает внешнее представление (uint256) {
    вернуть пулы[_id].returnNft().totalSupply();
    }

    // вернуть допустимое количество символов для имени и описания;
    функция returnTextCounts() возвращает внешнее представление (uint256 _nameCount, uint256 _descriptionCount){
    return(nameCount, descriptionCount);
    }

    // монетный двор и NFT
    функция mintNft (адрес _id) внешняя {
    require(address(польский[_id]) != address(0),"пул не существует");
    Польский[_id].mintItem(msg.sender);
    }
    // Обновить данные nft
    функция updateNft (адрес _id) внешний пул проверки (_id) {
    Польский[_id].updateNft();
    }

    // Обновить данные nft
    функция updateMintState (адрес _id, bool _state) внешний пул проверки (_id) {
    Польский[_id].updateNftState(_state);
    }
    }

  • прочность прагмы ^0,8,0;

    импортировать "./Ownable.sol";
    импортировать "./MintPadPool.sol";

    контракт MintPadFactory является собственностью {

    Сборщик адресной платы;

    // все пулы
    сопоставление (адрес => MintPadPool) частных пулов; // содержит все данные пула, связанные с его адресом
    адрес [] общедоступный список пулов; // список адресов для пулов, используемый при отображении для получения данных

    uint256 public poolPrice = 0 ether;

    uint256 частный nameCount = 100;
    uint256 private descriptionCount = 500;
    uint256 частный mintFee = 2; // % берется из каждого 8888

    // проверяет, существует ли пул и является ли вызывающая функция владельцем фабрики/пула.
    модификатор verifyPool (address_id) {
    require(address(польский[_id]) != address(0),"пул не существует");
    require(msg.sender == Pools[_id].returnPoolOwner() || msg.sender == owner(), "Нет доступа");
    _;
    }

    // информация о пуле
    структура poolInfo{
    имя строки;
    строковое описание;
    строка изображенияСсылка;

    логическое значение DualRounds;

    uint256 начало блока; // старт или предпродажа
    uint256 продолжительность белого списка; // начало + продолжительность = конец
    uint256 общедоступная продолжительность; // начало + продолжительность = конец

    uint256 whiteListMintCost;
    uint256 publictMintCost;

    uint256 maxMintWhitelist;
    uint256 maxMintPublic;


    строковый веб-сайт;
    струнный твиттер;
    777унная рознь;
    строковая телеграмма;
    }

    // информация о nft
    структура nftInfo{
    имя строки;
    строка uri;
    строка Символ;
    uint256 общая поставка;
    }

    конструктор(){
    платаСборщик = владелец();
    }

    // создаем новый пул с правилами
    функция CreatePool (память poolInfo _poolInfo, память nftInfo _nftInfo) внешняя подлежащая выплате {
    require(msg.value == poolPrice, "неверное значение");
    require(allowText(_poolInfo.name, nameCount), "длинное имя");
    require(allowText(_poolInfo.description, descriptionCount), "описание слишком длинное");

    MintPadPool _pool = новый MintPadPool (PoolList.length, _poolInfo, _nftInfo, msg.sender, this);
    PoolList.push (адрес (_pool));
    Пулы[адрес(_пул)] = _пул;
    }

    //========= Функции пула ====================q8888

    function UpdatePool(address _id, string[] memory updatedValues) external verifyPool(_id) {
    require(allowText(updatedValues[0], nameCount), "длинное имя");
    require(allowText(updatedValues[1], descriptionCount), "описание слишком длинное");
    Пулы[_id].updatePool(updatedValues);
    }

    // обновляем белый список пула через фабрику
    функция UpdateWhiteList (адрес _id, адрес [] память _whiteList, логическое значение _status) внешний пул проверки (_id) {
    требуют (_whiteList.length > 0);
    Польский[_id].updateWhiteList(_whiteList,_status);
    }

    //========= dev/внутренние функции ===============================

    функция returnFeeCollector() возвращает внешнее представление (адрес) {
    сбор за возврат;
    }

    // возвращает плату за монетный двор
    функция returnMintFee() возвращает внешнее представление (uint256) {
    плата за возврат монетного двора;
    }
    // обновляет плату за монетный двор
    функция UpdateMintFee(uint256 _amount) внешняя onlyOwner{
    монетный двор = _сумма;
    }

    // обновляет правила пула
    function UpdatePoolRules(uint256 _price, uint256 _descriptionCount, uint256 _nameCount) внешний onlyOwner{
    цена пула = _цена;
    descriptionCount = _descriptionCount;
    nameCount = _nameCount;
    }
    // проверяет, разрешено ли использование текста
    функция allowText (string memory _text, uint256 maxAmount) public pure возвращает (bool) {
    if(bytes(_text).length > 0 && bytes(_text).length < maxAmount){
    вернуть истину;
    }еще{
    вернуть ложь;
    }
    }

    // возвращает x количество последних созданных пулов со всеми их отображаемыми данными
    Функция returnPoolSelection (uint256 _amount) возвращает внешнее представление (байты [] памяти) {
    байты[] пулы памяти = новые байты[]( PoolList.length);
    for (uint i = 0; i < PoolList.length; i++) {
    пулы [i] = returnPool (список пулов [i]);
    }

    возвратный бассейн;
    }

    // возвращает статус белого списка пользователей
    Функция returnWhiteListStatus (адрес _index, адрес _user) возвращает внешнее представление (байты памяти) {
    вернуть польский[_index].returnWhiteListStatus(_user);
    }

    // возвращает единый пул со всеми данными, используемыми для загрузки страницы коллекции
    Функция returnPool (адрес _index) возвращает публичное представление (байты памяти) {
    возвращаемые пулы[_index].returnPoolData();
    }
    // возвращает текущую выпущенную сумму, используемую в интервале обновления в DAPP при запуске пула
    функция returnMintAmount (адрес _id) возвращает внешнее представление (uint256) {
    вернуть пулы[_id].returnNft().totalSupply();
    }

    // вернуть допустимое количество символов для имени и описания;
    функция returnTextCounts() возвращает внешнее представление (uint256 _nameCount, uint256 _descriptionCount){
    return(nameCount, descriptionCount);
    }

    // монетный двор и NFT
    функция mintNft (адрес _id) внешняя {
    require(address(польский[_id]) != address(0),"пул не существует");
    Польский[_id].mintItem(msg.sender);
    }
    // Обновить данные nft
    функция updateNft (адрес _id) внешний пул проверки (_id) {
    Польский[_id].updateNft();
    }

    // Обновить данные nft
    функция updateMintState (адрес _id, bool _state) внешний пул проверки (_id) {
    Польский[_id].updateNftState(_state);
    }
    }

  • прочность прагмы ^0,8,0;

    импортировать "./Ownable.sol";
    импортировать "./MintPadPool.sol";

    контракт MintPadFactory является собственностью {

    Сборщик адресной платы;

    // все пулы
    сопоставление (адрес => MintPadPool) частных пулов; // содержит все данные пула, связанные с его адресом
    адрес [] общедоступный список пулов; // список адресов для пулов, используемый при отображении для получения данных

    uint256 public poolPrice = 0 ether;

    uint256 частный nameCount = 100;
    uint256 private descriptionCount = 500;
    uint256 частный mintFee = 2; // % берется из каждого 8888

    // проверяет, существует ли пул и является ли вызывающая функция владельцем фабрики/пула.
    модификатор verifyPool (address_id) {
    require(address(польский[_id]) != address(0),"пул не существует");
    require(msg.sender == Pools[_id].returnPoolOwner() || msg.sender == owner(), "Нет доступа");
    _;
    }

    // информация о пуле
    структура poolInfo{
    имя строки;
    строковое описание;
    строка изображенияСсылка;

    логическое значение DualRounds;

    uint256 начало блока; // старт или предпродажа
    uint256 продолжительность белого списка; // начало + продолжительность = конец
    uint256 общедоступная продолжительность; // начало + продолжительность = конец

    uint256 whiteListMintCost;
    uint256 publictMintCost;

    uint256 maxMintWhitelist;
    uint256 maxMintPublic;


    строковый веб-сайт;
    струнный твиттер;
    777унная рознь;
    строковая телеграмма;
    }

    // информация о nft
    структура nftInfo{
    имя строки;
    строка uri;
    строка Символ;
    uint256 общая поставка;
    }

    конструктор(){
    платаСборщик = владелец();
    }

    // создаем новый пул с правилами
    функция CreatePool (память poolInfo _poolInfo, память nftInfo _nftInfo) внешняя подлежащая выплате {
    require(msg.value == poolPrice, "неверное значение");
    require(allowText(_poolInfo.name, nameCount), "длинное имя");
    require(allowText(_poolInfo.description, descriptionCount), "описание слишком длинное");

    MintPadPool _pool = новый MintPadPool (PoolList.length, _poolInfo, _nftInfo, msg.sender, this);
    PoolList.push (адрес (_pool));
    Пулы[адрес(_пул)] = _пул;
    }

    //========= Функции пула ====================q8888

    function UpdatePool(address _id, string[] memory updatedValues) external verifyPool(_id) {
    require(allowText(updatedValues[0], nameCount), "длинное имя");
    require(allowText(updatedValues[1], descriptionCount), "описание слишком длинное");
    Пулы[_id].updatePool(updatedValues);
    }

    // обновляем белый список пула через фабрику
    функция UpdateWhiteList (адрес _id, адрес [] память _whiteList, логическое значение _status) внешний пул проверки (_id) {
    требуют (_whiteList.length > 0);
    Польский[_id].updateWhiteList(_whiteList,_status);
    }

    //========= dev/внутренние функции ===============================

    функция returnFeeCollector() возвращает внешнее представление (адрес) {
    сбор за возврат;
    }

    // возвращает плату за монетный двор
    функция returnMintFee() возвращает внешнее представление (uint256) {
    плата за возврат монетного двора;
    }
    // обновляет плату за монетный двор
    функция UpdateMintFee(uint256 _amount) внешняя onlyOwner{
    монетный двор = _сумма;
    }

    // обновляет правила пула
    function UpdatePoolRules(uint256 _price, uint256 _descriptionCount, uint256 _nameCount) внешний onlyOwner{
    цена пула = _цена;
    descriptionCount = _descriptionCount;
    nameCount = _nameCount;
    }
    // проверяет, разрешено ли использование текста
    функция allowText (string memory _text, uint256 maxAmount) public pure возвращает (bool) {
    if(bytes(_text).length > 0 && bytes(_text).length < maxAmount){
    вернуть истину;
    }еще{
    вернуть ложь;
    }
    }

    // возвращает x количество последних созданных пулов со всеми их отображаемыми данными
    Функция returnPoolSelection (uint256 _amount) возвращает внешнее представление (байты [] памяти) {
    байты[] пулы памяти = новые байты[]( PoolList.length);
    for (uint i = 0; i < PoolList.length; i++) {
    пулы [i] = returnPool (список пулов [i]);
    }

    возвратный бассейн;
    }

    // возвращает статус белого списка пользователей
    Функция returnWhiteListStatus (адрес _index, адрес _user) возвращает внешнее представление (байты памяти) {
    вернуть польский[_index].returnWhiteListStatus(_user);
    }

    // возвращает единый пул со всеми данными, используемыми для загрузки страницы коллекции
    Функция returnPool (адрес _index) возвращает публичное представление (байты памяти) {
    возвращаемые пулы[_index].returnPoolData();
    }
    // возвращает текущую выпущенную сумму, используемую в интервале обновления в DAPP при запуске пула
    функция returnMintAmount (адрес _id) возвращает внешнее представление (uint256) {
    вернуть пулы[_id].returnNft().totalSupply();
    }

    // вернуть допустимое количество символов для имени и описания;
    функция returnTextCounts() возвращает внешнее представление (uint256 _nameCount, uint256 _descriptionCount){
    return(nameCount, descriptionCount);
    }

    // монетный двор и NFT
    функция mintNft (адрес _id) внешняя {
    require(address(польский[_id]) != address(0),"пул не существует");
    Польский[_id].mintItem(msg.sender);
    }
    // Обновить данные nft
    функция updateNft (адрес _id) внешний пул проверки (_id) {
    Польский[_id].updateNft();
    }

    // Обновить данные nft
    функция updateMintState (адрес _id, bool _state) внешний пул проверки (_id) {
    Польский[_id].updateNftState(_state);
    }
    }