UNPKG

@digitalproductpassport/smartcontracts

Version:

Public project for Digital Product Passport with the idea to create an EIP

74 lines (59 loc) 1.96 kB
async function main() { const fs = require('fs'); const hre = require('hardhat'); const productData = JSON.parse(fs.readFileSync('./productData.json', 'utf8')); const [deployer] = await hre.ethers.getSigners(); console.log("Deploying contracts with the account:", deployer.address); const ProductPassport = await hre.ethers.getContractFactory("ProductPassport"); const productPassport = await ProductPassport.deploy(deployer.address); await productPassport.deployed(); console.log("ProductPassport deployed to:", productPassport.address); const { productId, description, manuals, specifications, batchNumber, productionDate, expiryDate, certifications, warrantyInfo, materialComposition, complianceInfo, ipfs } = productData; await productPassport.setProductData( productId, description, manuals, specifications, batchNumber, productionDate, expiryDate, certifications, warrantyInfo, materialComposition, complianceInfo ); console.log("Product data set in ProductPassport contract."); const Batch = await hre.ethers.getContractFactory("Batch"); const batch = await Batch.deploy(productPassport.address, deployer.address); await batch.deployed(); console.log("Batch deployed to:", batch.address); const batchId = 1; const amount = 1000; const assemblingTime = 12345; const transportDetails = "Transport details"; const ipfsHash = ipfs; await batch.setBatchDetails(batchId, amount, assemblingTime, transportDetails, ipfsHash); const batchDetails = await batch.getBatchDetails(batchId); const tokenURI = await batch.tokenURI(batchId); console.log("Batch details:", batchDetails); console.log("Token URI:", tokenURI); } main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); });