Skip to content

Commit

Permalink
Add directory, checks and compile nfts
Browse files Browse the repository at this point in the history
  • Loading branch information
gamalielhere committed Oct 15, 2019
1 parent cccfb52 commit b5b6206
Show file tree
Hide file tree
Showing 101 changed files with 1,317 additions and 7 deletions.
1 change: 1 addition & 0 deletions checkDirectory.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ const whitelist = [
'checkContract.js',
'checkDirectory.js',
'checkLogos.js',
'checkNfts.js',
'checkToken.js',
'compile.js',
'createFiles.js',
Expand Down
107 changes: 107 additions & 0 deletions checkNfts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
const fs = require('fs');
const nftsDirectory = './src/nfts';
const web3 = require('web3');
const path = require('path');
const validate = require('validate.js');
const validateObject = require('./validateObject');

const constraints = {
active: {
presence: {
allowEmpty: false
},
type: "boolean"
},
title: {
presence: {
allowEmpty: false
},
type: "string"
},
itemName: {
presence: {
allowEmpty: true
},
type: "string"
},
contractAddress: function(value) {
if (web3.utils.isAddress(value)) {
return null;
}
return {
presence: { message: 'Token Address missing' },
length: { is: 42 }
};
},
metadataAddress: {
presence: {
allowEmpty: false,
website: {
url: true
}
},
type: "string"
},
keys: {
presence: true,
type: "array"
},
imageKey: {
presence: {
allowEmpty: false
},
type: "string"
},
metadataKeys: {
presence: true,
type: "array"
},
ERC721Extension: {
presence: {
allowEmpty: false
},
type: "boolean"
},
ERC721Metadata: {
presence: {
allowEmpty: false
},
type: "boolean"
},
nonStandard: {
presence: {
allowEmpty: false
},
type: "boolean"
},
};

function checkNfts() {
fs.readdirSync(nftsDirectory).forEach(folder => {
fs.readdirSync(`${nftsDirectory}/${folder}`).forEach(file => {
if (
path.extname(file) === '.json' &&
web3.utils.isAddress(file.replace('.json', ''))
) {
const fullPath = `${nftsDirectory}/${folder}/${file}`;
const obj = JSON.parse(fs.readFileSync(fullPath, 'utf8'));
validateObject(constraints, obj, fullPath);
if (validate(obj, constraints) !== undefined) {
const errs = validate(obj, constraints);
Object.keys(errs).forEach(key => {
console.error(
`${errs[key][0]} for ${file} in ${nftsDirectory}/${folder}`
);
});
process.exit(1);
}
} else {
console.error('Incorrect file name or file extension');
process.exit(1);
}
});
});
process.exit(0);
}

checkNfts();
33 changes: 33 additions & 0 deletions createFiles.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const fs = require('fs');
const contractsDirectory = './src/contracts/';
const tokensDirectory = './src/tokens/';
const nftsDirectory = './src/nfts/';

function createContractFiles() {
if (!fs.existsSync('./dist/contracts')) {
Expand Down Expand Up @@ -65,12 +66,44 @@ function createTokenFiles() {
});
}

function createNftFiles() {
if (!fs.existsSync('./dist/nfts')) {
fs.mkdirSync('./dist/nfts');
}
fs.readdirSync(nftsDirectory).forEach(folder => {
let nftArr = [];
if (!fs.existsSync(`./dist/nfts/${folder}`)) {
fs.mkdirSync(`./dist/nfts/${folder}`);
}
fs.readdirSync(`${nftsDirectory}/${folder}`).forEach(file => {
const obj = JSON.parse(
fs.readFileSync(`${nftsDirectory}/${folder}/${file}`, 'utf8')
);
nftArr.push(obj);
});
const writeArray = nftArr.sort(function(a, b) {
let aSym = a.title.toLowerCase();
let bSym = b.title.toLowerCase();
return aSym < bSym ? -1 : aSym > bSym ? 1 : 0;
});
fs.writeFileSync(
`./dist/nfts/${folder}/nfts-${folder}.min.json`,
JSON.stringify(writeArray)
);
fs.writeFileSync(
`./dist/nfts/${folder}/nfts-${folder}.json`,
JSON.stringify(writeArray)
);
});
}

function createFiles() {
if (!fs.existsSync('./dist')) {
fs.mkdirSync('./dist');
}
createContractFiles();
createTokenFiles();
createNftFiles();
}

module.exports = createFiles;
15 changes: 15 additions & 0 deletions dist/nfts/akroma/nfts-akroma.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[
{
"active": false,
"title": "BURNER",
"itemName": "BURNER",
"contractAddress": "0x0000000000000000000000000000000000000000",
"metadataAddress": "http://example.com/",
"keys": [],
"imageKey": "image",
"metadataKeys": [],
"ERC721Extension": false,
"ERC721Metadata": false,
"nonStandard": false
}
]
1 change: 1 addition & 0 deletions dist/nfts/akroma/nfts-akroma.min.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"active":false,"title":"BURNER","itemName":"BURNER","contractAddress":"0x0000000000000000000000000000000000000000","metadataAddress":"http://example.com/","keys":[],"imageKey":"image","metadataKeys":[],"ERC721Extension":false,"ERC721Metadata":false,"nonStandard":false}]
15 changes: 15 additions & 0 deletions dist/nfts/ath/nfts-ath.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[
{
"active": false,
"title": "BURNER",
"itemName": "BURNER",
"contractAddress": "0x0000000000000000000000000000000000000000",
"metadataAddress": "http://example.com/",
"keys": [],
"imageKey": "image",
"metadataKeys": [],
"ERC721Extension": false,
"ERC721Metadata": false,
"nonStandard": false
}
]
1 change: 1 addition & 0 deletions dist/nfts/ath/nfts-ath.min.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"active":false,"title":"BURNER","itemName":"BURNER","contractAddress":"0x0000000000000000000000000000000000000000","metadataAddress":"http://example.com/","keys":[],"imageKey":"image","metadataKeys":[],"ERC721Extension":false,"ERC721Metadata":false,"nonStandard":false}]
15 changes: 15 additions & 0 deletions dist/nfts/clo/nfts-clo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[
{
"active": false,
"title": "BURNER",
"itemName": "BURNER",
"contractAddress": "0x0000000000000000000000000000000000000000",
"metadataAddress": "http://example.com/",
"keys": [],
"imageKey": "image",
"metadataKeys": [],
"ERC721Extension": false,
"ERC721Metadata": false,
"nonStandard": false
}
]
1 change: 1 addition & 0 deletions dist/nfts/clo/nfts-clo.min.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"active":false,"title":"BURNER","itemName":"BURNER","contractAddress":"0x0000000000000000000000000000000000000000","metadataAddress":"http://example.com/","keys":[],"imageKey":"image","metadataKeys":[],"ERC721Extension":false,"ERC721Metadata":false,"nonStandard":false}]
15 changes: 15 additions & 0 deletions dist/nfts/egem/nfts-egem.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[
{
"active": false,
"title": "BURNER",
"itemName": "BURNER",
"contractAddress": "0x0000000000000000000000000000000000000000",
"metadataAddress": "http://example.com/",
"keys": [],
"imageKey": "image",
"metadataKeys": [],
"ERC721Extension": false,
"ERC721Metadata": false,
"nonStandard": false
}
]
1 change: 1 addition & 0 deletions dist/nfts/egem/nfts-egem.min.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"active":false,"title":"BURNER","itemName":"BURNER","contractAddress":"0x0000000000000000000000000000000000000000","metadataAddress":"http://example.com/","keys":[],"imageKey":"image","metadataKeys":[],"ERC721Extension":false,"ERC721Metadata":false,"nonStandard":false}]
15 changes: 15 additions & 0 deletions dist/nfts/ella/nfts-ella.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[
{
"active": false,
"title": "BURNER",
"itemName": "BURNER",
"contractAddress": "0x0000000000000000000000000000000000000000",
"metadataAddress": "http://example.com/",
"keys": [],
"imageKey": "image",
"metadataKeys": [],
"ERC721Extension": false,
"ERC721Metadata": false,
"nonStandard": false
}
]
1 change: 1 addition & 0 deletions dist/nfts/ella/nfts-ella.min.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"active":false,"title":"BURNER","itemName":"BURNER","contractAddress":"0x0000000000000000000000000000000000000000","metadataAddress":"http://example.com/","keys":[],"imageKey":"image","metadataKeys":[],"ERC721Extension":false,"ERC721Metadata":false,"nonStandard":false}]
15 changes: 15 additions & 0 deletions dist/nfts/esn/nfts-esn.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[
{
"active": false,
"title": "BURNER",
"itemName": "BURNER",
"contractAddress": "0x0000000000000000000000000000000000000000",
"metadataAddress": "http://example.com/",
"keys": [],
"imageKey": "image",
"metadataKeys": [],
"ERC721Extension": false,
"ERC721Metadata": false,
"nonStandard": false
}
]
1 change: 1 addition & 0 deletions dist/nfts/esn/nfts-esn.min.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"active":false,"title":"BURNER","itemName":"BURNER","contractAddress":"0x0000000000000000000000000000000000000000","metadataAddress":"http://example.com/","keys":[],"imageKey":"image","metadataKeys":[],"ERC721Extension":false,"ERC721Metadata":false,"nonStandard":false}]
15 changes: 15 additions & 0 deletions dist/nfts/etc/nfts-etc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[
{
"active": false,
"title": "BURNER",
"itemName": "BURNER",
"contractAddress": "0x0000000000000000000000000000000000000000",
"metadataAddress": "http://example.com/",
"keys": [],
"imageKey": "image",
"metadataKeys": [],
"ERC721Extension": false,
"ERC721Metadata": false,
"nonStandard": false
}
]
1 change: 1 addition & 0 deletions dist/nfts/etc/nfts-etc.min.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"active":false,"title":"BURNER","itemName":"BURNER","contractAddress":"0x0000000000000000000000000000000000000000","metadataAddress":"http://example.com/","keys":[],"imageKey":"image","metadataKeys":[],"ERC721Extension":false,"ERC721Metadata":false,"nonStandard":false}]
Loading

0 comments on commit b5b6206

Please sign in to comment.