From ff58457463e45f42b754f5b7ff5ad983b6cd4d6f Mon Sep 17 00:00:00 2001 From: yj Date: Thu, 22 Apr 2021 13:19:28 -0500 Subject: [PATCH] fix: make sure it validates --- protocols/ampleforth/index.json | 23 +++++++++++-- scripts/add_new_protocol.sh | 43 +++++++++++++------------ types.js | 57 +++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 23 deletions(-) create mode 100644 types.js diff --git a/protocols/ampleforth/index.json b/protocols/ampleforth/index.json index 139597f..c08679d 100644 --- a/protocols/ampleforth/index.json +++ b/protocols/ampleforth/index.json @@ -1,2 +1,21 @@ - - +{ + "cname": "", + "name": "", + "description": "", + "path": "", + "previousPaths": [], + "folder": "", + "type": "snapshot", + "suffix": "", + "coinGeckoPriceString": "", + "tokenContractAddress": "", + "isEnabled": false, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "", + "invalidSnapshots": [], + "branding": {}, + "discourseForum": {}, + "safeAddress": null +} diff --git a/scripts/add_new_protocol.sh b/scripts/add_new_protocol.sh index 728dada..d086737 100755 --- a/scripts/add_new_protocol.sh +++ b/scripts/add_new_protocol.sh @@ -23,27 +23,28 @@ do touch ./protocols/$arg/logo.png touch ./protocols/$arg/header.png - echo `{ - "cname": $arg, - "name": $arg, - "description": "", - "path": $arg, - "previousPaths": [], - "folder": $arg, - "type": "snapshot", - "suffix": "", - "coinGeckoPriceString": "", - "tokenContractAddress": "", - "isEnabled": false, - "hasOnchain": false, - "isHybrid": false, - "hasDelegation": false, - "snapshotSpaceName": "", - "invalidSnapshots": [], - "branding": {}, - "discourseForum": {}, - "safeAddress": null }` >> ./protocols/$arg/index.json +echo '{ + "cname": "", + "name": "", + "description": "", + "path": "", + "previousPaths": [], + "folder": "", + "type": "snapshot", + "suffix": "", + "coinGeckoPriceString": "", + "tokenContractAddress": "", + "isEnabled": false, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "", + "invalidSnapshots": [], + "branding": {}, + "discourseForum": {}, + "safeAddress": null +}' >> ./protocols/$arg/index.json fi done -echo "Arg 1: $1" +echo "Arg 1: $1" \ No newline at end of file diff --git a/types.js b/types.js new file mode 100644 index 0000000..a831af0 --- /dev/null +++ b/types.js @@ -0,0 +1,57 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ProtocolIo = void 0; +var t = __importStar(require("io-ts")); +exports.ProtocolIo = t.type({ + cname: t.string, + name: t.string, + description: t.string, + path: t.string, + previousPaths: t.union([t.array(t.string), t.undefined]), + folder: t.string, + type: t.union([t.literal("snapshot"), t.literal("compoundish")]), + suffix: t.string, + coinGeckoPriceString: t.string, + tokenContractAddress: t.string, + governanceContractAddress: t.union([t.string, t.undefined]), + isEnabled: t.boolean, + hasOnchain: t.boolean, + isHybrid: t.boolean, + hasDelegation: t.boolean, + snapshotSpaceName: t.union([t.string, t.undefined]), + invalidSnapshots: t.union([t.array(t.string), t.undefined]), + branding: t.union([ + t.partial({ + primaryColor: t.string, + accentColor: t.string, + }), + t.undefined, + ]), + discourseForum: t.union([ + t.partial({ + url: t.string, + categoryId: t.string, + }), + t.undefined, + ]), + safeAddress: t.union([t.string, t.null]), +});