-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
language: node_js | ||
node_js: '8' | ||
script: | ||
- | | ||
val=$(node checkFormat.js); | ||
if [[ $val != 0 ]]; then | ||
echo "Formatting errors! Please check your object keys spellings, commas and or other things that might invalidate your JSON and try again"; | ||
exit 1; | ||
else | ||
echo "No errors"; | ||
exit 0; | ||
fi |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
const fs = require("fs"); | ||
const contractsDirectory = "./contracts/"; | ||
const tokensDirectory = "./tokens/"; | ||
const contractKeys = ["name", "address", "comment", "abi"]; | ||
const tokenKeys = [ | ||
"symbol", | ||
"name", | ||
"type", | ||
"address", | ||
"ens_address", | ||
"decimals", | ||
"website", | ||
"logo", | ||
"support", | ||
"social" | ||
]; | ||
const logoKeys = ["src", "width", "height", "ipfs_hash"]; | ||
const supportKeys = ["email", "url"]; | ||
const socialKeys = [ | ||
"blog", | ||
"chat", | ||
"facebook", | ||
"forum", | ||
"github", | ||
"gitter", | ||
"instagram", | ||
"linkedin", | ||
"reddit", | ||
"slack", | ||
"telegram", | ||
"twitter", | ||
"youtube" | ||
]; | ||
let errors = 0; | ||
|
||
function tokenTester(file) { | ||
const tokens = JSON.parse(fs.readFileSync(tokensDirectory + file, "utf8")); | ||
if (tokens.length > 0) { | ||
tokens.forEach(token => { | ||
const keys = Object.keys(token); | ||
keys.forEach((key, idx) => { | ||
if (key !== tokenKeys[idx]) { | ||
errors++; | ||
} else if (key === tokenKeys[idx]) { | ||
if (key === "logo") { | ||
const tokenLogoKeys = Object.keys(token[key]); | ||
tokenLogoKeys.forEach((key, idx) => { | ||
if (key !== logoKeys[idx]) { | ||
errors++; | ||
} | ||
}); | ||
} else if (key === "support") { | ||
const tokenSupportKeys = Object.keys(token[key]); | ||
tokenSupportKeys.forEach((key, idx) => { | ||
if (key !== supportKeys[idx]) { | ||
errors++; | ||
} | ||
}); | ||
} else if (key === "social") { | ||
const tokenSocialKeys = Object.keys(token[key]); | ||
tokenSocialKeys.forEach((key, idx) => { | ||
if (key !== socialKeys[idx]) { | ||
errors++; | ||
} | ||
}); | ||
} | ||
} | ||
}); | ||
}); | ||
} | ||
} | ||
|
||
function contractTester(file) { | ||
const contracts = JSON.parse( | ||
fs.readFileSync(contractsDirectory + file, "utf8") | ||
); | ||
if (contracts.length > 0) { | ||
contracts.forEach(contract => { | ||
const keys = Object.keys(contract); | ||
for (let i = 0; i < keys.length; i++) { | ||
if (keys[i] !== contractKeys[i]) { | ||
errors++; | ||
} | ||
} | ||
}); | ||
} | ||
} | ||
|
||
function run() { | ||
fs.readdirSync(contractsDirectory).forEach(file => { | ||
contractTester(file); | ||
}); | ||
fs.readdirSync(tokensDirectory).forEach(file => { | ||
tokenTester(file); | ||
}); | ||
return errors; | ||
} | ||
|
||
run(); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.