diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 0000000..5439e24 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,16 @@ +name: validate protocol info +on: + pull_request + +jobs: + validate-protocol-info: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Install dependencies + run: yarn + + - name: Validate + run: yarn validate diff --git a/.gitignore b/.gitignore index be73918..e48648c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .DS_Store node_modules +dist # Remove some common IDE working directories .idea diff --git a/aave/Gov Weekly/Week 10 2021 11-03-21.md b/__unsupported/aave/Gov Weekly/Week 10 2021 11-03-21.md similarity index 100% rename from aave/Gov Weekly/Week 10 2021 11-03-21.md rename to __unsupported/aave/Gov Weekly/Week 10 2021 11-03-21.md diff --git a/aave/Gov Weekly/Week 11 2021 18-03-21.md b/__unsupported/aave/Gov Weekly/Week 11 2021 18-03-21.md similarity index 100% rename from aave/Gov Weekly/Week 11 2021 18-03-21.md rename to __unsupported/aave/Gov Weekly/Week 11 2021 18-03-21.md diff --git a/aave/Gov Weekly/Week 12 2021 24-03-21.md b/__unsupported/aave/Gov Weekly/Week 12 2021 24-03-21.md similarity index 100% rename from aave/Gov Weekly/Week 12 2021 24-03-21.md rename to __unsupported/aave/Gov Weekly/Week 12 2021 24-03-21.md diff --git a/aave/Gov Weekly/Week 8 2021 02-23-21.md b/__unsupported/aave/Gov Weekly/Week 8 2021 02-23-21.md similarity index 100% rename from aave/Gov Weekly/Week 8 2021 02-23-21.md rename to __unsupported/aave/Gov Weekly/Week 8 2021 02-23-21.md diff --git a/aave/Gov Weekly/Week 9 2021 03-04-21.md b/__unsupported/aave/Gov Weekly/Week 9 2021 03-04-21.md similarity index 100% rename from aave/Gov Weekly/Week 9 2021 03-04-21.md rename to __unsupported/aave/Gov Weekly/Week 9 2021 03-04-21.md diff --git a/aave/calls/.gitkeep b/__unsupported/aave/calls/.gitkeep similarity index 100% rename from aave/calls/.gitkeep rename to __unsupported/aave/calls/.gitkeep diff --git a/aave/events.json b/__unsupported/aave/events.json similarity index 100% rename from aave/events.json rename to __unsupported/aave/events.json diff --git a/aave/logo.png b/__unsupported/aave/logo.png similarity index 100% rename from aave/logo.png rename to __unsupported/aave/logo.png diff --git a/aave/overview.md b/__unsupported/aave/overview.md similarity index 100% rename from aave/overview.md rename to __unsupported/aave/overview.md diff --git a/balancer/calls/.gitkeep b/__unsupported/balancer/calls/.gitkeep similarity index 100% rename from balancer/calls/.gitkeep rename to __unsupported/balancer/calls/.gitkeep diff --git a/balancer/events.json b/__unsupported/balancer/events.json similarity index 100% rename from balancer/events.json rename to __unsupported/balancer/events.json diff --git a/balancer/logo.png b/__unsupported/balancer/logo.png similarity index 100% rename from balancer/logo.png rename to __unsupported/balancer/logo.png diff --git a/balancer/overview.md b/__unsupported/balancer/overview.md similarity index 100% rename from balancer/overview.md rename to __unsupported/balancer/overview.md diff --git a/dhedge/events.json b/__unsupported/dhedge/events.json similarity index 100% rename from dhedge/events.json rename to __unsupported/dhedge/events.json diff --git a/dhedge/header.png b/__unsupported/dhedge/header.png similarity index 100% rename from dhedge/header.png rename to __unsupported/dhedge/header.png diff --git a/dhedge/logo.png b/__unsupported/dhedge/logo.png similarity index 100% rename from dhedge/logo.png rename to __unsupported/dhedge/logo.png diff --git a/dhedge/overview.md b/__unsupported/dhedge/overview.md similarity index 100% rename from dhedge/overview.md rename to __unsupported/dhedge/overview.md diff --git a/gnosis/Gov Weekly/Update Week 9 2021, 03-05-2021.md b/__unsupported/gnosis/Gov Weekly/Update Week 9 2021, 03-05-2021.md similarity index 100% rename from gnosis/Gov Weekly/Update Week 9 2021, 03-05-2021.md rename to __unsupported/gnosis/Gov Weekly/Update Week 9 2021, 03-05-2021.md diff --git a/pooltogether/Gov Weekly/Update Week 11 2021 18-03-21.md b/__unsupported/pooltogether/Gov Weekly/Update Week 11 2021 18-03-21.md similarity index 100% rename from pooltogether/Gov Weekly/Update Week 11 2021 18-03-21.md rename to __unsupported/pooltogether/Gov Weekly/Update Week 11 2021 18-03-21.md diff --git a/pooltogether/Gov Weekly/Update Week 12 2021 26-03-21.md b/__unsupported/pooltogether/Gov Weekly/Update Week 12 2021 26-03-21.md similarity index 100% rename from pooltogether/Gov Weekly/Update Week 12 2021 26-03-21.md rename to __unsupported/pooltogether/Gov Weekly/Update Week 12 2021 26-03-21.md diff --git a/pooltogether/Gov Weekly/Update Week 13 2021 01-04-21.md b/__unsupported/pooltogether/Gov Weekly/Update Week 13 2021 01-04-21.md similarity index 100% rename from pooltogether/Gov Weekly/Update Week 13 2021 01-04-21.md rename to __unsupported/pooltogether/Gov Weekly/Update Week 13 2021 01-04-21.md diff --git a/pooltogether/Gov Weekly/Update Week 14 2021 08-04-21.md b/__unsupported/pooltogether/Gov Weekly/Update Week 14 2021 08-04-21.md similarity index 100% rename from pooltogether/Gov Weekly/Update Week 14 2021 08-04-21.md rename to __unsupported/pooltogether/Gov Weekly/Update Week 14 2021 08-04-21.md diff --git a/pooltogether/Gov Weekly/Update Week 8 2021 24-02-21.md b/__unsupported/pooltogether/Gov Weekly/Update Week 8 2021 24-02-21.md similarity index 100% rename from pooltogether/Gov Weekly/Update Week 8 2021 24-02-21.md rename to __unsupported/pooltogether/Gov Weekly/Update Week 8 2021 24-02-21.md diff --git a/pooltogether/Gov Weekly/Update Week 9 2021 03-03-21.md b/__unsupported/pooltogether/Gov Weekly/Update Week 9 2021 03-03-21.md similarity index 100% rename from pooltogether/Gov Weekly/Update Week 9 2021 03-03-21.md rename to __unsupported/pooltogether/Gov Weekly/Update Week 9 2021 03-03-21.md diff --git a/gnosis.eth/calls/Call.md b/__unsupported/pooltogether/calls/Call.md similarity index 100% rename from gnosis.eth/calls/Call.md rename to __unsupported/pooltogether/calls/Call.md diff --git a/compound/events.json b/__unsupported/pooltogether/events.json similarity index 100% rename from compound/events.json rename to __unsupported/pooltogether/events.json diff --git a/pooltogether/header.png b/__unsupported/pooltogether/header.png similarity index 100% rename from pooltogether/header.png rename to __unsupported/pooltogether/header.png diff --git a/pooltogether/logo.png b/__unsupported/pooltogether/logo.png similarity index 100% rename from pooltogether/logo.png rename to __unsupported/pooltogether/logo.png diff --git a/pooltogether/overview.md b/__unsupported/pooltogether/overview.md similarity index 100% rename from pooltogether/overview.md rename to __unsupported/pooltogether/overview.md diff --git a/powerpool/calls/.gitkeep b/__unsupported/powerpool/calls/.gitkeep similarity index 100% rename from powerpool/calls/.gitkeep rename to __unsupported/powerpool/calls/.gitkeep diff --git a/compoundgrants/events.json b/__unsupported/powerpool/events.json similarity index 100% rename from compoundgrants/events.json rename to __unsupported/powerpool/events.json diff --git a/powerpool/logo.png b/__unsupported/powerpool/logo.png similarity index 100% rename from powerpool/logo.png rename to __unsupported/powerpool/logo.png diff --git a/powerpool/overview.md b/__unsupported/powerpool/overview.md similarity index 100% rename from powerpool/overview.md rename to __unsupported/powerpool/overview.md diff --git a/siren/calls/.gitkeep b/__unsupported/siren/calls/.gitkeep similarity index 100% rename from siren/calls/.gitkeep rename to __unsupported/siren/calls/.gitkeep diff --git a/defidollar/events.json b/__unsupported/siren/events.json similarity index 100% rename from defidollar/events.json rename to __unsupported/siren/events.json diff --git a/siren/logo.png b/__unsupported/siren/logo.png similarity index 100% rename from siren/logo.png rename to __unsupported/siren/logo.png diff --git a/siren/overview.md b/__unsupported/siren/overview.md similarity index 100% rename from siren/overview.md rename to __unsupported/siren/overview.md diff --git a/yamv2/calls/.gitkeep b/__unsupported/yamv2/calls/.gitkeep similarity index 100% rename from yamv2/calls/.gitkeep rename to __unsupported/yamv2/calls/.gitkeep diff --git a/gnosis.eth/events.json b/__unsupported/yamv2/events.json similarity index 100% rename from gnosis.eth/events.json rename to __unsupported/yamv2/events.json diff --git a/yamv2/logo.png b/__unsupported/yamv2/logo.png similarity index 100% rename from yamv2/logo.png rename to __unsupported/yamv2/logo.png diff --git a/yamv2/overview.md b/__unsupported/yamv2/overview.md similarity index 100% rename from yamv2/overview.md rename to __unsupported/yamv2/overview.md diff --git a/yearn/calls/.gitkeep b/__unsupported/yearn/calls/.gitkeep similarity index 100% rename from yearn/calls/.gitkeep rename to __unsupported/yearn/calls/.gitkeep diff --git a/pooltogether/events.json b/__unsupported/yearn/events.json similarity index 100% rename from pooltogether/events.json rename to __unsupported/yearn/events.json diff --git a/yearn/logo.png b/__unsupported/yearn/logo.png similarity index 100% rename from yearn/logo.png rename to __unsupported/yearn/logo.png diff --git a/yearn/overview.md b/__unsupported/yearn/overview.md similarity index 100% rename from yearn/overview.md rename to __unsupported/yearn/overview.md diff --git a/compoundgrants/header.png b/compoundgrants/header.png deleted file mode 100644 index f3e6afc..0000000 Binary files a/compoundgrants/header.png and /dev/null differ diff --git a/compoundgrants/logo.png b/compoundgrants/logo.png deleted file mode 100644 index 318c601..0000000 Binary files a/compoundgrants/logo.png and /dev/null differ diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 6c4dddb..0000000 --- a/dist/index.js +++ /dev/null @@ -1,132 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.protocolBranding = exports.protocols = void 0; -// supported protocols -exports.protocols = { - compound: { - name: "Compound", - path: "compound", - description: "Compound is a decentralized money market protocol to borrow and lend assets.", - suffix: "COMP", - folder: "compound", - }, - uniswap: { - name: "Uniswap", - path: "uniswap", - description: "Uniswap is a decentralized protocol for automated liquidity provision on Ethereum.", - suffix: "UNI", - folder: "uniswap", - }, - synthetix: { - name: "Synthetix", - path: "synthetix", - description: "Synthetix is a decentralised synthetic asset issuance protocol built on Ethereum.", - suffix: "SNX", - folder: "synthetix", - }, - yearn: { - name: "Yearn", - path: "yearn", - description: "yEarn is an automated liquidity aggregator offering a number of yield farming opportunities.", - suffix: "YFI", - folder: "yearn", - }, - powerpool: { - name: "Powerpool", - path: "powerpool", - description: "PowerPool is a cross-chain lending protocol for governance tokens.", - suffix: "CVP", - folder: "compound", - }, - rarible: { - name: "Rarible", - path: "rarible", - description: "Rarible is the premiere NFT marketplace to mint, buy, and sell digital collectibles.", - suffix: "RARI", - folder: "rarible", - }, - pooltogether: { - name: "PoolTogether", - path: "pooltogether", - description: "PoolTogether is a protocol enabling governance-managed, no-loss prize games on Ethereum.", - suffix: "PcDAI", - folder: "pooltogether", - }, - "gnosis.eth": { - name: "Gnosis", - path: "gnosis.eth", - description: "Gnosis is an open-source, decentralized prediction market governed by the GnosisDAO.", - suffix: "GNO", - folder: "gnosis.eth", - }, - defidollar: { - name: "DefiDollar DAO", - path: "defidollar", - description: "DUSD is a stablecoin controlled by a DAO using DeFi primitives to remain pegged to the Dollar.", - suffix: "DFD", - folder: "defidollar", - }, - indexCoop: { - name: "Index", - path: "index", - description: "The Index Coop is an autonomous asset manager governed, maintained, and upgraded by INDEX token holders.", - suffix: "INDEX", - folder: "indexCoop", - }, - rally: { - name: "Rally", - path: 'rally', - description: "Rally’s is a decentralized network enabling creators to monetize and align themselves with their community.", - suffix: "RLY", - folder: 'rally' - }, - siren: { - name: "Siren", - path: "siren", - description: "Siren is a distributed protocol for creating, trading, and redeeming fully-collateralized options contracts.", - suffix: "SI", - folder: "siren", - }, - aave: { - name: "Aave", - path: "aave", - description: "Aave is an open source and non-custodial protocol enabling the creation of money markets.", - suffix: "LEND", - folder: "aave", - }, - balancer: { - name: "Balancer", - path: "balancer", - description: "Balancer is a non-custodial portfolio manager, liquidity provider, and price sensor.", - suffix: "BAL", - folder: "balancer", - }, - yamv2: { - name: "Yam", - path: "yamv2", - description: "Yam is an experiment in fair farming, governance, and elasticity controlled by the community.", - suffix: "YAM", - folder: "yamv2", - }, - "yup.eth": { - name: "Yup", - path: "yup.eth", - description: "Your opinion matters. Curate the web. Earn & influence.", - suffix: "YUP", - folder: "yup.eth", - snapshotSpaceName: "yup.eth" - } -}; -exports.protocolBranding = { - pooltogether: { - "--background-primary-nav": "#290b5a", - "--color-text-nav": "#e7e8eb", - "--background-switcher-active": "#341762", - }, - defidollar: { - "--background-primary-nav": "#212529", - "--color-text-nav": "#e7e8eb", - "--background-switcher-active": "#5553e8", - }, -}; diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..fb0c204 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,5 @@ +import { Protocol } from "./types"; + +declare module "boardroomInfo" { + export = Protocol; +} diff --git a/index.ts b/index.ts deleted file mode 100644 index f3b33a1..0000000 --- a/index.ts +++ /dev/null @@ -1,159 +0,0 @@ -// supported protocols -export const protocols = { - compound: { - name: "Compound", - path: "compound", - description: - "Compound is a decentralized money market protocol to borrow and lend assets.", - suffix: "COMP", - folder: "compound", - }, - uniswap: { - name: "Uniswap", - path: "uniswap", - description: - "Uniswap is a decentralized protocol for automated liquidity provision on Ethereum.", - suffix: "UNI", - folder: "uniswap", - }, - synthetix: { - name: "Synthetix", - path: "snxgov.eth", - description: - "Synthetix is a decentralised synthetic asset issuance protocol built on Ethereum.", - suffix: "SC-NFT", - folder: "synthetix", - safeAddress: "0x438679ECE13EDB95aDD18Ed02dDbf5e2418FF730", - }, - yearn: { - name: "Yearn", - path: "yearn", - description: - "yEarn is an automated liquidity aggregator offering a number of yield farming opportunities.", - suffix: "YFI", - folder: "yearn", - }, - powerpool: { - name: "Powerpool", - path: "powerpool", - description: - "PowerPool is a cross-chain lending protocol for governance tokens.", - suffix: "CVP", - folder: "compound", - }, - rarible: { - name: "Rarible", - path: "rarible", - description: - "Rarible is the premiere NFT marketplace to mint, buy, and sell digital collectibles.", - suffix: "RARI", - folder: "rarible", - }, - pooltogether: { - name: "PoolTogether", - path: "pooltogether", - description: - "PoolTogether is a protocol enabling governance-managed, no-loss prize games on Ethereum.", - suffix: "PcDAI", - folder: "pooltogether", - }, - "gnosis.eth": { - name: "Gnosis", - path: "gnosis.eth", - description: - "GnosisDAO uses Gnosis products to transparently guide decisions on development, support, and governance of its token ecosystem.", - suffix: "GNO", - folder: "gnosis.eth", - }, - defidollar: { - name: "DefiDollar DAO", - path: "defidolla.eth", - description: - "DUSD is a stablecoin controlled by a DAO using DeFi primitives to remain pegged to the Dollar.", - suffix: "DFD", - folder: "defidollar", - }, - indexCoop: { - name: "Index", - path: "index", - description: - "The Index Coop is an autonomous asset manager governed, maintained, and upgraded by INDEX token holders.", - suffix: "INDEX", - folder: "indexCoop", - }, - rally: { - name: "Rally", - path: 'rally', - description: "Rally’s is a decentralized network enabling creators to monetize and align themselves with their community.", - suffix: "RLY", - folder: 'rally' - }, - siren: { - name: "Siren", - path: "siren", - description: - "Siren is a distributed protocol for creating, trading, and redeeming fully-collateralized options contracts.", - suffix: "SI", - folder: "siren", - }, - aave: { - name: "Aave", - path: "aave", - description: - "Aave is an open source and non-custodial protocol enabling the creation of money markets.", - suffix: "LEND", - folder: "aave", - }, - balancer: { - name: "Balancer", - path: "balancer", - description: "Balancer is a non-custodial portfolio manager, liquidity provider, and price sensor.", - suffix: "BAL", - folder: "balancer", - }, - yamv2: { - name: "Yam", - path: "yamv2", - description: "Yam is an experiment in fair farming, governance, and elasticity controlled by the community.", - suffix: "YAM", - folder: "yamv2", - }, - "yup.eth": { - name: "Yup", - path: "yup.eth", - description: "Your opinion matters. Curate the web. Earn & influence.", - suffix: "YUP", - folder: "yup", - snapshotSpaceName: "yup.eth", - safeAddress: "0xbd5224f66D5ce49a8Afefc14a76248D158D14c6F", - }, - "gov.dhedge.eth": { - name: "dHEDGE", - path: "gov.dhedge.eth", - description: "Non-custodial, decentralized asset management for synthetic assets on Ethereum", - suffix: "DHT", - folder: "dhedge", - snapshotSpaceName: "gov.dhedge.eth", - }, - "compoundgrants.eth": { - name: "Compound Grants Program", - path: "compoundgrants.eth", - description: "The Compound Grants Program is a 4/7 multisig controlled committee that will deploy a maximum of $1mm per quarter and run for two quarters.", - suffix: "CGP", - folder: "compoundgrants", - snapshotSpaceName: "compoundgrants.eth" - } -}; - -export const protocolBranding = { - pooltogether: { - "--background-primary-nav": "#290b5a", - "--color-text-nav": "#e7e8eb", - "--background-switcher-active": "#341762", - }, - defidollar: { - "--background-primary-nav": "#212529", - "--color-text-nav": "#e7e8eb", - "--background-switcher-active": "#5553e8", - }, -}; diff --git a/indexCoop/.DS_Store b/indexCoop/.DS_Store deleted file mode 100644 index 89bb89b..0000000 Binary files a/indexCoop/.DS_Store and /dev/null differ diff --git a/package.json b/package.json index b6ebd99..1ed2a7c 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,24 @@ { - "name": "boardroomInfo", - "version": "1.0.0", - "description": "Testing", - "main": "index.ts", - "repository": "https://github.com/boardroom-inc/testRepo.git", + "name": "@boardroom/protocol-info", + "version": "2.0.1", + "description": "Project information which will be served to display on the Boardroom Governance Portal.", + "main": "dist/index.ts", + "repository": "https://github.com/boardroom-inc/protocol-Info.git", "author": "sudheer ", "license": "MIT", "devDependencies": { - "@rollup/plugin-typescript": "^8.1.1", + "@types/mkdirp": "^1.0.1", + "@types/node": "^14.14.37", + "fp-ts": "^2.9.5", + "io-ts": "^2.2.16", + "io-ts-validator": "^0.0.5", + "mkdirp": "^1.0.4", + "ts-node": "^9.1.1", "tslib": "^2.1.0", "typescript": "^4.1.3" }, "scripts": { - "build": "rollup -c" + "build": "ts-node ./scripts/build.ts", + "validate": "yarn build && ts-node ./scripts/validate.ts" } } diff --git a/protocols/compound/contracts/governance.json b/protocols/compound/contracts/governance.json new file mode 100644 index 0000000..724f68a --- /dev/null +++ b/protocols/compound/contracts/governance.json @@ -0,0 +1,755 @@ +[ + { + "inputs":[ + { + "internalType":"address", + "name":"timelock_", + "type":"address" + }, + { + "internalType":"address", + "name":"comp_", + "type":"address" + }, + { + "internalType":"address", + "name":"guardian_", + "type":"address" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor", + "signature":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + } + ], + "name":"ProposalCanceled", + "type":"event", + "signature":"0x789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"address", + "name":"proposer", + "type":"address" + }, + { + "indexed":false, + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "indexed":false, + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "indexed":false, + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "indexed":false, + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"startBlock", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"endBlock", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"string", + "name":"description", + "type":"string" + } + ], + "name":"ProposalCreated", + "type":"event", + "signature":"0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + } + ], + "name":"ProposalExecuted", + "type":"event", + "signature":"0x712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"eta", + "type":"uint256" + } + ], + "name":"ProposalQueued", + "type":"event", + "signature":"0x9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"voter", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"votes", + "type":"uint256" + } + ], + "name":"VoteCast", + "type":"event", + "signature":"0x877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c46" + }, + { + "constant":true, + "inputs":[], + "name":"BALLOT_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0xdeaaa7cc" + }, + { + "constant":true, + "inputs":[], + "name":"DOMAIN_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x20606b70" + }, + { + "constant":false, + "inputs":[], + "name":"__abdicate", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x760fbc13" + }, + { + "constant":false, + "inputs":[], + "name":"__acceptAdmin", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0xb9a61961" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"newPendingAdmin", + "type":"address" + }, + { + "internalType":"uint256", + "name":"eta", + "type":"uint256" + } + ], + "name":"__executeSetTimelockPendingAdmin", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x21f43e42" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"newPendingAdmin", + "type":"address" + }, + { + "internalType":"uint256", + "name":"eta", + "type":"uint256" + } + ], + "name":"__queueSetTimelockPendingAdmin", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x91500671" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"cancel", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x40e58ee5" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + } + ], + "name":"castVote", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x15373e3d" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "internalType":"uint8", + "name":"v", + "type":"uint8" + }, + { + "internalType":"bytes32", + "name":"r", + "type":"bytes32" + }, + { + "internalType":"bytes32", + "name":"s", + "type":"bytes32" + } + ], + "name":"castVoteBySig", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x4634c61f" + }, + { + "constant":true, + "inputs":[], + "name":"comp", + "outputs":[ + { + "internalType":"contract CompInterface", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x109d0af8" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"execute", + "outputs":[], + "payable":true, + "stateMutability":"payable", + "type":"function", + "signature":"0xfe0d94c1" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"getActions", + "outputs":[ + { + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x328dd982" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"address", + "name":"voter", + "type":"address" + } + ], + "name":"getReceipt", + "outputs":[ + { + "components":[ + { + "internalType":"bool", + "name":"hasVoted", + "type":"bool" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "internalType":"uint96", + "name":"votes", + "type":"uint96" + } + ], + "internalType":"struct GovernorAlpha.Receipt", + "name":"", + "type":"tuple" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0xe23a9a52" + }, + { + "constant":true, + "inputs":[], + "name":"guardian", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x452a9320" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"latestProposalIds", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x17977c61" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x06fdde03" + }, + { + "constant":true, + "inputs":[], + "name":"proposalCount", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0xda35c664" + }, + { + "constant":true, + "inputs":[], + "name":"proposalMaxOperations", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0x7bdbe4d0" + }, + { + "constant":true, + "inputs":[], + "name":"proposalThreshold", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0xb58131b0" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "name":"proposals", + "outputs":[ + { + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "internalType":"address", + "name":"proposer", + "type":"address" + }, + { + "internalType":"uint256", + "name":"eta", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"startBlock", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"endBlock", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"forVotes", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"againstVotes", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"canceled", + "type":"bool" + }, + { + "internalType":"bool", + "name":"executed", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x013cf08b" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + }, + { + "internalType":"string", + "name":"description", + "type":"string" + } + ], + "name":"propose", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0xda95691a" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"queue", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0xddf0b009" + }, + { + "constant":true, + "inputs":[], + "name":"quorumVotes", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0x24bc1a64" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"state", + "outputs":[ + { + "internalType":"enum GovernorAlpha.ProposalState", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x3e4f49e6" + }, + { + "constant":true, + "inputs":[], + "name":"timelock", + "outputs":[ + { + "internalType":"contract TimelockInterface", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0xd33219b4" + }, + { + "constant":true, + "inputs":[], + "name":"votingDelay", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0x3932abb1" + }, + { + "constant":true, + "inputs":[], + "name":"votingPeriod", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0x02a251a3" + } +] diff --git a/protocols/compound/contracts/token.json b/protocols/compound/contracts/token.json new file mode 100644 index 0000000..0122903 --- /dev/null +++ b/protocols/compound/contracts/token.json @@ -0,0 +1,530 @@ +[ + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"delegator", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"fromDelegate", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"toDelegate", + "type":"address" + } + ], + "name":"DelegateChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"delegate", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"previousBalance", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"newBalance", + "type":"uint256" + } + ], + "name":"DelegateVotesChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "constant":true, + "inputs":[], + "name":"DELEGATION_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"DOMAIN_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + }, + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "name":"checkpoints", + "outputs":[ + { + "internalType":"uint32", + "name":"fromBlock", + "type":"uint32" + }, + { + "internalType":"uint96", + "name":"votes", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"delegatee", + "type":"address" + } + ], + "name":"delegate", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"delegatee", + "type":"address" + }, + { + "internalType":"uint256", + "name":"nonce", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"expiry", + "type":"uint256" + }, + { + "internalType":"uint8", + "name":"v", + "type":"uint8" + }, + { + "internalType":"bytes32", + "name":"r", + "type":"bytes32" + }, + { + "internalType":"bytes32", + "name":"s", + "type":"bytes32" + } + ], + "name":"delegateBySig", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"delegates", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"getCurrentVotes", + "outputs":[ + { + "internalType":"uint96", + "name":"", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + } + ], + "name":"getPriorVotes", + "outputs":[ + { + "internalType":"uint96", + "name":"", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"nonces", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"numCheckpoints", + "outputs":[ + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"src", + "type":"address" + }, + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + } +] diff --git a/powerpool/events.json b/protocols/compound/events.json similarity index 100% rename from powerpool/events.json rename to protocols/compound/events.json diff --git a/compound/header.png b/protocols/compound/header.png similarity index 100% rename from compound/header.png rename to protocols/compound/header.png diff --git a/protocols/compound/index.json b/protocols/compound/index.json new file mode 100644 index 0000000..964949e --- /dev/null +++ b/protocols/compound/index.json @@ -0,0 +1,20 @@ +{ + "name": "Compound", + "description": "Compound is a decentralized money market protocol to borrow and lend assets.", + "path": "compound", + "folder": "compound", + "type": "compoundish", + "suffix": "COMP", + "coinGeckoPriceString": "compound-governance-token", + "tokenContractAddress": "0xc00e94Cb662C3520282E6f5717214004A7f26888", + "governanceContractAddress": "0xc0da01a04c3f3e0be433606045bb7017a7323e38", + "isEnabled": true, + "hasOnchain": true, + "isHybrid": false, + "hasDelegation": true, + "snapshotSpaceName": "compound", + "invalidSnapshots": [], + "branding": {}, + "discourseForum": {}, + "safeAddress": null +} diff --git a/compound/logo.png b/protocols/compound/logo.png similarity index 100% rename from compound/logo.png rename to protocols/compound/logo.png diff --git a/compound/overview.md b/protocols/compound/overview.md similarity index 100% rename from compound/overview.md rename to protocols/compound/overview.md diff --git a/compound/Gov Weekly/Week 10 2021 10-03-21.md b/protocols/compound/resources/Gov Weekly/Week 10 2021 10-03-21.md similarity index 100% rename from compound/Gov Weekly/Week 10 2021 10-03-21.md rename to protocols/compound/resources/Gov Weekly/Week 10 2021 10-03-21.md diff --git a/compound/Gov Weekly/Week 11 2021 17-03-21.md b/protocols/compound/resources/Gov Weekly/Week 11 2021 17-03-21.md similarity index 100% rename from compound/Gov Weekly/Week 11 2021 17-03-21.md rename to protocols/compound/resources/Gov Weekly/Week 11 2021 17-03-21.md diff --git a/compound/Gov Weekly/Week 12 2021 24-03-21.md b/protocols/compound/resources/Gov Weekly/Week 12 2021 24-03-21.md similarity index 100% rename from compound/Gov Weekly/Week 12 2021 24-03-21.md rename to protocols/compound/resources/Gov Weekly/Week 12 2021 24-03-21.md diff --git a/compound/Gov Weekly/Week 13 2021 31-03-21.md b/protocols/compound/resources/Gov Weekly/Week 13 2021 31-03-21.md similarity index 100% rename from compound/Gov Weekly/Week 13 2021 31-03-21.md rename to protocols/compound/resources/Gov Weekly/Week 13 2021 31-03-21.md diff --git a/compound/Gov Weekly/Week 14 2021 07-04-21.md b/protocols/compound/resources/Gov Weekly/Week 14 2021 07-04-21.md similarity index 100% rename from compound/Gov Weekly/Week 14 2021 07-04-21.md rename to protocols/compound/resources/Gov Weekly/Week 14 2021 07-04-21.md diff --git a/compound/Gov Weekly/Week 8 2021 25-02-21.md b/protocols/compound/resources/Gov Weekly/Week 8 2021 25-02-21.md similarity index 100% rename from compound/Gov Weekly/Week 8 2021 25-02-21.md rename to protocols/compound/resources/Gov Weekly/Week 8 2021 25-02-21.md diff --git a/compound/Gov Weekly/Week 9 2021 03-03-21.md b/protocols/compound/resources/Gov Weekly/Week 9 2021 03-03-21.md similarity index 100% rename from compound/Gov Weekly/Week 9 2021 03-03-21.md rename to protocols/compound/resources/Gov Weekly/Week 9 2021 03-03-21.md diff --git a/compound/calls/Compound Developer Community Call – Dec. 23, 16:30 GMT.md b/protocols/compound/resources/calls/Compound Developer Community Call – Dec. 23, 16:30 GMT.md similarity index 100% rename from compound/calls/Compound Developer Community Call – Dec. 23, 16:30 GMT.md rename to protocols/compound/resources/calls/Compound Developer Community Call – Dec. 23, 16:30 GMT.md diff --git a/compound/calls/Compound Developer Community Call – Dec. 9, 16:30 GMT.md b/protocols/compound/resources/calls/Compound Developer Community Call – Dec. 9, 16:30 GMT.md similarity index 100% rename from compound/calls/Compound Developer Community Call – Dec. 9, 16:30 GMT.md rename to protocols/compound/resources/calls/Compound Developer Community Call – Dec. 9, 16:30 GMT.md diff --git a/compound/calls/Compound Developer Community Call – Jan. 13, 16:30 GMT.md b/protocols/compound/resources/calls/Compound Developer Community Call – Jan. 13, 16:30 GMT.md similarity index 100% rename from compound/calls/Compound Developer Community Call – Jan. 13, 16:30 GMT.md rename to protocols/compound/resources/calls/Compound Developer Community Call – Jan. 13, 16:30 GMT.md diff --git a/compound/calls/Compound Developer Community Call – Nov. 11, 16:30 GMT.md b/protocols/compound/resources/calls/Compound Developer Community Call – Nov. 11, 16:30 GMT.md similarity index 100% rename from compound/calls/Compound Developer Community Call – Nov. 11, 16:30 GMT.md rename to protocols/compound/resources/calls/Compound Developer Community Call – Nov. 11, 16:30 GMT.md diff --git a/compound/calls/Compound Developer Community Call – Nov. 25, 16:30 GMT.md b/protocols/compound/resources/calls/Compound Developer Community Call – Nov. 25, 16:30 GMT.md similarity index 100% rename from compound/calls/Compound Developer Community Call – Nov. 25, 16:30 GMT.md rename to protocols/compound/resources/calls/Compound Developer Community Call – Nov. 25, 16:30 GMT.md diff --git a/compound/calls/First Compound Developer Community Call – Oct. 28, 16:30 GMT.md b/protocols/compound/resources/calls/First Compound Developer Community Call – Oct. 28, 16:30 GMT.md similarity index 100% rename from compound/calls/First Compound Developer Community Call – Oct. 28, 16:30 GMT.md rename to protocols/compound/resources/calls/First Compound Developer Community Call – Oct. 28, 16:30 GMT.md diff --git a/protocols/compoundgrants/contracts/governance.json b/protocols/compoundgrants/contracts/governance.json new file mode 100644 index 0000000..724f68a --- /dev/null +++ b/protocols/compoundgrants/contracts/governance.json @@ -0,0 +1,755 @@ +[ + { + "inputs":[ + { + "internalType":"address", + "name":"timelock_", + "type":"address" + }, + { + "internalType":"address", + "name":"comp_", + "type":"address" + }, + { + "internalType":"address", + "name":"guardian_", + "type":"address" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor", + "signature":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + } + ], + "name":"ProposalCanceled", + "type":"event", + "signature":"0x789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"address", + "name":"proposer", + "type":"address" + }, + { + "indexed":false, + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "indexed":false, + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "indexed":false, + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "indexed":false, + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"startBlock", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"endBlock", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"string", + "name":"description", + "type":"string" + } + ], + "name":"ProposalCreated", + "type":"event", + "signature":"0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + } + ], + "name":"ProposalExecuted", + "type":"event", + "signature":"0x712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"eta", + "type":"uint256" + } + ], + "name":"ProposalQueued", + "type":"event", + "signature":"0x9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"voter", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"votes", + "type":"uint256" + } + ], + "name":"VoteCast", + "type":"event", + "signature":"0x877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c46" + }, + { + "constant":true, + "inputs":[], + "name":"BALLOT_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0xdeaaa7cc" + }, + { + "constant":true, + "inputs":[], + "name":"DOMAIN_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x20606b70" + }, + { + "constant":false, + "inputs":[], + "name":"__abdicate", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x760fbc13" + }, + { + "constant":false, + "inputs":[], + "name":"__acceptAdmin", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0xb9a61961" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"newPendingAdmin", + "type":"address" + }, + { + "internalType":"uint256", + "name":"eta", + "type":"uint256" + } + ], + "name":"__executeSetTimelockPendingAdmin", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x21f43e42" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"newPendingAdmin", + "type":"address" + }, + { + "internalType":"uint256", + "name":"eta", + "type":"uint256" + } + ], + "name":"__queueSetTimelockPendingAdmin", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x91500671" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"cancel", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x40e58ee5" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + } + ], + "name":"castVote", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x15373e3d" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "internalType":"uint8", + "name":"v", + "type":"uint8" + }, + { + "internalType":"bytes32", + "name":"r", + "type":"bytes32" + }, + { + "internalType":"bytes32", + "name":"s", + "type":"bytes32" + } + ], + "name":"castVoteBySig", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0x4634c61f" + }, + { + "constant":true, + "inputs":[], + "name":"comp", + "outputs":[ + { + "internalType":"contract CompInterface", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x109d0af8" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"execute", + "outputs":[], + "payable":true, + "stateMutability":"payable", + "type":"function", + "signature":"0xfe0d94c1" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"getActions", + "outputs":[ + { + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x328dd982" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"address", + "name":"voter", + "type":"address" + } + ], + "name":"getReceipt", + "outputs":[ + { + "components":[ + { + "internalType":"bool", + "name":"hasVoted", + "type":"bool" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "internalType":"uint96", + "name":"votes", + "type":"uint96" + } + ], + "internalType":"struct GovernorAlpha.Receipt", + "name":"", + "type":"tuple" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0xe23a9a52" + }, + { + "constant":true, + "inputs":[], + "name":"guardian", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x452a9320" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"latestProposalIds", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x17977c61" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x06fdde03" + }, + { + "constant":true, + "inputs":[], + "name":"proposalCount", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0xda35c664" + }, + { + "constant":true, + "inputs":[], + "name":"proposalMaxOperations", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0x7bdbe4d0" + }, + { + "constant":true, + "inputs":[], + "name":"proposalThreshold", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0xb58131b0" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "name":"proposals", + "outputs":[ + { + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "internalType":"address", + "name":"proposer", + "type":"address" + }, + { + "internalType":"uint256", + "name":"eta", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"startBlock", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"endBlock", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"forVotes", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"againstVotes", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"canceled", + "type":"bool" + }, + { + "internalType":"bool", + "name":"executed", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x013cf08b" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + }, + { + "internalType":"string", + "name":"description", + "type":"string" + } + ], + "name":"propose", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0xda95691a" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"queue", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function", + "signature":"0xddf0b009" + }, + { + "constant":true, + "inputs":[], + "name":"quorumVotes", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0x24bc1a64" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"state", + "outputs":[ + { + "internalType":"enum GovernorAlpha.ProposalState", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0x3e4f49e6" + }, + { + "constant":true, + "inputs":[], + "name":"timelock", + "outputs":[ + { + "internalType":"contract TimelockInterface", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function", + "signature":"0xd33219b4" + }, + { + "constant":true, + "inputs":[], + "name":"votingDelay", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0x3932abb1" + }, + { + "constant":true, + "inputs":[], + "name":"votingPeriod", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function", + "signature":"0x02a251a3" + } +] diff --git a/protocols/compoundgrants/contracts/token.json b/protocols/compoundgrants/contracts/token.json new file mode 100644 index 0000000..0122903 --- /dev/null +++ b/protocols/compoundgrants/contracts/token.json @@ -0,0 +1,530 @@ +[ + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"delegator", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"fromDelegate", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"toDelegate", + "type":"address" + } + ], + "name":"DelegateChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"delegate", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"previousBalance", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"newBalance", + "type":"uint256" + } + ], + "name":"DelegateVotesChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "constant":true, + "inputs":[], + "name":"DELEGATION_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"DOMAIN_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + }, + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "name":"checkpoints", + "outputs":[ + { + "internalType":"uint32", + "name":"fromBlock", + "type":"uint32" + }, + { + "internalType":"uint96", + "name":"votes", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"delegatee", + "type":"address" + } + ], + "name":"delegate", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"delegatee", + "type":"address" + }, + { + "internalType":"uint256", + "name":"nonce", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"expiry", + "type":"uint256" + }, + { + "internalType":"uint8", + "name":"v", + "type":"uint8" + }, + { + "internalType":"bytes32", + "name":"r", + "type":"bytes32" + }, + { + "internalType":"bytes32", + "name":"s", + "type":"bytes32" + } + ], + "name":"delegateBySig", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"delegates", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"getCurrentVotes", + "outputs":[ + { + "internalType":"uint96", + "name":"", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + } + ], + "name":"getPriorVotes", + "outputs":[ + { + "internalType":"uint96", + "name":"", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"nonces", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"numCheckpoints", + "outputs":[ + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"src", + "type":"address" + }, + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + } +] diff --git a/rarible/events.json b/protocols/compoundgrants/events.json similarity index 100% rename from rarible/events.json rename to protocols/compoundgrants/events.json diff --git a/protocols/compoundgrants/header.png b/protocols/compoundgrants/header.png new file mode 100644 index 0000000..555f6b1 Binary files /dev/null and b/protocols/compoundgrants/header.png differ diff --git a/protocols/compoundgrants/index.json b/protocols/compoundgrants/index.json new file mode 100644 index 0000000..fb3c1c1 --- /dev/null +++ b/protocols/compoundgrants/index.json @@ -0,0 +1,20 @@ +{ + "name": "Compound Grants", + "description": "The Compound Grants Program is a 4/7 multisig controlled committee that will deploy a maximum of $1mm per quarter and run for two quarters.", + "path": "compoundgrants.eth", + "folder": "compoundgrants", + "type": "snapshot", + "suffix": "COMP", + "coinGeckoPriceString": "compound-governance-token", + "tokenContractAddress": "0xc00e94Cb662C3520282E6f5717214004A7f26888", + "snapshotSpaceName": "compoundgrants.eth", + "hasDelegation": false, + "hasOnchain": false, + "isHybrid": false, + "isCouncil": false, + "isEnabled": true, + "invalidSnapshots": [], + "branding": {}, + "discourseForum": {}, + "safeAddress": "0xF1D8c2eED95D5fC2EaDe4E6Bb15a5969453E89a9" +} diff --git a/protocols/compoundgrants/logo.png b/protocols/compoundgrants/logo.png new file mode 100644 index 0000000..5a6f5ac Binary files /dev/null and b/protocols/compoundgrants/logo.png differ diff --git a/compoundgrants/overview.md b/protocols/compoundgrants/overview.md similarity index 100% rename from compoundgrants/overview.md rename to protocols/compoundgrants/overview.md diff --git a/protocols/defidollar/contracts/token.json b/protocols/defidollar/contracts/token.json new file mode 100644 index 0000000..4219cd0 --- /dev/null +++ b/protocols/defidollar/contracts/token.json @@ -0,0 +1,401 @@ +[ + { + "inputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"_minter", + "type":"address" + } + ], + "name":"addMinter", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"subtractedValue", + "type":"uint256" + } + ], + "name":"decreaseAllowance", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"governance", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"addedValue", + "type":"uint256" + } + ], + "name":"increaseAllowance", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"mint", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"minters", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"_minter", + "type":"address" + } + ], + "name":"removeMinter", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"_governance", + "type":"address" + } + ], + "name":"setGovernance", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"recipient", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"sender", + "type":"address" + }, + { + "internalType":"address", + "name":"recipient", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + } +] diff --git a/siren/events.json b/protocols/defidollar/events.json similarity index 100% rename from siren/events.json rename to protocols/defidollar/events.json diff --git a/defidollar/header.png b/protocols/defidollar/header.png similarity index 100% rename from defidollar/header.png rename to protocols/defidollar/header.png diff --git a/protocols/defidollar/index.json b/protocols/defidollar/index.json new file mode 100644 index 0000000..6c3564a --- /dev/null +++ b/protocols/defidollar/index.json @@ -0,0 +1,25 @@ +{ + "name": "DefiDollar DAO", + "description": "DUSD is a stablecoin controlled by a DAO using DeFi primitives to remain pegged to the Dollar.", + "path": "defidollar", + "folder": "defidollar", + "type": "snapshot", + "suffix": "DFD", + "coinGeckoPriceString": "defidollar-dao", + "tokenContractAddress": "0x20c36f062a31865bED8a5B1e512D9a1A20AA333A", + "isEnabled": true, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "defidolla.eth", + "invalidSnapshots": [ + "QmZUUs11CVfwPapHMs53N1ZbmeAzu3bhkfZJFRyENS9kGf", + "QmQG2ppd3TwTGK87KAX7rgyWVEkKo31tXCKw9f6GFQrhHA", + "QmYRKXzmqLVSD9ao3Sba3EsJcAbD3spG58Cg5wznVrnMUM", + "QmehCJcrywhtgU93vFu1AoeVPSzzYf8jBUEED7mBx15U4R", + "QmYRKXzmqLVSD9ao3Sba3EsJcAbD3spG58Cg5wznVrnMUM" + ], + "branding": {}, + "discourseForum": {}, + "safeAddress": null +} diff --git a/defidollar/logo.png b/protocols/defidollar/logo.png similarity index 100% rename from defidollar/logo.png rename to protocols/defidollar/logo.png diff --git a/defidollar/overview.md b/protocols/defidollar/overview.md similarity index 100% rename from defidollar/overview.md rename to protocols/defidollar/overview.md diff --git a/defidollar/Documentation/1. Getting Started.md b/protocols/defidollar/resources/Documentation/1. Getting Started.md similarity index 100% rename from defidollar/Documentation/1. Getting Started.md rename to protocols/defidollar/resources/Documentation/1. Getting Started.md diff --git a/defidollar/Documentation/2. Interacting with DUSD.md b/protocols/defidollar/resources/Documentation/2. Interacting with DUSD.md similarity index 100% rename from defidollar/Documentation/2. Interacting with DUSD.md rename to protocols/defidollar/resources/Documentation/2. Interacting with DUSD.md diff --git a/defidollar/Documentation/3. Audits.md b/protocols/defidollar/resources/Documentation/3. Audits.md similarity index 100% rename from defidollar/Documentation/3. Audits.md rename to protocols/defidollar/resources/Documentation/3. Audits.md diff --git a/defidollar/Documentation/4. Roadmap.md b/protocols/defidollar/resources/Documentation/4. Roadmap.md similarity index 100% rename from defidollar/Documentation/4. Roadmap.md rename to protocols/defidollar/resources/Documentation/4. Roadmap.md diff --git a/defidollar/FAQs/Collection of FAQ's Pertaining to the DefiDollar Ecosystem.md b/protocols/defidollar/resources/FAQs/Collection of FAQ's Pertaining to the DefiDollar Ecosystem.md similarity index 100% rename from defidollar/FAQs/Collection of FAQ's Pertaining to the DefiDollar Ecosystem.md rename to protocols/defidollar/resources/FAQs/Collection of FAQ's Pertaining to the DefiDollar Ecosystem.md diff --git a/protocols/gnosis.eth/contracts/token.json b/protocols/gnosis.eth/contracts/token.json new file mode 100644 index 0000000..7241e42 --- /dev/null +++ b/protocols/gnosis.eth/contracts/token.json @@ -0,0 +1,226 @@ +[ + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "name":"", + "type":"string" + } + ], + "payable":false, + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"_spender", + "type":"address" + }, + { + "name":"_value", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "name":"", + "type":"bool" + } + ], + "payable":false, + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "name":"", + "type":"uint256" + } + ], + "payable":false, + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"_from", + "type":"address" + }, + { + "name":"_to", + "type":"address" + }, + { + "name":"_value", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "name":"", + "type":"bool" + } + ], + "payable":false, + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"decimals", + "outputs":[ + { + "name":"", + "type":"uint8" + } + ], + "payable":false, + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "name":"_owner", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "name":"", + "type":"uint256" + } + ], + "payable":false, + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"symbol", + "outputs":[ + { + "name":"", + "type":"string" + } + ], + "payable":false, + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"_to", + "type":"address" + }, + { + "name":"_value", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "name":"", + "type":"bool" + } + ], + "payable":false, + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "name":"_owner", + "type":"address" + }, + { + "name":"_spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "name":"", + "type":"uint256" + } + ], + "payable":false, + "type":"function" + }, + { + "inputs":[ + { + "name":"dutchAuction", + "type":"address" + }, + { + "name":"owners", + "type":"address[]" + }, + { + "name":"tokens", + "type":"uint256[]" + } + ], + "payable":false, + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "name":"from", + "type":"address" + }, + { + "indexed":true, + "name":"to", + "type":"address" + }, + { + "indexed":false, + "name":"value", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "name":"value", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + } +] diff --git a/synthetix/events.json b/protocols/gnosis.eth/events.json similarity index 100% rename from synthetix/events.json rename to protocols/gnosis.eth/events.json diff --git a/gnosis.eth/header.png b/protocols/gnosis.eth/header.png similarity index 100% rename from gnosis.eth/header.png rename to protocols/gnosis.eth/header.png diff --git a/protocols/gnosis.eth/index.json b/protocols/gnosis.eth/index.json new file mode 100644 index 0000000..1342d0f --- /dev/null +++ b/protocols/gnosis.eth/index.json @@ -0,0 +1,23 @@ +{ + "name": "Gnosis", + "description": "GnosisDAO uses Gnosis products to transparently guide decisions on development, support, and governance of its token ecosystem.", + "path": "gnosis.eth", + "folder": "gnosis.eth", + "type": "snapshot", + "suffix": "GNO", + "coinGeckoPriceString": "gnosis", + "tokenContractAddress": "0x6810e776880c02933d47db1b9fc05908e5386b96", + "isEnabled": true, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "gnosis.eth", + "invalidSnapshots": [ + "Qmey2pnp3wMctMBBiG4QgSdKejmgyXNAady5ZCZQKQKnKF", + "QmaGQ3K3PkjUakoyR127dbym8ESsruXg4dyeKKQxxRdPgA", + "QmcERezRFobLTWGqYw47t9NZtWVsiW791rVeqHvPTBs8gW" + ], + "branding": {}, + "discourseForum": {}, + "safeAddress": null +} diff --git a/gnosis.eth/logo.png b/protocols/gnosis.eth/logo.png similarity index 100% rename from gnosis.eth/logo.png rename to protocols/gnosis.eth/logo.png diff --git a/gnosis.eth/overview.md b/protocols/gnosis.eth/overview.md similarity index 100% rename from gnosis.eth/overview.md rename to protocols/gnosis.eth/overview.md diff --git a/gnosis.eth/Gov Weekly/Update Week 11 2021 18-03-21.md b/protocols/gnosis.eth/resources/Gov Weekly/Update Week 11 2021 18-03-21.md similarity index 100% rename from gnosis.eth/Gov Weekly/Update Week 11 2021 18-03-21.md rename to protocols/gnosis.eth/resources/Gov Weekly/Update Week 11 2021 18-03-21.md diff --git a/gnosis.eth/Gov Weekly/Update Week 12 2021 24-03-21.md b/protocols/gnosis.eth/resources/Gov Weekly/Update Week 12 2021 24-03-21.md similarity index 100% rename from gnosis.eth/Gov Weekly/Update Week 12 2021 24-03-21.md rename to protocols/gnosis.eth/resources/Gov Weekly/Update Week 12 2021 24-03-21.md diff --git a/gnosis.eth/Gov Weekly/Update Week 7 2021 02-16-21.md b/protocols/gnosis.eth/resources/Gov Weekly/Update Week 7 2021 02-16-21.md similarity index 100% rename from gnosis.eth/Gov Weekly/Update Week 7 2021 02-16-21.md rename to protocols/gnosis.eth/resources/Gov Weekly/Update Week 7 2021 02-16-21.md diff --git a/gnosis.eth/Gov Weekly/Update Week 8 2021 02-22-21.md b/protocols/gnosis.eth/resources/Gov Weekly/Update Week 8 2021 02-22-21.md similarity index 100% rename from gnosis.eth/Gov Weekly/Update Week 8 2021 02-22-21.md rename to protocols/gnosis.eth/resources/Gov Weekly/Update Week 8 2021 02-22-21.md diff --git a/pooltogether/calls/Call.md b/protocols/gnosis.eth/resources/calls/Call.md similarity index 100% rename from pooltogether/calls/Call.md rename to protocols/gnosis.eth/resources/calls/Call.md diff --git a/protocols/indexCoop/contracts/token.json b/protocols/indexCoop/contracts/token.json new file mode 100644 index 0000000..89a5ad2 --- /dev/null +++ b/protocols/indexCoop/contracts/token.json @@ -0,0 +1,491 @@ +[ + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"delegator", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"fromDelegate", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"toDelegate", + "type":"address" + } + ], + "name":"DelegateChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"delegate", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"previousBalance", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"newBalance", + "type":"uint256" + } + ], + "name":"DelegateVotesChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "inputs":[], + "name":"DELEGATION_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[], + "name":"DOMAIN_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + }, + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "name":"checkpoints", + "outputs":[ + { + "internalType":"uint32", + "name":"fromBlock", + "type":"uint32" + }, + { + "internalType":"uint96", + "name":"votes", + "type":"uint96" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"delegatee", + "type":"address" + } + ], + "name":"delegate", + "outputs":[], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"delegatee", + "type":"address" + }, + { + "internalType":"uint256", + "name":"nonce", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"expiry", + "type":"uint256" + }, + { + "internalType":"uint8", + "name":"v", + "type":"uint8" + }, + { + "internalType":"bytes32", + "name":"r", + "type":"bytes32" + }, + { + "internalType":"bytes32", + "name":"s", + "type":"bytes32" + } + ], + "name":"delegateBySig", + "outputs":[], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"delegates", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"getCurrentVotes", + "outputs":[ + { + "internalType":"uint96", + "name":"", + "type":"uint96" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + } + ], + "name":"getPriorVotes", + "outputs":[ + { + "internalType":"uint96", + "name":"", + "type":"uint96" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"nonces", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"numCheckpoints", + "outputs":[ + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"src", + "type":"address" + }, + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + } +] diff --git a/indexCoop/events.json b/protocols/indexCoop/events.json similarity index 100% rename from indexCoop/events.json rename to protocols/indexCoop/events.json diff --git a/indexCoop/header.png b/protocols/indexCoop/header.png similarity index 100% rename from indexCoop/header.png rename to protocols/indexCoop/header.png diff --git a/protocols/indexCoop/index.json b/protocols/indexCoop/index.json new file mode 100644 index 0000000..cf5fdee --- /dev/null +++ b/protocols/indexCoop/index.json @@ -0,0 +1,24 @@ +{ + "name": "Index", + "description": "The Index Coop is an autonomous asset manager governed, maintained, and upgraded by INDEX token holders.", + "path": "index", + "folder": "indexCoop", + "type": "snapshot", + "suffix": "INDEX", + "coinGeckoPriceString": "index-cooperative", + "tokenContractAddress": "0x0954906da0Bf32d5479e25f46056d22f08464cab", + "isEnabled": true, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "index", + "invalidSnapshots": [ + "QmQ2s6DsA2jc7ops9BC2KzQwo4rYZLYavisLJvLihpTGvH" + ], + "branding": {}, + "discourseForum": { + "url": "https://gov.indexcoop.com", + "categoryId": "5" + }, + "safeAddress": null +} diff --git a/indexCoop/logo.png b/protocols/indexCoop/logo.png similarity index 100% rename from indexCoop/logo.png rename to protocols/indexCoop/logo.png diff --git a/indexCoop/overview.md b/protocols/indexCoop/overview.md similarity index 100% rename from indexCoop/overview.md rename to protocols/indexCoop/overview.md diff --git a/indexCoop/Development/Index Coop January Bounties.md b/protocols/indexCoop/resources/Development/Index Coop January Bounties.md similarity index 100% rename from indexCoop/Development/Index Coop January Bounties.md rename to protocols/indexCoop/resources/Development/Index Coop January Bounties.md diff --git a/indexCoop/Development/Technical Resources.md b/protocols/indexCoop/resources/Development/Technical Resources.md similarity index 100% rename from indexCoop/Development/Technical Resources.md rename to protocols/indexCoop/resources/Development/Technical Resources.md diff --git a/indexCoop/Gov Weekly/Week 10 2021 11-03-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 10 2021 11-03-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 10 2021 11-03-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 10 2021 11-03-21.md diff --git a/indexCoop/Gov Weekly/Week 11 2021 18-03-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 11 2021 18-03-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 11 2021 18-03-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 11 2021 18-03-21.md diff --git a/indexCoop/Gov Weekly/Week 12 2021 11-03-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 12 2021 11-03-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 12 2021 11-03-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 12 2021 11-03-21.md diff --git a/indexCoop/Gov Weekly/Week 13 2021 01-04-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 13 2021 01-04-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 13 2021 01-04-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 13 2021 01-04-21.md diff --git a/indexCoop/Gov Weekly/Week 14 2021 09-04-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 14 2021 09-04-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 14 2021 09-04-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 14 2021 09-04-21.md diff --git a/indexCoop/Gov Weekly/Week 6 2021 11-02-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 6 2021 11-02-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 6 2021 11-02-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 6 2021 11-02-21.md diff --git a/indexCoop/Gov Weekly/Week 7 2021 19-02-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 7 2021 19-02-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 7 2021 19-02-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 7 2021 19-02-21.md diff --git a/indexCoop/Gov Weekly/Week 8 2021 20-02-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 8 2021 20-02-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 8 2021 20-02-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 8 2021 20-02-21.md diff --git a/indexCoop/Gov Weekly/Week 9 2021 04-03-21.md b/protocols/indexCoop/resources/Gov Weekly/Week 9 2021 04-03-21.md similarity index 100% rename from indexCoop/Gov Weekly/Week 9 2021 04-03-21.md rename to protocols/indexCoop/resources/Gov Weekly/Week 9 2021 04-03-21.md diff --git a/indexCoop/Growth/About the Growth Working Group.md b/protocols/indexCoop/resources/Growth/About the Growth Working Group.md similarity index 100% rename from indexCoop/Growth/About the Growth Working Group.md rename to protocols/indexCoop/resources/Growth/About the Growth Working Group.md diff --git a/indexCoop/Growth/Advertisements.md b/protocols/indexCoop/resources/Growth/Advertisements.md similarity index 100% rename from indexCoop/Growth/Advertisements.md rename to protocols/indexCoop/resources/Growth/Advertisements.md diff --git a/indexCoop/Growth/BD Materials List.md b/protocols/indexCoop/resources/Growth/BD Materials List.md similarity index 100% rename from indexCoop/Growth/BD Materials List.md rename to protocols/indexCoop/resources/Growth/BD Materials List.md diff --git a/indexCoop/Operations/Governance Call Notes.md b/protocols/indexCoop/resources/Operations/Governance Call Notes.md similarity index 100% rename from indexCoop/Operations/Governance Call Notes.md rename to protocols/indexCoop/resources/Operations/Governance Call Notes.md diff --git a/indexCoop/Operations/Q1 2021 - OKRs.md b/protocols/indexCoop/resources/Operations/Q1 2021 - OKRs.md similarity index 100% rename from indexCoop/Operations/Q1 2021 - OKRs.md rename to protocols/indexCoop/resources/Operations/Q1 2021 - OKRs.md diff --git a/indexCoop/Product/CGI.md b/protocols/indexCoop/resources/Product/CGI.md similarity index 100% rename from indexCoop/Product/CGI.md rename to protocols/indexCoop/resources/Product/CGI.md diff --git a/indexCoop/Product/DPI.md b/protocols/indexCoop/resources/Product/DPI.md similarity index 100% rename from indexCoop/Product/DPI.md rename to protocols/indexCoop/resources/Product/DPI.md diff --git a/indexCoop/Product/INDEX.md b/protocols/indexCoop/resources/Product/INDEX.md similarity index 100% rename from indexCoop/Product/INDEX.md rename to protocols/indexCoop/resources/Product/INDEX.md diff --git a/indexCoop/Product/Product Materials.md b/protocols/indexCoop/resources/Product/Product Materials.md similarity index 100% rename from indexCoop/Product/Product Materials.md rename to protocols/indexCoop/resources/Product/Product Materials.md diff --git a/protocols/rally/contracts/token.json b/protocols/rally/contracts/token.json new file mode 100644 index 0000000..54da284 --- /dev/null +++ b/protocols/rally/contracts/token.json @@ -0,0 +1,296 @@ +[ + { + "inputs":[ + { + "internalType":"address", + "name":"_escrow", + "type":"address" + } + ], + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "inputs":[], + "name":"TOKEN_SUPPLY", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"subtractedValue", + "type":"uint256" + } + ], + "name":"decreaseAllowance", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"addedValue", + "type":"uint256" + } + ], + "name":"increaseAllowance", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"recipient", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"sender", + "type":"address" + }, + { + "internalType":"address", + "name":"recipient", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + } +] diff --git a/uniswap/events.json b/protocols/rally/events.json similarity index 100% rename from uniswap/events.json rename to protocols/rally/events.json diff --git a/rally/header.png b/protocols/rally/header.png similarity index 100% rename from rally/header.png rename to protocols/rally/header.png diff --git a/protocols/rally/index.json b/protocols/rally/index.json new file mode 100644 index 0000000..5b1f0d0 --- /dev/null +++ b/protocols/rally/index.json @@ -0,0 +1,19 @@ +{ + "name": "Rally", + "description": "Rally is a decentralized network enabling creators to monetize and align themselves with their community.", + "path": "rally", + "folder": "rally", + "type": "snapshot", + "suffix": "RLY", + "coinGeckoPriceString": "rally-2", + "tokenContractAddress": "0xf1f955016EcbCd7321c7266BccFB96c68ea5E49b", + "isEnabled": true, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "rally", + "invalidSnapshots": [], + "branding": {}, + "discourseForum": {}, + "safeAddress": null +} diff --git a/rally/logo.png b/protocols/rally/logo.png similarity index 100% rename from rally/logo.png rename to protocols/rally/logo.png diff --git a/rally/overview.md b/protocols/rally/overview.md similarity index 100% rename from rally/overview.md rename to protocols/rally/overview.md diff --git a/protocols/rarible/contracts/token.json b/protocols/rarible/contracts/token.json new file mode 100644 index 0000000..66d4e64 --- /dev/null +++ b/protocols/rarible/contracts/token.json @@ -0,0 +1,482 @@ +[ + { + "inputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"previousOwner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"newOwner", + "type":"address" + } + ], + "name":"OwnershipTransferred", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"Paused", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"Unpaused", + "type":"event" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"subtractedValue", + "type":"uint256" + } + ], + "name":"decreaseAllowance", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"addedValue", + "type":"uint256" + } + ], + "name":"increaseAllowance", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"isOwner", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"mint", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"mintStopped", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"owner", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[], + "name":"pause", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"paused", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[], + "name":"renounceOwnership", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[], + "name":"stopMint", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"newOwner", + "type":"address" + } + ], + "name":"transferOwnership", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[], + "name":"unpause", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + } +] diff --git a/yamv2/events.json b/protocols/rarible/events.json similarity index 100% rename from yamv2/events.json rename to protocols/rarible/events.json diff --git a/rarible/header.png b/protocols/rarible/header.png similarity index 100% rename from rarible/header.png rename to protocols/rarible/header.png diff --git a/protocols/rarible/index.json b/protocols/rarible/index.json new file mode 100644 index 0000000..901a5d8 --- /dev/null +++ b/protocols/rarible/index.json @@ -0,0 +1,28 @@ +{ + "name": "Rarible", + "description": "Rarible is the premiere NFT marketplace to mint, buy, and sell digital collectibles.", + "path": "rarible", + "folder": "rarible", + "type": "snapshot", + "suffix": "RARI", + "coinGeckoPriceString": "rarible", + "tokenContractAddress": "0xFca59Cd816aB1eaD66534D82bc21E7515cE441CF", + "isEnabled": true, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "rarible", + "invalidSnapshots": [ + "QmSgtwCz33ub4BXYZCfdZHAdWSNAPhaTZUU94VJzGYFCXi", + "QmNg7ZNi8xb7kBBMHPxvSHUYUcm28UeAkfkjAeRejG5LGy", + "QmaV43F4RRX2GYc42dwV7esTvVmp6Mb4pi5uZfKjgFxcn3", + "QmXUVjiANVc7cYdioyMvk4T9wandAFUfmdHAQov5Xhfra1", + "QmYjtVqeL7adETmmLqeefsasFRk4WZk4eZZjWJAgfsRxdz" + ], + "branding": {}, + "discourseForum": { + "url": "https://gov.rarible.com", + "categoryId": "7" + }, + "safeAddress": null +} diff --git a/rarible/logo.png b/protocols/rarible/logo.png similarity index 100% rename from rarible/logo.png rename to protocols/rarible/logo.png diff --git a/rarible/overview.md b/protocols/rarible/overview.md similarity index 100% rename from rarible/overview.md rename to protocols/rarible/overview.md diff --git a/rarible/Gov Weekly/Week 9 2021 03-05-21.md b/protocols/rarible/resources/Gov Weekly/Week 9 2021 03-05-21.md similarity index 100% rename from rarible/Gov Weekly/Week 9 2021 03-05-21.md rename to protocols/rarible/resources/Gov Weekly/Week 9 2021 03-05-21.md diff --git a/rarible/calls/Call.md b/protocols/rarible/resources/calls/Call.md similarity index 100% rename from rarible/calls/Call.md rename to protocols/rarible/resources/calls/Call.md diff --git a/protocols/synthetix/contracts/governance.json b/protocols/synthetix/contracts/governance.json new file mode 100644 index 0000000..cd80934 --- /dev/null +++ b/protocols/synthetix/contracts/governance.json @@ -0,0 +1,423 @@ +[ + { + "inputs":[ + { + "internalType":"string", + "name":"_name", + "type":"string" + }, + { + "internalType":"string", + "name":"_symbol", + "type":"string" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + } + ], + "name":"Burn", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"address", + "name":"to", + "type":"address" + } + ], + "name":"Mint", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"previousOwner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"newOwner", + "type":"address" + } + ], + "name":"OwnershipTransferred", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"string", + "name":"tokenURI", + "type":"string" + } + ], + "name":"TokenURISet", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":true, + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + } + ], + "name":"Transferred", + "type":"event" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + } + ], + "name":"burn", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"isOwner", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + } + ], + "name":"mint", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + }, + { + "internalType":"string", + "name":"uri", + "type":"string" + } + ], + "name":"mintWithTokenURI", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"owner", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "name":"ownerOf", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[], + "name":"renounceOwnership", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + }, + { + "internalType":"string", + "name":"uri", + "type":"string" + } + ], + "name":"setTokenURI", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"tokenOwned", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + } + ], + "name":"tokenURI", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "name":"tokens", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "internalType":"uint256", + "name":"tokenId", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"newOwner", + "type":"address" + } + ], + "name":"transferOwnership", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + } +] diff --git a/protocols/synthetix/contracts/token.json b/protocols/synthetix/contracts/token.json new file mode 100644 index 0000000..76fc2b9 --- /dev/null +++ b/protocols/synthetix/contracts/token.json @@ -0,0 +1,415 @@ +[ + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"spender", + "type":"address" + }, + { + "name":"value", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"_owner", + "type":"address" + } + ], + "name":"nominateNewOwner", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"from", + "type":"address" + }, + { + "name":"to", + "type":"address" + }, + { + "name":"value", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"decimals", + "outputs":[ + { + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"nominatedOwner", + "outputs":[ + { + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "name":"owner", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"_target", + "type":"address" + } + ], + "name":"setTarget", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[], + "name":"acceptOwnership", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"owner", + "outputs":[ + { + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"callData", + "type":"bytes" + }, + { + "name":"numTopics", + "type":"uint256" + }, + { + "name":"topic1", + "type":"bytes32" + }, + { + "name":"topic2", + "type":"bytes32" + }, + { + "name":"topic3", + "type":"bytes32" + }, + { + "name":"topic4", + "type":"bytes32" + } + ], + "name":"_emit", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"useDELEGATECALL", + "outputs":[ + { + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"symbol", + "outputs":[ + { + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"to", + "type":"address" + }, + { + "name":"value", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"value", + "type":"bool" + } + ], + "name":"setUseDELEGATECALL", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"target", + "outputs":[ + { + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "name":"owner", + "type":"address" + }, + { + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "name":"_owner", + "type":"address" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "payable":true, + "stateMutability":"payable", + "type":"fallback" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "name":"from", + "type":"address" + }, + { + "indexed":true, + "name":"to", + "type":"address" + }, + { + "indexed":false, + "name":"value", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "name":"value", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "name":"newTarget", + "type":"address" + } + ], + "name":"TargetUpdated", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "name":"newOwner", + "type":"address" + } + ], + "name":"OwnerNominated", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "name":"oldOwner", + "type":"address" + }, + { + "indexed":false, + "name":"newOwner", + "type":"address" + } + ], + "name":"OwnerChanged", + "type":"event" + } +] diff --git a/yearn/events.json b/protocols/synthetix/events.json similarity index 100% rename from yearn/events.json rename to protocols/synthetix/events.json diff --git a/synthetix/header.png b/protocols/synthetix/header.png similarity index 100% rename from synthetix/header.png rename to protocols/synthetix/header.png diff --git a/protocols/synthetix/index.json b/protocols/synthetix/index.json new file mode 100644 index 0000000..a4ec227 --- /dev/null +++ b/protocols/synthetix/index.json @@ -0,0 +1,19 @@ +{ + "name": "Synthetix", + "description": "Synthetix is a decentralised synthetic asset issuance protocol built on Ethereum.", + "path": "snxgov.eth", + "folder": "synthetix", + "type": "snapshot", + "suffix": "SC-NFT", + "coinGeckoPriceString": "havven", + "tokenContractAddress": "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F", + "isEnabled": true, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "snxgov.eth", + "invalidSnapshots": [], + "branding": {}, + "discourseForum": {}, + "safeAddress": "0x438679ECE13EDB95aDD18Ed02dDbf5e2418FF730" +} diff --git a/synthetix/logo.png b/protocols/synthetix/logo.png similarity index 100% rename from synthetix/logo.png rename to protocols/synthetix/logo.png diff --git a/synthetix/overview.md b/protocols/synthetix/overview.md similarity index 100% rename from synthetix/overview.md rename to protocols/synthetix/overview.md diff --git a/synthetix/Gov Weekly/Update Week 11 2021 18-03-21.md b/protocols/synthetix/resources/Gov Weekly/Update Week 11 2021 18-03-21.md similarity index 100% rename from synthetix/Gov Weekly/Update Week 11 2021 18-03-21.md rename to protocols/synthetix/resources/Gov Weekly/Update Week 11 2021 18-03-21.md diff --git a/synthetix/Gov Weekly/Update Week 12 2021 03-25-21.md b/protocols/synthetix/resources/Gov Weekly/Update Week 12 2021 03-25-21.md similarity index 100% rename from synthetix/Gov Weekly/Update Week 12 2021 03-25-21.md rename to protocols/synthetix/resources/Gov Weekly/Update Week 12 2021 03-25-21.md diff --git a/synthetix/Gov Weekly/Update Week 13 2021 01-04-21.md b/protocols/synthetix/resources/Gov Weekly/Update Week 13 2021 01-04-21.md similarity index 100% rename from synthetix/Gov Weekly/Update Week 13 2021 01-04-21.md rename to protocols/synthetix/resources/Gov Weekly/Update Week 13 2021 01-04-21.md diff --git a/synthetix/Gov Weekly/Update Week 14 2021 08-04-21.md b/protocols/synthetix/resources/Gov Weekly/Update Week 14 2021 08-04-21.md similarity index 100% rename from synthetix/Gov Weekly/Update Week 14 2021 08-04-21.md rename to protocols/synthetix/resources/Gov Weekly/Update Week 14 2021 08-04-21.md diff --git a/synthetix/Gov Weekly/Update Week 8 2021 02-25-21.md b/protocols/synthetix/resources/Gov Weekly/Update Week 8 2021 02-25-21.md similarity index 100% rename from synthetix/Gov Weekly/Update Week 8 2021 02-25-21.md rename to protocols/synthetix/resources/Gov Weekly/Update Week 8 2021 02-25-21.md diff --git a/synthetix/Gov Weekly/Update Week 9 2021 03-05-21.md b/protocols/synthetix/resources/Gov Weekly/Update Week 9 2021 03-05-21.md similarity index 100% rename from synthetix/Gov Weekly/Update Week 9 2021 03-05-21.md rename to protocols/synthetix/resources/Gov Weekly/Update Week 9 2021 03-05-21.md diff --git a/synthetix/calls/November 2020 - Synthetix Community Governance Call.md b/protocols/synthetix/resources/calls/November 2020 - Synthetix Community Governance Call.md similarity index 100% rename from synthetix/calls/November 2020 - Synthetix Community Governance Call.md rename to protocols/synthetix/resources/calls/November 2020 - Synthetix Community Governance Call.md diff --git a/protocols/uniswap/contracts/governance.json b/protocols/uniswap/contracts/governance.json new file mode 100644 index 0000000..70f9609 --- /dev/null +++ b/protocols/uniswap/contracts/governance.json @@ -0,0 +1,644 @@ +[ + { + "inputs":[ + { + "internalType":"address", + "name":"timelock_", + "type":"address" + }, + { + "internalType":"address", + "name":"uni_", + "type":"address" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + } + ], + "name":"ProposalCanceled", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"address", + "name":"proposer", + "type":"address" + }, + { + "indexed":false, + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "indexed":false, + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "indexed":false, + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "indexed":false, + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"startBlock", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"endBlock", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"string", + "name":"description", + "type":"string" + } + ], + "name":"ProposalCreated", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + } + ], + "name":"ProposalExecuted", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"eta", + "type":"uint256" + } + ], + "name":"ProposalQueued", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"voter", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"votes", + "type":"uint256" + } + ], + "name":"VoteCast", + "type":"event" + }, + { + "constant":true, + "inputs":[], + "name":"BALLOT_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"DOMAIN_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"cancel", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + } + ], + "name":"castVote", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "internalType":"uint8", + "name":"v", + "type":"uint8" + }, + { + "internalType":"bytes32", + "name":"r", + "type":"bytes32" + }, + { + "internalType":"bytes32", + "name":"s", + "type":"bytes32" + } + ], + "name":"castVoteBySig", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"execute", + "outputs":[], + "payable":true, + "stateMutability":"payable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"getActions", + "outputs":[ + { + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + }, + { + "internalType":"address", + "name":"voter", + "type":"address" + } + ], + "name":"getReceipt", + "outputs":[ + { + "components":[ + { + "internalType":"bool", + "name":"hasVoted", + "type":"bool" + }, + { + "internalType":"bool", + "name":"support", + "type":"bool" + }, + { + "internalType":"uint96", + "name":"votes", + "type":"uint96" + } + ], + "internalType":"struct GovernorAlpha.Receipt", + "name":"", + "type":"tuple" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"latestProposalIds", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"proposalCount", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"proposalMaxOperations", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"proposalThreshold", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "name":"proposals", + "outputs":[ + { + "internalType":"uint256", + "name":"id", + "type":"uint256" + }, + { + "internalType":"address", + "name":"proposer", + "type":"address" + }, + { + "internalType":"uint256", + "name":"eta", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"startBlock", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"endBlock", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"forVotes", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"againstVotes", + "type":"uint256" + }, + { + "internalType":"bool", + "name":"canceled", + "type":"bool" + }, + { + "internalType":"bool", + "name":"executed", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address[]", + "name":"targets", + "type":"address[]" + }, + { + "internalType":"uint256[]", + "name":"values", + "type":"uint256[]" + }, + { + "internalType":"string[]", + "name":"signatures", + "type":"string[]" + }, + { + "internalType":"bytes[]", + "name":"calldatas", + "type":"bytes[]" + }, + { + "internalType":"string", + "name":"description", + "type":"string" + } + ], + "name":"propose", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"queue", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"quorumVotes", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"uint256", + "name":"proposalId", + "type":"uint256" + } + ], + "name":"state", + "outputs":[ + { + "internalType":"enum GovernorAlpha.ProposalState", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"timelock", + "outputs":[ + { + "internalType":"contract TimelockInterface", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"uni", + "outputs":[ + { + "internalType":"contract UniInterface", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"votingDelay", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"votingPeriod", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"pure", + "type":"function" + } +] diff --git a/protocols/uniswap/contracts/token.json b/protocols/uniswap/contracts/token.json new file mode 100644 index 0000000..3df379b --- /dev/null +++ b/protocols/uniswap/contracts/token.json @@ -0,0 +1,714 @@ +[ + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"address", + "name":"minter_", + "type":"address" + }, + { + "internalType":"uint256", + "name":"mintingAllowedAfter_", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"delegator", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"fromDelegate", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"toDelegate", + "type":"address" + } + ], + "name":"DelegateChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"delegate", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"previousBalance", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"newBalance", + "type":"uint256" + } + ], + "name":"DelegateVotesChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"minter", + "type":"address" + }, + { + "indexed":false, + "internalType":"address", + "name":"newMinter", + "type":"address" + } + ], + "name":"MinterChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "constant":true, + "inputs":[], + "name":"DELEGATION_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"DOMAIN_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"PERMIT_TYPEHASH", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + }, + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "name":"checkpoints", + "outputs":[ + { + "internalType":"uint32", + "name":"fromBlock", + "type":"uint32" + }, + { + "internalType":"uint96", + "name":"votes", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"delegatee", + "type":"address" + } + ], + "name":"delegate", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"delegatee", + "type":"address" + }, + { + "internalType":"uint256", + "name":"nonce", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"expiry", + "type":"uint256" + }, + { + "internalType":"uint8", + "name":"v", + "type":"uint8" + }, + { + "internalType":"bytes32", + "name":"r", + "type":"bytes32" + }, + { + "internalType":"bytes32", + "name":"s", + "type":"bytes32" + } + ], + "name":"delegateBySig", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"delegates", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"getCurrentVotes", + "outputs":[ + { + "internalType":"uint96", + "name":"", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + } + ], + "name":"getPriorVotes", + "outputs":[ + { + "internalType":"uint96", + "name":"", + "type":"uint96" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"minimumTimeBetweenMints", + "outputs":[ + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"mint", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"mintCap", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"minter", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"mintingAllowedAfter", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"nonces", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"numCheckpoints", + "outputs":[ + { + "internalType":"uint32", + "name":"", + "type":"uint32" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"deadline", + "type":"uint256" + }, + { + "internalType":"uint8", + "name":"v", + "type":"uint8" + }, + { + "internalType":"bytes32", + "name":"r", + "type":"bytes32" + }, + { + "internalType":"bytes32", + "name":"s", + "type":"bytes32" + } + ], + "name":"permit", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"minter_", + "type":"address" + } + ], + "name":"setMinter", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"src", + "type":"address" + }, + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"rawAmount", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + } +] diff --git a/protocols/uniswap/events.json b/protocols/uniswap/events.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/protocols/uniswap/events.json @@ -0,0 +1 @@ +[] diff --git a/uniswap/header.png b/protocols/uniswap/header.png similarity index 100% rename from uniswap/header.png rename to protocols/uniswap/header.png diff --git a/protocols/uniswap/index.json b/protocols/uniswap/index.json new file mode 100644 index 0000000..d085949 --- /dev/null +++ b/protocols/uniswap/index.json @@ -0,0 +1,28 @@ +{ + "name": "Uniswap", + "description": "Uniswap is a decentralized protocol for automated liquidity provision on Ethereum.", + "path": "uniswap", + "folder": "uniswap", + "type": "compoundish", + "suffix": "UNI", + "coinGeckoPriceString": "uniswap", + "tokenContractAddress": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984", + "governanceContractAddress": "0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F", + "isEnabled": true, + "hasOnchain": true, + "isHybrid": true, + "hasDelegation": true, + "snapshotSpaceName": "uniswap", + "invalidSnapshots": [ + "QmNWZDogjnEMoi8hDFrK7MNmWeAeXnGJjmf5c8nTHfj9K7", + "QmUPcp66S7CqhTFZeszUG7azrZzNNtGx2uqTvaWGqMfLCB", + "QmeNU8EeLygjwkwBmPMVhY1fhohWFtzJx9ee8sePkhmrJz", + "QmXGfbsH7Qt19zzuDDmX1WxnehfEi9K9zNGsQAGuBgyXE3", + "QmTgW3QTYZhfW5Zu7j1Xewy8NQgh2Ga618BkPAPAfmzGcN", + "QmQJuW88TbKzMLtEhWC7HkSrUWdF5FVsdsLvhfAogkzyqn", + "QmU5sggJNTQmSQtxecdsAJxXn9fgSwYz1dXpSpDcgwAqqy" + ], + "branding": {}, + "discourseForum": {}, + "safeAddress": null +} diff --git a/uniswap/logo.png b/protocols/uniswap/logo.png similarity index 100% rename from uniswap/logo.png rename to protocols/uniswap/logo.png diff --git a/uniswap/overview.md b/protocols/uniswap/overview.md similarity index 100% rename from uniswap/overview.md rename to protocols/uniswap/overview.md diff --git a/uniswap/Gov Weekly/Update Week 12 2021 24-03-21.md b/protocols/uniswap/resources/Gov Weekly/Update Week 12 2021 24-03-21.md similarity index 100% rename from uniswap/Gov Weekly/Update Week 12 2021 24-03-21.md rename to protocols/uniswap/resources/Gov Weekly/Update Week 12 2021 24-03-21.md diff --git a/uniswap/Gov Weekly/Update Week 13 2021 01-04-21.md b/protocols/uniswap/resources/Gov Weekly/Update Week 13 2021 01-04-21.md similarity index 100% rename from uniswap/Gov Weekly/Update Week 13 2021 01-04-21.md rename to protocols/uniswap/resources/Gov Weekly/Update Week 13 2021 01-04-21.md diff --git a/uniswap/Gov Weekly/Update Week 14 2021 08-04-21.md b/protocols/uniswap/resources/Gov Weekly/Update Week 14 2021 08-04-21.md similarity index 100% rename from uniswap/Gov Weekly/Update Week 14 2021 08-04-21.md rename to protocols/uniswap/resources/Gov Weekly/Update Week 14 2021 08-04-21.md diff --git a/uniswap/Gov Weekly/Update Week 8 2021 02-22-21.md b/protocols/uniswap/resources/Gov Weekly/Update Week 8 2021 02-22-21.md similarity index 100% rename from uniswap/Gov Weekly/Update Week 8 2021 02-22-21.md rename to protocols/uniswap/resources/Gov Weekly/Update Week 8 2021 02-22-21.md diff --git a/uniswap/Gov Weekly/Update Week 9 2021 03-05-21.md b/protocols/uniswap/resources/Gov Weekly/Update Week 9 2021 03-05-21.md similarity index 100% rename from uniswap/Gov Weekly/Update Week 9 2021 03-05-21.md rename to protocols/uniswap/resources/Gov Weekly/Update Week 9 2021 03-05-21.md diff --git a/uniswap/calls/Community Call - Thursday 12 Nov 17:00 UTC.md b/protocols/uniswap/resources/calls/Community Call - Thursday 12 Nov 17:00 UTC.md similarity index 100% rename from uniswap/calls/Community Call - Thursday 12 Nov 17:00 UTC.md rename to protocols/uniswap/resources/calls/Community Call - Thursday 12 Nov 17:00 UTC.md diff --git a/protocols/yup.eth/contracts/token.json b/protocols/yup.eth/contracts/token.json new file mode 100644 index 0000000..9f96d81 --- /dev/null +++ b/protocols/yup.eth/contracts/token.json @@ -0,0 +1,148 @@ +[ + { + "constant":false, + "inputs":[ + { + "name":"newImplementation", + "type":"address" + } + ], + "name":"upgradeTo", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"newImplementation", + "type":"address" + }, + { + "name":"data", + "type":"bytes" + } + ], + "name":"upgradeToAndCall", + "outputs":[], + "payable":true, + "stateMutability":"payable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[], + "name":"implementation", + "outputs":[ + { + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "name":"newAdmin", + "type":"address" + } + ], + "name":"changeAdmin", + "outputs":[], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[], + "name":"admin", + "outputs":[ + { + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "name":"_logic", + "type":"address" + }, + { + "name":"_admin", + "type":"address" + }, + { + "name":"_data", + "type":"bytes" + } + ], + "payable":true, + "stateMutability":"payable", + "type":"constructor" + }, + { + "payable":true, + "stateMutability":"payable", + "type":"fallback" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "name":"previousAdmin", + "type":"address" + }, + { + "indexed":false, + "name":"newAdmin", + "type":"address" + } + ], + "name":"AdminChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "name":"implementation", + "type":"address" + } + ], + "name":"Upgraded", + "type":"event" + } +] diff --git a/yup/events.json b/protocols/yup.eth/events.json similarity index 100% rename from yup/events.json rename to protocols/yup.eth/events.json diff --git a/yup/header.png b/protocols/yup.eth/header.png similarity index 100% rename from yup/header.png rename to protocols/yup.eth/header.png diff --git a/protocols/yup.eth/index.json b/protocols/yup.eth/index.json new file mode 100644 index 0000000..6b5fb60 --- /dev/null +++ b/protocols/yup.eth/index.json @@ -0,0 +1,20 @@ +{ + + "name": "Yup", + "description": "Your opinion matters. Curate the web. Earn & influence.", + "path": "yup.eth", + "folder": "yup.eth", + "type": "snapshot", + "suffix": "YUP", + "coinGeckoPriceString": "yup", + "tokenContractAddress": "0x69bBC3F8787d573F1BBDd0a5f40C7bA0Aee9BCC9", + "isEnabled": true, + "hasOnchain": false, + "isHybrid": false, + "hasDelegation": false, + "snapshotSpaceName": "yup.eth", + "invalidSnapshots": [], + "branding": {}, + "discourseForum": {}, + "safeAddress": "0xbd5224f66D5ce49a8Afefc14a76248D158D14c6F" +} diff --git a/yup/logo.png b/protocols/yup.eth/logo.png similarity index 100% rename from yup/logo.png rename to protocols/yup.eth/logo.png diff --git a/yup/overview.md b/protocols/yup.eth/overview.md similarity index 100% rename from yup/overview.md rename to protocols/yup.eth/overview.md diff --git a/yup/Meeting & Events/Community Meeting Feb 18 18-02-21.md b/protocols/yup.eth/resources/Meeting & Events/Community Meeting Feb 18 18-02-21.md similarity index 100% rename from yup/Meeting & Events/Community Meeting Feb 18 18-02-21.md rename to protocols/yup.eth/resources/Meeting & Events/Community Meeting Feb 18 18-02-21.md diff --git a/yup/Meeting & Events/Community Meeting Feb 25 25-02-21.md b/protocols/yup.eth/resources/Meeting & Events/Community Meeting Feb 25 25-02-21.md similarity index 100% rename from yup/Meeting & Events/Community Meeting Feb 25 25-02-21.md rename to protocols/yup.eth/resources/Meeting & Events/Community Meeting Feb 25 25-02-21.md diff --git a/rally/events.json b/rally/events.json deleted file mode 100644 index e69de29..0000000 diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 8ae8466..0000000 --- a/rollup.config.js +++ /dev/null @@ -1,9 +0,0 @@ -import typescript from '@rollup/plugin-typescript'; - -export default { - input: './index.ts', - output: { - dir: 'dist', format: 'cjs' - }, - plugins: [typescript()] -}; \ No newline at end of file diff --git a/scripts/build.ts b/scripts/build.ts new file mode 100644 index 0000000..e8917cc --- /dev/null +++ b/scripts/build.ts @@ -0,0 +1,16 @@ +import fs from "fs"; +import mkdirp from "mkdirp"; + +const protocols = fs.readdirSync("./protocols"); + +const protocolInfo = protocols.map((protocol) => + fs.readFileSync(`./protocols/${protocol}/index.json`, "utf8") +); + +mkdirp.sync("./dist"); +fs.copyFileSync("./index.d.ts", "./dist/index.d.ts"); +fs.copyFileSync("./types.ts", "./dist/types.ts"); +fs.writeFileSync( + "./dist/index.ts", + `export default [${protocolInfo.toString()}];` +); diff --git a/scripts/validate.ts b/scripts/validate.ts new file mode 100644 index 0000000..6aed92a --- /dev/null +++ b/scripts/validate.ts @@ -0,0 +1,30 @@ +import { validator } from "io-ts-validator"; +import { ProtocolIo } from "../types"; +import protocols from "../dist"; + +const errors = []; + +for (const protocol of protocols) { + try { + validator(ProtocolIo).decodeSync(protocol); + } catch (e) { + errors.push({ + protocol: protocol.name, + message: e, + }); + } +} + +const errorMessage = errors.reduce( + (message, error) => + ` + ${message}\n + Error validating protocol: ${error.protocol}\n + ${error.message} + `, + "" +); + +if (errorMessage) { + throw new Error(errorMessage); +} diff --git a/tsconfig.json b/tsconfig.json index 9adf4aa..0848307 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,70 +1,14 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ - // "lib": [], /* Specify library files to be included in the compilation. */ - // "allowJs": true, /* Allow javascript files to be compiled. */ - // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - // "declaration": true, /* Generates corresponding '.d.ts' file. */ - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - // "sourceMap": true, /* Generates corresponding '.map' file. */ - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "dist", /* Redirect output structure to the directory. */ - // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true, /* Skip type checking of declaration files. */ - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + "target": "es5", + "module": "commonjs", + "outDir": "dist", + "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "esModuleInterop": true, + "resolveJsonModule": true } } diff --git a/types.ts b/types.ts new file mode 100644 index 0000000..a3ab233 --- /dev/null +++ b/types.ts @@ -0,0 +1,36 @@ +import * as t from "io-ts"; + +export const ProtocolIo = t.type({ + name: t.string, + description: t.string, + path: t.string, + 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]), +}); + +export type Protocol = t.TypeOf; diff --git a/yarn.lock b/yarn.lock index 07c635e..749a780 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,69 +2,87 @@ # yarn lockfile v1 -"@rollup/plugin-typescript@^8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.1.1.tgz#cadd6c381a92cc7e8148cc8b1eeba146020635d0" - integrity sha512-DPFy0SV8/GgHFL31yPFVo0G1T3yzwdw6R9KisBfO2zCYbDHUqDChSWr1KmtpGz/TmutpoGJjIvu80p9HzCEF0A== - dependencies: - "@rollup/pluginutils" "^3.1.0" - resolve "^1.17.0" - -"@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -estree-walker@^1.0.1: +"@types/mkdirp@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-1.0.1.tgz#0930b948914a78587de35458b86c907b6e98bbf6" + integrity sha512-HkGSK7CGAXncr8Qn/0VqNtExEE+PHMWb+qlR1faHMao7ng6P3tAaoWWBMdva0gL5h4zprjIO89GJOLXsMcDm1Q== + dependencies: + "@types/node" "*" -function-bind@^1.1.1: +"@types/node@*", "@types/node@^14.14.37": + version "14.14.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" + integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +buffer-from@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +fp-ts@^2.9.5: + version "2.9.5" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.9.5.tgz#6690cd8b76b84214a38fc77cbbbd04a38f86ea90" + integrity sha512-MiHrA5teO6t8zKArE3DdMPT/Db6v2GUt5yfWnhBTrrsVfeCJUUnV6sgFvjGNBKDmEMqVwRFkEePL7wPwqrLKKA== + +io-ts-validator@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/io-ts-validator/-/io-ts-validator-0.0.5.tgz#6d2184a7fc04c0293a4df80f913c18f8eea6801e" + integrity sha512-5ZToFVK3/j4QR1jlcJjZquqolzSoElP4gCJQZR0xDOackGk42CNN9PRAYwFYG3Dj8F/Zk0lH6xrw19xvlr1QCQ== + +io-ts@^2.2.16: + version "2.2.16" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-2.2.16.tgz#597dffa03db1913fc318c9c6df6931cb4ed808b2" + integrity sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +source-map-support@^0.5.17: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: - function-bind "^1.1.1" + buffer-from "^1.0.0" + source-map "^0.6.0" -is-core-module@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== dependencies: - has "^1.0.3" - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -picomatch@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -resolve@^1.17.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" tslib@^2.1.0: version "2.1.0" @@ -75,3 +93,8 @@ typescript@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==