Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom Networks + Rarity Algorithms + Elrond Network config #1241

Open
wants to merge 21 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
83de9e0
egld network created + egld output files in same folder + custom outp…
Apr 12, 2022
2c0fe73
terrain prepared. now we can calculate rarities
Apr 12, 2022
1b48d53
network customisation functionality, egld network config added, rarit…
Apr 14, 2022
0235a82
mediaFilePrefix customization and small bug fix
Apr 15, 2022
5e2be9f
easier network customization
Apr 15, 2022
a32d474
add Jaccard Distances rarity algorithm & add compatibility for existi…
Apr 16, 2022
3f2c932
existing scripts adapted for the new customisations
Apr 18, 2022
1b09f78
clean a little bit
Apr 18, 2022
8ae250a
rename TR algorithm to `Common`
Apr 18, 2022
a60fcf2
split TR & SR rarity algorithms; add rank for all rarity algorithms
Apr 19, 2022
68084fd
split constants files; split rarity & metadata into different compone…
Apr 25, 2022
ffba651
remove common.js; restructure project; improve some code
Apr 25, 2022
80cb604
move more functions into metadata.js component
Apr 25, 2022
7725e2c
set eth as default
Apr 26, 2022
bd25d43
improve code quality after PR review
Apr 28, 2022
a3490d3
fix typo & update README.md
Apr 28, 2022
9a4f518
Merge pull request #1 from johnykes/custom-networks-and-rarities
ccorcoveanu May 17, 2022
56ea29d
bug fix
johnykes Jun 29, 2022
04bfb82
code improvements (functions instead of strange code)
johnykes Jun 29, 2022
0b818cc
code improvements (markScoreAsUsed improvements)
johnykes Jun 29, 2022
813d575
Merge pull request #3 from ElrondNetwork/fix_jaccard_distances
johnykes Jun 29, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
easier network customization
johnykes committed Apr 15, 2022
commit 5e2be9fa1edcbf27bd3e0958bc917943d988031e
3 changes: 0 additions & 3 deletions constants/network.js
Original file line number Diff line number Diff line change
@@ -9,9 +9,6 @@ const NETWORK = {
egld: {
name: "egld",
startIdx: 1,
jsonDirPrefix: "",
mediaDirPrefix: "",
mediaFilePrefix: "",
metadataFileName: "_metadata.json",
metadataType: metadataTypes.rarities,
},
2 changes: 1 addition & 1 deletion src/config.js
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ const basePath = process.cwd();
const { MODE } = require(`${basePath}/constants/blend_mode.js`);
const { NETWORK } = require(`${basePath}/constants/network.js`);

const network = NETWORK.eth;
const network = NETWORK.egld;

// General metadata
const namePrefix = "Your Collection";
16 changes: 9 additions & 7 deletions src/main.js
Original file line number Diff line number Diff line change
@@ -41,9 +41,9 @@ const buildSetup = () => {
fs.mkdirSync(buildDir);

if (network.jsonDirPrefix)
fs.mkdirSync(`${buildDir}/${network.jsonDirPrefix}`);
fs.mkdirSync(`${buildDir}/${network.jsonDirPrefix ?? ""}`);
if (network.mediaDirPrefix)
fs.mkdirSync(`${buildDir}/${network.mediaDirPrefix}`);
fs.mkdirSync(`${buildDir}/${network.mediaDirPrefix ?? ""}`);
};

const getRarityWeight = (_str) => {
@@ -113,7 +113,9 @@ const layersSetup = (layersOrder) => {

const saveImage = (_editionCount) => {
fs.writeFileSync(
`${buildDir}/${network.mediaDirPrefix}${network.mediaFilePrefix}${_editionCount}.png`,
`${buildDir}/${network.mediaDirPrefix ?? ""}${
network.mediaFilePrefix ?? ""
}${_editionCount}.png`,
canvas.toBuffer("image/png")
);
};
@@ -397,7 +399,7 @@ const createDna = (_layers) => {

const writeMetaData = (_data) => {
fs.writeFileSync(
`${buildDir}/${network.jsonDirPrefix}${network.metadataFileName}`,
`${buildDir}/${network.jsonDirPrefix ?? ""}${network.metadataFileName}`,
_data
);
};
@@ -426,7 +428,7 @@ const saveIndividualMetadataFiles = (abstractedIndexes) => {
)
: null;
fs.writeFileSync(
`${buildDir}/${network.jsonDirPrefix}${
`${buildDir}/${network.jsonDirPrefix ?? ""}${
item.edition || abstractedIndexes[idx]
}.json`,
JSON.stringify(item, null, 2)
@@ -492,7 +494,7 @@ const startCreating = async () => {
hashlipsGiffer = new HashlipsGiffer(
canvas,
ctx,
`${buildDir}/${network.mediaDirPrefix}${abstractedIndexes[0]}.gif`,
`${buildDir}/${network.mediaDirPrefix ?? ""}${abstractedIndexes[0]}.gif`,
gif.repeat,
gif.quality,
gif.delay
@@ -544,7 +546,7 @@ const startCreating = async () => {
}

// build rarity (if needed)
if ((network.metadataType == metadataTypes.rarities)) {
if (network.metadataType == metadataTypes.rarities) {
addRarityMetadata();
}

2 changes: 1 addition & 1 deletion utils/pixelate.js
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ const path = require("path");
const { createCanvas, loadImage } = require("canvas");
const basePath = process.cwd();
const buildDir = `${basePath}/build/pixel_images`;
const inputDir = `${basePath}/build/${network.mediaDirPrefix}`;
const inputDir = `${basePath}/build/${network.mediaDirPrefix ?? ""}`;
const { format, pixelFormat } = require(`${basePath}/src/config.js`);
const console = require("console");
const canvas = createCanvas(format.width, format.height);
8 changes: 6 additions & 2 deletions utils/preview.js
Original file line number Diff line number Diff line change
@@ -6,7 +6,9 @@ const buildDir = `${basePath}/build`;
const { preview } = require(`${basePath}/src/config.js`);

// read json data
const rawdata = fs.readFileSync(`${basePath}/build/${network.jsonDirPrefix}${network.metadataFileName}`);
const rawdata = fs.readFileSync(
`${basePath}/build/${network.jsonDirPrefix ?? ""}${network.metadataFileName}`
);
const metadataList = JSON.parse(rawdata);

const saveProjectPreviewImage = async (_data) => {
@@ -32,7 +34,9 @@ const saveProjectPreviewImage = async (_data) => {
// Don't want to rely on "edition" for assuming index
for (let index = 0; index < _data.length; index++) {
const nft = _data[index];
await loadImage(`${buildDir}/${network.mediaDirPrefix}$${nft.edition}.png`).then((image) => {
await loadImage(
`${buildDir}/${network.mediaDirPrefix ?? ""}$${nft.edition}.png`
).then((image) => {
previewCtx.drawImage(
image,
thumbWidth * (index % thumbPerRow),
2 changes: 1 addition & 1 deletion utils/preview_gif.js
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ const basePath = process.cwd();
const fs = require("fs");
const { createCanvas, loadImage } = require("canvas");
const buildDir = `${basePath}/build`;
const imageDir = `${buildDir}/${network.mediaDirPrefix}`;
const imageDir = `${buildDir}/${network.mediaDirPrefix ?? ""}`;
const { format, preview_gif } = require(`${basePath}/src/config.js`);
const canvas = createCanvas(format.width, format.height);
const ctx = canvas.getContext("2d");
2 changes: 1 addition & 1 deletion utils/rarity.js
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ const { layerConfigurations } = require(`${basePath}/src/config.js`);
const { getElements } = require("../src/main.js");

// read json data
let rawdata = fs.readFileSync(`${basePath}/build/${network.jsonDirPrefix}${network.metadataFileName}`);
let rawdata = fs.readFileSync(`${basePath}/build/${network.jsonDirPrefix ?? ""}${network.metadataFileName}`);
let data = JSON.parse(rawdata);
let editionSize = data.length;

6 changes: 3 additions & 3 deletions utils/update_info.js
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ const {

// read json data
let rawdata = fs.readFileSync(
`${basePath}/build/${network.jsonDirPrefix}${network.metadataFileName}`
`${basePath}/build/${network.jsonDirPrefix ?? ""}${network.metadataFileName}`
);
let data = JSON.parse(rawdata);

@@ -31,13 +31,13 @@ data.forEach((item) => {
}

fs.writeFileSync(
`${basePath}/build/${network.jsonDirPrefix}${item.edition}.json`,
`${basePath}/build/${network.jsonDirPrefix ?? ""}${item.edition}.json`,
JSON.stringify(item, null, 2)
);
});

fs.writeFileSync(
`${basePath}/build/${network.jsonDirPrefix}${network.metadataFileName}`,
`${basePath}/build/${network.jsonDirPrefix ?? ""}${network.metadataFileName}`,
JSON.stringify(data, null, 2)
);