Kaip į „Mint ERC -20“ prieigos raktą ant bazės naudojant „Skirstymo žetono paslaugą“ 5 žingsniais – „Moralis“ kūrėjams


Šis žingsnis po žingsnio vadove išmokysite, kaip mėtyti daugialypės terpės ERC-20 prieigos raktą pagrindiniame tinkle, naudojant „Axelar“ tarpchainį „Token Service“ (ITS), ir naudokite „Moralis Token API“, kad lengvai gautumėte žetonų balansus.

1 žingsnis: išankstinės sąlygos

Jums reikės:

2 žingsnis: Nustatykite naują projektą ir reikalingas ABIS

Atlikdami šį veiksmą, turėsite sukurti naują projektą ir nustatyti reikiamą ABIS, kad galėtumėte sąveikauti su jo ir mėtų savo ERC-20 prieigos raktą pagrindiniame tinkle.

Atidarykite savo terminalą ir eikite į bet kurį pasirinktą katalogą. Paleiskite šias komandas, kad sukurtumėte ir inicijuotumėte projektą:

mkdir mint-token && cd mint-token
npm init -y

Įdiekite „Hart“ ir „Moralis“

Įdiekite „Hardhat“ ir „Moralis“ naudodami šias komandas:

npm install --save-dev (email protected) (email protected) \\
(email protected) @nomicfoundation/(email protected) moralis

Nustatykite projektą ABIS

Tada nustatykite „ABI“ tarpininko žetonų gamyklai, nes jo reikės dislokavimo metu. Sukurkite naują failą, pavadintą „InterchainTokenFactoryAbi.json“, ir pridėkite „Interchain“ žetonų gamyklą ABI.

Sukurti an .env failas

Norėdami įsitikinti, kad netyčia neskelbiate savo asmeninio rakto, sukurkite .env Failas, kad jis būtų saugomas:

touch .env

Pridėkite savo asmeninį raktą .env

Eksportuokite savo asmeninį raktą ir pridėkite jį prie .env ką tik sukurtas failas:

PRIVATE_KEY= // Add your account private key here

💡 Jei pastumsite šį projektą „GitHub“, sukurkite a .gitignore failas ir įtraukti .env.

3 veiksmas: nustatykite nuotolinio procedūros skambutį (RPC)

Tada turėsite nustatyti RPC. Eikite į katalogą, kuriame įdiegėte „Hardhat“, ir paleiskite šią komandą:

npx hardhat init

Pasirinkite Create an empty hardhat.config.js Su savo klaviatūra ir paspauskite Enter:

888    888                      888 888               888
888    888                      888 888               888
888    888                      888 888               888
8888888888  8888b.  888d888 .d88888 88888b.   8888b.  888888
888    888     "88b 888P"  d88" 888 888 "88b     "88b 888
888    888 .d888888 888    888  888 888  888 .d888888 888
888    888 888  888 888    Y88b 888 888  888 888  888 Y88b.
888    888 "Y888888 888     "Y88888 888  888 "Y888888  "Y888

👷 Welcome to Hardhat v2.18.1 👷‍

? What do you want to do? …
  Create a JavaScript project
  Create a TypeScript project
  Create a TypeScript project (with Viem)
❯ Create an empty hardhat.config.js
  Quit

Toliau atnaujinkite hardhat.config.js Su šiuo kodo fragmentu:

/** @type import('hardhat/config').HardhatUserConfig */
require("@nomicfoundation/hardhat-toolbox");
require("dotenv").config({ path: ".env" });

const PRIVATE_KEY = process.env.PRIVATE_KEY;

/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
  solidity: "0.8.19",
  networks: {
    base: {
      url: "",
      chainId: 84532,
      accounts: (PRIVATE_KEY),
    },
  },
};

Hardhat veikia nustatant artimiausią hardhat.config.js iš dabartinio katalogo, paprastai randamo jūsų projekto šaknyje. Net tuščias hardhat.config.js Leidžia „Hardhat“ funkcionuoti, nes šioje faile yra visa jūsų sąranka.

4 žingsnis: kalyklos ERC-20 prieigos raktas su jo

Dabar, kai jūs nustatėte bazinį „Sepolia TestNet RPC“, galite kaldyti daugialypės terpės ERC-20 prieigos raktą. Šiam vadovėliui sukursite žetoną naudodami šią informaciją:

  • Vardas: Mano naujas žetonas
  • Simbolis: Mnt
  • Dešimtainiai dešimtainiai: 18

Sukurkite naują failą pavadinimu script.js. Importuokite būtinas priklausomybes:

  • Ethers.js
  • Moralinis
  • Abi sutartis
  • InterchainTokenFactory Sutarties adresas
  • Jūsų prieigos rakto informacija
const hre = require("hardhat");
const crypto = require("crypto");
const Moralis = require("moralis").default;
const ethers = hre.ethers;

const interchainTokenFactoryContractABI = require("./interchainTokenFactoryABI");

const interchainTokenFactoryContractAddress =
  "0x83a93500d23Fbc3e82B410aD07A6a9F7A0670D66";
  
// Create a new token
const name = "My New Tokenn";
const symbol = "MNT";
const decimals = 18;

// Intial token to be minted
const initialSupply = ethers.utils.parseEther("1000");

Sukurti a mintToken() funkcija

Sukurti a mintToken() „Sepolia TestNet“ bazinio žetono kaldinimo funkcija:

//...

// Mint a new ERC-20 multichain token to the Base Sepolia testnet
try {
    // Generate random salt
    const salt = "0x" + crypto.randomBytes(32).toString("hex");

    // Get a signer to sign the transaction
    const (signer) = await ethers.getSigners();

    // Create contract instances
    const interchainTokenFactoryContract = await new ethers.Contract(
      interchainTokenFactoryContractAddress,
      interchainTokenFactoryContractABI,
      signer
    );

    // Deploy the token
    const deployTxData =
      await interchainTokenFactoryContract.deployInterchainToken(
        salt,
        name,
        symbol,
        decimals,
        initialSupply,
        signer.address
      );

    console.log(
      `
    Transaction Hash: ${deployTxData.hash},
    salt: ${salt},
    `
    );
  } catch (e) {
    console.error(e);
}

Pridėti a main() funkcija

Pridėti a main() Funkcija vykdyti script.js. Tai sutvarkys visas klaidas, kurios gali atsirasti:

//...

async function main() {
  const functionName = process.env.FUNCTION_NAME;
  switch (functionName) {
    case "mintToken":
      await mintToken();
      break;
    default:
      console.error(`Unknown function: ${functionName}`);
      process.exitCode = 1;
      return;
  }
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});

Bėgti script.js Norėdami įdiegti savo žetoną į „Sepolia TestNet“ bazę

Paleiskite scenarijų savo terminale, kad sukurtumėte ir mėtų prieigos raktą, nurodydami bazinį „Sepolia testNet“:

FUNCTION_NAME=mintToken npx hardhat run script.js --network base

Savo konsolėje turėtumėte pamatyti ką nors panašaus į šiuos dalykus:

Transaction Hash: 0x7695f2dd6e29240fc792d37fd6b86f402f2b5338e088e0ad4a448685e0ad565b,
salt: 0xef36cf55326c3fb9fb47c6d3828b8a4ea12fdfab31aae4bc3634bf7bbe04eb49,

Operacija: https://sepolia.basescan.org/tx/0x7695f2dd6e29240fc792d37fd6b86f402f2b538e088e0ad4a4448685e0ad565b Teken: https://sepolia.basescan.org/token/0x274e53a526fa2543ce19f9c0334286b4724aa5e0

5 žingsnis: patikrinkite nukaldintą žetono balansą su „Moralis“ API

Dabar, kai jūs sėkmingai nukaldinote savo naująjį žetoną, atėjo laikas susigrąžinti pusiausvyrą.

Pridėkite „Moralis API“ raktą .env

MORALIS_API_KEY= // Add you Moralis API key here

Gaukite savo žetono balansą

Pridėkite šiuos dalykus script.js failas:

//...

const MORALIS_API_KEY = process.env.MORALIS_API_KEY;

// Get user balance with the Moralis API
async function getBalance() {
  try {
    console.log("Getting balance...");
    await Moralis.start({
      apiKey: MORALIS_API_KEY,
    });

    const response = await Moralis.EvmApi.token.getWalletTokenBalances({
      chain: "84532", // Base Sepolia
      address: "0x510e5EA32386B7C48C4DEEAC80e86859b5e2416C", // User address
    });

    console.log(response.raw);
  } catch (e) {
    console.error(e);
  }
}

Atnaujinimas main() Norėdami gauti žetonų balansą

Atnaujinimas main() vykdyti getBalance() :

//...

async function main() {
  const functionName = process.env.FUNCTION_NAME;
  switch (functionName) {
    //...
    case "getBalance":
      await getBalance();
      break;
    default:
    //...
  }
}

Paleiskite scenarijų savo terminale, kad gautumėte žetoną:

FUNCTION_NAME=getBalance node script.js 

Savo konsolėje turėtumėte pamatyti ką nors panašaus į šiuos dalykus:

Getting balance...
(
  {
    token_address: '0x274e53a526fa2543ce19f9c0334286b4724aa5e0',
    symbol: 'MNT',
    name: 'My New Tokenn',
    logo: null,
    thumbnail: null,
    decimals: 18,
    balance: '1000000000000000000000',
    possible_spam: false,
    verified_contract: false,
    total_supply: '1000000000000000000000',
    total_supply_formatted: '1000',
    percentage_relative_to_total_supply: 100
  }
)

Santrauka

Vadovėlyje pateikiamas žingsnis po žingsnio vadovo, kuriame pateikiami daugialypės terpės ERC-20 prieigos raktas baziniame „Sepolia“ tinkle, naudojant „Axelar“ tarpchainio prieigos rakto paslaugą (ITS). Procesas apima išankstinių sąlygų nustatymą, naujo projekto ir ABIS sukūrimą, nuotolinio procedūros skambučio (RPC) nustatymą, „ERC-20“ prieigos rakto kaldinimą su ITS ir tikrinant nukaldintą žetonų balansą su „Moralis“ API.

Nuorodos

Dabar, kai jūs žinote, kaip kaldyti daugialypį žetoną, peržiūrėkite šiuos dalykus:



Source link

Draugai: - Marketingo paslaugos - Teisinės konsultacijos - Skaidrių skenavimas - Fotofilmų kūrimas - Karščiausios naujienos - Ultragarsinis tyrimas - Saulius Narbutas - Įvaizdžio kūrimas - Veidoskaita - Nuotekų valymo įrenginiai -  Padelio treniruotės - Pranešimai spaudai -