Рейтинг:0

Разрешить пользователю (пользователям) выбрать конкретный NFT из коллекции solana

флаг as

У меня есть коллекция изображений для преобразования в NFT. Для этой цели я решил работать с блокчейном solana, так как это быстро и дешево.

Я использовал следующие программные ресурсы:

  • солана-кли
  • узел.js
  • метаплекс
  • конфеты-мята

Чтобы опубликовать коллекцию, мне нужно было заказать токены от 0.png до Nth-1.png, и я провел несколько тестов на solana devnet. На самом деле, я почти закончил проект; проблема в том, что я хотел бы реализовать "функцию", которой еще не существует (2021-11-13): пусть пользователь выбрал идентификатор (от 0 до n-1) NFT, который он будет чеканить.

На самом деле NFT из одной коллекции чеканятся последовательно или в случайном порядке, если они были перетасованы перед записью в карамельный автомат.

Как можно изменить код src для достижения цели создания одного предмета с определенным идентификатором, выбранным пользователем, из полной коллекции?

Я посмотрел код от главного представителя: candy-machine-mint - https://github.com/exiled-apes/candy-machine-mint, и некоторые его зависимости: @solana/spl-token" - https://www.npmjs.com/package/@solana/spl-токен , но я не понял, как достичь желаемой цели. Любая помощь в этом будет оценена, спасибо.

ПРИМЕЧАНИЕ. Подробно процедура, которую я сделал для создания NFT solana, в основном была следующей: https://www.youtube.com/watch?v=4LLx7SMAOag [как создать обновленный веб-сайт nft minting (Windows, Mac, Linux)] и https://hackmd.io/@levicook/HJcDneEWF [ машина для производства конфет из метаплекса ], таким образом, моя процедура, которая прошла хорошо, была:

1. загрузите node.js с https://nodejs.org/en/download/, а затем:
    >> sudo cp -r node-v16.13.0-linux-x64/{bin,include,lib,share} /usr/local/
    (в убунту v20.04)
         
2. заходим в терминал, создаем фордер для проекта и:
>> npm установить git

3. заходим в нужную папку и делаем:
>> git клон https://github.com/metaplex-foundation/metaplex
>> компакт-диск ./метаплекс/
>> sudo npm install -g ts-node

4. установить солану:
>> sh -c "$(curl -sSfL https://release.solana.com/v1.8.2/install)"
    # ссылка: https://docs.solana.com/cli/install-solana-cli-tools

5. запустить:
export PATH="/home/<ИМЯ_ПОЛЬЗОВАТЕЛЯ>/.local/share/solana/install/active_release/bin:$PATH"
    (замените <USER_NAME> именем пользователя).

6. проверьте версию соланы:
>> солана --версия

7. настроить URL solana:
>> набор настроек solana --url <...>
где в <...> мы должны вставить URL-адрес для salana dev или main, например:
        https://api.devnet.solana.com

8. создаем ключи:
>> solana-keygen новый --outfile <...>.json
просит новый пароль, а потом...
---> и тогда мы получаем pubkey и начальное число фраз;

9. настроить кошелек:
>> набор настроек solana --keypair <...>.json

10. проверить деньги в кошельке:
>> баланс соланы

11. добавить деньги с помощью команды airdrop, расширения фантомного просмотра и т. д.;

12. создайте новую папку с именем «assets» с изображениями *.pngs и файлами *.jsons:
0.png
0.json
...
<n-1>.png
<n-1>.json

13. просмотреть инструкцию по созданию *.json по адресу: https://docs.metaplex.com/nft-standard и вставить публичный ключ в каждый json:
- имя: ...
- описание: ...
- Seller_fee_basis_points: ...
- изображение: image.png
- внешний_адрес: ...
- атрибуты: [...]
- создатели: ...
- адрес: ...

14. установить пряжу:
>> sudo npm установить --global yarn

15. создать коллекцию:
>> компакт-диск ./metaplex/js/
>> сборка пряжи
>> установка пряжи
>> пряжа бутстрап

16. положить папку "assets" с коллекцией в папку метаплекса;

17. бег:
>> ts-node js/packages/cli/src/candy-machine-cli.ts upload ./assets --env <...> --keypair <...>.json
    первое место с <...> должно быть: devnet или mainnet-beta;
---> мы получаем общедоступный ключ конфетной машины и папку с именем «.cache», в которой есть данные, отправленные на сервер «arweave», который является сервером, на котором хранятся nfts *.pngs.

18. создать конфетный автомат по цене:
>> ts-node js/packages/cli/src/candy-machine-cli.ts create_candy_machine --env <...> --keypair <...>.json --price <...>

19. обновить конфетную машину
>> ts-node js/packages/cli/src/candy-machine-cli.ts update_candy_machine --keypair <...>.json --date '3 окт 2021 00:00:00 GMT'
---> вставьте дату, а затем сохраните отметку времени вывода.

20. Затем клонируйте проект "candy-machine-mint":
>> cd ~/desktop/<папка_проекта_проекта>
>> клон git https://github.com/exiled-apes/candy-machine-mint.git

21. откройте папку проекта:
>> компакт-диск ./конфеты-машина-мята

22. затем запустите:
>> сборка пряжи
>> установка пряжи

23. скопировать/переименовать файл ".env.example" в ".env";

24.заполнить переменные значениями, полученными ранее; необязательно: замените «devnet» на «mainnet-beta»;

25. запустите систему:
>> начало пряжи

26. заходим на сайт по адресу localhost:3000;

27. подключаем фантом, нажимаем "мята", и принимаем; понаблюдайте, появится ли nft в "ваших предметах коллекционирования" - повторите. 

28. по желанию проверьте транзакцию: нажмите «последние действия» и выберите транзакцию из списка; скопируйте подпись и зайдите на solscan.io, и прочитайте записи.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.