Š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
-
InterchainTokenFactorySutarties 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: