importfsfrom'fs'import{task}from'hardhat/config'import{MerkleDistributorInfo}from'../src/parse-balance-map'task('test-claims').addParam('inFile','Input claims file').addParam('distributorAddress','Address of the distributor').setAction(async(args,hre)=>{constdistrib=(awaithre.ethers.getContractAt('MerkleDistributor',args.distributorAddress)).connect(hre.ethers.provider)console.log('Reading claims...')constjson=JSON.parse(fs.readFileSync(args.inFile,{encoding:'utf8'}))asMerkleDistributorInfoconsole.log('Smoke testing 100 random claims.')constaddresses=Object.keys(json.claims)for(leti=0;i<100;i++){constindex=Math.floor(addresses.length*Math.random())constaddr=addresses[index]constclaim=json.claims[addr]process.stdout.write(`Attempting claim for ${addr} [${i+1}/100]... `)awaitdistrib.callStatic.claim(claim.index,addr,claim.amount,claim.proof)process.stdout.write('OK\n')}console.log('Smoke test passed.')})