-
I'm attempting to deploy 02-deploy-random-ipfs-nft.js After running Here is my 02-deploy-random-ipfs-nft.js code: const { network, ethers } = require("hardhat")
const { networkConfig, developmentChains } = require("../helper-hardhat-config")
const { verify } = require("../utils/verify")
const {
storeImages,
storeTokenUriMetadata,
} = require("../utils/uploadToPinata")
const imagesLocation = "./images/randomNft/"
const metadataTemplate = {
name: "",
description: "",
image: "",
attributes: [
{
trait_type: "GoodBoy",
value: 100,
},
],
}
module.exports = async function ({ getNamedAccounts, deployments }) {
const { deploy, log } = deployments
const { deployer } = await getNamedAccounts()
const chainId = network.config.chainId
let vrfCoordinatorV2Address, subscriptionId
// get the IPFS hashes of our images
if (process.env.UPLOAD_TO_PINATA == "true") {
tokenUris = await handleTokenUris()
}
// 1. With your own IPFS node.
// Pinata
if (developmentChains.includes(network.name)) {
const vrfCoordinatorV2Mock = await ethers.getContract(
"VRFCoordinatorV2Mock"
)
vrfCoordinatorV2Address = vrfCoordinatorV2Mock.address
const tx = await vrfCoordinatorV2Mock.createSubscription()
const txReceipt = await tx.wait(1)
subscriptionId = txReceipt.events[0].args.subscriptionId
} else {
vrfCoordinatorV2Address = networkConfig[chainId].vrfCoordinatorV2
subscriptionId = networkConfig[chainId].subscriptionId
}
log("-------------------------------")
const args = [
vrfCoordinatorV2Address,
subscriptionId,
networkConfig[chainId].gasLane,
networkConfig[chainId].callbackGasLimit,
tokenUris,
networkConfig[chainId].mintFee,
]
const randomIpfsNft = await deploy("RandomIpfsNft", {
from: deployer,
args: args,
log: true,
waitConfirmations: network.config.blockConfirmations || 1,
})
log("-------------------------------")
if (
!developmentChains.includes(network.name) &&
process.env.ETHERSCAN_API_KEY
) {
log("Verifying...")
await verify(randomIpfsNft.address, args)
}
}
async function handleTokenUris() {
tokenUris = []
// store the Image in IPFS
// store the metadata in IPFS
const { responses: imageUploadResponses, files } = await storeImages(
imagesLocation
)
for (imageUploadResponseIndex in imageUploadResponses) {
// create metadata
// upload the metadata
let tokenUriMetadata = { ...metadataTemplate }
// pug.png, st-bernard.png
tokenUriMetadata.name = files[imageUploadResponseIndex].replace(
".png",
""
)
tokenUriMetadata.description = `An adorable ${tokenUriMetadata.name} pup!`
tokenUriMetadata.image = `ipfs://${imageUploadResponses[imageUploadResponseIndex].IpfsHash}`
console.log(`Uploading ${tokenUriMetadata.name}...`)
// store the JSON to pinata/IPFS
const metadataUploadResponse = await storeTokenUriMetadata(
tokenUriMetadata
)
tokenUris.push(`ipfs://${metadataUploadResponse.IpfsHash}`)
}
console.log("Token URIs Uploaded! They are:")
console.log(tokenUris)
return tokenUris
}
module.exports.tags = ["all", "randomipfs", "main"] Here is my helper-hardhat-config.js: const networkConfig = {
31337: {
name: "localhost",
vrfCoordinatorV2: "0x6168499c0cFfCaCD319c818142124B7A15E857ab",
subscriptionId: "8920",
ethUsdPriceFeed: "0x9326BFA02ADD2366b30bacB125260Af641031331",
gasLane:
"0xd89b2bf150e3b9e13446986e571fb9cab24b13cea0a43ea20a6049a85cc807cc", // 30 gwei
interval: "2",
callbackGasLimit: "500000", // 500,000 gas
mintFee: "10000000000000000", // 0.01 ETH
},
// Price Feed Address, values can be obtained at https://docs.chain.link/docs/reference-contracts
// Default one is ETH/USD contract on Kovan
4: {
name: "rinkeby",
vrfCoordinatorV2: "0x6168499c0cFfCaCD319c818142124B7A15E857ab",
subscriptionId: "8920", // add your ID here!
gasLane:
"0xd89b2bf150e3b9e13446986e571fb9cab24b13cea0a43ea20a6049a85cc807cc",
interval: "2",
ethUsdPriceFeed: "0x8A753747A1Fa494EC906cE90E9f37563A8AF630e",
callbackGasLimit: "500000", // 500,000 gas
mintFee: "10000000000000000", // 0.01 ETH
},
}
const DECIMALS = "18"
const INITIAL_PRICE = "200000000000000000000"
const developmentChains = ["hardhat", "localhost"]
module.exports = {
networkConfig,
developmentChains,
DECIMALS,
INITIAL_PRICE,
} I believe my Attempted solution: Substituting |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
I'm probably the most impatient person ever!! I had to change and then I actually had Changing both of these fixed my issue. |
Beta Was this translation helpful? Give feedback.
I'm probably the most impatient person ever!!
I had to change
const args = [
toargs = [
and then I actually had
subscriptionId = txReceipt.events[0].args.subId
assubscriptionId = txReceipt.events[0].args.subscriptionId
Changing both of these fixed my issue.