diff --git a/script/PrintFlagToken.s.sol b/script/PrintFlagToken.s.sol index 5fce529..7e3b34c 100644 --- a/script/PrintFlagToken.s.sol +++ b/script/PrintFlagToken.s.sol @@ -37,10 +37,10 @@ contract PrintFlagTokenScript is Script { _tokenId: (31 << 128) | 21_563, _author: address(0), _solveTime: uint40(49 days + 23 minutes + 17 seconds), - _solveMetadata: uint56((0xABCDEF0 << 28) | 0x1234567), + _solveMetadata: uint56((0xABCDEF0 << 28) | 0x1122334), _phase: 0, _solves: 256, - _colors: 0xFFC0CB181E2827303DF0F6FC94A3B3 + _colors: 0x181E287851A927303DF0F6FC94A3B3 }) ); } diff --git a/script/preview.js b/script/preview.js index 055aa55..e70417b 100644 --- a/script/preview.js +++ b/script/preview.js @@ -12,23 +12,23 @@ exec("forge script script/PrintFlagToken.s.sol:PrintFlagTokenScript --rpc-url ht console.log(`stderr: ${stderr}`); return; } - + const regex = /data:application\/json;base64,[a-zA-Z0-9+/]+=*/g; const base64Jsons = stdout.match(regex); const matches = []; - base64Jsons?.forEach(base64Json => { + base64Jsons?.forEach((base64Json, index) => { const startIndex = base64Json.indexOf(',') + 1; const encodedJson = base64Json.slice(startIndex); - + try { const decodedJson = atob(encodedJson); const parsedJson = JSON.parse(decodedJson); - - if(parsedJson.image_data !== undefined) { + + if (parsedJson.image_data !== undefined) { matches.push(parsedJson.image_data); } - } catch(e) { + } catch (e) { console.error('Error in decoding/parsing JSON:', e); } }); @@ -37,26 +37,25 @@ exec("forge script script/PrintFlagToken.s.sol:PrintFlagTokenScript --rpc-url ht const dir = path.join(__dirname, 'preview'); // Create the directory if it doesn't exist - if (!fs.existsSync(dir)){ + if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } fs.readdir(dir, (err, files) => { if (err) throw err; - for (const file of files) { - fs.unlink(path.join(dir, file), err => { - if (err) throw err; - }); - } - for (let i = 0; i < matches.length; i++) { const base64Data = matches[i].replace('data:image/svg+xml;base64,', ''); - - const fileName = `${i + 1}.svg`; - fs.writeFile(path.join(dir, fileName), Buffer.from(base64Data, 'base64'), { flag: 'w' }, function(err) { - if(err) { + let fileName; + let counter = 0; + do { + counter++; + fileName = `${i + counter}.svg`; + } while (files.includes(fileName)); + + fs.writeFile(path.join(dir, fileName), Buffer.from(base64Data, 'base64'), { flag: 'w' }, function (err) { + if (err) { console.log(err); } else { console.log(`saved ${fileName}`); @@ -64,4 +63,4 @@ exec("forge script script/PrintFlagToken.s.sol:PrintFlagTokenScript --rpc-url ht }); } }); -}); \ No newline at end of file +}); diff --git a/src/FlagRenderer.sol b/src/FlagRenderer.sol index 7b532b9..db8365d 100644 --- a/src/FlagRenderer.sol +++ b/src/FlagRenderer.sol @@ -390,7 +390,7 @@ contract FlagRenderer { '" y="97" width="', width.toString(), '" height="24" rx="12"/>