Cara Upload Ribuan NFT di Opensea Terbaru
Mencetak ke Opensea
Setelah membuat semua NFT Anda, langkah tersulit adalah mencetak begitu
banyak NFT ke Opensea sebagian besar dalam jumlah besar tanpa kontrak.
Untuk melakukannya saya akan membagikan repositori saya yang menggunakan
dalang untuk mengotomatisasi proses pencetakan NFT, Anda hanya perlu file
folder gambar dan nama gambar untuk mencetak semua. Saya akan mengajari
Anda cara menggunakan repositori di bawah ini.
Jika Anda ingin menambahkan properti lain pada saat yang tepat, kirimkan
saya email, kami dapat mendiskusikannya oi@manel.dev.
Instal paket
Untuk memulai, kami menginstal paket untuk menjalankan skrip, pada proyek
Anda yang dijalankan:
yarn add @chainsafe/dappeteer puppeteer esbuild esbuild-register
Berfungsi @chainsafe/dappeteeruntuk mengotomatiskan koneksi metamask untuk mencetak NFT.
Yang puppeteerakan kita gunakan untuk mengunggah gambar dan mengisi input.
Dan kita akan menggunakan esbuilddan esbuild-registeruntuk menjalankan skrip kita.
Buat skripnya
Mari mulai membuat file bernama script.tsfile melakukan impor pertama dan menambahkan variabel pertama Anda.
script.ts
import puppeteer, { Page } from 'puppeteer';
import dappeteer from '@chainsafe/dappeteer';
import fs from 'fs';
const collectionName = "Your Collection Name"
const collectionURL = `https://opensea.io/collection/${collectionName}/assets/create`
const openseaDescription = `Your description here`
const lockedContent = `Locked content text here`
Hubungkan Fungsi Dompet
Jadi untuk memilih dompet Metamask ketika skrip kita membuka Browser, mari
buat fungsi untuk mengklik tombol Metamask dan terhubung ke dompet.
script.ts
const connectWallet = async (page: Page, metamask) => { const button = await page.$('button.dBFmez:first-child'); await button.click(); await metamask.approve(); return; }
Buat fungsi Unggah Gambar
Sekarang untuk mengunggah gambar pada halaman buat NFT mari kita buat
fungsi yang menerima halaman dan file kemudian mengambil elemen input dalam
HTML dan mengunggah gambar ke sana.
script.ts
const uploadImage = async (page: Page, file: string) => { const elementHandle = await page.$("#media"); await elementHandle.uploadFile(`images/${file}`); return; }
Buat fungsi batas waktu halaman
Fungsi ini untuk memberikan waktu bagi script kita untuk melakukan
pengisian atau klik pada aplikasi.
script.ts
const pageTimeout = async (time: number, page: Page) => {
await page.waitForTimeout(time)
return;
}
Buat fungsi bidang isian
ini adalah fungsi di mana kita akan mendapatkan setiap bidang dari halaman
buat NFT dan mengisinya.
langkah-langkah yang dilakukan fungsi ini
1- Isi nama field
2 - Isi input field.
3 - Nyalakan konten yang tidak dapat dibuka dan isi teks konten yang tidak
dapat dibuka.
4 - Pilih rantai Poligon
script.ts
const fillFields = async (page: Page, fileName: string) => { // Get and fill in the input name await page.focus('#name') await page.keyboard.type(fileName) await pageTimeout(1000, page) //Get and fill in the input name await page.$eval('#description', (el, value) => el.value = value, openseaDescription); await page.focus('#description') await page.keyboard.type(' ') await pageTimeout(1000, page) // Click on the unlockable content checkbox await page.evaluate(() => { document.querySelector("#unlockable-content-toggle").parentElement.click(); }); await pageTimeout(1000, page) // Fill in the unlockable content text await page.$eval('textarea[placeholder="Enter content (access key, code to redeem, link to a file, etc.)"]', (el, value) => el.value = value, lockedContent); await page.focus('textarea[placeholder="Enter content (access key, code to redeem, link to a file, etc.)"]') await page.keyboard.type(' ') // Open the select chain input const input = await page.$("#chain") input.click() await pageTimeout(1000, page) // Select the polygon chain await page.click('img[src="/static/images/logos/polygon.svg"]') return; }
Membuat Fungsi Utama
Dalam fungsi ini kita pergi untuk membuat semua fungsi utama untuk
menjalankan skrip kita, langkah-langkahnya adalah:
1 - Jalankan dappeteer untuk mengatur Metamask di Opensea.
2 - Dapatkan file kami dari file folder gambar.
3 - Hapus file pertama (.DS_Store) - hanya untuk macOS.
4 - Buka halaman buat aset koleksi.
5 - Jalankan fungsi connect wallet
6 - Jalankan loop untuk setiap gambar pada folder gambar (untuk membuat aset
satu per satu)
Lihat kode di bawah ini langkah demi langkah:
script.ts
(async () => { // Async function because we need promises to do it const browser = await dappeteer.launch(puppeteer, { metamaskVersion: 'v10.1.1' }); // Launch the browser with metamask const metamask = await dappeteer.setupMetamask(browser, { seed: "Secret phase here"}); // Add your secret phase here to metamask connect with your account const files = await fs.promises.readdir("images/"); // Get an List with all images on images folder files.shift() // WARN: just on macOS: remove the first file .DS_Store // Open the create assets url of the collection const page = await browser.newPage(); await page.goto(collectionURL); // Get the tabs and close the first tab openned by the dappeteer const firstTabs = await browser.pages() await firstTabs[0].close() await pageTimeout(2000, page) // Run our function to click on the Metamask button in the Opensea await connectWallet(page, metamask) // Start the loop on each image of images folder for (let i = 0; i <= files.length ; i++) { const tabs = await browser.pages() // Get the tabs on each loop const data = { name: `Your Asset name here #${1 + i}`, // Add your NFT name (the count start on 1 and stop on the quantity of the files) } // At the first time on loop you need to do an sign to create the assets if(i === 0) { await tabs[1].bringToFront() // Move one tab await tabs[1].goto(collectionURL) // Change the page to collection url again await pageTimeout(2000, page) await metamask.sign() // Use the metamask to do the transaction await metamask.page.waitForTimeout(2000) // wait for the transaction } // Now if not the first time, after creating the first NFT just open the create assets page again to create the second NFT and so sequentially. if(i === 0) { await tabs[1].bringToFront() await tabs[1].goto(collectionURL) } else { await tabs[1].bringToFront() await tabs[1].goto(collectionURL) } await pageTimeout(2000, page) // Upload the current image file await uploadImage(page, files[i]); // Fill the fields using the asset name with the count await fillFields(page, data.name); // Click on create asset button const button = await page.$('.AssetForm--action button'); await button.click() await pageTimeout(4000, page) // Rename the image name to know if already is completed fs.renameSync(`images/${files[i]}`, `images/completed-${files[i]}`) console.log({ message: `Mint the NFT: ${data.name}`, fileName: files[i]}) console.log(`Mint the NFT: ${data.name}`) } console.log('Minted all NFTs with success') })();
Siap!! sekarang Mari kita konfigurasikan package.jsonuntuk menjalankan skrip dengan satu baris
package.json
{
"name": "node",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"@chainsafe/dappeteer": "^2.2.0",
"dappeteer": "^1.0.0",
"esbuild": "^0.13.10",
"esbuild-register": "^3.0.0",
"puppeteer": "^10.4.0"
},
"scripts": {
"es": "node -r esbuild-register"
}
}
Sekarang untuk menjalankan skrip Anda, jalankan saja di CLI:
yarn es ./src/script.ts
Unduh Repositori
Pertama, Anda perlu mengunduh repositori saya di sini yang berisi skrip untuk mencetak NFT.
Bintangi repositori saya di sini
Selesai, sekarang dalang akan membuat semua NFT Anda satu per satu dan
sangat cepat.
Post a Comment for "Cara Upload Ribuan NFT di Opensea Terbaru"