Skip to content Skip to sidebar Skip to footer

Cara Upload Ribuan NFT di Opensea Terbaru

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.

Itu dia!!

Ikuti saya di Twitter
My 
Github

Post a Comment for "Cara Upload Ribuan NFT di Opensea Terbaru"

close