const { network, ethers } = require("hardhat")
const { developmentChains, networkConfig } = require("../helper-hardhat-config")
const { verify } = require("../utils/verify");
const VRF_SUB_FUND_AMOUNT = ethers.utils.parseEther("30")
module.exports = async function ({ getNamedAccounts, deployments }) {
const { deploy, log } = deployments
const deployer = getNamedAccounts()
const chainId = network.config.chainId
let vrfCoordinatorV2Address, subscriptionId
if (developmentChains.includes(network.name)) {
const VRFCoordinatorV2Mock = await ethers.getContract(
"VRFCoordinatorV2Mock"
)
vrfCoordinatorV2Address = VRFCoordinatorV2Mock.address
const transactionResponse = await VRFCoordinatorV2Mock.createSubscription()
const transactionReceipt = await transactionResponse.wait(1)
subscriptionId = transactionReceipt.events[0].args.subId
await VRFCoordinatorV2Mock.fundSubscription(
subscriptionId,
VRF_SUB_FUND_AMOUNT
)
} else {
vrfCoordinatorV2Address = networkConfig[chainId]["vrfCoordinatorv2"]
subscriptionId = networkConfig[chainId]["subscriptionId"]
}
const enterenceFee = networkConfig[chainId]["enterenceFee"]
const gasLane = networkConfig[chainId]["gasLane"]
const callbackGasLimit = networkConfig[chainId]["callbackGasLimit"]
const interval = networkConfig[chainId]["interval"]
const arguments = [
vrfCoordinatorV2Address,
enterenceFee,
gasLane,
subscriptionId,
callbackGasLimit,
interval,
]
console.log(deployer)
const lottery = await deploy("Lottery", {
from: deployer,
args: arguments,
log: true,
waitConformations: network.config.blockConformations || 1,
})
if ( !developmentChains.includes(network.name) && process.env.ETHERSCAN_API_KEY) {
log("Verifying ..........")
await verify(lottery.address, args)
}
log("-----------------------------------")
}
module.exports.tags = ["all", "lottery"]
An unexpected error occurred:
Error: ERROR processing C:\Users\user\OneDrive\Desktop\BlockChain\hardhat-lottery\deploy\01-deploy-lottery.js:
TypeError: from.toLowerCase is not a function
at getFrom (C:\Users\user\OneDrive\Desktop\BlockChain\hardhat-lottery\node_modules\hardhat-deploy\src\helpers.ts:1740:34)
at _deploy (C:\Users\user\OneDrive\Desktop\BlockChain\hardhat-lottery\node_modules\hardhat-deploy\src\helpers.ts:534:9)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at runNextTicks (node:internal/process/task_queues:65:3)
at listOnTimeout (node:internal/timers:528:9)
at processTimers (node:internal/timers:502:7)
at _deployOne (C:\Users\user\OneDrive\Desktop\BlockChain\hardhat-lottery\node_modules\hardhat-deploy\src\helpers.ts:1005:16)
at Object.module.exports [as func] (C:\Users\user\OneDrive\Desktop\BlockChain\hardhat-lottery\deploy\01-deploy-lottery.js:50:19)
at DeploymentsManager.executeDeployScripts (C:\Users\user\OneDrive\Desktop\BlockChain\hardhat-lottery\node_modules\hardhat-deploy\src\DeploymentsManager.ts:1219:22)
at DeploymentsManager.runDeploy (C:\Users\user\OneDrive\Desktop\BlockChain\hardhat-lottery\node_modules\hardhat-deploy\src\DeploymentsManager.ts:1052:5)
at DeploymentsManager.executeDeployScripts (C:\Users\user\OneDrive\Desktop\BlockChain\hardhat-lottery\node_modules\hardhat-deploy\src\DeploymentsManager.ts:1222:19)
at processTicksAndRejections (node:internal/process/task_queues:96:5
Can someone help me out with this.. I am having no idea what mistake I am making.
Best Answer
Instead of deploying your contract like this:
try deploying it like this:
I had the same issue and this solved it. Newer versions of hardhat recommend it this way, check the docks.