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

Let me help you understand what’s happening with the code. Here’s the corrected version:

/**

  • @description This file provides helper functions for testing and interacting with Ethereum addresses.

*/

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

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

async function tokens(n) {

/**

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

*

  • @returns {object} An object containing newly created tokens and their associated Ethereum addresses.

*/

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

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

// We use 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 Ethereum address of the newly created token (which should be a string)

const newTokenAddress = newTokenInstance.address;

// Save the address of the newly created token for later use

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

} catch (error) {

// If an error occurs during the installation, save the error message as a string and continue running the rest of the tests

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

console.log("Unexpected error while creating token:", error.message);

}

}

return newlyCreatedTokens;

}

// Usage example:

const tokensN = 100; // Create 100 new tokens

const tokens = await tokens(tokensN);

console.log(New tokens:);

for (let i=0;i

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

}

Code changes:

Ethereum: TypeError: unsupported addressable value (argument=

  • I added a “tokens” function that takes the number of tokens as an argument and returns a promise.
  • Inside this function, we instantiate our contract using ethers.getContractFactory('ERC20Token'), deploy it with the specified amount, and get its address using account.address.
  • We also save the address of the newly created token for later use. You can store your tokens here for later use.
  • We also added error handling to catch unexpected errors during the deployment.

Additional notes:

  • Make sure your Hardhat configuration includes the required dependencies and has a hardhat.config.js' file to define your test environment.
  • You need to create a new contract (in this case an ERC20 token) using "ethers.getContractFactory('ERC20Token')". This usually means creating a Solidity smart contract for the token with the necessary functions and variables.
  • In this example, we have assumed that you are creating an ERC20 token. If you need to create other types of tokens (e.g. ERC721), you may need to modify the code accordingly.

Usage example:

You can use our "token" function like this:

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

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

async function main() {

const tokensN = 100; // Create 100 new tokens

const tokens = await tokens(tokensN);

console.log(Recently created tokens:);

for (let i=0;i

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

}

}

main()

This code creates 100 new ERC20 tokens and prints their addresses.

Tags: No tags

Comments are closed.