Full Code of joincivil/Civil for AI

master b337712f3b97 cached
1466 files
8.9 MB
2.4M tokens
3346 symbols
1 requests
Download .txt
Showing preview only (9,684K chars total). Download the full file or copy to clipboard to get everything.
Repository: joincivil/Civil
Branch: master
Commit: b337712f3b97
Files: 1466
Total size: 8.9 MB

Directory structure:
gitextract_g8jrarxw/

├── .circleci/
│   └── config.yml
├── .dockerignore
├── .editorconfig
├── .gitattributes
├── .gitignore
├── .prettierignore
├── .prettierrc.yaml
├── .releaserc
├── .vscode/
│   ├── launch.json
│   └── settings.json
├── Dockerfile-dapp
├── README.md
├── commitlint.config.js
├── lerna.json
├── package.json
├── packages/
│   ├── artifacts/
│   │   ├── package.json
│   │   └── v1/
│   │       ├── ACL.json
│   │       ├── AddressRegistry.json
│   │       ├── AttributeStore.json
│   │       ├── CVLToken.json
│   │       ├── CivilPLCRVoting.json
│   │       ├── CivilParameterizer.json
│   │       ├── CivilTCR.json
│   │       ├── CivilTokenController.json
│   │       ├── ContractAddressRegistry.json
│   │       ├── CreateNewsroomInGroup.json
│   │       ├── DLL.json
│   │       ├── DummyACL.json
│   │       ├── DummyTokenTelemetry.json
│   │       ├── ECRecovery.json
│   │       ├── ERC1404.json
│   │       ├── ERC20.json
│   │       ├── ERC20Detailed.json
│   │       ├── EventStorage.json
│   │       ├── Factory.json
│   │       ├── Government.json
│   │       ├── IERC20.json
│   │       ├── IGovernment.json
│   │       ├── IMultiSigWalletFactory.json
│   │       ├── Managed.json
│   │       ├── ManagedWhitelist.json
│   │       ├── MessagesAndCodes.json
│   │       ├── Migrations.json
│   │       ├── MultiSigWallet.json
│   │       ├── MultiSigWalletFactory.json
│   │       ├── Newsroom.json
│   │       ├── NewsroomFactory.json
│   │       ├── NoOpTokenController.json
│   │       ├── Ownable.json
│   │       ├── PLCRVoting.json
│   │       ├── Parameterizer.json
│   │       ├── RBAC.json
│   │       ├── RestrictedAddressRegistry.json
│   │       ├── Roles.json
│   │       ├── RootCommits.json
│   │       ├── SafeMath.json
│   │       ├── TokenTelemetryI.json
│   │       ├── UniswapExchange.json
│   │       ├── UniswapFactory.json
│   │       └── Whitelist.json
│   ├── components/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── .releaserc
│   │   ├── .storybook/
│   │   │   ├── config.ts
│   │   │   ├── preview-head.html
│   │   │   ├── register-context.ts
│   │   │   └── webpack.config.js
│   │   ├── LICENSE
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── Account/
│   │   │   │   ├── Auth/
│   │   │   │   │   ├── AuthStyledComponents.tsx
│   │   │   │   │   ├── AuthTextComponents.tsx
│   │   │   │   │   ├── ConfirmEmailToken.tsx
│   │   │   │   │   ├── EmailAuth.stories.tsx
│   │   │   │   │   ├── EmailAuth.tsx
│   │   │   │   │   ├── EmailSent.tsx
│   │   │   │   │   ├── EthAuth.tsx
│   │   │   │   │   ├── UserSetAvatar.stories.tsx
│   │   │   │   │   ├── UserSetAvatar.tsx
│   │   │   │   │   ├── UserSetEmail.stories.tsx
│   │   │   │   │   ├── UserSetEmail.tsx
│   │   │   │   │   ├── UserSetHandle.tsx
│   │   │   │   │   ├── VerifyToken.stories.tsx
│   │   │   │   │   ├── VerifyToken.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       ├── EmailAuth.stories.storyshot
│   │   │   │   │       ├── EthAuth.stories.storyshot
│   │   │   │   │       ├── UserSetAvatar.stories.storyshot
│   │   │   │   │       ├── UserSetEmail.stories.storyshot
│   │   │   │   │       └── VerifyToken.stories.storyshot
│   │   │   │   ├── LoadUser.tsx
│   │   │   │   └── index.ts
│   │   │   ├── AddressWithCopyButton.tsx
│   │   │   ├── AddressWithMetaMaskIcon.tsx
│   │   │   ├── ApplicationPhaseStatusLabels.stories.tsx
│   │   │   ├── ApplicationPhaseStatusLabels.tsx
│   │   │   ├── AuthenticatedRoute.tsx
│   │   │   ├── BrowserCompatible/
│   │   │   │   ├── BrowserCompatible.stories.tsx
│   │   │   │   ├── BrowserCompatible.tsx
│   │   │   │   ├── BrowserCompatibleStyledComponents.tsx
│   │   │   │   ├── BrowserCompatibleTextComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── BrowserCompatible.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── Button.stories.tsx
│   │   │   ├── Button.tsx
│   │   │   ├── Card/
│   │   │   │   ├── Card.stories.tsx
│   │   │   │   ├── Card.tsx
│   │   │   │   ├── CardStyledComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Card.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── CardTransactionButton.tsx
│   │   │   ├── ChallengeResultsChart/
│   │   │   │   ├── ChallengeResults.stories.tsx
│   │   │   │   ├── ChallengeResults.tsx
│   │   │   │   ├── ChallengeResultsChartTextComponents.tsx
│   │   │   │   ├── UserVotingSummary.tsx
│   │   │   │   ├── VoteTypeSummaryRow.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ChallengeResults.stories.storyshot
│   │   │   │   ├── constants.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── types.d.ts
│   │   │   │   └── types.ts
│   │   │   ├── ChevronAnchor.stories.tsx
│   │   │   ├── ChevronAnchor.tsx
│   │   │   ├── ChevronAnchorLeft.tsx
│   │   │   ├── ClaimRewards.tsx
│   │   │   ├── ClipLoader.tsx
│   │   │   ├── Collapsable.stories.tsx
│   │   │   ├── Collapsable.tsx
│   │   │   ├── Comments/
│   │   │   │   ├── CommentsCount.tsx
│   │   │   │   ├── CommentsStyledComponents.tsx
│   │   │   │   └── index.ts
│   │   │   ├── Contributors/
│   │   │   │   ├── ContributorCount.tsx
│   │   │   │   ├── Contributors.stories.tsx
│   │   │   │   ├── Contributors.tsx
│   │   │   │   ├── ContributorsDefaultAvatar.tsx
│   │   │   │   ├── ContributorsStyledComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Contributors.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── types.ts
│   │   │   ├── CopyToClipboard/
│   │   │   │   ├── CopyStyledComponents.tsx
│   │   │   │   ├── CopyURL.stories.tsx
│   │   │   │   ├── CopyURL.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── CopyURL.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── CurrencyConverter/
│   │   │   │   ├── CurrencyConverted.tsx
│   │   │   │   ├── CurrencyConverter.stories.tsx
│   │   │   │   ├── CurrencyConverter.tsx
│   │   │   │   ├── CurrencyConverterStyledComponents.tsx
│   │   │   │   ├── CurrencyConverterTextComponents.tsx
│   │   │   │   ├── UsdEthConverter.tsx
│   │   │   │   ├── UsdEthCvlConverter.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── CurrencyConverter.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── DAppMessageContent/
│   │   │   │   ├── ErrorLoadingData.tsx
│   │   │   │   ├── ErrorNotFound.tsx
│   │   │   │   ├── InsufficientCVL.tsx
│   │   │   │   ├── WrongNetwork.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── textComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── DetailTransactionButton.stories.tsx
│   │   │   ├── DetailTransactionButton.tsx
│   │   │   ├── DetailsButtonComponent.tsx
│   │   │   ├── EmailSignup/
│   │   │   │   ├── EmailSignup.stories.tsx
│   │   │   │   ├── EmailSignup.tsx
│   │   │   │   ├── EmailSignupSuccess.tsx
│   │   │   │   ├── EmailStyledComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── EmailSignup.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── EthAddressViewer/
│   │   │   │   ├── EthAddressViewer.stories.tsx
│   │   │   │   ├── EthAddressViewer.tsx
│   │   │   │   ├── StyledEthAddressViewer.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── EthAddressViewer.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── ExecuteOnMount.tsx
│   │   │   ├── FullscreenModal.tsx
│   │   │   ├── GasEstimate.tsx
│   │   │   ├── Heading.stories.tsx
│   │   │   ├── Heading.tsx
│   │   │   ├── HelmetHelper.tsx
│   │   │   ├── Hero/
│   │   │   │   ├── Hero.stories.tsx
│   │   │   │   ├── Hero.tsx
│   │   │   │   ├── HeroStyledComponents.tsx
│   │   │   │   ├── HeroTextComponents.tsx
│   │   │   │   ├── HomepageHero.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Hero.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── Layout/
│   │   │   │   ├── index.ts
│   │   │   │   └── styledComponents.tsx
│   │   │   ├── ListingDetailHeader/
│   │   │   │   ├── EthereumInfoModal.tsx
│   │   │   │   ├── ListingDetailHeader.stories.tsx
│   │   │   │   ├── ListingDetailHeader.tsx
│   │   │   │   ├── ListingDetailHeaderStyledComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ListingDetailHeader.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── ListingDetailPhaseCard/
│   │   │   │   ├── AppealAwaitingDecisionCard.tsx
│   │   │   │   ├── AppealChallengeCommitVoteCard.tsx
│   │   │   │   ├── AppealChallengeResolveCard.tsx
│   │   │   │   ├── AppealChallengeRevealVoteCard.tsx
│   │   │   │   ├── AppealDecisionCard.tsx
│   │   │   │   ├── AppealDecisionDetail.tsx
│   │   │   │   ├── AppealResolveCard.tsx
│   │   │   │   ├── ChallengeCommitVoteCard.tsx
│   │   │   │   ├── ChallengePhaseDetail.tsx
│   │   │   │   ├── ChallengeRequestAppealCard.tsx
│   │   │   │   ├── ChallengeResolveCard.tsx
│   │   │   │   ├── ChallengeRevealVoteCard.tsx
│   │   │   │   ├── CommitVote.tsx
│   │   │   │   ├── CompleteChallengeResults.tsx
│   │   │   │   ├── InApplicationCard.tsx
│   │   │   │   ├── InApplicationResolveCard.tsx
│   │   │   │   ├── ListingDetailsPhaseCard.stories.tsx
│   │   │   │   ├── NeedHelp.tsx
│   │   │   │   ├── RejectedCard.tsx
│   │   │   │   ├── RevealVote.tsx
│   │   │   │   ├── SaltField.tsx
│   │   │   │   ├── VoteButton.tsx
│   │   │   │   ├── WhitelistedCard.tsx
│   │   │   │   ├── WithdrawnCard.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ListingDetailsPhaseCard.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── textComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── ListingHistoryEvent/
│   │   │   │   ├── AppealGrantedEvent.tsx
│   │   │   │   ├── AppealRequestedEvent.tsx
│   │   │   │   ├── ApplicationEvent.tsx
│   │   │   │   ├── ChallengeEvent.tsx
│   │   │   │   ├── ChallengeFailedEvent.tsx
│   │   │   │   ├── ChallengeSucceededEvent.tsx
│   │   │   │   ├── DepositEvent.tsx
│   │   │   │   ├── EventDate.tsx
│   │   │   │   ├── GrantedAppealChallengedEvent.tsx
│   │   │   │   ├── ListingHistoryEvent.stories.tsx
│   │   │   │   ├── ListingHistoryEvent.tsx
│   │   │   │   ├── ListingWithdrawnEvent.tsx
│   │   │   │   ├── RejectedEvent.tsx
│   │   │   │   ├── TouchAndRemovedEvent.tsx
│   │   │   │   ├── WhitelistedEvent.tsx
│   │   │   │   ├── WithdrawalEvent.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ListingHistoryEvent.stories.storyshot
│   │   │   │   ├── constants.ts
│   │   │   │   ├── index.tsx
│   │   │   │   └── types.ts
│   │   │   ├── ListingSummary/
│   │   │   │   ├── AppealJudgementBanner.tsx
│   │   │   │   ├── ChallengeOrAppealStatementSummary.tsx
│   │   │   │   ├── ChallengeResults.tsx
│   │   │   │   ├── ChallengeResultsBanner.tsx
│   │   │   │   ├── DepositOrStakeAmount.tsx
│   │   │   │   ├── ListingPhaseLabel.tsx
│   │   │   │   ├── ListingSummary.stories.tsx
│   │   │   │   ├── ListingSummary.tsx
│   │   │   │   ├── ListingSummaryApproved.tsx
│   │   │   │   ├── ListingSummaryBase.tsx
│   │   │   │   ├── ListingSummaryList.tsx
│   │   │   │   ├── ListingSummaryReadyToUpdate.tsx
│   │   │   │   ├── ListingSummaryRejected.tsx
│   │   │   │   ├── ListingSummaryUnderChallenge.tsx
│   │   │   │   ├── NewsroomInfo.tsx
│   │   │   │   ├── NewsroomTagline.tsx
│   │   │   │   ├── PhaseCountdownOrTimestamp.tsx
│   │   │   │   ├── SummaryActionButton.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ListingSummary.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── textComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── LoadingIndicator.stories.tsx
│   │   │   ├── LoadingIndicator.tsx
│   │   │   ├── LoadingMessage.stories.tsx
│   │   │   ├── LoadingMessage.tsx
│   │   │   ├── Message.stories.tsx
│   │   │   ├── Message.tsx
│   │   │   ├── MetaMaskLogoButton.tsx
│   │   │   ├── MetaMaskModal.stories.tsx
│   │   │   ├── MetaMaskModal.tsx
│   │   │   ├── Modal.stories.tsx
│   │   │   ├── Modal.tsx
│   │   │   ├── ModalContent.stories.tsx
│   │   │   ├── ModalContent.tsx
│   │   │   ├── NavBar/
│   │   │   │   └── __snapshots__/
│   │   │   │       └── NavBar.stories.storyshot
│   │   │   ├── Notice/
│   │   │   │   ├── Notice.stories.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Notice.stories.storyshot
│   │   │   │   └── index.tsx
│   │   │   ├── Parameterizer/
│   │   │   │   ├── ChallengeProposal.tsx
│   │   │   │   ├── ChallengeProposalCommitVote.tsx
│   │   │   │   ├── ChallengeProposalRevealVote.tsx
│   │   │   │   ├── ChallengeProposalReviewVote.tsx
│   │   │   │   ├── CreateGovtProposal.tsx
│   │   │   │   ├── CreateProposal.tsx
│   │   │   │   ├── Parameterizer.stories.tsx
│   │   │   │   ├── ParameterizerStyledComponents.tsx
│   │   │   │   ├── ParameterizerTableCell.tsx
│   │   │   │   ├── ProcessProposal.tsx
│   │   │   │   ├── ResolveChallengeProposal.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Parameterizer.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── textComponents.tsx
│   │   │   ├── Payments/
│   │   │   │   ├── AvatarLogin.tsx
│   │   │   │   ├── PaymentIntentsStripeForm.tsx
│   │   │   │   ├── Payments.stories.tsx
│   │   │   │   ├── Payments.tsx
│   │   │   │   ├── PaymentsAmount.tsx
│   │   │   │   ├── PaymentsApplePay.tsx
│   │   │   │   ├── PaymentsEth.tsx
│   │   │   │   ├── PaymentsEthForm.tsx
│   │   │   │   ├── PaymentsEthUpdateAmount.tsx
│   │   │   │   ├── PaymentsEthWrapper.tsx
│   │   │   │   ├── PaymentsFormWrapper.tsx
│   │   │   │   ├── PaymentsGooglePay.tsx
│   │   │   │   ├── PaymentsInputValidationUI.tsx
│   │   │   │   ├── PaymentsLoadStripePayRequest.tsx
│   │   │   │   ├── PaymentsLoginOrGuest.tsx
│   │   │   │   ├── PaymentsModal.tsx
│   │   │   │   ├── PaymentsRadio.tsx
│   │   │   │   ├── PaymentsRequest.tsx
│   │   │   │   ├── PaymentsSelectType.tsx
│   │   │   │   ├── PaymentsStripe.tsx
│   │   │   │   ├── PaymentsStripeCardComponent.tsx
│   │   │   │   ├── PaymentsStripeForm.tsx
│   │   │   │   ├── PaymentsStripeFormSavedCard.tsx
│   │   │   │   ├── PaymentsStyledComponents.tsx
│   │   │   │   ├── PaymentsSuccess.tsx
│   │   │   │   ├── PaymentsTextComponents.tsx
│   │   │   │   ├── PaymentsWrapper.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Payments.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── queries.ts
│   │   │   │   └── types.ts
│   │   │   ├── PhaseCountdown/
│   │   │   │   ├── PhaseCountdown.stories.tsx
│   │   │   │   ├── ProgressBarCountdownTimer.tsx
│   │   │   │   ├── SmallProgressBarCountdownTimer.tsx
│   │   │   │   ├── TextCountdownTimer.tsx
│   │   │   │   ├── TwoPhaseProgressBarCountdownTimer.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── PhaseCountdown.stories.storyshot
│   │   │   │   ├── constants.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── textComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── ProgressModalContent.tsx
│   │   │   ├── QuestionToolTip.stories.tsx
│   │   │   ├── QuestionToolTip.tsx
│   │   │   ├── RegistryEmpty/
│   │   │   │   ├── index.ts
│   │   │   │   └── styledComponents.tsx
│   │   │   ├── RescueTokens.tsx
│   │   │   ├── ReviewVote/
│   │   │   │   ├── ReviewVote.stories.tsx
│   │   │   │   ├── ReviewVoteModal.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ReviewVote.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   └── textComponents.tsx
│   │   │   ├── Share/
│   │   │   │   ├── Share.stories.tsx
│   │   │   │   └── __snapshots__/
│   │   │   │       └── Share.stories.storyshot
│   │   │   ├── SignConstitutionButton.stories.tsx
│   │   │   ├── SignConstitutionButton.tsx
│   │   │   ├── SnackBar/
│   │   │   │   ├── SnackBar.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── styledComponents.tsx
│   │   │   ├── StepProcess/
│   │   │   │   ├── StepHeader.tsx
│   │   │   │   ├── StepProcess.stories.tsx
│   │   │   │   ├── StepProcess.tsx
│   │   │   │   ├── StepProcessTopNav/
│   │   │   │   │   ├── Step.tsx
│   │   │   │   │   ├── StepProcessTopNav.stories.tsx
│   │   │   │   │   ├── StepProcessTopNav.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── StepProcessTopNav.stories.storyshot
│   │   │   │   │   └── index.ts
│   │   │   │   ├── StepProcessTopNavNoButtons/
│   │   │   │   │   ├── Step.tsx
│   │   │   │   │   ├── StepProcessTopNav.stories.tsx
│   │   │   │   │   ├── StepProcessTopNavNoButtons.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── StepProcessTopNav.stories.storyshot
│   │   │   │   │   └── index.ts
│   │   │   │   ├── StepStyled.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── StepProcess.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── StoryFeed/
│   │   │   │   ├── StoryNewsroomStatus.tsx
│   │   │   │   └── index.ts
│   │   │   ├── TCRUserDashboard/
│   │   │   │   ├── Dashboard.tsx
│   │   │   │   ├── DashboardActivity.tsx
│   │   │   │   ├── DashboardActivityItem.tsx
│   │   │   │   ├── DashboardActivityItemCTAButton.tsx
│   │   │   │   ├── DashboardActivityItemTask.tsx
│   │   │   │   ├── DashboardActivityItemTitle.tsx
│   │   │   │   ├── DashboardActivityProposalItemCTAButton.tsx
│   │   │   │   ├── DashboardActivitySelectableItem.tsx
│   │   │   │   ├── DashboardActivityTabTitle.tsx
│   │   │   │   ├── DashboardNewsroom.tsx
│   │   │   │   ├── DashboardNewsroomProceeds.tsx
│   │   │   │   ├── DashboardNewsroomStripeConnect.tsx
│   │   │   │   ├── DashboardNewsroomSubmitLink.tsx
│   │   │   │   ├── DashboardStyledComponents.tsx
│   │   │   │   ├── DashboardTextComponents.tsx
│   │   │   │   ├── DashboardTransferTokenForm.tsx
│   │   │   │   ├── DashboardTypes.ts
│   │   │   │   ├── DashboardUserInfoSummary.tsx
│   │   │   │   ├── DashboardUserProfileSummary.tsx
│   │   │   │   ├── NoNewsrooms.tsx
│   │   │   │   └── index.ts
│   │   │   ├── Table/
│   │   │   │   ├── Table.stories.tsx
│   │   │   │   ├── Table.tsx
│   │   │   │   ├── TableCell.tsx
│   │   │   │   ├── TableHeader.tsx
│   │   │   │   ├── Tr.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Table.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── Tabs/
│   │   │   │   ├── Tab.tsx
│   │   │   │   ├── TabTitles.tsx
│   │   │   │   ├── Tabs.stories.tsx
│   │   │   │   ├── Tabs.tsx
│   │   │   │   ├── TabsStyled.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Tabs.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── textComponents.tsx
│   │   │   ├── Tokens/
│   │   │   │   ├── EthereumTransactionButton.tsx
│   │   │   │   ├── TokenPurchaseSummary.tsx
│   │   │   │   ├── Tokens.tsx
│   │   │   │   ├── TokensAccount.stories.tsx
│   │   │   │   ├── TokensAccountBuy.tsx
│   │   │   │   ├── TokensAccountFaq.tsx
│   │   │   │   ├── TokensAccountHelp.tsx
│   │   │   │   ├── TokensAccountPaypal.tsx
│   │   │   │   ├── TokensAccountProgress.tsx
│   │   │   │   ├── TokensAccountRequirement.tsx
│   │   │   │   ├── TokensAccountSignup.tsx
│   │   │   │   ├── TokensStyledComponents.tsx
│   │   │   │   ├── TokensTextComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── TokensAccount.stories.storyshot
│   │   │   │   ├── buy/
│   │   │   │   │   ├── AirswapBuyCVL.tsx
│   │   │   │   │   ├── AirswapBuySection.tsx
│   │   │   │   │   ├── TokensTabBuy.stories.tsx
│   │   │   │   │   ├── TokensTabBuy.tsx
│   │   │   │   │   ├── TokensTabBuyActive.tsx
│   │   │   │   │   ├── TokensTabBuyComplete.tsx
│   │   │   │   │   ├── UniswapBuy.tsx
│   │   │   │   │   ├── UniswapBuySection.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       └── TokensTabBuy.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── sell/
│   │   │   │       ├── TokensTabSell.stories.tsx
│   │   │   │       ├── TokensTabSell.tsx
│   │   │   │       ├── TokensTabSellActive.tsx
│   │   │   │       ├── TokensTabSellComplete.tsx
│   │   │   │       ├── UniswapCvlEthConverter.tsx
│   │   │   │       ├── UniswapSell.tsx
│   │   │   │       ├── UniswapSellSection.tsx
│   │   │   │       └── __snapshots__/
│   │   │   │           └── TokensTabSell.stories.storyshot
│   │   │   ├── ToolTip.tsx
│   │   │   ├── TransactionButton.tsx
│   │   │   ├── Tutorial/
│   │   │   │   ├── Tutorial.stories.tsx
│   │   │   │   ├── TutorialFooter.tsx
│   │   │   │   ├── TutorialInfo.tsx
│   │   │   │   ├── TutorialProgress.tsx
│   │   │   │   ├── TutorialQuestion.tsx
│   │   │   │   ├── TutorialRadio.tsx
│   │   │   │   ├── TutorialStyledComponents.tsx
│   │   │   │   ├── TutorialTextComponents.tsx
│   │   │   │   ├── TutorialTopicCompleted.tsx
│   │   │   │   ├── TutorialTopicIntro.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Tutorial.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── UserStatement/
│   │   │   │   ├── RequestAppealStatement.tsx
│   │   │   │   ├── SubmitAppealChallengeStatement.tsx
│   │   │   │   ├── SubmitChallengeStatement.tsx
│   │   │   │   ├── UserStatement.stories.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── UserStatement.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── styledComponents.tsx
│   │   │   ├── ViewTransactionLink.stories.tsx
│   │   │   ├── ViewTransactionLink.tsx
│   │   │   ├── WalletOnboarding.stories.tsx
│   │   │   ├── WalletOnboarding.tsx
│   │   │   ├── WalletOnboardingV2/
│   │   │   │   ├── WalletOnboardingV2.connected.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.decorator.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.disabled.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.locked.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.mismatch.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.network.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.provider.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.save.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── WalletOnboardingV2.connected.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.disabled.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.locked.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.mismatch.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.network.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.provider.stories.storyshot
│   │   │   │   │   └── WalletOnboardingV2.save.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── WithNewsroomChannelHOC.tsx
│   │   │   ├── __mocks__/
│   │   │   │   └── fileMock.js
│   │   │   ├── __snapshots__/
│   │   │   │   ├── ApplicationPhaseStatusLabels.stories.storyshot
│   │   │   │   ├── Button.stories.storyshot
│   │   │   │   ├── ChevronAnchor.stories.storyshot
│   │   │   │   ├── ClipLoader.stories.storyshot
│   │   │   │   ├── Collapsable.stories.storyshot
│   │   │   │   ├── DetailTransactionButton.stories.storyshot
│   │   │   │   ├── Heading.stories.storyshot
│   │   │   │   ├── LoadingIndicator.stories.storyshot
│   │   │   │   ├── LoadingMessage.stories.storyshot
│   │   │   │   ├── Message.stories.storyshot
│   │   │   │   ├── MetaMaskModal.stories.storyshot
│   │   │   │   ├── Modal.stories.storyshot
│   │   │   │   ├── ModalContent.stories.storyshot
│   │   │   │   ├── QuestionToolTip.stories.storyshot
│   │   │   │   ├── ViewTransactionLink.stories.storyshot
│   │   │   │   └── WalletOnboarding.stories.storyshot
│   │   │   ├── __test__/
│   │   │   │   ├── setupTests.ts
│   │   │   │   └── storyshot.test.ts
│   │   │   ├── containers/
│   │   │   │   ├── ButtonActions.tsx
│   │   │   │   ├── PaddedSection.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── context/
│   │   │   │   ├── AuthService.ts
│   │   │   │   ├── CivilContext.ts
│   │   │   │   ├── CivilProvider.tsx
│   │   │   │   ├── IdentityParentPlugin.ts
│   │   │   │   └── index.ts
│   │   │   ├── features/
│   │   │   │   ├── FeatureFlag.tsx
│   │   │   │   └── index.ts
│   │   │   ├── hooks/
│   │   │   │   ├── useAsyncEffect.ts
│   │   │   │   ├── useIntervalEffect.ts
│   │   │   │   └── useStateWithLocalStorage.ts
│   │   │   ├── icons/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── icon.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── logos/
│   │   │   │       ├── Paypal.tsx
│   │   │   │       └── index.ts
│   │   │   ├── imageUrls.ts
│   │   │   ├── index.ts
│   │   │   ├── input/
│   │   │   │   ├── AddressInput.stories.tsx
│   │   │   │   ├── AddressInput.tsx
│   │   │   │   ├── Checkbox.tsx
│   │   │   │   ├── Dropdown.stories.tsx
│   │   │   │   ├── Dropdown.tsx
│   │   │   │   ├── ImageFileToDataUri.tsx
│   │   │   │   ├── Input.stories.tsx
│   │   │   │   ├── Input.tsx
│   │   │   │   ├── InputGroup.tsx
│   │   │   │   ├── InputWithButton.tsx
│   │   │   │   ├── RadioInput.tsx
│   │   │   │   ├── SaltInput.tsx
│   │   │   │   ├── SimpleImageFileToDataUri.tsx
│   │   │   │   ├── SlideCheckbox.tsx
│   │   │   │   ├── SubmitLink.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── AddressInput.stories.storyshot
│   │   │   │   │   ├── Dropdown.stories.storyshot
│   │   │   │   │   ├── Input.stories.storyshot
│   │   │   │   │   └── checkbox.stories.storyshot
│   │   │   │   ├── checkbox.stories.tsx
│   │   │   │   └── index.ts
│   │   │   ├── onboardingStyledComponents.tsx
│   │   │   ├── styleConstants.ts
│   │   │   ├── theme.ts
│   │   │   └── types.d.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── contracts/
│   │   ├── .doxityrc
│   │   ├── .gitignore
│   │   ├── .soliumignore
│   │   ├── .soliumrc.json
│   │   ├── README.md
│   │   ├── conf/
│   │   │   └── config.json
│   │   ├── contracts/
│   │   │   ├── Migrations.sol
│   │   │   ├── RootCommits/
│   │   │   │   └── RootCommits.sol
│   │   │   ├── installed_contracts/
│   │   │   │   ├── AttributeStore.sol
│   │   │   │   ├── DLL.sol
│   │   │   │   ├── PLCRVoting.sol
│   │   │   │   └── Parameterizer.sol
│   │   │   ├── interfaces/
│   │   │   │   ├── IGovernment.sol
│   │   │   │   └── IMultiSigWalletFactory.sol
│   │   │   ├── multisig/
│   │   │   │   ├── Factory.sol
│   │   │   │   ├── MultiSigWallet.sol
│   │   │   │   └── MultiSigWalletFactory.sol
│   │   │   ├── newsroom/
│   │   │   │   ├── ACL.sol
│   │   │   │   ├── EventStorage.sol
│   │   │   │   ├── Newsroom.sol
│   │   │   │   └── NewsroomFactory.sol
│   │   │   ├── proof-of-use/
│   │   │   │   └── telemetry/
│   │   │   │       └── TokenTelemetryI.sol
│   │   │   ├── tcr/
│   │   │   │   ├── AddressRegistry.sol
│   │   │   │   ├── CivilPLCRVoting.sol
│   │   │   │   ├── CivilParameterizer.sol
│   │   │   │   ├── CivilTCR.sol
│   │   │   │   ├── ContractAddressRegistry.sol
│   │   │   │   ├── Government.sol
│   │   │   │   └── RestrictedAddressRegistry.sol
│   │   │   ├── test/
│   │   │   │   ├── DummyACL.sol
│   │   │   │   └── DummyTokenTelemetry.sol
│   │   │   ├── token/
│   │   │   │   ├── CVLToken.sol
│   │   │   │   ├── CivilTokenController.sol
│   │   │   │   ├── ERC1404/
│   │   │   │   │   ├── ERC1404.sol
│   │   │   │   │   └── MessagesAndCodes.sol
│   │   │   │   ├── Managed.sol
│   │   │   │   ├── ManagedWhitelist.sol
│   │   │   │   └── NoOpTokenController.sol
│   │   │   ├── ux/
│   │   │   │   └── CreateNewsroomInGroup.sol
│   │   │   └── zeppelin-solidity/
│   │   │       ├── ECRecovery.sol
│   │   │       ├── README.md
│   │   │       ├── access/
│   │   │       │   ├── Whitelist.sol
│   │   │       │   └── rbac/
│   │   │       │       ├── RBAC.sol
│   │   │       │       └── Roles.sol
│   │   │       ├── license/
│   │   │       │   └── LICENSE
│   │   │       ├── math/
│   │   │       │   └── SafeMath.sol
│   │   │       ├── ownership/
│   │   │       │   └── Ownable.sol
│   │   │       └── token/
│   │   │           └── ERC20/
│   │   │               ├── ERC20.sol
│   │   │               ├── ERC20Detailed.sol
│   │   │               └── IERC20.sol
│   │   ├── docs/
│   │   │   ├── CivilTCR.md
│   │   │   └── Newsroom.md
│   │   ├── ethpm.json
│   │   ├── licenses/
│   │   │   ├── LICENSE-general
│   │   │   └── LICENSE-tcr
│   │   ├── migrations/
│   │   │   ├── 10_government.ts
│   │   │   ├── 11_deploy_ecrecovery.ts
│   │   │   ├── 12_registry.ts
│   │   │   ├── 14_multisig_factory.ts
│   │   │   ├── 15_newsroom_factory.ts
│   │   │   ├── 16_add_test_listings.ts
│   │   │   ├── 17_deploy_eventstorage.ts
│   │   │   ├── 19_create_newsroom_in_group.ts
│   │   │   ├── 1_migrations.ts
│   │   │   ├── 20_government_take2.ts
│   │   │   ├── 21_deploy_root_commits.ts
│   │   │   ├── 2_optional_for_test.ts
│   │   │   ├── 3_deploy_libs.ts
│   │   │   ├── 8_deploy_plcr.ts
│   │   │   ├── 9_deploy_parameterizer.ts
│   │   │   └── utils/
│   │   │       ├── consts.ts
│   │   │       └── index.ts
│   │   ├── package.json
│   │   ├── test/
│   │   │   ├── .gitkeep
│   │   │   ├── global_hooks.ts
│   │   │   ├── modules.d.ts
│   │   │   ├── multisig/
│   │   │   │   └── multsigwallet.ts
│   │   │   ├── newsroom/
│   │   │   │   ├── ACL.ts
│   │   │   │   ├── eventStorage.ts
│   │   │   │   ├── newsroom.ts
│   │   │   │   └── newsroomFactory.ts
│   │   │   ├── tcr/
│   │   │   │   ├── contractRegistry/
│   │   │   │   │   └── apply.ts
│   │   │   │   ├── government/
│   │   │   │   │   ├── get.ts
│   │   │   │   │   ├── getAppellate.ts
│   │   │   │   │   ├── getGovernmentController.ts
│   │   │   │   │   ├── processProposal.ts
│   │   │   │   │   ├── proposeReparameterization.ts
│   │   │   │   │   ├── setAppellate.ts
│   │   │   │   │   └── setNewConstitution.ts
│   │   │   │   ├── parameterizer/
│   │   │   │   │   ├── canBeSet.ts
│   │   │   │   │   ├── challengeCanBeResolved.ts
│   │   │   │   │   ├── challengeReparameterization.ts
│   │   │   │   │   ├── claimReward.ts
│   │   │   │   │   ├── get.ts
│   │   │   │   │   ├── processProposal.ts
│   │   │   │   │   ├── propExists.ts
│   │   │   │   │   ├── proposeReparameterization.ts
│   │   │   │   │   ├── voterReward.ts
│   │   │   │   │   └── voting.ts
│   │   │   │   ├── plcrVoting/
│   │   │   │   │   ├── commitVote.ts
│   │   │   │   │   ├── didCommit.ts
│   │   │   │   │   ├── didReveal.ts
│   │   │   │   │   └── revealVote.ts
│   │   │   │   ├── registry/
│   │   │   │   │   ├── appWasMade.ts
│   │   │   │   │   ├── apply.ts
│   │   │   │   │   ├── challenge.ts
│   │   │   │   │   ├── claimReward.ts
│   │   │   │   │   ├── deposit.ts
│   │   │   │   │   ├── exit.ts
│   │   │   │   │   ├── hasClaimedTokens.ts
│   │   │   │   │   ├── isWhitelisted.ts
│   │   │   │   │   ├── tokenClaims.ts
│   │   │   │   │   ├── updateStatus.ts
│   │   │   │   │   ├── userStories.ts
│   │   │   │   │   └── withdraw.ts
│   │   │   │   ├── registryWithAppeals/
│   │   │   │   │   ├── allUserRewards.ts
│   │   │   │   │   ├── appealCanBeResolved.ts
│   │   │   │   │   ├── appealChallengeCanBeResolved.ts
│   │   │   │   │   ├── appealChallengeReward.ts
│   │   │   │   │   ├── apply.ts
│   │   │   │   │   ├── challenge.ts
│   │   │   │   │   ├── challengeCanBeResolved.ts
│   │   │   │   │   ├── challengeGrantedAppeal.ts
│   │   │   │   │   ├── checkAppealChallengeVoteOutcomes.ts
│   │   │   │   │   ├── claimAppealChallengeReward.ts
│   │   │   │   │   ├── claimReward.ts
│   │   │   │   │   ├── grantAppeal.ts
│   │   │   │   │   ├── hasClaimedChallengeAppealTokens.ts
│   │   │   │   │   ├── isWhitelisted.ts
│   │   │   │   │   ├── requestAppeal.ts
│   │   │   │   │   ├── transferGovernment.ts
│   │   │   │   │   ├── updateStatus.ts
│   │   │   │   │   └── voterReward.ts
│   │   │   │   └── restrictedRegistry/
│   │   │   │       └── apply.ts
│   │   │   ├── token/
│   │   │   │   ├── CVLToken.ts
│   │   │   │   ├── CivilTokenController.ts
│   │   │   │   └── DisbursementHander.ts
│   │   │   └── utils/
│   │   │       ├── constants.ts
│   │   │       ├── contractutils.ts
│   │   │       ├── coverage.ts
│   │   │       └── getethapi.ts
│   │   ├── truffle-config.js
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── core/
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── doc/
│   │   │   └── examples/
│   │   │       ├── example.ts
│   │   │       └── low-level/
│   │   │           ├── multisig.ts
│   │   │           └── typed_contracts.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── FeatureFlagService.ts
│   │   │   ├── UniswapService.ts
│   │   │   ├── civil.ts
│   │   │   ├── content/
│   │   │   │   ├── contentprovider.ts
│   │   │   │   ├── eventstorageprovider.ts
│   │   │   │   ├── fallbackprovider.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── inmemoryprovider.ts
│   │   │   │   └── ipfsprovider.ts
│   │   │   ├── contracts/
│   │   │   │   ├── basecontract.ts
│   │   │   │   ├── basewrapper.ts
│   │   │   │   ├── interfaces/
│   │   │   │   │   ├── contract.ts
│   │   │   │   │   └── ownable.ts
│   │   │   │   ├── multisig/
│   │   │   │   │   ├── basemultisigproxy.ts
│   │   │   │   │   ├── multisig.ts
│   │   │   │   │   └── multisigtransaction.ts
│   │   │   │   ├── newsroom.ts
│   │   │   │   ├── tcr/
│   │   │   │   │   ├── appeal.ts
│   │   │   │   │   ├── appealChallenge.ts
│   │   │   │   │   ├── challenge.ts
│   │   │   │   │   ├── civilTCR.ts
│   │   │   │   │   ├── council.ts
│   │   │   │   │   ├── cvltoken.ts
│   │   │   │   │   ├── government.ts
│   │   │   │   │   ├── listing.ts
│   │   │   │   │   ├── parameterizer.ts
│   │   │   │   │   └── voting.ts
│   │   │   │   └── utils/
│   │   │   │       └── contracts.ts
│   │   │   ├── globals.d.ts
│   │   │   ├── index.ts
│   │   │   ├── templates/
│   │   │   │   ├── artifacts.handlebars
│   │   │   │   ├── contract/
│   │   │   │   │   ├── contract.handlebars
│   │   │   │   │   ├── multisigproxy.handlebars
│   │   │   │   │   └── partials/
│   │   │   │   │       ├── call.handlebars
│   │   │   │   │       ├── constructor.handlebars
│   │   │   │   │       ├── event.handlebars
│   │   │   │   │       ├── event_types.handlebars
│   │   │   │   │       ├── params.handlebars
│   │   │   │   │       ├── proxy_tx.handlebars
│   │   │   │   │       ├── return_type.handlebars
│   │   │   │   │       ├── tx.handlebars
│   │   │   │   │       └── typed_inputs.handlebars
│   │   │   │   └── events.handlebars
│   │   │   ├── types.ts
│   │   │   └── utils/
│   │   │       ├── ethersHelpers.ts
│   │   │       └── events.ts
│   │   ├── test/
│   │   │   └── .gitkeep
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── dapp/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── config-overrides.js
│   │   ├── devops/
│   │   │   ├── nginx.conf
│   │   │   └── start.sh
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── .well-known/
│   │   │   │   └── apple-developer-merchantid-domain-association
│   │   │   ├── index.html
│   │   │   └── manifest.json
│   │   ├── src/
│   │   │   ├── App.test.tsx
│   │   │   ├── App.tsx
│   │   │   ├── apis/
│   │   │   │   └── CivilHelper.tsx
│   │   │   ├── components/
│   │   │   │   ├── Auth/
│   │   │   │   │   ├── AuthButtonContent.tsx
│   │   │   │   │   ├── AuthLogout.tsx
│   │   │   │   │   ├── AuthWeb3.tsx
│   │   │   │   │   ├── AuthWeb3Login.tsx
│   │   │   │   │   ├── AuthWeb3Signup.tsx
│   │   │   │   │   ├── CheckEmail.tsx
│   │   │   │   │   ├── ConfirmEmail.tsx
│   │   │   │   │   ├── Eth.tsx
│   │   │   │   │   ├── Login.tsx
│   │   │   │   │   ├── SetAvatar.tsx
│   │   │   │   │   ├── SetEmail.tsx
│   │   │   │   │   ├── SetUsername.tsx
│   │   │   │   │   ├── Signup.tsx
│   │   │   │   │   ├── VerifyToken.tsx
│   │   │   │   │   ├── authStyledComponents.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── Boosts/
│   │   │   │   │   ├── Boost.tsx
│   │   │   │   │   ├── BoostFeedPage.tsx
│   │   │   │   │   ├── BoostStyledComponents.tsx
│   │   │   │   │   ├── BoostSuccess.tsx
│   │   │   │   │   └── BoostSuccessComponent.tsx
│   │   │   │   ├── ContractAddresses.tsx
│   │   │   │   ├── Dashboard/
│   │   │   │   │   ├── Account/
│   │   │   │   │   │   ├── Account.tsx
│   │   │   │   │   │   ├── AccountAddCard.tsx
│   │   │   │   │   │   ├── AccountPayments.tsx
│   │   │   │   │   │   ├── AccountProfile.tsx
│   │   │   │   │   │   ├── AccountStyledComponents.tsx
│   │   │   │   │   │   ├── AccountTextComponents.tsx
│   │   │   │   │   │   ├── AccountTransactions.tsx
│   │   │   │   │   │   ├── AccountUserAvatarUpdate.tsx
│   │   │   │   │   │   └── AccountUserEmailUpdate.tsx
│   │   │   │   │   ├── ActivityListItemRescueTokens.tsx
│   │   │   │   │   ├── ChallengeSummary.tsx
│   │   │   │   │   ├── ChallengesWithRewardsToClaim.tsx
│   │   │   │   │   ├── ChallengesWithTokensToRescue.tsx
│   │   │   │   │   ├── ClaimRewardsItem/
│   │   │   │   │   │   ├── ClaimRewardsItem.tsx
│   │   │   │   │   │   ├── ClaimRewardsItemWrapper.tsx
│   │   │   │   │   │   ├── ClaimRewardsViewComponents.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── Dashboard.tsx
│   │   │   │   │   ├── DashboardActivity.tsx
│   │   │   │   │   ├── DashboardPage.tsx
│   │   │   │   │   ├── DepositTokens.tsx
│   │   │   │   │   ├── ManageNewsroom/
│   │   │   │   │   │   ├── ManageNewsroom.tsx
│   │   │   │   │   │   ├── ManageNewsroomChannelPage.tsx
│   │   │   │   │   │   ├── ManageNewsroomStyledComponents.tsx
│   │   │   │   │   │   ├── ManageNewsroomTextComponents.tsx
│   │   │   │   │   │   └── WithNewsroomChannelAdminList.tsx
│   │   │   │   │   ├── MyChallengeItem/
│   │   │   │   │   │   ├── MyChallengesItem.tsx
│   │   │   │   │   │   ├── MyChallengesItemComponent.tsx
│   │   │   │   │   │   ├── MyChallengesItemTypes.ts
│   │   │   │   │   │   ├── MyChallengesItemWrapper.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── MyChallenges.tsx
│   │   │   │   │   ├── MyTasks.tsx
│   │   │   │   │   ├── MyTasksItem/
│   │   │   │   │   │   ├── MyTasksItem.tsx
│   │   │   │   │   │   ├── MyTasksItemComponent.tsx
│   │   │   │   │   │   ├── MyTasksItemTypes.ts
│   │   │   │   │   │   ├── MyTasksItemWrapper.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── MyTasksItemPhaseCountdown.tsx
│   │   │   │   │   ├── MyTasksList.tsx
│   │   │   │   │   ├── MyTasksProposalItem/
│   │   │   │   │   │   ├── MyTasksProposalItem.tsx
│   │   │   │   │   │   ├── MyTasksProposalItemComponent.tsx
│   │   │   │   │   │   ├── MyTasksProposalItemTypes.ts
│   │   │   │   │   │   ├── MyTasksProposalItemWrapper.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── NewsroomsList.tsx
│   │   │   │   │   ├── NewsroomsListItem.tsx
│   │   │   │   │   ├── NewsroomsListItemComponent.tsx
│   │   │   │   │   ├── PhaseCountdownTimer.tsx
│   │   │   │   │   ├── ProposalChallengeSummary.tsx
│   │   │   │   │   ├── ReclaimTokens.tsx
│   │   │   │   │   ├── RescueTokensItem/
│   │   │   │   │   │   ├── RescueTokensItem.tsx
│   │   │   │   │   │   ├── RescueTokensItemWrapper.tsx
│   │   │   │   │   │   ├── RescueTokensViewComponents.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── TransferCivilTokens.tsx
│   │   │   │   │   ├── UserInfoSummary.tsx
│   │   │   │   │   ├── UserManagement/
│   │   │   │   │   │   ├── UserManagementNotification.tsx
│   │   │   │   │   │   ├── UserManagementPageLayout.tsx
│   │   │   │   │   │   ├── UserManagementSection.tsx
│   │   │   │   │   │   ├── UserManagementStyledComponents.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── UserProfileSummary.tsx
│   │   │   │   │   ├── WinningChallengeResults.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── GetStarted.tsx
│   │   │   │   ├── GlobalNav.tsx
│   │   │   │   ├── Main.tsx
│   │   │   │   ├── Parameterizer/
│   │   │   │   │   ├── ChallengeProposal.tsx
│   │   │   │   │   ├── ChallengeProposalCommitVote.tsx
│   │   │   │   │   ├── ChallengeProposalDetail.tsx
│   │   │   │   │   ├── ChallengeProposalResolve.tsx
│   │   │   │   │   ├── ChallengeProposalRevealVote.tsx
│   │   │   │   │   ├── CreateGovtProposal.tsx
│   │   │   │   │   ├── CreateProposal.tsx
│   │   │   │   │   ├── GovernmentReparameterization.tsx
│   │   │   │   │   ├── Parameter.tsx
│   │   │   │   │   ├── ProcessProposal.tsx
│   │   │   │   │   ├── Proposal.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── proposeReparameterization.tsx
│   │   │   │   ├── SignUpNewsroom.tsx
│   │   │   │   ├── StoryFeed/
│   │   │   │   │   ├── CivilComment.tsx
│   │   │   │   │   ├── MoreComments.tsx
│   │   │   │   │   ├── PostComments.tsx
│   │   │   │   │   ├── Story.tsx
│   │   │   │   │   ├── StoryBoost.tsx
│   │   │   │   │   ├── StoryDetails.tsx
│   │   │   │   │   ├── StoryFeed.tsx
│   │   │   │   │   ├── StoryFeedItem.tsx
│   │   │   │   │   ├── StoryFeedMarquee.tsx
│   │   │   │   │   ├── StoryFeedPage.tsx
│   │   │   │   │   ├── StoryFeedStyledComponents.tsx
│   │   │   │   │   ├── StoryFeedTextComponents.tsx
│   │   │   │   │   ├── StoryModal.tsx
│   │   │   │   │   ├── StoryNewsroomDetails.tsx
│   │   │   │   │   ├── StoryRegistryDetails.tsx
│   │   │   │   │   ├── queries.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── Sunset/
│   │   │   │   │   └── Sunset.tsx
│   │   │   │   ├── Tokens/
│   │   │   │   │   ├── StorefrontPage.tsx
│   │   │   │   │   ├── Tokens.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Web3AuthWrapper.tsx
│   │   │   │   ├── WrongNetwork.tsx
│   │   │   │   ├── council/
│   │   │   │   │   ├── Government.tsx
│   │   │   │   │   └── SetAppellate.tsx
│   │   │   │   ├── errors/
│   │   │   │   │   └── ErrorBoundry.tsx
│   │   │   │   ├── footer/
│   │   │   │   │   └── Footer.tsx
│   │   │   │   ├── header/
│   │   │   │   │   ├── NavBar.tsx
│   │   │   │   │   ├── NavBarTypes.ts
│   │   │   │   │   ├── NavDrawer.tsx
│   │   │   │   │   ├── NavDropDown.tsx
│   │   │   │   │   ├── NavErrorBar.tsx
│   │   │   │   │   ├── NavLink.tsx
│   │   │   │   │   ├── NavMenu.tsx
│   │   │   │   │   ├── NavMenuResponsiveToggleButton.tsx
│   │   │   │   │   ├── UserAccount.tsx
│   │   │   │   │   ├── UserAccountContainer.tsx
│   │   │   │   │   ├── UserNotificationBar.tsx
│   │   │   │   │   ├── styledComponents.tsx
│   │   │   │   │   └── textComponents.tsx
│   │   │   │   ├── listing/
│   │   │   │   │   ├── AppealAwaitingDecision.tsx
│   │   │   │   │   ├── AppealChallengeCommitVote.tsx
│   │   │   │   │   ├── AppealChallengeDetail.tsx
│   │   │   │   │   ├── AppealChallengeResolve.tsx
│   │   │   │   │   ├── AppealChallengeRevealVote.tsx
│   │   │   │   │   ├── AppealDetail.tsx
│   │   │   │   │   ├── AppealResolve.tsx
│   │   │   │   │   ├── AppealSubmitChallenge.tsx
│   │   │   │   │   ├── ApplicationUpdateStatus.tsx
│   │   │   │   │   ├── Challenge.tsx
│   │   │   │   │   ├── ChallengeCommitVote.tsx
│   │   │   │   │   ├── ChallengeDetail.tsx
│   │   │   │   │   ├── ChallengeResolve.tsx
│   │   │   │   │   ├── ChallengeRevealVote.tsx
│   │   │   │   │   ├── ChallengeRewardsDetail.tsx
│   │   │   │   │   ├── ChallengesWithTokensToRescue.tsx
│   │   │   │   │   ├── EmailSignup.tsx
│   │   │   │   │   ├── Listing.tsx
│   │   │   │   │   ├── ListingChallengeStatement.tsx
│   │   │   │   │   ├── ListingCharter.tsx
│   │   │   │   │   ├── ListingCharterRosterMember.tsx
│   │   │   │   │   ├── ListingDiscourse.tsx
│   │   │   │   │   ├── ListingEvent.tsx
│   │   │   │   │   ├── ListingHeader.tsx
│   │   │   │   │   ├── ListingHistory.tsx
│   │   │   │   │   ├── ListingOwnerActions.tsx
│   │   │   │   │   ├── ListingPhaseActions.tsx
│   │   │   │   │   ├── ListingRedux.tsx
│   │   │   │   │   ├── RequestAppeal.tsx
│   │   │   │   │   ├── RevealVoteDetail.tsx
│   │   │   │   │   ├── SubmitAppealChallenge.tsx
│   │   │   │   │   ├── SubmitChallenge/
│   │   │   │   │   │   ├── InsufficientBalanceSnackBar.tsx
│   │   │   │   │   │   ├── SubmitChallenge.tsx
│   │   │   │   │   │   ├── SubmitChallengeGraphQLApolloContainer.tsx
│   │   │   │   │   │   ├── SubmitChallengeTypes.ts
│   │   │   │   │   │   ├── SubmitChallengeViewComponent.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── WhitelistedDetail.tsx
│   │   │   │   │   └── styledComponents.tsx
│   │   │   │   ├── listinglist/
│   │   │   │   │   ├── EmptyRegistryTabContent.tsx
│   │   │   │   │   ├── ListItemStyle.tsx
│   │   │   │   │   ├── ListingList.tsx
│   │   │   │   │   ├── ListingListItem.tsx
│   │   │   │   │   ├── Listings.tsx
│   │   │   │   │   ├── ListingsInProgress.tsx
│   │   │   │   │   ├── ListingsInProgressContainer.tsx
│   │   │   │   │   ├── RejectedListingListContainer.tsx
│   │   │   │   │   ├── TabDescriptions.tsx
│   │   │   │   │   ├── WhitelistedListingItem.tsx
│   │   │   │   │   └── WhitelistedListingListContainer.tsx
│   │   │   │   ├── newsroom/
│   │   │   │   │   ├── NewsroomDetail.tsx
│   │   │   │   │   ├── NewsroomManagement.tsx
│   │   │   │   │   └── NewsroomManagementV2.tsx
│   │   │   │   ├── providers/
│   │   │   │   │   ├── AnalyticsProvider.tsx
│   │   │   │   │   └── AppProvider.tsx
│   │   │   │   └── utility/
│   │   │   │       ├── AsyncComponent.tsx
│   │   │   │       ├── CompleteChallengeResultsHOC.tsx
│   │   │   │       ├── CountdownTimer.tsx
│   │   │   │       ├── ErrorLoadingData.tsx
│   │   │   │       ├── ErrorNotFound.tsx
│   │   │   │       ├── FormElements.tsx
│   │   │   │       ├── HigherOrderComponents.tsx
│   │   │   │       ├── ScrollToTop.tsx
│   │   │   │       ├── TransactionStatusModalsHOC.tsx
│   │   │   │       ├── ViewModules.tsx
│   │   │   │       ├── WinningChallengeResultsHOC.tsx
│   │   │   │       └── styledComponents.tsx
│   │   │   ├── constants.ts
│   │   │   ├── embeds/
│   │   │   │   ├── BoostLoader.tsx
│   │   │   │   ├── EmbedsApp.tsx
│   │   │   │   └── StoryBoostLoader.tsx
│   │   │   ├── globals.d.ts
│   │   │   ├── helpers/
│   │   │   │   ├── config.ts
│   │   │   │   ├── contractAddresses.ts
│   │   │   │   ├── government.ts
│   │   │   │   ├── links.ts
│   │   │   │   ├── listingEvents.ts
│   │   │   │   ├── networkHelpers.ts
│   │   │   │   ├── queryTransformations.ts
│   │   │   │   ├── salt.ts
│   │   │   │   ├── tokenController.ts
│   │   │   │   ├── tokenEvents.ts
│   │   │   │   ├── transforms.ts
│   │   │   │   └── vote.ts
│   │   │   ├── index.tsx
│   │   │   ├── react-app-env.d.ts
│   │   │   ├── redux/
│   │   │   │   ├── actionCreators/
│   │   │   │   │   ├── analytics.ts
│   │   │   │   │   ├── challenges.ts
│   │   │   │   │   ├── contractAddresses.ts
│   │   │   │   │   ├── errors.ts
│   │   │   │   │   ├── government.ts
│   │   │   │   │   ├── network.ts
│   │   │   │   │   ├── newsrooms.ts
│   │   │   │   │   ├── ui.ts
│   │   │   │   │   └── userAccount.ts
│   │   │   │   ├── analytics.ts
│   │   │   │   ├── reducers/
│   │   │   │   │   ├── challenges.ts
│   │   │   │   │   ├── contractAddresses.ts
│   │   │   │   │   ├── government.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── network.ts
│   │   │   │   │   ├── newsrooms.ts
│   │   │   │   │   ├── ui.ts
│   │   │   │   │   └── userAccount.ts
│   │   │   │   └── store.ts
│   │   │   ├── registerServiceWorker.ts
│   │   │   ├── registry/
│   │   │   │   ├── LazyRegistryApp.tsx
│   │   │   │   ├── RegistryApp.tsx
│   │   │   │   └── RegistryShell.tsx
│   │   │   ├── selectors/
│   │   │   │   └── index.ts
│   │   │   ├── stories/
│   │   │   │   └── StoriesApp.tsx
│   │   │   └── typings.d.ts
│   │   ├── tsconfig.json
│   │   ├── tsconfig.prod.json
│   │   ├── tsconfig.test.json
│   │   └── tslint.json
│   ├── dev-utils/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── generate-from-files/
│   │   │   │   ├── bin.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── utils.ts
│   │   │   └── strip-artifacts.ts
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── modules.d.ts
│   │   │   └── test/
│   │   │       ├── bignumber-chai.ts
│   │   │       ├── index.ts
│   │   │       └── test.d.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── elements/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── .releaserc
│   │   ├── .storybook/
│   │   │   ├── config.ts
│   │   │   ├── preview-head.html
│   │   │   ├── register-context.ts
│   │   │   └── webpack.config.js
│   │   ├── LICENSE
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── foo
│   │   ├── src/
│   │   │   ├── __mocks__/
│   │   │   │   └── fileMock.js
│   │   │   ├── __snapshots__/
│   │   │   │   └── index.stories.storyshot
│   │   │   ├── __test__/
│   │   │   │   ├── setupTests.ts
│   │   │   │   └── storyshot.test.ts
│   │   │   ├── buttons/
│   │   │   │   ├── Button.tsx
│   │   │   │   ├── CTAButton.tsx
│   │   │   │   ├── CloseXButton.tsx
│   │   │   │   ├── PaymentButton.tsx
│   │   │   │   ├── ShareButton.tsx
│   │   │   │   └── index.ts
│   │   │   ├── colors/
│   │   │   │   └── index.ts
│   │   │   ├── containers/
│   │   │   │   ├── Hero.tsx
│   │   │   │   ├── Panel.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── mediaQueries.ts
│   │   │   ├── icons/
│   │   │   │   ├── ApplicationInProgressIcon.tsx
│   │   │   │   ├── ApprovedNewsroomsIcon.tsx
│   │   │   │   ├── ArticleIndexIcon.tsx
│   │   │   │   ├── ArticleIndexPanelIcon.tsx
│   │   │   │   ├── ArticleSignIcon.tsx
│   │   │   │   ├── ArticleSignPanelIcon.tsx
│   │   │   │   ├── AvatarGenericIcon.tsx
│   │   │   │   ├── BellIcon.tsx
│   │   │   │   ├── BookreaderIcon.tsx
│   │   │   │   ├── BrainIcon.tsx
│   │   │   │   ├── CCAmexIcon.tsx
│   │   │   │   ├── CCDiscoverIcon.tsx
│   │   │   │   ├── CCMastercardIcon.tsx
│   │   │   │   ├── CCSecurityCodeIcon.tsx
│   │   │   │   ├── CCVisaIcon.tsx
│   │   │   │   ├── ChallengeMarkIcon.tsx
│   │   │   │   ├── Chevron.tsx
│   │   │   │   ├── CircleLockIcon.tsx
│   │   │   │   ├── CivilIcon.tsx
│   │   │   │   ├── CivilTutorialIcon.tsx
│   │   │   │   ├── ClipLoader.tsx
│   │   │   │   ├── ClockIcon.tsx
│   │   │   │   ├── CloseXIcon.tsx
│   │   │   │   ├── CommitVoteSuccessIcon.tsx
│   │   │   │   ├── CvlToken.tsx
│   │   │   │   ├── DashboardNewsroomApplicationIcon.tsx
│   │   │   │   ├── DisclosureArrowIcon.tsx
│   │   │   │   ├── DropdownArrow.tsx
│   │   │   │   ├── EmbedIcon.tsx
│   │   │   │   ├── ErrorIcon.tsx
│   │   │   │   ├── ExamIcon.tsx
│   │   │   │   ├── ExchangeArrowsIcon.tsx
│   │   │   │   ├── ExpandDownArrow.tsx
│   │   │   │   ├── FacebookIcon.tsx
│   │   │   │   ├── GrantSubmitIcon.tsx
│   │   │   │   ├── GreenCheckMark.tsx
│   │   │   │   ├── HamburgerIcon.tsx
│   │   │   │   ├── HollowGrayNotGranted.tsx
│   │   │   │   ├── HollowGreenCheck.tsx
│   │   │   │   ├── HollowRedNoGood.tsx
│   │   │   │   ├── Info.tsx
│   │   │   │   ├── InstagramIcon.tsx
│   │   │   │   ├── LinkIcon.tsx
│   │   │   │   ├── LinkedInIcon.tsx
│   │   │   │   ├── LockOpenIcon.tsx
│   │   │   │   ├── MediumIcon.tsx
│   │   │   │   ├── MetaMaskIcons.tsx
│   │   │   │   ├── NetworkIcon.tsx
│   │   │   │   ├── NorthEastArrow.tsx
│   │   │   │   ├── OctopusErrorIcon.tsx
│   │   │   │   ├── OpenInNewIcon.tsx
│   │   │   │   ├── PhotoDragIcon.tsx
│   │   │   │   ├── RegistryEmptyIcon.tsx
│   │   │   │   ├── RejectedNewsroomsIcon.tsx
│   │   │   │   ├── RequestAppealSuccessIcon.tsx
│   │   │   │   ├── RevealVoteSuccessIcon.tsx
│   │   │   │   ├── ReviewIcon.tsx
│   │   │   │   ├── SecureLockIcon.tsx
│   │   │   │   ├── ShareEmailIcon.tsx
│   │   │   │   ├── ShareIcon.tsx
│   │   │   │   ├── ShareTwitterIcon.tsx
│   │   │   │   ├── SubmitChallengeSuccessIcon.tsx
│   │   │   │   ├── TelegramIcon.tsx
│   │   │   │   ├── TipIcon.tsx
│   │   │   │   ├── TokenWalletIcon.tsx
│   │   │   │   ├── TrendsIcon.tsx
│   │   │   │   ├── TrustMarkIcon.tsx
│   │   │   │   ├── TwitterIcon.tsx
│   │   │   │   ├── VerifyIdentityIcon.tsx
│   │   │   │   ├── WaitForApply.tsx
│   │   │   │   ├── WarningIcon.tsx
│   │   │   │   ├── ZoomInIcon.tsx
│   │   │   │   ├── ZoomOutIcon.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── icon.stories.storyshot
│   │   │   │   ├── icon.stories.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── logos/
│   │   │   │       ├── Burner.tsx
│   │   │   │       ├── CivilLogo.tsx
│   │   │   │       ├── Incognito.tsx
│   │   │   │       ├── Metamask.tsx
│   │   │   │       ├── OvalImage.ts
│   │   │   │       ├── Paypal.tsx
│   │   │   │       ├── Portis.tsx
│   │   │   │       └── index.ts
│   │   │   ├── images/
│   │   │   │   └── __snapshots__/
│   │   │   │       └── icon.stories.storyshot
│   │   │   ├── index.stories.tsx
│   │   │   ├── index.ts
│   │   │   ├── inputs/
│   │   │   │   ├── Input.tsx
│   │   │   │   ├── RadioInput.tsx
│   │   │   │   └── index.ts
│   │   │   ├── layouts/
│   │   │   │   └── index.ts
│   │   │   ├── module.d.ts
│   │   │   ├── share/
│   │   │   │   ├── SharePanel.tsx
│   │   │   │   ├── ShareStory.tsx
│   │   │   │   └── index.ts
│   │   │   └── text/
│   │   │       ├── fonts.ts
│   │   │       ├── headings.tsx
│   │   │       └── index.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── ethapi/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── abidecoder.ts
│   │   │   ├── ethapi.ts
│   │   │   ├── globals.d.ts
│   │   │   ├── helpers.ts
│   │   │   ├── index.ts
│   │   │   └── infura.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── kirby/
│   │   ├── .gitignore
│   │   ├── .releaserc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── KirbyApp.tsx
│   │   │   ├── common/
│   │   │   │   ├── colors.ts
│   │   │   │   ├── containers/
│   │   │   │   │   └── layouts.tsx
│   │   │   │   ├── input/
│   │   │   │   │   └── WalletOptions.tsx
│   │   │   │   └── text/
│   │   │   │       └── index.tsx
│   │   │   ├── index.tsx
│   │   │   ├── plugins/
│   │   │   │   ├── CivilID.ts
│   │   │   │   └── common.ts
│   │   │   ├── viewport/
│   │   │   │   └── Viewport.tsx
│   │   │   └── views/
│   │   │       ├── SignatureConfirm.tsx
│   │   │       ├── Web3Enable.tsx
│   │   │       └── identity/
│   │   │           ├── Login.tsx
│   │   │           └── Signup.tsx
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── newsroom-manager/
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── ApplyToTCR.tsx
│   │   │   ├── ApplyToTCRPlaceholder.tsx
│   │   │   ├── CivilContext.tsx
│   │   │   ├── CompleteYourProfile.tsx
│   │   │   ├── CreateCharterPartOne.tsx
│   │   │   ├── CreateCharterPartTwo.tsx
│   │   │   ├── NameAndAddress.tsx
│   │   │   ├── Newsroom.tsx
│   │   │   ├── NewsroomUser.tsx
│   │   │   ├── RosterMember.tsx
│   │   │   ├── SignConstitution.tsx
│   │   │   ├── TransactionButtonInner.tsx
│   │   │   ├── Welcome.tsx
│   │   │   ├── actionCreators.ts
│   │   │   ├── contentViewer/
│   │   │   │   ├── ContentItem.tsx
│   │   │   │   ├── ContentViewer.tsx
│   │   │   │   ├── Revision.tsx
│   │   │   │   ├── actions.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── reducers.ts
│   │   │   ├── index.ts
│   │   │   ├── reducers.ts
│   │   │   ├── styledComponents.tsx
│   │   │   ├── types.ts
│   │   │   └── utils.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── newsroom-signup/
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── ApplyToTCR/
│   │   │   │   ├── AboutApplicationButton.tsx
│   │   │   │   ├── ApplyToTCR.tsx
│   │   │   │   ├── ApplyToTCRForm.tsx
│   │   │   │   ├── ApplyToTCRSuccess.tsx
│   │   │   │   ├── ApplyToTCRWhitelisted.tsx
│   │   │   │   ├── TransferToMultisig.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── ApplyToTCRPlaceholder.tsx
│   │   │   ├── AuthWrapper.tsx
│   │   │   ├── DataWrapper.tsx
│   │   │   ├── InfoModalButton.tsx
│   │   │   ├── Newsroom.tsx
│   │   │   ├── NewsroomManager/
│   │   │   │   ├── ManageContractMembers.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── NewsroomProfile/
│   │   │   │   ├── AddRosterMembers.tsx
│   │   │   │   ├── ApplicationSoFarPage.tsx
│   │   │   │   ├── CharterQuestions.tsx
│   │   │   │   ├── GrantApplication.tsx
│   │   │   │   ├── LearnMoreButton.tsx
│   │   │   │   ├── NewsroomBio.tsx
│   │   │   │   ├── RosterMember.tsx
│   │   │   │   ├── RosterMemberListItem.tsx
│   │   │   │   ├── SignConstitution.tsx
│   │   │   │   ├── WaitingAfterSkip.tsx
│   │   │   │   ├── WaitingForGrant.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── NewsroomUser.tsx
│   │   │   ├── PurchaseTokens/
│   │   │   │   └── index.tsx
│   │   │   ├── RepublishCharterNotice.tsx
│   │   │   ├── SmartContract/
│   │   │   │   ├── AboutSmartContractsButton.tsx
│   │   │   │   ├── AddMember.tsx
│   │   │   │   ├── AddMembersToContract.tsx
│   │   │   │   ├── CreateNewsroomContract.tsx
│   │   │   │   ├── LetsGetStartedPage.tsx
│   │   │   │   ├── UnderstandingEth.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── TransactionButtonInner.tsx
│   │   │   ├── TransactionStatusModalsHOC.tsx
│   │   │   ├── Welcome.tsx
│   │   │   ├── actionCreators.ts
│   │   │   ├── analytics.ts
│   │   │   ├── constants.ts
│   │   │   ├── index.ts
│   │   │   ├── mutations.ts
│   │   │   ├── queries.ts
│   │   │   ├── reducers.ts
│   │   │   ├── styledComponents.tsx
│   │   │   ├── types.ts
│   │   │   └── utils.ts
│   │   ├── tsconfig.json
│   │   ├── tslint.json
│   │   └── types.d.ts
│   ├── sdk/
│   │   ├── .dockerignore
│   │   ├── .prettierignore
│   │   ├── .prettierrc.yaml
│   │   ├── .releaserc
│   │   ├── .storybook/
│   │   │   ├── config.tsx
│   │   │   └── webpack.config.js
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── build.js
│   │   ├── certs.js
│   │   ├── config/
│   │   │   ├── env.js
│   │   │   ├── jest/
│   │   │   │   ├── cssTransform.js
│   │   │   │   └── fileTransform.js
│   │   │   ├── paths.js
│   │   │   ├── webpack.config.js
│   │   │   └── webpackDevServer.config.js
│   │   ├── docs/
│   │   │   ├── Makefile
│   │   │   ├── README.md
│   │   │   ├── make.bat
│   │   │   └── source/
│   │   │       ├── civil_sdk_package.rst
│   │   │       ├── conf.py
│   │   │       ├── index.rst
│   │   │       ├── install/
│   │   │       │   └── getting_started.rst
│   │   │       ├── lockbox/
│   │   │       │   ├── index.rst
│   │   │       │   └── intro.rst
│   │   │       ├── registry/
│   │   │       │   ├── index.rst
│   │   │       │   └── intro.rst
│   │   │       └── requirements.txt
│   │   ├── index.html
│   │   ├── index.js
│   │   ├── manifest.json
│   │   ├── nginx.conf
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── boost-embed.html
│   │   │   ├── index.html
│   │   │   └── manifest.json
│   │   ├── scripts/
│   │   │   ├── build.js
│   │   │   ├── start.js
│   │   │   └── test.js
│   │   ├── server.js
│   │   ├── site-maker.sh
│   │   ├── src/
│   │   │   ├── constants.ts
│   │   │   ├── examples/
│   │   │   │   └── registry.stories.tsx
│   │   │   ├── iframe/
│   │   │   │   ├── index.tsx
│   │   │   │   └── services/
│   │   │   │       ├── MessageHandler.test.ts
│   │   │   │       ├── MessageHandler.ts
│   │   │   │       ├── MessageHandlerTypes.ts
│   │   │   │       ├── civil-node/
│   │   │   │       │   ├── CivilPersistence.test.ts
│   │   │   │       │   ├── CivilPersistence.ts
│   │   │   │       │   ├── LockboxService.ts
│   │   │   │       │   └── Persistence.ts
│   │   │   │       ├── communication/
│   │   │   │       │   ├── CivilWebsocket.ts
│   │   │   │       │   ├── PrivateChannel.test.ts
│   │   │   │       │   ├── PrivateChannel.ts
│   │   │   │       │   ├── RealtimeCommunication.ts
│   │   │   │       │   ├── ReceiveTypes.ts
│   │   │   │       │   ├── SecureTypes.ts
│   │   │   │       │   └── SendTypes.ts
│   │   │   │       ├── crypto/
│   │   │   │       │   ├── crypto.test.ts
│   │   │   │       │   └── crypto.ts
│   │   │   │       ├── keys/
│   │   │   │       │   ├── Key.ts
│   │   │   │       │   ├── KeyManager.test.ts
│   │   │   │       │   ├── KeyManager.ts
│   │   │   │       │   ├── KeyUtils.ts
│   │   │   │       │   └── PersistentKey.ts
│   │   │   │       └── messageTypes.ts
│   │   │   ├── index.ts
│   │   │   ├── react/
│   │   │   │   ├── CivilProvider.tsx
│   │   │   │   ├── NewsroomWithdraw.tsx
│   │   │   │   ├── StoryBoost/
│   │   │   │   │   ├── StoryBoost.tsx
│   │   │   │   │   ├── embed.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── queries.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── boosts/
│   │   │   │   │   ├── Boost.stories.tsx
│   │   │   │   │   ├── Boost.tsx
│   │   │   │   │   ├── BoostCard.tsx
│   │   │   │   │   ├── BoostCardListView.tsx
│   │   │   │   │   ├── BoostCompleted.tsx
│   │   │   │   │   ├── BoostEmbedIframe.tsx
│   │   │   │   │   ├── BoostEmbedNoScroll.tsx
│   │   │   │   │   ├── BoostForm.tsx
│   │   │   │   │   ├── BoostImg.tsx
│   │   │   │   │   ├── BoostModal.tsx
│   │   │   │   │   ├── BoostNewsroom.tsx
│   │   │   │   │   ├── BoostPayments.tsx
│   │   │   │   │   ├── BoostPermissionsHOC.tsx
│   │   │   │   │   ├── BoostProceeds.tsx
│   │   │   │   │   ├── BoostProgress.tsx
│   │   │   │   │   ├── BoostShare.tsx
│   │   │   │   │   ├── BoostShareEmbed.tsx
│   │   │   │   │   ├── BoostStyledComponents.tsx
│   │   │   │   │   ├── BoostTextComponents.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── queries.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── urlConstants.ts
│   │   │   ├── react-app-env.d.ts
│   │   │   ├── sdk/
│   │   │   │   ├── SDKMessage.ts
│   │   │   │   ├── dmz/
│   │   │   │   │   └── DMZ.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── lockbox/
│   │   │   │   │   ├── Lockbox.ts
│   │   │   │   │   └── LockboxMessage.ts
│   │   │   │   ├── registry/
│   │   │   │   │   ├── Registry.ts
│   │   │   │   │   └── RegistryMessage.ts
│   │   │   │   └── telemetry/
│   │   │   │       └── Telemetry.ts
│   │   │   ├── serviceWorker.ts
│   │   │   ├── setupTests.ts
│   │   │   ├── test-utils/
│   │   │   │   ├── MockWebsocketServer.ts
│   │   │   │   └── helpers.ts
│   │   │   └── types.d.ts
│   │   ├── start.js
│   │   ├── start.sh
│   │   ├── test.js
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── tslint-rules/
│   │   ├── .releaserc
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   └── tslint.yaml
│   ├── typescript-types/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── typescript-typings/
│   │   ├── .releaserc
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   └── types/
│   │       ├── @ledgerhq/
│   │       │   ├── LICENSE
│   │       │   └── index.d.ts
│   │       ├── ethereumjs-abi/
│   │       │   └── index.d.ts
│   │       ├── ethereumjs-util/
│   │       │   ├── LICENSE
│   │       │   └── index.d.ts
│   │       ├── ethjs-util/
│   │       │   └── index.d.ts
│   │       ├── is-hex-prefixed/
│   │       │   └── index.d.ts
│   │       ├── strip-hex-prefix/
│   │       │   └── index.d.ts
│   │       ├── to-snake-case/
│   │       │   └── index.d.ts
│   │       └── web3-provider-engine/
│   │           ├── LICENSE
│   │           └── index.d.ts
│   └── utils/
│       ├── LICENSE
│       ├── README.md
│       ├── package.json
│       ├── src/
│       │   ├── airswap.ts
│       │   ├── apolloClient.ts
│       │   ├── bip39.english.ts
│       │   ├── browser.ts
│       │   ├── civilConstants.ts
│       │   ├── civilHelpers.ts
│       │   ├── contracts.ts
│       │   ├── coreHelpers/
│       │   │   ├── appealChallengeHelpers.ts
│       │   │   ├── appealHelpers.ts
│       │   │   ├── challengeHelpers.ts
│       │   │   ├── index.ts
│       │   │   ├── listingHelpers.ts
│       │   │   ├── paramPropChallengeHelpers.ts
│       │   │   ├── pollHelpers.ts
│       │   │   └── userChallengeDataHelpers.ts
│       │   ├── crypto.ts
│       │   ├── email.ts
│       │   ├── errors.ts
│       │   ├── etherscan.ts
│       │   ├── gql/
│       │   │   ├── queries.ts
│       │   │   └── transforms.ts
│       │   ├── handle.ts
│       │   ├── index.ts
│       │   ├── language.ts
│       │   ├── localStorage.ts
│       │   ├── rxjs.ts
│       │   ├── salt.ts
│       │   ├── stripe.ts
│       │   ├── time.ts
│       │   ├── types.d.ts
│       │   ├── urlConstants.ts
│       │   └── viewHelpers.tsx
│       ├── test/
│       │   ├── language.ts
│       │   └── salt.ts
│       ├── tsconfig.json
│       └── tslint.json
└── tsconfig.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .circleci/config.yml
================================================
version: 2

# What is this - http://yaml.org/type/merge.html
defaults: &defaults
  docker:
    - image: circleci/node:12.10

jobs:
    build:
        <<: *defaults
        resource_class: xlarge
        steps:
            - checkout
            - restore_cache:
                name: Restore yarn cache
                key: node-modules-{{ checksum "yarn.lock" }}
            - run:
                name: Install modules
                command: yarn --frozen-lockfile install
            - save_cache:
                name: Save yarn cache
                key: node-modules-{{ checksum "yarn.lock" }}
                paths:
                    - node_modules
            - run:
                name: Building
                command:  yarn build
                no_output_timeout: 30m
            - run:
                name: Copying boost loader script
                command:  yarn copy:boost-loader
            - run:
                name: Ensuring prettified
                command: yarn prettier
            - run:
                name: Linting
                command: yarn lint
            - run:
                name: Starting Ganache
                command: yarn ganache:raw
                background: true
            - run:
                name: Running migrations
                command: yarn lerna run --scope=@joincivil/contracts migrate:ganache
            - run:
                name: Running tests (except contracts)
                command: |
                    yarn test
            - add_ssh_keys:
                fingerprints:
                - "70:4a:4d:06:ec:1f:2a:fd:50:c6:a8:63:da:e9:0c:e6"
            - run:
                name: Releasing
                command: |
                    yarn release
                    pwd
            - persist_to_workspace:
                root: ./
                paths:
                    - ./packages/dapp/build
                    - ./packages/dapp/devops
    coverage:
        <<: *defaults
        steps:
            - attach_workspace:
                at: ../
            - run:
                name: Starting Ganache
                command: yarn ganache:raw
                background: true
            - run:
                name: Calculating coverage
                command: yarn coverage
            - run:
                name: Submitting coverage
                command: yarn coverage:submit

    # Docker steps
    # These steps have a different workspace roots and so will behave a bit differently
    # circleci/node has /users/circleci/project
    # civilmedia/gcloud-node has /root/project
    setup-gcp:
        <<: *defaults
        docker:
            - image: civilmedia/gcloud-node:latest
        steps:
            - run:
                name: Dump Google Cloud Credentials to file
                command: |
                    echo ${GOOGLE_AUTH} | base64 -d > ${HOME}/gcp-key.json
                    gcloud auth activate-service-account --key-file ${HOME}/gcp-key.json
                    gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
                    gcloud --quiet config set compute/zone ${GOOGLE_COMPUTE_ZONE}
                    gcloud --quiet container clusters get-credentials ${GOOGLE_CLUSTER_NAME}
                    gcloud docker --authorize-only
            - persist_to_workspace:
                root: /root
                paths:
                    - gcp-key.json
                    - .config/gcloud
                    - .docker
                    - .dockercfg
                    - .kubernetes_ns
                    - .kube

    # Adds specific test images so we can both push specific branches via circleci, but
    # also start up an fresh test container with the last test image in k8s
    push-test-containers:
        <<: *defaults
        docker:
            - image: civilmedia/gcloud-node:latest
        steps:
            - checkout
            - attach_workspace:
                at: /root
            - setup_remote_docker
            - run:
                name: Build Container
                command: |
                    cp -r /root/packages/dapp/build ./packages/dapp/build
                    cp -r /root/packages/dapp/devops ./packages/dapp/devops

                    TAG=`echo $CIRCLE_BRANCH | sed 's/\\//_/g'`
                    docker build -f Dockerfile-dapp . \
                    --build-arg version=$CIRCLE_SHA1 \
                    -t gcr.io/$GOOGLE_PROJECT_ID/dapp:$TAG \
                    -t gcr.io/$GOOGLE_PROJECT_ID/dapp:$TAG-$CIRCLE_SHA1 \
                    -t gcr.io/$GOOGLE_PROJECT_ID/dapp:test \
                    -t gcr.io/$GOOGLE_PROJECT_ID/dapp:test-$CIRCLE_SHA1
            - deploy:
                name: Push Containers to Registry
                command: |
                    gcloud config list
                    echo "pushing $GOOGLE_PROJECT_ID"
                    docker push gcr.io/$GOOGLE_PROJECT_ID/dapp

    push-containers:
        <<: *defaults
        docker:
            - image: civilmedia/gcloud-node:latest
        steps:
            - checkout
            - attach_workspace:
                at: /root
            - setup_remote_docker
            - run:
                name: Build Container
                command: |
                    cp -r /root/packages/dapp/build ./packages/dapp/build
                    cp -r /root/packages/dapp/devops ./packages/dapp/devops

                    TAG=`echo $CIRCLE_BRANCH | sed 's/\\//_/g'`
                    docker build -f Dockerfile-dapp . \
                    --build-arg version=$CIRCLE_SHA1 \
                    -t gcr.io/$GOOGLE_PROJECT_ID/dapp:$TAG \
                    -t gcr.io/$GOOGLE_PROJECT_ID/dapp:$TAG-$CIRCLE_SHA1
            - deploy:
                name: Push Containers to Registry
                command: |
                    gcloud config list
                    echo "pushing $GOOGLE_PROJECT_ID"
                    docker push gcr.io/$GOOGLE_PROJECT_ID/dapp

    deploy-test:
        <<: *defaults
        docker:
            - image: civilmedia/gcloud-node:latest
        steps:
            - attach_workspace:
                at: /root
            - deploy:
                name: Update Kubernetes Deployment on TEST
                command: |
                    TAG=`echo $CIRCLE_BRANCH | sed 's/\\//_/g'`
                    kubectl set image deployment/dapp dapp=gcr.io/$GOOGLE_PROJECT_ID/dapp:$TAG-$CIRCLE_SHA1 --namespace test

    deploy-staging:
        <<: *defaults
        docker:
            - image: civilmedia/gcloud-node:latest
        steps:
            - attach_workspace:
                at: /root
            - deploy:
                name: Update Kubernetes Deployment on STAGING
                command: |
                    kubectl set image deployment/dapp dapp=gcr.io/$GOOGLE_PROJECT_ID/dapp:master-$CIRCLE_SHA1 --namespace staging

    deploy-production:
        <<: *defaults
        docker:
            - image: civilmedia/gcloud-node:latest
        steps:
            - attach_workspace:
                at: /root
            - deploy:
                name: Update Kubernetes Deployment on PRODUCTION
                command: |
                    kubectl set image deployment/dapp dapp=gcr.io/$GOOGLE_PROJECT_ID/dapp:production-$CIRCLE_SHA1 --namespace production

workflows:
    version: 2
    build-and-deploy:
        jobs:
            - build:
                context: gcp-common
            - setup-gcp:
                context: gcp-common
                requires:
                    - build
                filters:
                    branches:
                        only:
                            - master
                            - production
                            - /test.*/
            - push-test-containers:
                context: gcp-common
                requires:
                    - setup-gcp
                filters:
                    branches:
                        only:
                            - /test.*/
            - push-containers:
                context: gcp-common
                requires:
                    - setup-gcp
                filters:
                    branches:
                        only:
                            - master
                            - production
            - deploy-test:
                context: gcp-common
                requires:
                    - push-test-containers
                filters:
                    branches:
                        only:
                            - /test.*/
            - deploy-staging:
                context: gcp-common
                requires:
                    - push-containers
                filters:
                    branches:
                        only:
                            - master
            - deploy-production:
                context: gcp-common
                requires:
                    - push-containers
                filters:
                    branches:
                        only:
                            - production


================================================
FILE: .dockerignore
================================================
node_modules


================================================
FILE: .editorconfig
================================================
root = true

[*]
insert_final_newline = true
indent_style = space
indent_size = 2
end_of_line = lf

[*.{mustache,handlebars}]
insert_final_newline = false

[*.{yaml,yml}]
indent_size = 4
indent_style = space


================================================
FILE: .gitattributes
================================================
# Normalizes all line endings in the repository
# as per https://git-scm.com/docs/gitattributes
#
# This is needed because Solium has a problem with mixed line endings
# and returns false positives
* text=auto

# Automatically collapses storyshot diffs in GitHub:
*.storyshot linguist-generated



================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Typescript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
packages/dapp/.env.local


build/

# DS store
*.DS_STORE

# ide / intellij config
.idea

# package
*package-lock.json

coverage/
coverage.json


================================================
FILE: .prettierignore
================================================
node_modules/
build/
installed_contracts/
package.json
generated/
doxity/
docs/asset-manifest.json
/packages/dapp/src/components/docs/json/
coverage/
.0x-artifacts/


================================================
FILE: .prettierrc.yaml
================================================
printWidth: 120
bracketSpacing: true
semi: true
singleQuote: false
trailingComma: all
useTabs: false


================================================
FILE: .releaserc
================================================
{
  "repositoryUrl": "git@github.com:joincivil/Civil.git",
  "branch": "master"
}

================================================
FILE: .vscode/launch.json
================================================
{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Script",
      "program": "${file}",
      "outFiles": ["${workspaceFolder}/packages/*/build/**/*.{js,js.map}"],
      "sourceMaps": true,
      "smartStep": true
    }
  ]
}


================================================
FILE: .vscode/settings.json
================================================
{
  "files.exclude": {
    "**/build/": true,
    "**/node_modules/": true
  },
  "search.exclude": {
    "**/build/": true
  },
  "typescript.tsdk": "node_modules/typescript/lib"
}


================================================
FILE: Dockerfile-dapp
================================================
FROM nginx:1.12-alpine
ADD ./packages/dapp/build /usr/share/nginx/html
ADD ./packages/dapp/devops/nginx.conf /etc/nginx/conf.d/default.conf
ADD ./packages/dapp/devops/start.sh /start.sh
RUN chmod u+x /start.sh
EXPOSE 3000
ENV ENVIRONMENT="{}"

CMD /start.sh

================================================
FILE: README.md
================================================
![Civil Logo](doc/civil_logo_white.png?raw=true)

---

[Civil](https://joincivil.com/) is a decentralized and censorship resistant ecosystem for online Journalism. Read more in our whitepaper.

[WIP Civil DApp](https://dapp.staging.cvl.pub/) - Read Documentation and Interact with Contracts and tools at our DApp, hosted for your convenience. This DApp and associated contracts are a Work In Progress and contracts are deployed on the Rinkeby testnet. If you would like some test CVL to try out the DApp, please ask in our Gitter room and we can send you some.

This repository contains all of the open-source Civil tools and packages written in Typescript.
We hope that those tools will be useful for creation of interesting applications on top of the ecosystem as well as be useful in any project in the Ethereum space.

[![Coverage Status](https://coveralls.io/repos/github/joincivil/Civil/badge.svg)](https://coveralls.io/github/joincivil/Civil)
[![CircleCI](https://img.shields.io/circleci/project/github/joincivil/Civil.svg)](https://circleci.com/gh/joincivil/Civil/tree/master)
[![Gitter chat](https://badges.gitter.im/joincivil/Lobby.png)](https://gitter.im/joincivil/Lobby)
[![Telegram chat](https://img.shields.io/badge/chat-telegram-blue.svg)](https://t.me/join_civil)

Most of the packages require additional typings for external dependencies. You can include those by prepending @joincivil/typescript-typings package to your typeRoots config.

```json
"typeRoots": ["node_modules/@joincivil/typescript-typings/types", "node_modules/@types"],
```

### Published packages

| Package                                                         | NPM                                                                                                                                       | Description                                                            |
| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [`@joincivil/core`][core-url]                                   | [![npm link](https://img.shields.io/badge/npm-core-blue.svg)](https://www.npmjs.com/package/@joincivil/core)                              | JS library for interacting with Civil ecosystem                        |
| [`@joincivil/tslint-rules`](/packages/tslint-rules)             | [![npm link](https://img.shields.io/badge/npm-tslint--rules-blue.svg)](https://www.npmjs.com/package/@joincivil/tslint-rules)             | Linting rules for Civil's Typescript packages                          |
| [`@joincivil/utils`](/packages/utils)                           | [![npm link](https://img.shields.io/badge/npm-utils-blue.svg)](https://www.npmjs.com/package/@joincivil/utils)                            | Utilities shared between Civil projects used during runtime            |
| [`@joincivil/typescript-types`](/packages/typescript-types)     | [![npm link](https://img.shields.io/badge/npm-typescript--types-blue.svg)](https://www.npmjs.com/package/@joincivil/typescript-types)     | Types used in multiple Civil packages                                  |
| [`@joincivil/typescript-typings`](/packages/typescript-typings) | [![npm link](https://img.shields.io/badge/npm-typescript--typings-blue.svg)](https://www.npmjs.com/package/@joincivil/typescript-typings) | Typescript type roots for external projects and internal modifications |
| [`@joincivil/ethapi`](/packages/ethapi)                         | [![npm link](https://img.shields.io/badge/npm-ethapi-blue.svg)](https://www.npmjs.com/package/@joincivil/ethapi)                          | An abstraction of Ethereum communication                               |

### Private packages

| Package                                       | Description                                                                                                         |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| [`@joincivil/contracts`](/packages/contracts) | Smart-contracts needed for the Civil's protocol                                                                     |
| [`@joincivil/dapp`](/packages/dapp)           | DApp for interacting with the Civil contracts                                                                       |
| [`@joincivil/dev-utils`](/packages/dev-utils) | Utilities needed for the proper working of the mono-repo packages, builds and tests                                 |
| [`@joincivil/debug-ui`](/packages/debug-ui)   | WIP: Minimal website to monitor, observe and debug the protocol and all the utilities and packages of the ecosystem |

## Contributing

Civil's ecosystem is free and open-source, we're all part of it and you're encouraged to be a part of it with us.
Best place to start hacking would be to use the [`@joincivil/core`][core-url] and build some application on top of the protocol.

If you're itching to delve deeper inside, [**help wanted**](https://github.com/joincivil/Civil/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
and [**good first issue**](https://github.com/joincivil/Civil/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) labels are good places to get started and learn the architecture.

## Dev Setup

### Install dependencies

This project is using [yarn workspaces](https://yarnpkg.com/lang/en/docs/workspaces/). They require `yarn >= 1.0` to work properly.

Set up all dependencies:

from the root directory:

```bash
yarn install
```

### Build

Build all packages in the monorepo:

```bash
yarn build
```

Turn on file-watch mode and rebuild most of the files on change:

```bash
yarn watch
```

### Lint

Check all packages for linting errors:

```bash
yarn lint
```

### Testing

Tests in Civil's ecosystem require the use of [Ganache](https://github.com/trufflesuite/ganache-cli), Ethereum's development test network, spin it in a seperate terminal:

```bash
yarn ganache
```

Finally run all the tests in the main repository:

```bash
yarn test
```

### Easy Setup with front-end

We've added a helper command to assist you if you want to develop using the front-end and a local ganache. Just 3 simple commands.

First, however, you may want to add your own address (e.g. MetaMask account) to our config file so that you are distributed tokens/ETH properly and change the Appellate and GovernmentController addresses. This is especially useful if your MetaMask account is not the same as one of you ganache accounts (all ganache accounts are given tokens by default). Config file can be found at `packages/contracts/conf/config.json`.

From the root directory:

```bash
yarn ganache
```

Once that is running, in another terminal, from the root directory:

```bash
yarn preparelocally
```

After that completes:

```bash
cd packages/dapp
yarn start
```

Now you have the dapp front-end running at `localhost:3000`. Make sure to select `localhost 8545` in metamask to interact with the dapp.

### Run commands in all packages

Civil's monorepo is using [lerna](https://github.com/lerna/lerna) to easily manage the monorepo structure. Two helper yarn scripts are provided for your convenience.

To run the supported lerna version:

```bash
yarn lerna
```

To run scripts in all packages in the monorepo:

```bash
yarn lerna:run
```

### Cleaning the state

To refresh the repository state as much as possible run:

```bash
yarn clean && yarn lerna clean --yes && rm -r node_modules && yarn install
```

🐙 was here.

[core-url]: /packages/core


================================================
FILE: commitlint.config.js
================================================
module.exports = { extends: ["@commitlint/config-conventional", "@commitlint/config-lerna-scopes"] };


================================================
FILE: lerna.json
================================================
{
  "lerna": "3.15.0",
  "packages": ["packages/*"],
  "npmClient": "yarn",
  "useWorkspaces": true,
  "version": "independent",
  "command": {
    "publish": {
      "conventionalCommits": true
    },
    "version": {
      "message": "chore(release): release"
    }
  }
}


================================================
FILE: package.json
================================================
{
  "name": "@joincivil/root",
  "private": true,
  "homepage": "https://civil.co",
  "workspaces": [
    "packages/*"
  ],
  "scripts": {
    "build": "lerna run build --sort",
    "watch": "lerna run --parallel build:watch",
    "lint": "lerna run lint --parallel",
    "build:core": "lerna run --scope @joincivil/core build",
    "copy:boost-loader": "mkdir -p packages/dapp/build/loader/ && cp packages/sdk/build/static/js/boost.js* packages/dapp/build/loader/",
    "coverage": "lerna run coverage --parallel",
    "coverage:submit": "lcov-result-merger 'packages/*/coverage/lcov.info' | coveralls",
    "prettier": "prettier --config .prettierrc.yaml --write --list-different './**/*.{ts,tsx,json,md}'",
    "prettier:package": "[ $PACKAGE ] && prettier --config .prettierrc.yaml --write --list-different ./packages/$PACKAGE'/**/*.{ts,tsx,json,md}' || echo 'Specify a package name as environment variable to run prettier on just that package, e.g. `PACKAGE=dapp yarn prettier:package`'",
    "clean": "lerna run clean --parallel",
    "test": "CI=true lerna run test --stream --sort --ignore @joincivil/contracts",
    "test-contracts": "lerna run test --stream --sort",
    "lerna:run": "lerna run",
    "prepare": "lerna run prepare --no-sort",
    "ganache": "run-p ganache:raw 'lerna:run --scope @joincivil/contracts migrate:ganache'",
    "ganache:raw": "ganache-cli -p 8545 --networkId 50 -d -m \"${npm_package_config_mnemonic}\" --noVMErrorsOnRPCResponse",
    "migrate": "lerna run --scope @joincivil/contracts migrate:ganache",
    "serve:dapp": "cd ./packages/dapp && serve -s build",
    "publish:docs": "ncp ./packages/dapp/build/ ./docs/",
    "publish:artifacts-dev": "ncp ./packages/contracts/build/artifacts/CivilTCR.json ./packages/artifacts/v1/CivilTCR.json && ncp ./packages/contracts/build/artifacts/CivilPLCRVoting.json ./packages/artifacts/v1/CivilPLCRVoting.json && ncp ./packages/contracts/build/artifacts/CivilParameterizer.json ./packages/artifacts/v1/CivilParameterizer.json && ncp ./packages/contracts/build/artifacts/CVLToken.json ./packages/artifacts/v1/CVLToken.json && ncp ./packages/contracts/build/artifacts/EventStorage.json ./packages/artifacts/v1/EventStorage.json && ncp ./packages/contracts/build/artifacts/Government.json ./packages/artifacts/v1/Government.json && ncp ./packages/contracts/build/artifacts/MultiSigWallet.json ./packages/artifacts/v1/MultiSigWallet.json && ncp ./packages/contracts/build/artifacts/Newsroom.json ./packages/artifacts/v1/Newsroom.json && ncp ./packages/contracts/build/artifacts/NewsroomFactory.json ./packages/artifacts/v1/NewsroomFactory.json && ncp ./packages/contracts/build/artifacts/CivilTokenController.json ./packages/artifacts/v1/CivilTokenController.json && ncp ./packages/contracts/build/artifacts/CreateNewsroomInGroup.json ./packages/artifacts/v1/CreateNewsroomInGroup.json && ncp ./packages/contracts/build/artifacts/NoOpTokenController.json ./packages/artifacts/v1/NoOpTokenController.json",
    "preparelocally": "run-s migrate publish:artifacts-dev build:core",
    "commit": "commit",
    "release": "multi-semantic-release"
  },
  "config": {
    "mnemonic": "notice tobacco baby curious trade other capable invite cable thunder file equal"
  },
  "resolutions": {
    "ethers": "4.0.27",
    "**/ethers": "4.0.27"
  },
  "license": "(Apache-2.0 OR LGPL-2.1-only)",
  "devDependencies": {
    "@commitlint/cli": "^7.5.2",
    "@commitlint/config-conventional": "^7.5.0",
    "@commitlint/config-lerna-scopes": "^8.1.0",
    "@commitlint/prompt-cli": "^8.1.0",
    "@semantic-release/npm": "^5.1.7",
    "coveralls": "^3.0.0",
    "ganache-cli": "^6.5.1",
    "husky": "^2.1.0",
    "lcov-result-merger": "^3.1.0",
    "lerna": "^3.15.0",
    "multi-semantic-release": "^1.1.0",
    "ncp": "^2.0.0",
    "npm-run-all": ">=4.1.5",
    "prettier": "1.18.2",
    "semantic-release": "^15.13.3"
  },
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  }
}


================================================
FILE: packages/artifacts/package.json
================================================
{
  "name": "@joincivil/artifacts",
  "version": "1.1.9",
  "description": "Civil Ethereum smart contract artifacts",
  "scripts": {},
  "author": "The Civil Media Company",
  "bugs": {
    "url": "https://github.com/joincivil/Civil/issues"
  },
  "publishConfig": {
    "access": "public"
  },
  "homepage": "https://github.com/joincivil/Civil",
  "license": "LGPL-2.1"
}


================================================
FILE: packages/artifacts/v1/ACL.json
================================================
{
  "contractName": "ACL",
  "bytecode": "0x608060405234801561001057600080fd5b5060008054600160a060020a03191633179055610355806100326000396000f30060806040526004361061006c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663217fe6c681146100715780632f54bf6e146100ec578063715018a61461010d5780638da5cb5b14610124578063f2fde38b14610155575b600080fd5b34801561007d57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100d8958335600160a060020a03169536956044949193909101919081908401838280828437509497506101769650505050505050565b604080519115158252519081900360200190f35b3480156100f857600080fd5b506100d8600160a060020a03600435166101fa565b34801561011957600080fd5b5061012261020e565b005b34801561013057600080fd5b5061013961027a565b60408051600160a060020a039092168252519081900360200190f35b34801561016157600080fd5b50610122600160a060020a0360043516610289565b60006001826040518082805190602001908083835b602083106101aa5780518252601f19909201916020918201910161018b565b51815160209384036101000a600019018019909216911617905292019485525060408051948590038201909420600160a060020a0397909716600090815296905250509092205460ff1692915050565b600054600160a060020a0390811691161490565b600054600160a060020a0316331461022557600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600054600160a060020a031633146102a057600080fd5b6102a9816102ac565b50565b600160a060020a03811615156102c157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820ccf2b858c6dafa2777144e5272cb0d25fb58b5b8254f5f61242d728f24a65bd50029",
  "deployedBytecode": "0x60806040526004361061006c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663217fe6c681146100715780632f54bf6e146100ec578063715018a61461010d5780638da5cb5b14610124578063f2fde38b14610155575b600080fd5b34801561007d57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100d8958335600160a060020a03169536956044949193909101919081908401838280828437509497506101769650505050505050565b604080519115158252519081900360200190f35b3480156100f857600080fd5b506100d8600160a060020a03600435166101fa565b34801561011957600080fd5b5061012261020e565b005b34801561013057600080fd5b5061013961027a565b60408051600160a060020a039092168252519081900360200190f35b34801561016157600080fd5b50610122600160a060020a0360043516610289565b60006001826040518082805190602001908083835b602083106101aa5780518252601f19909201916020918201910161018b565b51815160209384036101000a600019018019909216911617905292019485525060408051948590038201909420600160a060020a0397909716600090815296905250509092205460ff1692915050565b600054600160a060020a0390811691161490565b600054600160a060020a0316331461022557600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600054600160a060020a031633146102a057600080fd5b6102a9816102ac565b50565b600160a060020a03811615156102c157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820ccf2b858c6dafa2777144e5272cb0d25fb58b5b8254f5f61242d728f24a65bd50029",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "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": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "granter",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "grantee",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "role",
          "type": "string"
        }
      ],
      "name": "RoleAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "granter",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "grantee",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "role",
          "type": "string"
        }
      ],
      "name": "RoleRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "user",
          "type": "address"
        },
        {
          "name": "role",
          "type": "string"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "user",
          "type": "address"
        }
      ],
      "name": "isOwner",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "networks": {}
}


================================================
FILE: packages/artifacts/v1/AddressRegistry.json
================================================
{
  "contractName": "AddressRegistry",
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162002f3838038062002f38833981016040908152815160208301519183015160608401519193909101600160a060020a0384161515620000b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5f746f6b656e2061646472657373206973203000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03831615156200012e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5f766f74696e6720616464726573732069732030000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382161515620001a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706172616d65746572697a6572206164647265737320697320300000000000604482015290519081900360640190fd5b60028054600160a060020a03808716600160a060020a0319928316179092556003805486841690831617905560048054928516929091169190911790558051620001f890600590602084019062000203565b5050505050620002a8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024657805160ff191683800117855562000276565b8280016001018555821562000276579182015b828111156200027657825182559160200191906001019062000259565b506200028492915062000288565b5090565b620002a591905b808211156200028457600081556001016200028f565b90565b612c8080620002b86000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301162b93811461013757806306fdde031461015a5780632ea9b696146101e45780633af32abf1461021957806347e7ef241461023a57806355246b9c1461025e5780635f02116f146102c757806361a9a8ca1461035557806365d96c82146103765780636eefcab9146103ca57806386bb8f37146103eb5780638f1d377614610406578063a5ba3b1e14610451578063a7aad3db14610475578063b42652e9146104ae578063bc4b010f146104cf578063c8187cf114610536578063dd4e7cfd1461054e578063e1e3f9151461056f578063f3fef3a3146105a0578063f96c8720146105c4578063fc0c546a14610619578063fce1ccca1461062e575b600080fd5b34801561014357600080fd5b50610158600160a060020a0360043516610643565b005b34801561016657600080fd5b5061016f610679565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a9578181015183820152602001610191565b50505050905090810190601f1680156101d65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f057600080fd5b50610205600160a060020a0360043516610707565b604080519115158252519081900360200190f35b34801561022557600080fd5b50610205600160a060020a0360043516610843565b34801561024657600080fd5b50610158600160a060020a0360043516602435610869565b34801561026a57600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610158948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610a259650505050505050565b3480156102d357600080fd5b506040805160206004803580820135838102808601850190965280855261015895369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610eda9650505050505050565b34801561036157600080fd5b50610205600160a060020a0360043516610fae565b34801561038257600080fd5b50610397600160a060020a0360043516610fca565b604080519586529315156020860152600160a060020a039092168484015260608401526080830152519081900360a00190f35b3480156103d657600080fd5b50610205600160a060020a0360043516611005565b3480156103f757600080fd5b50610158600435602435611050565b34801561041257600080fd5b5061041e600435611322565b60408051958652600160a060020a0390941660208601529115158484015260608401526080830152519081900360a00190f35b34801561045d57600080fd5b50610205600435600160a060020a036024351661135e565b34801561048157600080fd5b5061049c600160a060020a036004351660243560443561138c565b60408051918252519081900360200190f35b3480156104ba57600080fd5b50610158600160a060020a036004351661145b565b3480156104db57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261049c958335600160a060020a031695369560449491939091019190819084018382808284375094975061164a9650505050505050565b34801561054257600080fd5b5061049c600435611f39565b34801561055a57600080fd5b50610205600160a060020a0360043516612165565b34801561057b57600080fd5b50610584612207565b60408051600160a060020a039092168252519081900360200190f35b3480156105ac57600080fd5b50610158600160a060020a0360043516602435612216565b3480156105d057600080fd5b5060408051602060048035808201358381028086018501909652808552610158953695939460249493850192918291850190849080828437509497506125bc9650505050505050565b34801561062557600080fd5b506105846125f4565b34801561063a57600080fd5b50610584612603565b61064c81612165565b1561065f5761065a81612612565b610676565b61066881610707565b156101325761065a81612696565b50565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b820191906000526020600020905b8154815290600101906020018083116106e257829003601f168201915b505050505081565b600160a060020a03811660009081526001602052604081206003015461072c83611005565b15156107a7576040805160e560020a62461bcd028152602060048201526024808201527f4368616c6c656e676520646f6573206e6f7420657869737420666f72204c697360448201527f74696e6700000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600354604080517fee684830000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ee684830916024808201926020929091908290030181600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b505191505b50919050565b600160a060020a0381166000908152600160208190526040909120015460ff165b919050565b600160a060020a0380831660009081526001602081905260409091209081015490916101009091041633146108e8576040805160e560020a62461bcd02815260206004820152601e60248201527f53656e646572206973206e6f74206f776e6572206f66204c697374696e670000604482015290519081900360640190fd5b600280820180548401905554604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561096457600080fd5b505af1158015610978573d6000803e3d6000fd5b505050506040513d602081101561098e57600080fd5b505115156109d4576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b600281015460408051848152602081019290925280513392600160a060020a038716927ffc2e298800eb7bcacdea96213f53962a6bdf27d2a560f831d4e42301492e8f6a92918290030190a3505050565b6000610a3084610843565b15610a85576040805160e560020a62461bcd02815260206004820152601b60248201527f4c697374696e6720616c72656164792077686974656c69737465640000000000604482015290519081900360640190fd5b610a8e84610fae565b15610b09576040805160e560020a62461bcd02815260206004820152602960248201527f4170706c69636174696f6e20616c7265616479206d61646520666f722074686960448201527f7320616464726573730000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600480546040805160e160020a63349f642f0281526020938101849052600a60248201527f6d696e4465706f7369740000000000000000000000000000000000000000000060448201529051600160a060020a039092169263693ec85e926064808401938290030181600087803b158015610b8357600080fd5b505af1158015610b97573d6000803e3d6000fd5b505050506040513d6020811015610bad57600080fd5b5051831015610c2c576040805160e560020a62461bcd02815260206004820152602360248201527f4465706f73697420616d6f756e74206e6f742061626f7665206d696e4465706f60448201527f7369740000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a038381166000908152600160208181526040808420928301805474ffffffffffffffffffffffffffffffffffffffff001916336101000217905560048054825160e160020a63349f642f028152918201849052600d60248301527f6170706c7953746167654c656e00000000000000000000000000000000000000604483015291519395610d1c9592169363693ec85e9360648084019491938390030190829087803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b505050506040513d6020811015610d0d57600080fd5b5051429063ffffffff6129f516565b81556002808201849055546001820154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152610100909204600160a060020a0390811660048401523060248401526044830187905290519216916323b872dd916064808201926020929091908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b50511515610e13576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b33600160a060020a031684600160a060020a03167f09cd8dcaf170a50a26316b5fe0727dd9fb9581a688d65e758b16a1650da65c0b858460000154866040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e98578181015183820152602001610e80565b50505050905090810190601f168015610ec55780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a350505050565b8051825160009114610f5c576040805160e560020a62461bcd02815260206004820152603960248201527f4d69736d6174636820696e206c656e677468206f66205f6368616c6c656e676560448201527f49447320616e64205f73616c747320706172616d657465727300000000000000606482015290519081900360840190fd5b5060005b8251811015610fa957610fa18382815181101515610f7a57fe5b906020019060200201518383815181101515610f9257fe5b90602001906020020151611050565b600101610f60565b505050565b600160a060020a03166000908152600160205260408120541190565b6001602081905260009182526040909120805491810154600282015460039092015460ff821692610100909204600160a060020a0316919085565b600160a060020a0381166000908152600160205260408120600301548181118015611049575060008181526020819052604090206001015460a060020a900460ff16155b9392505050565b600082815260208181526040808320338452600401909152812054819060ff16156110c5576040805160e560020a62461bcd02815260206004820152601660248201527f52657761726420616c726561647920636c61696d656400000000000000000000604482015290519081900360640190fd5b600084815260208190526040902060019081015460a060020a900460ff1615151461113a576040805160e560020a62461bcd02815260206004820152601a60248201527f4368616c6c656e6765206e6f7420796574207265736f6c766564000000000000604482015290519081900360640190fd5b600354604080517fb43bd06900000000000000000000000000000000000000000000000000000000815233600482015260248101879052604481018690529051600160a060020a039092169163b43bd069916064808201926020929091908290030181600087803b1580156111ae57600080fd5b505af11580156111c2573d6000803e3d6000fd5b505050506040513d60208110156111d857600080fd5b505191506111e733858561138c565b6000858152602081815260408083206003810180548890039055805485900381553380855260049182018452828520805460ff19166001179055600254835160e060020a63a9059cbb02815292830191909152602482018690529151949550600160a060020a039091169363a9059cbb93604480840194938390030190829087803b15801561127557600080fd5b505af1158015611289573d6000803e3d6000fd5b505050506040513d602081101561129f57600080fd5b505115156112e5576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b604080518281529051339186917f6f4c982acc31b0af2cf1dc1556f21c0325d893782d65e83c68a5534a33f599579181900360200190a350505050565b60006020819052908152604090208054600182015460028301546003909301549192600160a060020a0382169260a060020a90920460ff169185565b600082815260208181526040808320600160a060020a038516845260040190915290205460ff165b92915050565b6000828152602081815260408083206003808201549154905483517fb43bd069000000000000000000000000000000000000000000000000000000008152600160a060020a038a81166004830152602482018a905260448201899052945193959294879492169263b43bd0699260648084019382900301818787803b15801561141457600080fd5b505af1158015611428573d6000803e3d6000fd5b505050506040513d602081101561143e57600080fd5b505190508282820281151561144f57fe5b04979650505050505050565b600160a060020a0380821660009081526001602081905260409091209081015490913361010090920416146114da576040805160e560020a62461bcd02815260206004820152601e60248201527f53656e646572206973206e6f74206f776e6572206f66206c697374696e670000604482015290519081900360640190fd5b6114e382610843565b151561155f576040805160e560020a62461bcd02815260206004820152602860248201527f4c697374696e67206d7573742062652077686974656c697374656420746f206260448201527f6520657869746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003810154158061158d5750600381015460009081526020819052604090206001015460a060020a900460ff165b1515611609576040805160e560020a62461bcd02815260206004820152603660248201527f4c697374696e67206d757374206e6f74206861766520616e206163746976652060448201527f6368616c6c656e676520746f2062652065786974656400000000000000000000606482015290519081900360840190fd5b61161282612a02565b604051600160a060020a038316907f09a024f7311a15ac363521bddca1d9937c4244ab9a25e6c968e610b35ecc750390600090a25050565b600160a060020a03808316600090815260016020908152604080832060048054835160e160020a63349f642f028152918201859052600a60248301527f6d696e4465706f73697400000000000000000000000000000000000000000000604483015292519495919486948594859485948594929091169263693ec85e9260648084019382900301818787803b1580156116e257600080fd5b505af11580156116f6573d6000803e3d6000fd5b505050506040513d602081101561170c57600080fd5b5051945061171989610fae565b806117285750600186015460ff165b15156117ca576040805160e560020a62461bcd02815260206004820152604c60248201527f4c697374696e67206d75737420626520696e206170706c69636174696f6e207060448201527f68617365206f7220616c72656164792077686974656c697374656420746f206260648201527f65206368616c6c656e6765640000000000000000000000000000000000000000608482015290519081900360a40190fd5b600386015415806117f85750600386015460009081526020819052604090206001015460a060020a900460ff165b1515611874576040805160e560020a62461bcd02815260206004820152603760248201527f4c697374696e67206d757374206e6f742068617665206163746976652063686160448201527f6c6c656e676520746f206265206368616c6c656e676564000000000000000000606482015290519081900360840190fd5b84866002015410156118c65761188989612a02565b604051600160a060020a038a16907fc88462fa6972b64560d1dd34c4d66f2ff9841b2f974bdb0fab0827133d692f6490600090a260009650611f2d565b600354600480546040805160e160020a63349f642f0281526020938101849052600a60248201527f766f746551756f72756d0000000000000000000000000000000000000000000060448201529051600160a060020a03948516946332ed3d609493169263693ec85e92606480820193918290030181600087803b15801561194d57600080fd5b505af1158015611961573d6000803e3d6000fd5b505050506040513d602081101561197757600080fd5b5051600480546040805160e160020a63349f642f0281526020938101849052600e60248201527f636f6d6d697453746167654c656e00000000000000000000000000000000000060448201529051600160a060020a039092169263693ec85e926064808401938290030181600087803b1580156119f357600080fd5b505af1158015611a07573d6000803e3d6000fd5b505050506040513d6020811015611a1d57600080fd5b5051600480546040805160e160020a63349f642f0281526020938101849052600e60248201527f72657665616c53746167654c656e00000000000000000000000000000000000060448201529051600160a060020a039092169263693ec85e926064808401938290030181600087803b158015611a9957600080fd5b505af1158015611aad573d6000803e3d6000fd5b505050506040513d6020811015611ac357600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff87160281526004810194909452602484019290925260448301525160648083019260209291908290030181600087803b158015611b2857600080fd5b505af1158015611b3c573d6000803e3d6000fd5b505050506040513d6020811015611b5257600080fd5b50516040805160a0810180835260045460e160020a63349f642f02909152602060a48301819052600f60c48401527f64697370656e736174696f6e506374000000000000000000000000000000000060e484015292519397506064965090928392611c45928892611c39928c92611c2d92600160a060020a039091169163693ec85e91610104808b01929190818c030181600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050506040513d6020811015611c1e57600080fd5b50518a9063ffffffff612be416565b9063ffffffff612bf616565b9063ffffffff612c1f16565b81523360208083018290526000604080850182905260608086018c905260809586018390528a835282845281832087518155878501516001820180548a86015173ffffffffffffffffffffffffffffffffffffffff19909116600160a060020a039384161774ff0000000000000000000000000000000000000000191660a060020a91151591909102179055918801516002808301919091559790960151600396870155948c018a90558b860180548c90039055945485517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810194909452306024850152604484018b9052945194909316936323b872dd936064808501948390030190829087803b158015611d5e57600080fd5b505af1158015611d72573d6000803e3d6000fd5b505050506040513d6020811015611d8857600080fd5b50511515611dce576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b600354604080517f6148fed5000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691636148fed59160248082019260a0929091908290030181600087803b158015611e3557600080fd5b505af1158015611e49573d6000803e3d6000fd5b505050506040513d60a0811015611e5f57600080fd5b5080516020918201516040805180850184905290810182905260608082528c51908201528b5192955090935033928792600160a060020a038e16927f9a8e3864cbacafc5547b8567796b4d12d51217a879192b61932f5151ce581310928e92899289929091829160808301919087019080838360005b83811015611eed578181015183820152602001611ed5565b50505050905090810190601f168015611f1a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a48396505b50505050505092915050565b60008181526020819052604081206001015460a060020a900460ff1615611faa576040805160e560020a62461bcd02815260206004820152601a60248201527f4368616c6c656e676520616c7265616479207265736f6c766564000000000000604482015290519081900360640190fd5b600354604080517fee684830000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163ee684830916024808201926020929091908290030181600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b505050506040513d602081101561203b57600080fd5b50511515612093576040805160e560020a62461bcd02815260206004820181905260248201527f506f6c6c20666f72206368616c6c656e676520686173206e6f7420656e646564604482015290519081900360640190fd5b600354604080517f053e71a6000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163053e71a6916024808201926020929091908290030181600087803b1580156120fa57600080fd5b505af115801561210e573d6000803e3d6000fd5b505050506040513d602081101561212457600080fd5b505115156121475750600081815260208190526040902060029081015402610864565b50600090815260208190526040902080546002918201549091020390565b600160a060020a03811660009081526001602052604081206003015461218a83610fae565b80156121ad5750600160a060020a03831660009081526001602052604090205442115b80156121bf57506121bd83610843565b155b80156121f057508015806121f05750600081815260208190526040902060019081015460a060020a900460ff161515145b156121fe576001915061083d565b50600092915050565b600454600160a060020a031681565b600160a060020a038083166000908152600160208190526040909120908101549091610100909104163314612295576040805160e560020a62461bcd02815260206004820152601e60248201527f53656e646572206973206e6f74206f776e6572206f66206c697374696e670000604482015290519081900360640190fd5b6002810154821115612317576040805160e560020a62461bcd02815260206004820152603260248201527f43616e6e6f74207769746864726177206d6f7265207468616e2063757272656e60448201527f7420756e7374616b6564206465706f7369740000000000000000000000000000606482015290519081900360840190fd5b600381015415806123455750600381015460009081526020819052604090206001015460a060020a900460ff165b1561249a57600480546040805160e160020a63349f642f0281526020938101849052600a60248201527f6d696e4465706f7369740000000000000000000000000000000000000000000060448201529051600160a060020a039092169263693ec85e926064808401938290030181600087803b1580156123c457600080fd5b505af11580156123d8573d6000803e3d6000fd5b505050506040513d60208110156123ee57600080fd5b50516002820154839003101561249a576040805160e560020a62461bcd02815260206004820152605060248201527f5769746864726177616c2070726f686962697469656420617320697420776f7560448201527f6c6420707574204c697374696e6720756e7374616b6564206465706f7369742060648201527f62656c6f77206d696e4465706f73697400000000000000000000000000000000608482015290519081900360a40190fd5b600280820180548490039055546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156124fb57600080fd5b505af115801561250f573d6000803e3d6000fd5b505050506040513d602081101561252557600080fd5b5051151561256b576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b600281015460408051848152602081019290925280513392600160a060020a038716927f7b7771adeec078e4a338f627a52f307a7fd66d915cb133b5ace441bed26abc0b92918290030190a3505050565b60005b81518110156125f0576125e882828151811015156125d957fe5b90602001906020020151610643565b6001016125bf565b5050565b600254600160a060020a031681565b600354600160a060020a031681565b600160a060020a0381166000908152600160208190526040909120015460ff16151561266d57604051600160a060020a038216907fb268dc7f76f496fd307b40e0a3b57631a7e46123d9f708b1573bd4efbba3bdba90600090a25b600160a060020a031660009081526001602081905260409091208101805460ff19169091179055565b600160a060020a038116600090815260016020526040812060030154906126bc82611f39565b600083815260208181526040808320600101805474ff0000000000000000000000000000000000000000191660a060020a17905560035481517f053e71a6000000000000000000000000000000000000000000000000000000008152600481018890529151949550600160a060020a03169363053e71a693602480840194938390030190829087803b15801561275157600080fd5b505af1158015612765573d6000803e3d6000fd5b505050506040513d602081101561277b57600080fd5b5051600083815260208181526040808320600390810194909455925483517f49403183000000000000000000000000000000000000000000000000000000008152600481018790529351600160a060020a039091169363494031839360248083019493928390030190829087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b5051156128a35761282f83612612565b600160a060020a038316600081815260016020908152604080832060020180548601905585835282825291829020805460039091015483519182529181019190915281518593927f3639145ca0a6a8008912a972730b5c8634e1fd1555ea44a257a8de53c30d72fb928290030190a3610fa9565b6128ac83612a02565b60025460008381526020818152604080832060010154815160e060020a63a9059cbb028152600160a060020a03918216600482015260248101879052915194169363a9059cbb93604480840194938390030190829087803b15801561291057600080fd5b505af1158015612924573d6000803e3d6000fd5b505050506040513d602081101561293a57600080fd5b50511515612992576040805160e560020a62461bcd02815260206004820152601660248201527f546f6b656e207472616e73666572206661696c75726500000000000000000000604482015290519081900360640190fd5b60008281526020818152604091829020805460039091015483519182529181019190915281518492600160a060020a038716927fe86031b52c5a57c0768c3f196b63abf60b5ed012de77ce1bb88fc63588f7603a929081900390910190a3505050565b8181018281101561138657fe5b600160a060020a0381166000908152600160208190526040822090810154909190819060ff1615612a6657604051600160a060020a038516907f5aebb54d5afe29103adbc464fd4e0313af619f4d19f10a0209128b76cd9d0b0790600090a2612a9b565b604051600160a060020a038516907f8ad9ca8735c55207756208e8f59c7693e83d234fc6c8af2713f266468edff87190600090a25b5050600181810154600280840154600160a060020a038681166000908152602086905260408120818155958601805474ffffffffffffffffffffffffffffffffffffffffff19169055928501839055600390940182905561010090920490921691811115612bde576002546040805160e060020a63a9059cbb028152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015612b5c57600080fd5b505af1158015612b70573d6000803e3d6000fd5b505050506040513d6020811015612b8657600080fd5b50511515612bde576040805160e560020a62461bcd02815260206004820152601660248201527f546f6b656e207472616e73666572206661696c75726500000000000000000000604482015290519081900360640190fd5b50505050565b600082821115612bf057fe5b50900390565b6000821515612c0757506000611386565b50818102818382811515612c1757fe5b041461138657fe5b60008183811515612c2c57fe5b0493925050505600546f6b656e207472616e73666572206661696c65640000000000000000000000a165627a7a723058208727268bdc490006160e8e6fcf5613b8c995495125aaa0531e39d67fd6a530ad0029",
  "deployedBytecode": "0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301162b93811461013757806306fdde031461015a5780632ea9b696146101e45780633af32abf1461021957806347e7ef241461023a57806355246b9c1461025e5780635f02116f146102c757806361a9a8ca1461035557806365d96c82146103765780636eefcab9146103ca57806386bb8f37146103eb5780638f1d377614610406578063a5ba3b1e14610451578063a7aad3db14610475578063b42652e9146104ae578063bc4b010f146104cf578063c8187cf114610536578063dd4e7cfd1461054e578063e1e3f9151461056f578063f3fef3a3146105a0578063f96c8720146105c4578063fc0c546a14610619578063fce1ccca1461062e575b600080fd5b34801561014357600080fd5b50610158600160a060020a0360043516610643565b005b34801561016657600080fd5b5061016f610679565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a9578181015183820152602001610191565b50505050905090810190601f1680156101d65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f057600080fd5b50610205600160a060020a0360043516610707565b604080519115158252519081900360200190f35b34801561022557600080fd5b50610205600160a060020a0360043516610843565b34801561024657600080fd5b50610158600160a060020a0360043516602435610869565b34801561026a57600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610158948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610a259650505050505050565b3480156102d357600080fd5b506040805160206004803580820135838102808601850190965280855261015895369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610eda9650505050505050565b34801561036157600080fd5b50610205600160a060020a0360043516610fae565b34801561038257600080fd5b50610397600160a060020a0360043516610fca565b604080519586529315156020860152600160a060020a039092168484015260608401526080830152519081900360a00190f35b3480156103d657600080fd5b50610205600160a060020a0360043516611005565b3480156103f757600080fd5b50610158600435602435611050565b34801561041257600080fd5b5061041e600435611322565b60408051958652600160a060020a0390941660208601529115158484015260608401526080830152519081900360a00190f35b34801561045d57600080fd5b50610205600435600160a060020a036024351661135e565b34801561048157600080fd5b5061049c600160a060020a036004351660243560443561138c565b60408051918252519081900360200190f35b3480156104ba57600080fd5b50610158600160a060020a036004351661145b565b3480156104db57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261049c958335600160a060020a031695369560449491939091019190819084018382808284375094975061164a9650505050505050565b34801561054257600080fd5b5061049c600435611f39565b34801561055a57600080fd5b50610205600160a060020a0360043516612165565b34801561057b57600080fd5b50610584612207565b60408051600160a060020a039092168252519081900360200190f35b3480156105ac57600080fd5b50610158600160a060020a0360043516602435612216565b3480156105d057600080fd5b5060408051602060048035808201358381028086018501909652808552610158953695939460249493850192918291850190849080828437509497506125bc9650505050505050565b34801561062557600080fd5b506105846125f4565b34801561063a57600080fd5b50610584612603565b61064c81612165565b1561065f5761065a81612612565b610676565b61066881610707565b156101325761065a81612696565b50565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b820191906000526020600020905b8154815290600101906020018083116106e257829003601f168201915b505050505081565b600160a060020a03811660009081526001602052604081206003015461072c83611005565b15156107a7576040805160e560020a62461bcd028152602060048201526024808201527f4368616c6c656e676520646f6573206e6f7420657869737420666f72204c697360448201527f74696e6700000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600354604080517fee684830000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ee684830916024808201926020929091908290030181600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b505191505b50919050565b600160a060020a0381166000908152600160208190526040909120015460ff165b919050565b600160a060020a0380831660009081526001602081905260409091209081015490916101009091041633146108e8576040805160e560020a62461bcd02815260206004820152601e60248201527f53656e646572206973206e6f74206f776e6572206f66204c697374696e670000604482015290519081900360640190fd5b600280820180548401905554604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561096457600080fd5b505af1158015610978573d6000803e3d6000fd5b505050506040513d602081101561098e57600080fd5b505115156109d4576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b600281015460408051848152602081019290925280513392600160a060020a038716927ffc2e298800eb7bcacdea96213f53962a6bdf27d2a560f831d4e42301492e8f6a92918290030190a3505050565b6000610a3084610843565b15610a85576040805160e560020a62461bcd02815260206004820152601b60248201527f4c697374696e6720616c72656164792077686974656c69737465640000000000604482015290519081900360640190fd5b610a8e84610fae565b15610b09576040805160e560020a62461bcd02815260206004820152602960248201527f4170706c69636174696f6e20616c7265616479206d61646520666f722074686960448201527f7320616464726573730000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600480546040805160e160020a63349f642f0281526020938101849052600a60248201527f6d696e4465706f7369740000000000000000000000000000000000000000000060448201529051600160a060020a039092169263693ec85e926064808401938290030181600087803b158015610b8357600080fd5b505af1158015610b97573d6000803e3d6000fd5b505050506040513d6020811015610bad57600080fd5b5051831015610c2c576040805160e560020a62461bcd02815260206004820152602360248201527f4465706f73697420616d6f756e74206e6f742061626f7665206d696e4465706f60448201527f7369740000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a038381166000908152600160208181526040808420928301805474ffffffffffffffffffffffffffffffffffffffff001916336101000217905560048054825160e160020a63349f642f028152918201849052600d60248301527f6170706c7953746167654c656e00000000000000000000000000000000000000604483015291519395610d1c9592169363693ec85e9360648084019491938390030190829087803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b505050506040513d6020811015610d0d57600080fd5b5051429063ffffffff6129f516565b81556002808201849055546001820154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152610100909204600160a060020a0390811660048401523060248401526044830187905290519216916323b872dd916064808201926020929091908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b50511515610e13576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b33600160a060020a031684600160a060020a03167f09cd8dcaf170a50a26316b5fe0727dd9fb9581a688d65e758b16a1650da65c0b858460000154866040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e98578181015183820152602001610e80565b50505050905090810190601f168015610ec55780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a350505050565b8051825160009114610f5c576040805160e560020a62461bcd02815260206004820152603960248201527f4d69736d6174636820696e206c656e677468206f66205f6368616c6c656e676560448201527f49447320616e64205f73616c747320706172616d657465727300000000000000606482015290519081900360840190fd5b5060005b8251811015610fa957610fa18382815181101515610f7a57fe5b906020019060200201518383815181101515610f9257fe5b90602001906020020151611050565b600101610f60565b505050565b600160a060020a03166000908152600160205260408120541190565b6001602081905260009182526040909120805491810154600282015460039092015460ff821692610100909204600160a060020a0316919085565b600160a060020a0381166000908152600160205260408120600301548181118015611049575060008181526020819052604090206001015460a060020a900460ff16155b9392505050565b600082815260208181526040808320338452600401909152812054819060ff16156110c5576040805160e560020a62461bcd02815260206004820152601660248201527f52657761726420616c726561647920636c61696d656400000000000000000000604482015290519081900360640190fd5b600084815260208190526040902060019081015460a060020a900460ff1615151461113a576040805160e560020a62461bcd02815260206004820152601a60248201527f4368616c6c656e6765206e6f7420796574207265736f6c766564000000000000604482015290519081900360640190fd5b600354604080517fb43bd06900000000000000000000000000000000000000000000000000000000815233600482015260248101879052604481018690529051600160a060020a039092169163b43bd069916064808201926020929091908290030181600087803b1580156111ae57600080fd5b505af11580156111c2573d6000803e3d6000fd5b505050506040513d60208110156111d857600080fd5b505191506111e733858561138c565b6000858152602081815260408083206003810180548890039055805485900381553380855260049182018452828520805460ff19166001179055600254835160e060020a63a9059cbb02815292830191909152602482018690529151949550600160a060020a039091169363a9059cbb93604480840194938390030190829087803b15801561127557600080fd5b505af1158015611289573d6000803e3d6000fd5b505050506040513d602081101561129f57600080fd5b505115156112e5576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b604080518281529051339186917f6f4c982acc31b0af2cf1dc1556f21c0325d893782d65e83c68a5534a33f599579181900360200190a350505050565b60006020819052908152604090208054600182015460028301546003909301549192600160a060020a0382169260a060020a90920460ff169185565b600082815260208181526040808320600160a060020a038516845260040190915290205460ff165b92915050565b6000828152602081815260408083206003808201549154905483517fb43bd069000000000000000000000000000000000000000000000000000000008152600160a060020a038a81166004830152602482018a905260448201899052945193959294879492169263b43bd0699260648084019382900301818787803b15801561141457600080fd5b505af1158015611428573d6000803e3d6000fd5b505050506040513d602081101561143e57600080fd5b505190508282820281151561144f57fe5b04979650505050505050565b600160a060020a0380821660009081526001602081905260409091209081015490913361010090920416146114da576040805160e560020a62461bcd02815260206004820152601e60248201527f53656e646572206973206e6f74206f776e6572206f66206c697374696e670000604482015290519081900360640190fd5b6114e382610843565b151561155f576040805160e560020a62461bcd02815260206004820152602860248201527f4c697374696e67206d7573742062652077686974656c697374656420746f206260448201527f6520657869746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003810154158061158d5750600381015460009081526020819052604090206001015460a060020a900460ff165b1515611609576040805160e560020a62461bcd02815260206004820152603660248201527f4c697374696e67206d757374206e6f74206861766520616e206163746976652060448201527f6368616c6c656e676520746f2062652065786974656400000000000000000000606482015290519081900360840190fd5b61161282612a02565b604051600160a060020a038316907f09a024f7311a15ac363521bddca1d9937c4244ab9a25e6c968e610b35ecc750390600090a25050565b600160a060020a03808316600090815260016020908152604080832060048054835160e160020a63349f642f028152918201859052600a60248301527f6d696e4465706f73697400000000000000000000000000000000000000000000604483015292519495919486948594859485948594929091169263693ec85e9260648084019382900301818787803b1580156116e257600080fd5b505af11580156116f6573d6000803e3d6000fd5b505050506040513d602081101561170c57600080fd5b5051945061171989610fae565b806117285750600186015460ff165b15156117ca576040805160e560020a62461bcd02815260206004820152604c60248201527f4c697374696e67206d75737420626520696e206170706c69636174696f6e207060448201527f68617365206f7220616c72656164792077686974656c697374656420746f206260648201527f65206368616c6c656e6765640000000000000000000000000000000000000000608482015290519081900360a40190fd5b600386015415806117f85750600386015460009081526020819052604090206001015460a060020a900460ff165b1515611874576040805160e560020a62461bcd02815260206004820152603760248201527f4c697374696e67206d757374206e6f742068617665206163746976652063686160448201527f6c6c656e676520746f206265206368616c6c656e676564000000000000000000606482015290519081900360840190fd5b84866002015410156118c65761188989612a02565b604051600160a060020a038a16907fc88462fa6972b64560d1dd34c4d66f2ff9841b2f974bdb0fab0827133d692f6490600090a260009650611f2d565b600354600480546040805160e160020a63349f642f0281526020938101849052600a60248201527f766f746551756f72756d0000000000000000000000000000000000000000000060448201529051600160a060020a03948516946332ed3d609493169263693ec85e92606480820193918290030181600087803b15801561194d57600080fd5b505af1158015611961573d6000803e3d6000fd5b505050506040513d602081101561197757600080fd5b5051600480546040805160e160020a63349f642f0281526020938101849052600e60248201527f636f6d6d697453746167654c656e00000000000000000000000000000000000060448201529051600160a060020a039092169263693ec85e926064808401938290030181600087803b1580156119f357600080fd5b505af1158015611a07573d6000803e3d6000fd5b505050506040513d6020811015611a1d57600080fd5b5051600480546040805160e160020a63349f642f0281526020938101849052600e60248201527f72657665616c53746167654c656e00000000000000000000000000000000000060448201529051600160a060020a039092169263693ec85e926064808401938290030181600087803b158015611a9957600080fd5b505af1158015611aad573d6000803e3d6000fd5b505050506040513d6020811015611ac357600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff87160281526004810194909452602484019290925260448301525160648083019260209291908290030181600087803b158015611b2857600080fd5b505af1158015611b3c573d6000803e3d6000fd5b505050506040513d6020811015611b5257600080fd5b50516040805160a0810180835260045460e160020a63349f642f02909152602060a48301819052600f60c48401527f64697370656e736174696f6e506374000000000000000000000000000000000060e484015292519397506064965090928392611c45928892611c39928c92611c2d92600160a060020a039091169163693ec85e91610104808b01929190818c030181600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050506040513d6020811015611c1e57600080fd5b50518a9063ffffffff612be416565b9063ffffffff612bf616565b9063ffffffff612c1f16565b81523360208083018290526000604080850182905260608086018c905260809586018390528a835282845281832087518155878501516001820180548a86015173ffffffffffffffffffffffffffffffffffffffff19909116600160a060020a039384161774ff0000000000000000000000000000000000000000191660a060020a91151591909102179055918801516002808301919091559790960151600396870155948c018a90558b860180548c90039055945485517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810194909452306024850152604484018b9052945194909316936323b872dd936064808501948390030190829087803b158015611d5e57600080fd5b505af1158015611d72573d6000803e3d6000fd5b505050506040513d6020811015611d8857600080fd5b50511515611dce576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b600354604080517f6148fed5000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691636148fed59160248082019260a0929091908290030181600087803b158015611e3557600080fd5b505af1158015611e49573d6000803e3d6000fd5b505050506040513d60a0811015611e5f57600080fd5b5080516020918201516040805180850184905290810182905260608082528c51908201528b5192955090935033928792600160a060020a038e16927f9a8e3864cbacafc5547b8567796b4d12d51217a879192b61932f5151ce581310928e92899289929091829160808301919087019080838360005b83811015611eed578181015183820152602001611ed5565b50505050905090810190601f168015611f1a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a48396505b50505050505092915050565b60008181526020819052604081206001015460a060020a900460ff1615611faa576040805160e560020a62461bcd02815260206004820152601a60248201527f4368616c6c656e676520616c7265616479207265736f6c766564000000000000604482015290519081900360640190fd5b600354604080517fee684830000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163ee684830916024808201926020929091908290030181600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b505050506040513d602081101561203b57600080fd5b50511515612093576040805160e560020a62461bcd02815260206004820181905260248201527f506f6c6c20666f72206368616c6c656e676520686173206e6f7420656e646564604482015290519081900360640190fd5b600354604080517f053e71a6000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163053e71a6916024808201926020929091908290030181600087803b1580156120fa57600080fd5b505af115801561210e573d6000803e3d6000fd5b505050506040513d602081101561212457600080fd5b505115156121475750600081815260208190526040902060029081015402610864565b50600090815260208190526040902080546002918201549091020390565b600160a060020a03811660009081526001602052604081206003015461218a83610fae565b80156121ad5750600160a060020a03831660009081526001602052604090205442115b80156121bf57506121bd83610843565b155b80156121f057508015806121f05750600081815260208190526040902060019081015460a060020a900460ff161515145b156121fe576001915061083d565b50600092915050565b600454600160a060020a031681565b600160a060020a038083166000908152600160208190526040909120908101549091610100909104163314612295576040805160e560020a62461bcd02815260206004820152601e60248201527f53656e646572206973206e6f74206f776e6572206f66206c697374696e670000604482015290519081900360640190fd5b6002810154821115612317576040805160e560020a62461bcd02815260206004820152603260248201527f43616e6e6f74207769746864726177206d6f7265207468616e2063757272656e60448201527f7420756e7374616b6564206465706f7369740000000000000000000000000000606482015290519081900360840190fd5b600381015415806123455750600381015460009081526020819052604090206001015460a060020a900460ff165b1561249a57600480546040805160e160020a63349f642f0281526020938101849052600a60248201527f6d696e4465706f7369740000000000000000000000000000000000000000000060448201529051600160a060020a039092169263693ec85e926064808401938290030181600087803b1580156123c457600080fd5b505af11580156123d8573d6000803e3d6000fd5b505050506040513d60208110156123ee57600080fd5b50516002820154839003101561249a576040805160e560020a62461bcd02815260206004820152605060248201527f5769746864726177616c2070726f686962697469656420617320697420776f7560448201527f6c6420707574204c697374696e6720756e7374616b6564206465706f7369742060648201527f62656c6f77206d696e4465706f73697400000000000000000000000000000000608482015290519081900360a40190fd5b600280820180548490039055546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156124fb57600080fd5b505af115801561250f573d6000803e3d6000fd5b505050506040513d602081101561252557600080fd5b5051151561256b576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612c35833981519152604482015290519081900360640190fd5b600281015460408051848152602081019290925280513392600160a060020a038716927f7b7771adeec078e4a338f627a52f307a7fd66d915cb133b5ace441bed26abc0b92918290030190a3505050565b60005b81518110156125f0576125e882828151811015156125d957fe5b90602001906020020151610643565b6001016125bf565b5050565b600254600160a060020a031681565b600354600160a060020a031681565b600160a060020a0381166000908152600160208190526040909120015460ff16151561266d57604051600160a060020a038216907fb268dc7f76f496fd307b40e0a3b57631a7e46123d9f708b1573bd4efbba3bdba90600090a25b600160a060020a031660009081526001602081905260409091208101805460ff19169091179055565b600160a060020a038116600090815260016020526040812060030154906126bc82611f39565b600083815260208181526040808320600101805474ff0000000000000000000000000000000000000000191660a060020a17905560035481517f053e71a6000000000000000000000000000000000000000000000000000000008152600481018890529151949550600160a060020a03169363053e71a693602480840194938390030190829087803b15801561275157600080fd5b505af1158015612765573d6000803e3d6000fd5b505050506040513d602081101561277b57600080fd5b5051600083815260208181526040808320600390810194909455925483517f49403183000000000000000000000000000000000000000000000000000000008152600481018790529351600160a060020a039091169363494031839360248083019493928390030190829087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b5051156128a35761282f83612612565b600160a060020a038316600081815260016020908152604080832060020180548601905585835282825291829020805460039091015483519182529181019190915281518593927f3639145ca0a6a8008912a972730b5c8634e1fd1555ea44a257a8de53c30d72fb928290030190a3610fa9565b6128ac83612a02565b60025460008381526020818152604080832060010154815160e060020a63a9059cbb028152600160a060020a03918216600482015260248101879052915194169363a9059cbb93604480840194938390030190829087803b15801561291057600080fd5b505af1158015612924573d6000803e3d6000fd5b505050506040513d602081101561293a57600080fd5b50511515612992576040805160e560020a62461bcd02815260206004820152601660248201527f546f6b656e207472616e73666572206661696c75726500000000000000000000604482015290519081900360640190fd5b60008281526020818152604091829020805460039091015483519182529181019190915281518492600160a060020a038716927fe86031b52c5a57c0768c3f196b63abf60b5ed012de77ce1bb88fc63588f7603a929081900390910190a3505050565b8181018281101561138657fe5b600160a060020a0381166000908152600160208190526040822090810154909190819060ff1615612a6657604051600160a060020a038516907f5aebb54d5afe29103adbc464fd4e0313af619f4d19f10a0209128b76cd9d0b0790600090a2612a9b565b604051600160a060020a038516907f8ad9ca8735c55207756208e8f59c7693e83d234fc6c8af2713f266468edff87190600090a25b5050600181810154600280840154600160a060020a038681166000908152602086905260408120818155958601805474ffffffffffffffffffffffffffffffffffffffffff19169055928501839055600390940182905561010090920490921691811115612bde576002546040805160e060020a63a9059cbb028152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015612b5c57600080fd5b505af1158015612b70573d6000803e3d6000fd5b505050506040513d6020811015612b8657600080fd5b50511515612bde576040805160e560020a62461bcd02815260206004820152601660248201527f546f6b656e207472616e73666572206661696c75726500000000000000000000604482015290519081900360640190fd5b50505050565b600082821115612bf057fe5b50900390565b6000821515612c0757506000611386565b50818102818382811515612c1757fe5b041461138657fe5b60008183811515612c2c57fe5b0493925050505600546f6b656e207472616e73666572206661696c65640000000000000000000000a165627a7a723058208727268bdc490006160e8e6fcf5613b8c995495125aaa0531e39d67fd6a530ad0029",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "listings",
      "outputs": [
        {
          "name": "applicationExpiry",
          "type": "uint256"
        },
        {
          "name": "whitelisted",
          "type": "bool"
        },
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "unstakedDeposit",
          "type": "uint256"
        },
        {
          "name": "challengeID",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "challenges",
      "outputs": [
        {
          "name": "rewardPool",
          "type": "uint256"
        },
        {
          "name": "challenger",
          "type": "address"
        },
        {
          "name": "resolved",
          "type": "bool"
        },
        {
          "name": "stake",
          "type": "uint256"
        },
        {
          "name": "totalTokens",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "parameterizer",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "voting",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        },
        {
          "name": "_voting",
          "type": "address"
        },
        {
          "name": "_parameterizer",
          "type": "address"
        },
        {
          "name": "_name",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "deposit",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "appEndDate",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "data",
          "type": "string"
        },
        {
          "indexed": true,
          "name": "applicant",
          "type": "address"
        }
      ],
      "name": "_Application",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "challengeID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "data",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "commitEndDate",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "revealEndDate",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "challenger",
          "type": "address"
        }
      ],
      "name": "_Challenge",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "added",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "newTotal",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "_Deposit",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "withdrew",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "newTotal",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "_Withdrawal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "_ApplicationWhitelisted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "_ApplicationRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "_ListingRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "_ListingWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "_TouchAndRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "challengeID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "rewardPool",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "totalTokens",
          "type": "uint256"
        }
      ],
      "name": "_ChallengeFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "listingAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "challengeID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "rewardPool",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "totalTokens",
          "type": "uint256"
        }
      ],
      "name": "_ChallengeSucceeded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "challengeID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "reward",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "_RewardClaimed",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        },
        {
          "name": "_data",
          "type": "string"
        }
      ],
      "name": "apply",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "deposit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "exit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        },
        {
          "name": "_data",
          "type": "string"
        }
      ],
      "name": "challenge",
      "outputs": [
        {
          "name": "challengeID",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "updateStatus",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "listingAddresses",
          "type": "address[]"
        }
      ],
      "name": "updateStatuses",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_challengeID",
          "type": "uint256"
        },
        {
          "name": "_salt",
          "type": "uint256"
        }
      ],
      "name": "claimReward",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_challengeIDs",
          "type": "uint256[]"
        },
        {
          "name": "_salts",
          "type": "uint256[]"
        }
      ],
      "name": "claimRewards",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_challengeID",
          "type": "uint256"
        },
        {
          "name": "_salt",
          "type": "uint256"
        }
      ],
      "name": "voterReward",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "canBeWhitelisted",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "isWhitelisted",
      "outputs": [
        {
          "name": "whitelisted",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "appWasMade",
      "outputs": [
        {
          "name": "exists",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "challengeExists",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "listingAddress",
          "type": "address"
        }
      ],
      "name": "challengeCanBeResolved",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_challengeID",
          "type": "uint256"
        }
      ],
      "name": "determineReward",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_challengeID",
          "type": "uint256"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "tokenClaims",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "networks": {}
}


================================================
FILE: packages/artifacts/v1/AttributeStore.json
================================================
{
  "contractName": "AttributeStore",
  "bytecode": "0x610257610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600436106100625763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350389f5c8114610067578063977aa031146100cc575b600080fd5b604080516020600460443581810135601f81018490048402850184019095528484526100ba9482359460248035953695946064949201919081908401838280828437509497506101309650505050505050565b60408051918252519081900360200190f35b8180156100d857600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261012e94823594602480359536959460649492019190819084018382808284375094975050933594506101ae9350505050565b005b6040518281528151600091829185918591602080830191908401908083835b6020831061016e5780518252601f19909201916020918201910161014f565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060009081529a90525090972054979650505050505050565b60405183815282516000918591859190602080830191908401908083835b602083106101eb5780518252601f1990920191602091820191016101cc565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060009081529a905250909720939093555050505050505600a165627a7a7230582079ab66d305fc0d9403e2a82ed5a7c4091142c9ec363996370b09386ef5b19a420029",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100625763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350389f5c8114610067578063977aa031146100cc575b600080fd5b604080516020600460443581810135601f81018490048402850184019095528484526100ba9482359460248035953695946064949201919081908401838280828437509497506101309650505050505050565b60408051918252519081900360200190f35b8180156100d857600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261012e94823594602480359536959460649492019190819084018382808284375094975050933594506101ae9350505050565b005b6040518281528151600091829185918591602080830191908401908083835b6020831061016e5780518252601f19909201916020918201910161014f565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060009081529a90525090972054979650505050505050565b60405183815282516000918591859190602080830191908401908083835b602083106101eb5780518252601f1990920191602091820191016101cc565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060009081529a905250909720939093555050505050505600a165627a7a7230582079ab66d305fc0d9403e2a82ed5a7c4091142c9ec363996370b09386ef5b19a420029",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "AttributeStore.Data storage"
        },
        {
          "name": "_UUID",
          "type": "bytes32"
        },
        {
          "name": "_attrName",
          "type": "string"
        }
      ],
      "name": "getAttribute",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "AttributeStore.Data storage"
        },
        {
          "name": "_UUID",
          "type": "bytes32"
        },
        {
          "name": "_attrName",
          "type": "string"
        },
        {
          "name": "_attrVal",
          "type": "uint256"
        }
      ],
      "name": "setAttribute",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "networks": {
    "1": {
      "events": {},
      "links": {},
      "address": "0x393e69e7ae7addcfd744b71d209b1f04800d89e5",
      "transactionHash": "0xcea1feb4c485e63783277ec35149e56f369d3c51da96f3a13825bc28bcbe5207"
    },
    "4": {
      "events": {},
      "links": {},
      "address": "0x0584ee9107eebfc100994ad88c380fb8108fbc2d",
      "transactionHash": "0xcac7087ae3bd4989c4f046354760c689c8dde25f87878b91b39388285fdee4cb"
    }
  }
}


================================================
FILE: packages/artifacts/v1/CVLToken.json
================================================
{
  "contractName": "CVLToken",
  "bytecode": "0x60806040523480156200001157600080fd5b50604051620011dc380380620011dc83398101604090815281516020808401519284015160608501516080860151948601805194969095929491019285918491869162000065916003919086019062000229565b5081516200007b90600490602085019062000229565b506005805460ff191660ff929092169190911761010060a860020a03191661010033021790555050600160a060020a03811615156200011b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f636f6e74726f6c6c6572206e6f742070726f7669646564000000000000000000604482015290519081900360640190fd5b60068054600160a060020a031916600160a060020a0383161790556200014b338664010000000062000156810204565b5050505050620002ce565b600160a060020a03821615156200016c57600080fd5b60025462000189908264010000000062000d416200021582021704565b600255600160a060020a038216600090815260208190526040902054620001bf908264010000000062000d416200021582021704565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b818101828110156200022357fe5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026c57805160ff19168380011785556200029c565b828001600101855582156200029c579182015b828111156200029c5782518255916020019190600101906200027f565b50620002aa929150620002ae565b5090565b620002cb91905b80821115620002aa5760008155600101620002b5565b90565b610efe80620002de6000396000f3006080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610100578063095ea7b31461018a57806318160ddd146101c257806323b872dd146101e9578063313ce56714610213578063395093511461023e5780633cebb8231461026257806370a0823114610285578063715018a6146102a65780637f4ab1dd146102bb5780638da5cb5b146102d657806395d89b4114610307578063a457c2d71461031c578063a9059cbb14610340578063d4ce141514610364578063dd62ed3e1461038e578063f2fde38b146103b5578063f77c4791146103d6575b600080fd5b34801561010c57600080fd5b506101156103eb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019657600080fd5b506101ae600160a060020a0360043516602435610481565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b506101d76104ff565b60408051918252519081900360200190f35b3480156101f557600080fd5b506101ae600160a060020a0360043581169060243516604435610505565b34801561021f57600080fd5b5061022861061e565b6040805160ff9092168252519081900360200190f35b34801561024a57600080fd5b506101ae600160a060020a0360043516602435610627565b34801561026e57600080fd5b50610283600160a060020a03600435166106d7565b005b34801561029157600080fd5b506101d7600160a060020a03600435166107cd565b3480156102b257600080fd5b506102836107e8565b3480156102c757600080fd5b5061011560ff600435166108ab565b3480156102e257600080fd5b506102eb6109a1565b60408051600160a060020a039092168252519081900360200190f35b34801561031357600080fd5b506101156109b5565b34801561032857600080fd5b506101ae600160a060020a0360043516602435610a16565b34801561034c57600080fd5b506101ae600160a060020a0360043516602435610a61565b34801561037057600080fd5b50610228600160a060020a0360043581169060243516604435610b79565b34801561039a57600080fd5b506101d7600160a060020a0360043581169060243516610c27565b3480156103c157600080fd5b50610283600160a060020a0360043516610c52565b3480156103e257600080fd5b506102eb610cc5565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104775780601f1061044c57610100808354040283529160200191610477565b820191906000526020600020905b81548152906001019060200180831161045a57829003601f168201915b5050505050905090565b6000600160a060020a038316151561049857600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600654604080517fd4ce1415000000000000000000000000000000000000000000000000000000008152600160a060020a0380871660048301528086166024830152604482018590529151600093879387938793919092169163d4ce141591606480830192602092919082900301818a87803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050506040513d60208110156105ae57600080fd5b505160ff1615610608576040805160e560020a62461bcd02815260206004820152601960248201527f746f6b656e207472616e73666572207265737472696374656400000000000000604482015290519081900360640190fd5b610613878787610cd4565b979650505050505050565b60055460ff1690565b6000600160a060020a038316151561063e57600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610672908363ffffffff610d4116565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6005546101009004600160a060020a0316331461073e576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561079e576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74726f6c6c6572206e6f742070726f7669646564000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526020819052604090205490565b6005546101009004600160a060020a0316331461084f576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600554604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600654604080517f7f4ab1dd00000000000000000000000000000000000000000000000000000000815260ff841660048201529051606092600160a060020a031691637f4ab1dd91602480830192600092919082900301818387803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561095057600080fd5b81019080805164010000000081111561096857600080fd5b8201602081018481111561097b57600080fd5b815164010000000081118282018710171561099557600080fd5b50909695505050505050565b6005546101009004600160a060020a031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104775780601f1061044c57610100808354040283529160200191610477565b6000600160a060020a0383161515610a2d57600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610672908363ffffffff610d5416565b600654604080517fd4ce14150000000000000000000000000000000000000000000000000000000081523360048201819052600160a060020a038087166024840152604483018690529251600094919387938793919091169163d4ce14159160648082019260209290919082900301818a87803b158015610ae157600080fd5b505af1158015610af5573d6000803e3d6000fd5b505050506040513d6020811015610b0b57600080fd5b505160ff1615610b65576040805160e560020a62461bcd02815260206004820152601960248201527f746f6b656e207472616e73666572207265737472696374656400000000000000604482015290519081900360640190fd5b610b6f8686610d66565b9695505050505050565b600654604080517fd4ce1415000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301528581166024830152604482018590529151600093929092169163d4ce14159160648082019260209290919082900301818787803b158015610bf357600080fd5b505af1158015610c07573d6000803e3d6000fd5b505050506040513d6020811015610c1d57600080fd5b5051949350505050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6005546101009004600160a060020a03163314610cb9576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610cc281610d7c565b50565b600654600160a060020a031681565b600160a060020a0383166000908152600160209081526040808320338452909152812054610d08908363ffffffff610d5416565b600160a060020a0385166000908152600160209081526040808320338452909152902055610d37848484610e05565b5060019392505050565b81810182811015610d4e57fe5b92915050565b600082821115610d6057fe5b50900390565b6000610d73338484610e05565b50600192915050565b600160a060020a0381161515610d9157600080fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600160a060020a0382161515610e1a57600080fd5b600160a060020a038316600090815260208190526040902054610e43908263ffffffff610d5416565b600160a060020a038085166000908152602081905260408082209390935590841681522054610e78908263ffffffff610d4116565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505600a165627a7a72305820dac04f05458cdeb4af0f3e06354cc2974db1073b65c7dde071a446ac4443cfc30029",
  "deployedBytecode": "0x6080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610100578063095ea7b31461018a57806318160ddd146101c257806323b872dd146101e9578063313ce56714610213578063395093511461023e5780633cebb8231461026257806370a0823114610285578063715018a6146102a65780637f4ab1dd146102bb5780638da5cb5b146102d657806395d89b4114610307578063a457c2d71461031c578063a9059cbb14610340578063d4ce141514610364578063dd62ed3e1461038e578063f2fde38b146103b5578063f77c4791146103d6575b600080fd5b34801561010c57600080fd5b506101156103eb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019657600080fd5b506101ae600160a060020a0360043516602435610481565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b506101d76104ff565b60408051918252519081900360200190f35b3480156101f557600080fd5b506101ae600160a060020a0360043581169060243516604435610505565b34801561021f57600080fd5b5061022861061e565b6040805160ff9092168252519081900360200190f35b34801561024a57600080fd5b506101ae600160a060020a0360043516602435610627565b34801561026e57600080fd5b50610283600160a060020a03600435166106d7565b005b34801561029157600080fd5b506101d7600160a060020a03600435166107cd565b3480156102b257600080fd5b506102836107e8565b3480156102c757600080fd5b5061011560ff600435166108ab565b3480156102e257600080fd5b506102eb6109a1565b60408051600160a060020a039092168252519081900360200190f35b34801561031357600080fd5b506101156109b5565b34801561032857600080fd5b506101ae600160a060020a0360043516602435610a16565b34801561034c57600080fd5b506101ae600160a060020a0360043516602435610a61565b34801561037057600080fd5b50610228600160a060020a0360043581169060243516604435610b79565b34801561039a57600080fd5b506101d7600160a060020a0360043581169060243516610c27565b3480156103c157600080fd5b50610283600160a060020a0360043516610c52565b3480156103e257600080fd5b506102eb610cc5565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104775780601f1061044c57610100808354040283529160200191610477565b820191906000526020600020905b81548152906001019060200180831161045a57829003601f168201915b5050505050905090565b6000600160a060020a038316151561049857600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600654604080517fd4ce1415000000000000000000000000000000000000000000000000000000008152600160a060020a0380871660048301528086166024830152604482018590529151600093879387938793919092169163d4ce141591606480830192602092919082900301818a87803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050506040513d60208110156105ae57600080fd5b505160ff1615610608576040805160e560020a62461bcd02815260206004820152601960248201527f746f6b656e207472616e73666572207265737472696374656400000000000000604482015290519081900360640190fd5b610613878787610cd4565b979650505050505050565b60055460ff1690565b6000600160a060020a038316151561063e57600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610672908363ffffffff610d4116565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6005546101009004600160a060020a0316331461073e576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561079e576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74726f6c6c6572206e6f742070726f7669646564000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526020819052604090205490565b6005546101009004600160a060020a0316331461084f576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600554604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600654604080517f7f4ab1dd00000000000000000000000000000000000000000000000000000000815260ff841660048201529051606092600160a060020a031691637f4ab1dd91602480830192600092919082900301818387803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561095057600080fd5b81019080805164010000000081111561096857600080fd5b8201602081018481111561097b57600080fd5b815164010000000081118282018710171561099557600080fd5b50909695505050505050565b6005546101009004600160a060020a031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104775780601f1061044c57610100808354040283529160200191610477565b6000600160a060020a0383161515610a2d57600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610672908363ffffffff610d5416565b600654604080517fd4ce14150000000000000000000000000000000000000000000000000000000081523360048201819052600160a060020a038087166024840152604483018690529251600094919387938793919091169163d4ce14159160648082019260209290919082900301818a87803b158015610ae157600080fd5b505af1158015610af5573d6000803e3d6000fd5b505050506040513d6020811015610b0b57600080fd5b505160ff1615610b65576040805160e560020a62461bcd02815260206004820152601960248201527f746f6b656e207472616e73666572207265737472696374656400000000000000604482015290519081900360640190fd5b610b6f8686610d66565b9695505050505050565b600654604080517fd4ce1415000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301528581166024830152604482018590529151600093929092169163d4ce14159160648082019260209290919082900301818787803b158015610bf357600080fd5b505af1158015610c07573d6000803e3d6000fd5b505050506040513d6020811015610c1d57600080fd5b5051949350505050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6005546101009004600160a060020a03163314610cb9576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610cc281610d7c565b50565b600654600160a060020a031681565b600160a060020a0383166000908152600160209081526040808320338452909152812054610d08908363ffffffff610d5416565b600160a060020a0385166000908152600160209081526040808320338452909152902055610d37848484610e05565b5060019392505050565b81810182811015610d4e57fe5b92915050565b600082821115610d6057fe5b50900390565b6000610d73338484610e05565b50600192915050565b600160a060020a0381161515610d9157600080fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600160a060020a0382161515610e1a57600080fd5b600160a060020a038316600090815260208190526040902054610e43908263ffffffff610d5416565b600160a060020a038085166000908152602081905260408082209390935590841681522054610e78908263ffffffff610d4116565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505600a165627a7a72305820dac04f05458cdeb4af0f3e06354cc2974db1073b65c7dde071a446ac4443cfc30029",
  "abi": [
    {
      "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": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "spender",
          "type": "address"
        },
        {
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "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": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "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": "spender",
          "type": "address"
        },
        {
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "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"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "controller",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_initialAmount",
          "type": "uint256"
        },
        {
          "name": "_tokenName",
          "type": "string"
        },
        {
          "name": "_decimalUnits",
          "type": "uint8"
        },
        {
          "name": "_tokenSymbol",
          "type": "string"
        },
        {
          "name": "_controller",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "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"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_controller",
          "type": "address"
        }
      ],
      "name": "changeController",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "from",
          "type": "address"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "from",
          "type": "address"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "detectTransferRestriction",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "restrictionCode",
          "type": "uint8"
        }
      ],
      "name": "messageForTransferRestriction",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "networks": {
    "1": {
      "events": {
        "0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipRenounced",
          "type": "event"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
          "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"
        },
        "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
          "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"
        }
      },
      "links": {},
      "address": "0x01FA555c97D7958Fa6f771f3BbD5CCD508f81e22",
      "transactionHash": "0x2fec07865194447d25786ecf846adfa067de02db8750a5aaa7d256e2aa050504"
    },
    "4": {
      "events": {
        "0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipRenounced",
          "type": "event"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
          "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"
        },
        "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
          "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"
        }
      },
      "links": {},
      "address": "0x3e39fa983abcd349d95aed608e798817397cf0d1",
      "transactionHash": "0x94724e5f073881e2af29d03e87af8d83c07408dbcba3bc08fcd3a9e516af28b3"
    }
  }
}


================================================
FILE: packages/artifacts/v1/CivilPLCRVoting.json
================================================
{
  "contractName": "CivilPLCRVoting",
  "bytecode": "0x608060405234801561001057600080fd5b50604051604080611eb583398101604052805160209091015181600160a060020a038116151561003f57600080fd5b60058054600160a060020a031916600160a060020a03928316179055600080558116151561006c57600080fd5b60068054600160a060020a031916600160a060020a039290921691909117905550611e198061009c6000396000f3006080604052600436106101925763ffffffff60e060020a600035041663053e71a681146101975780632173a10f146101c15780632c052031146101d657806332ed3d60146101fd5780633b9302941461021b5780633ec36b991461023c57806340f41c1914610282578063427fa1d2146102b3578063441c77c0146102d457806349403183146103005780636148fed5146103185780636afa97a81461035b5780636b2d95d4146103825780636cbf9c5e146103a35780637f97e836146103c45780638090f92e146103e8578063819b02931461042057806388d21ff31461044a57806397508f36146104625780639760356014610477578063a1103f371461048f578063a25236fe146104b3578063a4439dc5146104cb578063aa7ca464146104e3578063b11d8bb814610507578063b43bd06914610525578063bb11ed7e1461054c578063d1382092146105a1578063d901402b146105c5578063d9548e53146105e9578063e7b1d43c14610601578063e8cfa3f014610619578063ee68483014610631578063fc0c546a14610649575b600080fd5b3480156101a357600080fd5b506101af60043561065e565b60408051918252519081900360200190f35b3480156101cd57600080fd5b506101af6106b3565b3480156101e257600080fd5b506101af600160a060020a03600435166024356044356106b8565b34801561020957600080fd5b506101af600435602435604435610881565b34801561022757600080fd5b506101af600160a060020a036004351661095d565b34801561024857600080fd5b50610280602460048035828101929082013591813580830192908201359160443580830192908201359160643591820191013561096f565b005b34801561028e57600080fd5b50610297610a0f565b60408051600160a060020a039092168252519081900360200190f35b3480156102bf57600080fd5b506101af600160a060020a0360043516610a1e565b3480156102e057600080fd5b506102ec600435610ad8565b604080519115158252519081900360200190f35b34801561030c57600080fd5b506102ec600435610b23565b34801561032457600080fd5b50610330600435610ba0565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561036757600080fd5b506101af600160a060020a0360043516602435604435610bce565b34801561038e57600080fd5b506101af600160a060020a0360043516610c85565b3480156103af57600080fd5b50610280600435602435604435606435610c99565b3480156103d057600080fd5b506102ec600160a060020a036004351660243561120b565b3480156103f457600080fd5b506102806024600480358281019290820135918135808301929082013591604435918201910135611250565b34801561042c57600080fd5b506102ec600435602435600160a060020a03604435166064356112cc565b34801561045657600080fd5b506102ec60043561130a565b34801561046e57600080fd5b506101af61131f565b34801561048357600080fd5b50610280600435611325565b34801561049b57600080fd5b506101af600160a060020a03600435166024356114c9565b3480156104bf57600080fd5b50610280600435611500565b3480156104d757600080fd5b506102ec60043561159a565b3480156104ef57600080fd5b506102ec600160a060020a03600435166024356115c8565b34801561051357600080fd5b5061028060043560243560443561160d565b34801561053157600080fd5b506101af600160a060020a0360043516602435604435611810565b34801561055857600080fd5b50604080516020600480358082013583810280860185019096528085526102809536959394602494938501929182918501908490808284375094975061189c9650505050505050565b3480156105ad57600080fd5b506101af600160a060020a03600435166024356118d4565b3480156105d157600080fd5b506101af600160a060020a03600435166024356119a6565b3480156105f557600080fd5b506102ec600435611a45565b34801561060d57600080fd5b50610280600435611a4a565b34801561062557600080fd5b506101af600435611b76565b34801561063d57600080fd5b506102ec600435611bca565b34801561065557600080fd5b50610297611bfc565b600061066982611bca565b151561067457600080fd5b61067d82610b23565b1561069a57506000818152600160205260409020600301546106ae565b506000818152600160205260409020600401545b919050565b600081565b60008060006106c686610a1e565b91506106d286836118d4565b90505b8115610874576106e586836118d4565b90508481116107b757838214156107af57600160a060020a03861660009081526003602090815260409182902082517f30fe0a0a000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052915173__DLL___________________________________926330fe0a0a926044808301939192829003018186803b15801561078057600080fd5b505af4158015610794573d6000803e3d6000fd5b505050506040513d60208110156107aa57600080fd5b505191505b819250610878565b600160a060020a03861660009081526003602090815260409182902082517f30fe0a0a000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052915173__DLL___________________________________926330fe0a0a926044808301939192829003018186803b15801561084157600080fd5b505af4158015610855573d6000803e3d6000fd5b505050506040513d602081101561086b57600080fd5b505191506106d5565b8192505b50509392505050565b600080546001018155808061089c428663ffffffff611c0b16565b91506108ae828563ffffffff611c0b16565b6040805160a08101825284815260208082018481528284018b8152600060608086018281526080870183815283548452600180885289852098518955955195880195909555925160028701559151600386015591516004909401939093555483518b8152918201879052818401859052925193945033937f404f1f1c229d9eb2a949e7584da6ffde9d059ef2169f487ca815434cce0640d0929181900390910190a35050600054949350505050565b60026020526000908152604090205481565b600087861461097d57600080fd5b87841461098957600080fd5b87821461099557600080fd5b5060005b87811015610a04576109fc8989838181106109b057fe5b9050602002013588888481811015156109c557fe5b602002919091013590508787858181106109db57fe5b9050602002013586868681811015156109f057fe5b90506020020135610c99565b600101610999565b505050505050505050565b600654600160a060020a031681565b600160a060020a038116600090815260036020908152604080832081517f30fe0a0a000000000000000000000000000000000000000000000000000000008152600481019190915260248101849052905173__DLL___________________________________926330fe0a0a9260448082019391829003018186803b158015610aa657600080fd5b505af4158015610aba573d6000803e3d6000fd5b505050506040513d6020811015610ad057600080fd5b505192915050565b6000610ae38261130a565b1515610aee57600080fd5b60008281526001602081905260409091200154610b0a90611a45565b158015610b1d5750610b1b8261159a565b155b92915050565b6000610b2d611dbd565b610b3683611bca565b1515610b4157600080fd5b5050600090815260016020818152604092839020835160a0810185528154815292810154918301919091526002810154928201839052600381015460608301819052600490910154608090920182905290810190910260649091021190565b6001602081905260009182526040909120805491810154600282015460038301546004909301549192909185565b600080600080610bdd86611bca565b1515610be857600080fd5b6000868152600160209081526040808320600160a060020a038b16845260060190915290205460ff161515610c1c57600080fd5b610c2586610b23565b610c30576001610c33565b60005b60ff1692508285604051808381526020018281526020019250505060405180910390209150610c6287876119a6565b9050818114610c7057600080fd5b610c7a87876118d4565b979650505050505050565b6000610b1d82610c9484610a1e565b6118d4565b6000806000610ca78761159a565b1515610cb257600080fd5b33600090815260026020526040902054851115610cf55733600090815260026020526040902054610cea90869063ffffffff611c1816565b9250610cf583611500565b33600090815260026020526040902054851115610d1157600080fd5b861515610d1d57600080fd5b851515610d2957600080fd5b831580610ddf57503360009081526003602090815260409182902082517f366a5ba2000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052915173__DLL___________________________________9263366a5ba2926044808301939192829003018186803b158015610db257600080fd5b505af4158015610dc6573d6000803e3d6000fd5b505050506040513d6020811015610ddc57600080fd5b50515b1515610dea57600080fd5b3360009081526003602090815260409182902082517f07d29ac9000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052915173__DLL___________________________________926307d29ac9926044808301939192829003018186803b158015610e6b57600080fd5b505af4158015610e7f573d6000803e3d6000fd5b505050506040513d6020811015610e9557600080fd5b5051915086821415610f51573360009081526003602090815260409182902082517f07d29ac90000000000000000000000000000000000000000000000000000000081526004810191909152602481018a9052915173__DLL___________________________________926307d29ac9926044808301939192829003018186803b158015610f2257600080fd5b505af4158015610f36573d6000803e3d6000fd5b505050506040513d6020811015610f4c57600080fd5b505191505b610f5d848333886112cc565b1515610f6857600080fd5b3360009081526003602052604080822081517f9735c51b000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052604481018a905260648101859052905173__DLL___________________________________92639735c51b9260848082019391829003018186803b158015610ff357600080fd5b505af4158015611007573d6000803e3d6000fd5b5050505061101533886114c9565b604080517f977aa031000000000000000000000000000000000000000000000000000000008152600481810152602481018390526064810188905260806044820152600960848201527f6e756d546f6b656e73000000000000000000000000000000000000000000000060a4820152905191925073__AttributeStore________________________9163977aa0319160c480820192600092909190829003018186803b1580156110c557600080fd5b505af41580156110d9573d6000803e3d6000fd5b5050604080517f977aa03100000000000000000000000000000000000000000000000000000000815260048181015260248101859052606481018a905260806044820152600a60848201527f636f6d6d6974486173680000000000000000000000000000000000000000000060a4820152905173__AttributeStore________________________935063977aa031925060c4808301926000929190829003018186803b15801561118957600080fd5b505af415801561119d573d6000803e3d6000fd5b5050506000888152600160208181526040808420338086526005909101835293819020805460ff1916909317909255815189815291519293508a927fea7979e4280d7e6bffc1c7d83a1ac99f16d02ecc14465ce41016226783b663d79281900390910190a350505050505050565b60006112168261130a565b151561122157600080fd5b506000908152600160209081526040808320600160a060020a0394909416835260059093019052205460ff1690565b600085841461125e57600080fd5b85821461126a57600080fd5b5060005b858110156112c3576112bb87878381811061128557fe5b90506020020135868684818110151561129a57fe5b9050602002013585858581811015156112af57fe5b9050602002013561160d565b60010161126e565b50505050505050565b60008060006112db85886118d4565b84101591506112ea85876118d4565b841115806112f6575085155b9050818015610c7a57509695505050505050565b60008115801590610b1d575050600054101590565b60005481565b6000818152600160208190526040909120015461134190611a45565b151561134c57600080fd5b3360009081526003602090815260409182902082517f366a5ba2000000000000000000000000000000000000000000000000000000008152600481019190915260248101849052915173__DLL___________________________________9263366a5ba2926044808301939192829003018186803b1580156113cd57600080fd5b505af41580156113e1573d6000803e3d6000fd5b505050506040513d60208110156113f757600080fd5b5051151561140457600080fd5b3360009081526003602052604080822081517f6d900ed0000000000000000000000000000000000000000000000000000000008152600481019190915260248101849052905173__DLL___________________________________92636d900ed09260448082019391829003018186803b15801561148157600080fd5b505af4158015611495573d6000803e3d6000fd5b50506040513392508391507f402507661c8c8cb90e0a796450b8bdd28b6c516f05279c0cd29e84c344e1699a90600090a350565b604080516c01000000000000000000000000600160a060020a03851602815260148101839052905190819003603401902092915050565b61150981611c2a565b600654336000818152600260205260408082205481517f725248730000000000000000000000000000000000000000000000000000000081526004810194909452602484015251600160a060020a0390931692637252487392604480820193929182900301818387803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b5050505050565b60006115a58261130a565b15156115b057600080fd5b600082815260016020526040902054610b1b90611a45565b60006115d38261130a565b15156115de57600080fd5b506000908152600160209081526040808320600160a060020a0394909416835260069093019052205460ff1690565b600061161884610ad8565b151561162357600080fd5b600084815260016020908152604080832033845260050190915290205460ff16151561164e57600080fd5b600084815260016020908152604080832033845260060190915290205460ff161561167857600080fd5b61168233856119a6565b60408051858152602081018590528151908190039091019020146116a557600080fd5b6116af33856118d4565b905082600114156116d65760008481526001602052604090206003018054820190556116ee565b60008481526001602052604090206004018054820190555b3360009081526003602052604080822081517f6d900ed0000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052905173__DLL___________________________________92636d900ed09260448082019391829003018186803b15801561176b57600080fd5b505af415801561177f573d6000803e3d6000fd5b505050600085815260016020818152604080842033808652600682018452828620805460ff191686179055948a9052928252600383015460049093015481518781529283019390935281810192909252606081018690529051919250859187917f9b19aaec524fad29c0ced9b9973a15e3045d7c3be156d71394ab40f0d5f119ff919081900360800190a450505050565b60008060008061181f86611bca565b151561182a57600080fd5b6000868152600160209081526040808320600160a060020a038b16845260060190915290205460ff16151561185e57600080fd5b61186786610b23565b611872576000610c33565b6040805160018082526020820188905282519182900390920190209093509150610c6287876119a6565b60005b81518110156118d0576118c882828151811015156118b957fe5b90602001906020020151611325565b60010161189f565b5050565b600073__AttributeStore________________________6350389f5c60046118fc86866114c9565b6040805160e060020a63ffffffff86160281526004810193909352602483019190915260606044830152600960648301527f6e756d546f6b656e73000000000000000000000000000000000000000000000060848301525160a4808301926020929190829003018186803b15801561197357600080fd5b505af4158015611987573d6000803e3d6000fd5b505050506040513d602081101561199d57600080fd5b50519392505050565b600073__AttributeStore________________________6350389f5c60046119ce86866114c9565b6040805160e060020a63ffffffff86160281526004810193909352602483019190915260606044830152600a60648301527f636f6d6d6974486173680000000000000000000000000000000000000000000060848301525160a4808301926020929190829003018186803b15801561197357600080fd5b421190565b6000611a74611a5833610c85565b336000908152600260205260409020549063ffffffff611c1816565b905081811015611a8357600080fd5b3360008181526002602090815260408083208054879003905560055481517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810195909552602485018790529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015611b0557600080fd5b505af1158015611b19573d6000803e3d6000fd5b505050506040513d6020811015611b2f57600080fd5b50511515611b3c57600080fd5b60408051838152905133917ffaeb7dbb9992397d26ea1944efd40c80b40f702faf69b46c67ad10aba68ccb79919081900360200190a25050565b6000611b8182611bca565b1515611b8c57600080fd5b611b9582610b23565b15611bb257506000818152600160205260409020600401546106ae565b506000818152600160205260409020600301546106ae565b6000611bd58261130a565b1515611be057600080fd5b60008281526001602081905260409091200154610b1d90611a45565b600554600160a060020a031681565b81810182811015610b1d57fe5b600082821115611c2457fe5b50900390565b600554604080517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290518392600160a060020a0316916370a082319160248083019260209291908290030181600087803b158015611c8f57600080fd5b505af1158015611ca3573d6000803e3d6000fd5b505050506040513d6020811015611cb957600080fd5b50511015611cc657600080fd5b33600081815260026020908152604080832080548601905560055481517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810195909552306024860152604485018690529051600160a060020a03909116936323b872dd9360648083019493928390030190829087803b158015611d4d57600080fd5b505af1158015611d61573d6000803e3d6000fd5b505050506040513d6020811015611d7757600080fd5b50511515611d8457600080fd5b60408051828152905133917ff7aaf024511d9982df8cd0d437c71c30106e6848cd1ba3d288d7a9c0e276aeda919081900360200190a250565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820dfb0bd5ea70ad6f1df929d57bad9a8a3a61facd419e162e3168c26c446d299260029",
  "deployedBytecode": "0x6080604052600436106101925763ffffffff60e060020a600035041663053e71a681146101975780632173a10f146101c15780632c052031146101d657806332ed3d60146101fd5780633b9302941461021b5780633ec36b991461023c57806340f41c1914610282578063427fa1d2146102b3578063441c77c0146102d457806349403183146103005780636148fed5146103185780636afa97a81461035b5780636b2d95d4146103825780636cbf9c5e146103a35780637f97e836146103c45780638090f92e146103e8578063819b02931461042057806388d21ff31461044a57806397508f36146104625780639760356014610477578063a1103f371461048f578063a25236fe146104b3578063a4439dc5146104cb578063aa7ca464146104e3578063b11d8bb814610507578063b43bd06914610525578063bb11ed7e1461054c578063d1382092146105a1578063d901402b146105c5578063d9548e53146105e9578063e7b1d43c14610601578063e8cfa3f014610619578063ee68483014610631578063fc0c546a14610649575b600080fd5b3480156101a357600080fd5b506101af60043561065e565b60408051918252519081900360200190f35b3480156101cd57600080fd5b506101af6106b3565b3480156101e257600080fd5b506101af600160a060020a03600435166024356044356106b8565b34801561020957600080fd5b506101af600435602435604435610881565b34801561022757600080fd5b506101af600160a060020a036004351661095d565b34801561024857600080fd5b50610280602460048035828101929082013591813580830192908201359160443580830192908201359160643591820191013561096f565b005b34801561028e57600080fd5b50610297610a0f565b60408051600160a060020a039092168252519081900360200190f35b3480156102bf57600080fd5b506101af600160a060020a0360043516610a1e565b3480156102e057600080fd5b506102ec600435610ad8565b604080519115158252519081900360200190f35b34801561030c57600080fd5b506102ec600435610b23565b34801561032457600080fd5b50610330600435610ba0565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561036757600080fd5b506101af600160a060020a0360043516602435604435610bce565b34801561038e57600080fd5b506101af600160a060020a0360043516610c85565b3480156103af57600080fd5b50610280600435602435604435606435610c99565b3480156103d057600080fd5b506102ec600160a060020a036004351660243561120b565b3480156103f457600080fd5b506102806024600480358281019290820135918135808301929082013591604435918201910135611250565b34801561042c57600080fd5b506102ec600435602435600160a060020a03604435166064356112cc565b34801561045657600080fd5b506102ec60043561130a565b34801561046e57600080fd5b506101af61131f565b34801561048357600080fd5b50610280600435611325565b34801561049b57600080fd5b506101af600160a060020a03600435166024356114c9565b3480156104bf57600080fd5b50610280600435611500565b3480156104d757600080fd5b506102ec60043561159a565b3480156104ef57600080fd5b506102ec600160a060020a03600435166024356115c8565b34801561051357600080fd5b5061028060043560243560443561160d565b34801561053157600080fd5b506101af600160a060020a0360043516602435604435611810565b34801561055857600080fd5b50604080516020600480358082013583810280860185019096528085526102809536959394602494938501929182918501908490808284375094975061189c9650505050505050565b3480156105ad57600080fd5b506101af600160a060020a03600435166024356118d4565b3480156105d157600080fd5b506101af600160a060020a03600435166024356119a6565b3480156105f557600080fd5b506102ec600435611a45565b34801561060d57600080fd5b50610280600435611a4a565b34801561062557600080fd5b506101af600435611b76565b34801561063d57600080fd5b506102ec600435611bca565b34801561065557600080fd5b50610297611bfc565b600061066982611bca565b151561067457600080fd5b61067d82610b23565b1561069a57506000818152600160205260409020600301546106ae565b506000818152600160205260409020600401545b919050565b600081565b60008060006106c686610a1e565b91506106d286836118d4565b90505b8115610874576106e586836118d4565b90508481116107b757838214156107af57600160a060020a03861660009081526003602090815260409182902082517f30fe0a0a000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052915173__DLL___________________________________926330fe0a0a926044808301939192829003018186803b15801561078057600080fd5b505af4158015610794573d6000803e3d6000fd5b505050506040513d60208110156107aa57600080fd5b505191505b819250610878565b600160a060020a03861660009081526003602090815260409182902082517f30fe0a0a000000000000000000000000000000000000000000000000000000008152600481019190915260248101859052915173__DLL___________________________________926330fe0a0a926044808301939192829003018186803b15801561084157600080fd5b505af4158015610855573d6000803e3d6000fd5b505050506040513d602081101561086b57600080fd5b505191506106d5565b8192505b50509392505050565b600080546001018155808061089c428663ffffffff611c0b16565b91506108ae828563ffffffff611c0b16565b6040805160a08101825284815260208082018481528284018b8152600060608086018281526080870183815283548452600180885289852098518955955195880195909555925160028701559151600386015591516004909401939093555483518b8152918201879052818401859052925193945033937f404f1f1c229d9eb2a949e7584da6ffde9d059ef2169f487ca815434cce0640d0929181900390910190a35050600054949350505050565b60026020526000908152604090205481565b600087861461097d57600080fd5b87841461098957600080fd5b87821461099557600080fd5b5060005b87811015610a04576109fc8989838181106109b057fe5b9050602002013588888481811015156109c557fe5b602002919091013590508787858181106109db57fe5b9050602002013586868681811015156109f057fe5b90506020020135610c99565b600101610999565b505050505050505050565b600654600160a060020a031681565b600160a060020a038116600090815260036020908152604080832081517f30fe0a0a000000000000000000000000000000000000000000000000000000008152600481019190915260248101849052905173__DLL___________________________________926330fe0a0a9260448082019391829003018186803b158015610aa657600080fd5b505af4158015610aba573d6000803e3d6000fd5b505050506040513d6020811015610ad057600080fd5b505192915050565b6000610ae38261130a565b1515610aee57600080fd5b60008281526001602081905260409091200154610b0a90611a45565b158015610b1d5750610b1b8261159a565b155b92915050565b6000610b2d611dbd565b610b3683611bca565b1515610b4157600080fd5b5050600090815260016020818152604092839020835160a0810185528154815292810154918301919091526002810154928201839052600381015460608301819052600490910154608090920182905290810190910260649091021190565b6001602081905260009182526040909120805491810154600282015460038301546004909301549192909185565b600080600080610bdd86611bca565b1515610be857600080fd5b6000868152600160209081526040808320600160a060020a038b16845260060190915290205460ff161515610c1c57600080fd5b610c2586610b23565b610c30576001610c33565b60005b60ff1692508285604051808381526020018281526020019250505060405180910390209150610c6287876119a6565b9050818114610c7057600080fd5b610c7a87876118d4565b979650505050505050565b6000610b1d82610c9484610a1e565b6118d4565b6000806000610ca78761159a565b1515610cb257600080fd5b33600090815260026020526040902054851115610cf55733600090815260026020526040902054610cea90869063ffffffff611c1816565b9250610cf583611500565b33600090815260026020526040902054851115610d1157600080fd5b861515610d1d57600080fd5b851515610d2957600080fd5b831580610ddf57503360009081526003602090815260409182902082517f366a5ba2000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052915173__DLL___________________________________9263366a5ba2926044808301939192829003018186803b158015610db257600080fd5b505af4158015610dc6573d6000803e3d6000fd5b505050506040513d6020811015610ddc57600080fd5b50515b1515610dea57600080fd5b3360009081526003602090815260409182902082517f07d29ac9000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052915173__DLL___________________________________926307d29ac9926044808301939192829003018186803b158015610e6b57600080fd5b505af4158015610e7f573d6000803e3d6000fd5b505050506040513d6020811015610e9557600080fd5b5051915086821415610f51573360009081526003602090815260409182902082517f07d29ac90000000000000000000000000000000000000000000000000000000081526004810191909152602481018a9052915173__DLL___________________________________926307d29ac9926044808301939192829003018186803b158015610f2257600080fd5b505af4158015610f36573d6000803e3d6000fd5b505050506040513d6020811015610f4c57600080fd5b505191505b610f5d848333886112cc565b1515610f6857600080fd5b3360009081526003602052604080822081517f9735c51b000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052604481018a905260648101859052905173__DLL___________________________________92639735c51b9260848082019391829003018186803b158015610ff357600080fd5b505af4158015611007573d6000803e3d6000fd5b5050505061101533886114c9565b604080517f977aa031000000000000000000000000000000000000000000000000000000008152600481810152602481018390526064810188905260806044820152600960848201527f6e756d546f6b656e73000000000000000000000000000000000000000000000060a4820152905191925073__AttributeStore________________________9163977aa0319160c480820192600092909190829003018186803b1580156110c557600080fd5b505af41580156110d9573d6000803e3d6000fd5b5050604080517f977aa03100000000000000000000000000000000000000000000000000000000815260048181015260248101859052606481018a905260806044820152600a60848201527f636f6d6d6974486173680000000000000000000000000000000000000000000060a4820152905173__AttributeStore________________________935063977aa031925060c4808301926000929190829003018186803b15801561118957600080fd5b505af415801561119d573d6000803e3d6000fd5b5050506000888152600160208181526040808420338086526005909101835293819020805460ff1916909317909255815189815291519293508a927fea7979e4280d7e6bffc1c7d83a1ac99f16d02ecc14465ce41016226783b663d79281900390910190a350505050505050565b60006112168261130a565b151561122157600080fd5b506000908152600160209081526040808320600160a060020a0394909416835260059093019052205460ff1690565b600085841461125e57600080fd5b85821461126a57600080fd5b5060005b858110156112c3576112bb87878381811061128557fe5b90506020020135868684818110151561129a57fe5b9050602002013585858581811015156112af57fe5b9050602002013561160d565b60010161126e565b50505050505050565b60008060006112db85886118d4565b84101591506112ea85876118d4565b841115806112f6575085155b9050818015610c7a57509695505050505050565b60008115801590610b1d575050600054101590565b60005481565b6000818152600160208190526040909120015461134190611a45565b151561134c57600080fd5b3360009081526003602090815260409182902082517f366a5ba2000000000000000000000000000000000000000000000000000000008152600481019190915260248101849052915173__DLL___________________________________9263366a5ba2926044808301939192829003018186803b1580156113cd57600080fd5b505af41580156113e1573d6000803e3d6000fd5b505050506040513d60208110156113f757600080fd5b5051151561140457600080fd5b3360009081526003602052604080822081517f6d900ed0000000000000000000000000000000000000000000000000000000008152600481019190915260248101849052905173__DLL___________________________________92636d900ed09260448082019391829003018186803b15801561148157600080fd5b505af4158015611495573d6000803e3d6000fd5b50506040513392508391507f402507661c8c8cb90e0a796450b8bdd28b6c516f05279c0cd29e84c344e1699a90600090a350565b604080516c01000000000000000000000000600160a060020a03851602815260148101839052905190819003603401902092915050565b61150981611c2a565b600654336000818152600260205260408082205481517f725248730000000000000000000000000000000000000000000000000000000081526004810194909452602484015251600160a060020a0390931692637252487392604480820193929182900301818387803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b5050505050565b60006115a58261130a565b15156115b057600080fd5b600082815260016020526040902054610b1b90611a45565b60006115d38261130a565b15156115de57600080fd5b506000908152600160209081526040808320600160a060020a0394909416835260069093019052205460ff1690565b600061161884610ad8565b151561162357600080fd5b600084815260016020908152604080832033845260050190915290205460ff16151561164e57600080fd5b600084815260016020908152604080832033845260060190915290205460ff161561167857600080fd5b61168233856119a6565b60408051858152602081018590528151908190039091019020146116a557600080fd5b6116af33856118d4565b905082600114156116d65760008481526001602052604090206003018054820190556116ee565b60008481526001602052604090206004018054820190555b3360009081526003602052604080822081517f6d900ed0000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052905173__DLL___________________________________92636d900ed09260448082019391829003018186803b15801561176b57600080fd5b505af415801561177f573d6000803e3d6000fd5b505050600085815260016020818152604080842033808652600682018452828620805460ff191686179055948a9052928252600383015460049093015481518781529283019390935281810192909252606081018690529051919250859187917f9b19aaec524fad29c0ced9b9973a15e3045d7c3be156d71394ab40f0d5f119ff919081900360800190a450505050565b60008060008061181f86611bca565b151561182a57600080fd5b6000868152600160209081526040808320600160a060020a038b16845260060190915290205460ff16151561185e57600080fd5b61186786610b23565b611872576000610c33565b6040805160018082526020820188905282519182900390920190209093509150610c6287876119a6565b60005b81518110156118d0576118c882828151811015156118b957fe5b90602001906020020151611325565b60010161189f565b5050565b600073__AttributeStore________________________6350389f5c60046118fc86866114c9565b6040805160e060020a63ffffffff86160281526004810193909352602483019190915260606044830152600960648301527f6e756d546f6b656e73000000000000000000000000000000000000000000000060848301525160a4808301926020929190829003018186803b15801561197357600080fd5b505af4158015611987573d6000803e3d6000fd5b505050506040513d602081101561199d57600080fd5b50519392505050565b600073__AttributeStore________________________6350389f5c60046119ce86866114c9565b6040805160e060020a63ffffffff86160281526004810193909352602483019190915260606044830152600a60648301527f636f6d6d6974486173680000000000000000000000000000000000000000000060848301525160a4808301926020929190829003018186803b15801561197357600080fd5b421190565b6000611a74611a5833610c85565b336000908152600260205260409020549063ffffffff611c1816565b905081811015611a8357600080fd5b3360008181526002602090815260408083208054879003905560055481517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810195909552602485018790529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015611b0557600080fd5b505af1158015611b19573d6000803e3d6000fd5b505050506040513d6020811015611b2f57600080fd5b50511515611b3c57600080fd5b60408051838152905133917ffaeb7dbb9992397d26ea1944efd40c80b40f702faf69b46c67ad10aba68ccb79919081900360200190a25050565b6000611b8182611bca565b1515611b8c57600080fd5b611b9582610b23565b15611bb257506000818152600160205260409020600401546106ae565b506000818152600160205260409020600301546106ae565b6000611bd58261130a565b1515611be057600080fd5b60008281526001602081905260409091200154610b1d90611a45565b600554600160a060020a031681565b81810182811015610b1d57fe5b600082821115611c2457fe5b50900390565b600554604080517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290518392600160a060020a0316916370a082319160248083019260209291908290030181600087803b158015611c8f57600080fd5b505af1158015611ca3573d6000803e3d6000fd5b505050506040513d6020811015611cb957600080fd5b50511015611cc657600080fd5b33600081815260026020908152604080832080548601905560055481517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810195909552306024860152604485018690529051600160a060020a03909116936323b872dd9360648083019493928390030190829087803b158015611d4d57600080fd5b505af1158015611d61573d6000803e3d6000fd5b505050506040513d6020811015611d7757600080fd5b50511515611d8457600080fd5b60408051828152905133917ff7aaf024511d9982df8cd0d437c71c30106e6848cd1ba3d288d7a9c0e276aeda919081900360200190a250565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820dfb0bd5ea70ad6f1df929d57bad9a8a3a61facd419e162e3168c26c446d299260029",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "getTotalNumberOfTokensForWinningOption",
      "outputs": [
        {
          "name": "numTokens",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "INITIAL_POLL_NONCE",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_numTokens",
          "type": "uint256"
        },
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "getInsertPointForNumTokens",
      "outputs": [
        {
          "name": "prevNode",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voteQuorum",
          "type": "uint256"
        },
        {
          "name": "_commitDuration",
          "type": "uint256"
        },
        {
          "name": "_revealDuration",
          "type": "uint256"
        }
      ],
      "name": "startPoll",
      "outputs": [
        {
          "name": "pollID",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "voteTokenBalance",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_pollIDs",
          "type": "uint256[]"
        },
        {
          "name": "_secretHashes",
          "type": "bytes32[]"
        },
        {
          "name": "_numsTokens",
          "type": "uint256[]"
        },
        {
          "name": "_prevPollIDs",
          "type": "uint256[]"
        }
      ],
      "name": "commitVotes",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "telemetry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "getLastNode",
      "outputs": [
        {
          "name": "pollID",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "revealPeriodActive",
      "outputs": [
        {
          "name": "active",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "isPassed",
      "outputs": [
        {
          "name": "passed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "pollMap",
      "outputs": [
        {
          "name": "commitEndDate",
          "type": "uint256"
        },
        {
          "name": "revealEndDate",
          "type": "uint256"
        },
        {
          "name": "voteQuorum",
          "type": "uint256"
        },
        {
          "name": "votesFor",
          "type": "uint256"
        },
        {
          "name": "votesAgainst",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "getLockedTokens",
      "outputs": [
        {
          "name": "numTokens",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        },
        {
          "name": "_secretHash",
          "type": "bytes32"
        },
        {
          "name": "_numTokens",
          "type": "uint256"
        },
        {
          "name": "_prevPollID",
          "type": "uint256"
        }
      ],
      "name": "commitVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "didCommit",
      "outputs": [
        {
          "name": "committed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_pollIDs",
          "type": "uint256[]"
        },
        {
          "name": "_voteOptions",
          "type": "uint256[]"
        },
        {
          "name": "_salts",
          "type": "uint256[]"
        }
      ],
      "name": "revealVotes",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_prevID",
          "type": "uint256"
        },
        {
          "name": "_nextID",
          "type": "uint256"
        },
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_numTokens",
          "type": "uint256"
        }
      ],
      "name": "validPosition",
      "outputs": [
        {
          "name": "valid",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "pollExists",
      "outputs": [
        {
          "name": "exists",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "pollNonce",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "rescueTokens",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "attrUUID",
      "outputs": [
        {
          "name": "UUID",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "commitPeriodActive",
      "outputs": [
        {
          "name": "active",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "didReveal",
      "outputs": [
        {
          "name": "revealed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        },
        {
          "name": "_voteOption",
          "type": "uint256"
        },
        {
          "name": "_salt",
          "type": "uint256"
        }
      ],
      "name": "revealVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_pollID",
          "type": "uint256"
        },
        {
          "name": "_salt",
          "type": "uint256"
        }
      ],
      "name": "getNumPassingTokens",
      "outputs": [
        {
          "name": "correctVotes",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_pollIDs",
          "type": "uint256[]"
        }
      ],
      "name": "rescueTokensInMultiplePolls",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "getNumTokens",
      "outputs": [
        {
          "name": "numTokens",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "getCommitHash",
      "outputs": [
        {
          "name": "commitHash",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_terminationDate",
          "type": "uint256"
        }
      ],
      "name": "isExpired",
      "outputs": [
        {
          "name": "expired",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_numTokens",
          "type": "uint256"
        }
      ],
      "name": "withdrawVotingRights",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "pollEnded",
      "outputs": [
        {
          "name": "ended",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "tokenAddr",
          "type": "address"
        },
        {
          "name": "telemetryAddr",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "pollID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "numTokens",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "_VoteCommitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "pollID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "numTokens",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "votesFor",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "votesAgainst",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "choice",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "salt",
          "type": "uint256"
        }
      ],
      "name": "_VoteRevealed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "voteQuorum",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "commitEndDate",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "revealEndDate",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "pollID",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "creator",
          "type": "address"
        }
      ],
      "name": "_PollCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "numTokens",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "_VotingRightsGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "numTokens",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "_VotingRightsWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "pollID",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "_TokensRescued",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_numTokens",
          "type": "uint256"
        }
      ],
      "name": "requestVotingRights",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_pollID",
          "type": "uint256"
        },
        {
          "name": "_salt",
          "type": "uint256"
        }
      ],
      "name": "getNumLosingTokens",
      "outputs": [
        {
          "name": "correctVotes",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_pollID",
          "type": "uint256"
        }
      ],
      "name": "getTotalNumberOfTokensForLosingOption",
      "outputs": [
        {
          "name": "numTokens",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "networks": {
    "1": {
      "events": {},
      "links": {
        "DLL": "0x739f1745e415782861373c5ff1a6dc56d2d41451",
        "AttributeStore": "0x393e69e7ae7addcfd744b71d209b1f04800d89e5"
      },
      "address": "0x55656b8a58df94c1e8b5142f8da973301452ea65",
      "transactionHash": "0x432e1660900510843f82adfbc0807d2426dc30cb0e8a7acce6c85c3cc72afe74"
    },
    "4": {
      "events": {},
      "links": {
        "DLL": "0x132f69eb9416cf555cc16e21fb0bbd21f38947c0",
        "AttributeStore": "0x0584ee9107eebfc100994ad88c380fb8108fbc2d"
      },
      "address": "0x570bf68d286dd4225e2e77384c08dfebc4b01b5c",
      "transactionHash": "0x44e716278d983db08cc05db50f2572b24d105f1230d0a5fb7d79f32dd74b5c8a"
    }
  }
}


================================================
FILE: packages/artifacts/v1/CivilParameterizer.json
================================================
{
  "contractName": "CivilParameterizer",
  "bytecode": "0x608060405262093a806005553480156200001857600080fd5b506040516200294e3803806200294e83398101604081815282516020808501518386015160038054600160a060020a03808716600160a060020a0319928316179092556004805492851692909116919091179055848601909452600a85527f6d696e4465706f736974000000000000000000000000000000000000000000009185019190915291909301805191929091849184918491620000e09183906000908110620000c157fe5b90602001906020020151620004f8640100000000026401000000009004565b6200012a6040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250826001815181101515620000c157fe5b620001746040805190810160405280600d81526020017f6170706c7953746167654c656e00000000000000000000000000000000000000815250826002815181101515620000c157fe5b620001be6040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250826003815181101515620000c157fe5b620002086040805190810160405280600e81526020017f636f6d6d697453746167654c656e000000000000000000000000000000000000815250826004815181101515620000c157fe5b620002526040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250826005815181101515620000c157fe5b6200029c6040805190810160405280600e81526020017f72657665616c53746167654c656e000000000000000000000000000000000000815250826006815181101515620000c157fe5b620002e66040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250826007815181101515620000c157fe5b620003306040805190810160405280600f81526020017f64697370656e736174696f6e5063740000000000000000000000000000000000815250826008815181101515620000c157fe5b6200037a6040805190810160405280601081526020017f7044697370656e736174696f6e50637400000000000000000000000000000000815250826009815181101515620000c157fe5b620003c46040805190810160405280600a81526020017f766f746551756f72756d0000000000000000000000000000000000000000000081525082600a815181101515620000c157fe5b6200040e6040805190810160405280600b81526020017f70566f746551756f72756d00000000000000000000000000000000000000000081525082600b815181101515620000c157fe5b5050506200045b6040805190810160405280601281526020017f6368616c6c656e676541707065616c4c656e000000000000000000000000000081525082600c815181101515620000c157fe5b620004a56040805190810160405280601881526020017f6368616c6c656e676541707065616c436f6d6d69744c656e000000000000000081525082600d815181101515620000c157fe5b620004ef6040805190810160405280601881526020017f6368616c6c656e676541707065616c52657665616c4c656e000000000000000081525082600e815181101515620000c157fe5b50505062000570565b80600080846040518082805190602001908083835b602083106200052e5780518252601f1990920191602091820191016200050d565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555050505050565b6123ce80620005806000396000f3006080604052600436106100fa5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166229514f81146100ff57806330490e911461012657806332ed5b1214610140578063353009901461020c57806350411552146102385780635f02116f14610250578063693ec85e146102de57806377609a41146103375780638240ae4b1461034f57806386bb8f37146103675780638f1d377614610382578063a5ba3b1e146103cd578063a7aad3db146103f1578063bade1c5414610418578063c51131fb14610473578063dc6ab5271461048b578063fc0c546a146104a3578063fce1ccca146104d4575b600080fd5b34801561010b57600080fd5b506101146104e9565b60408051918252519081900360200190f35b34801561013257600080fd5b5061013e6004356104ef565b005b34801561014c57600080fd5b506101586004356109ca565b604051808881526020018781526020018681526020018060200185600160a060020a0316600160a060020a03168152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b838110156101cb5781810151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561021857600080fd5b50610224600435610a96565b604080519115158252519081900360200190f35b34801561024457600080fd5b50610114600435610aaf565b34801561025c57600080fd5b506040805160206004803580820135838102808601850190965280855261013e95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610b819650505050505050565b3480156102ea57600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610114943694929360249392840191908190840183828082843750949750610be49650505050505050565b34801561034357600080fd5b50610224600435610c5a565b34801561035b57600080fd5b50610114600435610e73565b34801561037357600080fd5b5061013e6004356024356113ab565b34801561038e57600080fd5b5061039a6004356115b7565b60408051958652600160a060020a0390941660208601529115158484015260608401526080830152519081900360a00190f35b3480156103d957600080fd5b50610224600435600160a060020a03602435166115f4565b3480156103fd57600080fd5b50610114600160a060020a0360043516602435604435611624565b34801561042457600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261011494369492936024939284019190819084018382808284375094975050933594506116fa9350505050565b34801561047f57600080fd5b50610224600435611bd0565b34801561049757600080fd5b50610114600435611cf3565b3480156104af57600080fd5b506104b8611d05565b60408051600160a060020a039092168252519081900360200190f35b3480156104e057600080fd5b506104b8611d14565b60055481565b60008181526002602081905260409091206004810154918101549091600160a060020a03169061051e84611bd0565b1561077857600383018054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526105c193909290918301828280156105b25780601f10610587576101008083540402835291602001916105b2565b820191906000526020600020905b81548152906001019060200180831161059557829003601f168201915b50505050508460060154611d23565b600683015460408051602081018390528181526003860180546002610100600183161502600019019091160492820183905287937f37f3986c71e1aa2c470cfc4a92af70820610c3065589d35ef1664ea27f3e73a5939192909181906060820190859080156106715780601f1061064657610100808354040283529160200191610671565b820191906000526020600020905b81548152906001019060200180831161065457829003601f168201915b5050935050505060405180910390a26000848152600260208190526040822082815560018101839055908101829055906106ae600383018261223e565b506004818101805473ffffffffffffffffffffffffffffffffffffffff1916905560006005830181905560069092018290556003546040805160e060020a63a9059cbb028152600160a060020a0387811694820194909452602481018690529051929091169263a9059cbb926044808401936020939083900390910190829087803b15801561073c57600080fd5b505af1158015610750573d6000803e3d6000fd5b505050506040513d602081101561076657600080fd5b5051151561077357600080fd5b6107f4565b61078184610c5a565b1561078f5761077384611d99565b82600501544211156100fa5760405184907f29026cb2acebe6d0a4b6d593ccadf76e3fc6d0a02254e078b0c4a619608089d790600090a26000848152600260208190526040822082815560018101839055908101829055906106ae600383018261223e565b60646108346040805190810160405280600f81526020017f64697370656e736174696f6e5063740000000000000000000000000000000000815250610be4565b111561083c57fe5b606461087c6040805190810160405280601081526020017f7044697370656e736174696f6e50637400000000000000000000000000000000815250610be4565b111561088457fe5b61096660055461095a6108cb6040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610be4565b61095a61090c6040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610be4565b61095a61094d6040805190810160405280600e81526020017f704170706c7953746167654c656e000000000000000000000000000000000000815250610be4565b429063ffffffff6121e116565b9063ffffffff6121e116565b50600084815260026020819052604082208281556001810183905590810182905590610995600383018261223e565b5060048101805473ffffffffffffffffffffffffffffffffffffffff1916905560006005820181905560069091015550505050565b60026020818152600092835260409283902080546001808301548386015460038501805489519481161561010002600019011697909704601f8101879004870284018701909852878352929690959294919291830182828015610a6e5780601f10610a4357610100808354040283529160200191610a6e565b820191906000526020600020905b815481529060010190602001808311610a5157829003601f168201915b50505050600483015460058401546006909401549293600160a060020a039091169290915087565b600081815260026020526040812060050154115b919050565b60048054604080517f053e71a600000000000000000000000000000000000000000000000000000000815292830184905251600092600160a060020a039092169163053e71a691602480830192602092919082900301818787803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b505050506040513d6020811015610b4057600080fd5b50511515610b635750600081815260016020526040902060029081015402610aaa565b50600090815260016020526040902080546002918201549091020390565b8051825160009114610b9257600080fd5b5060005b8251811015610bdf57610bd78382815181101515610bb057fe5b906020019060200201518383815181101515610bc857fe5b906020019060200201516113ab565b600101610b96565b505050565b6000806000836040518082805190602001908083835b60208310610c195780518252601f199092019160209182019101610bfa565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b6000610c64612285565b610c6c6122cc565b600084815260026020818152604092839020835160e0810185528154815260018083015482850152828501548287015260038301805487516000199382161561010002939093011695909504601f810185900485028201850190965285815290949193606086019391929091830182828015610d295780601f10610cfe57610100808354040283529160200191610d29565b820191906000526020600020905b815481529060010190602001808311610d0c57829003601f168201915b50505091835250506004820154600160a060020a039081166020808401919091526005840154604080850191909152600690940154606093840152848101805160009081526001808452868220875160a08101895281548152918101549586169482019490945260a060020a90940460ff1615159584019590955260028201549383019390935260030154608082015290519294509250108015610dcf57506040810151155b8015610e6b575060048054602080850151604080517fee6848300000000000000000000000000000000000000000000000000000000081529485019190915251600160a060020a039092169263ee68483092602480830193928290030181600087803b158015610e3e57600080fd5b505af1158015610e52573d6000803e3d6000fd5b505050506040513d6020811015610e6857600080fd5b50515b949350505050565b6000610e7d612285565b6000838152600260208181526040808420815160e0810183528154815260018083015482860152828601548285015260038301805485516000199382161561010002939093011696909604601f810186900486028201860190945283815286958695869593949360608601939291830182828015610f3c5780601f10610f1157610100808354040283529160200191610f3c565b820191906000526020600020905b815481529060010190602001808311610f1f57829003601f168201915b50505091835250506004820154600160a060020a0316602082015260058201546040808301919091526006909201546060909101528101519095509350610f8287610a96565b8015610f9057506020850151155b1515610f9b57600080fd5b60045460408051808201909152600b81527f70566f746551756f72756d0000000000000000000000000000000000000000006020820152600160a060020a03909116906332ed3d6090610fed90610be4565b61102b6040805190810160405280600f81526020017f70436f6d6d697453746167654c656e0000000000000000000000000000000000815250610be4565b6110696040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610be4565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b50516040805160e08101909152601060a082019081527f7044697370656e736174696f6e5063740000000000000000000000000000000060c083015291945090819061116e9060649061116290899061115690849061115190610be4565b6121ee565b9063ffffffff61220016565b9063ffffffff61222916565b81523360208083018290526000604080850182905260608086018b905260809586018390528983526001808552828420885181558886015181830180548b87015173ffffffffffffffffffffffffffffffffffffffff19909116600160a060020a039384161774ff0000000000000000000000000000000000000000191660a060020a911515919091021790559289015160028083019190915598909701516003978801558e8452968452818320909601899055935484517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810194909452306024850152604484018a9052935193909416936323b872dd936064808501949192918390030190829087803b15801561128a57600080fd5b505af115801561129e573d6000803e3d6000fd5b505050506040513d60208110156112b457600080fd5b505115156112c157600080fd5b60048054604080517f6148fed500000000000000000000000000000000000000000000000000000000815292830186905251600160a060020a0390911691636148fed59160248083019260a09291908290030181600087803b15801561132657600080fd5b505af115801561133a573d6000803e3d6000fd5b505050506040513d60a081101561135057600080fd5b50805160209182015160408051878152938401839052838101829052519194509250339189917fe94e3086c4bfe84acba4437b85a80fca3721dfc419d1f7afe4fa4e470e670b489181900360600190a3509095945050505050565b6000828152600160209081526040808320338452600401909152812054819060ff16156113d757600080fd5b600084815260016020819052604090912081015460a060020a900460ff1615151461140157600080fd5b60048054604080517fb43bd0690000000000000000000000000000000000000000000000000000000081523393810193909352602483018790526044830186905251600160a060020a039091169163b43bd0699160648083019260209291908290030181600087803b15801561147657600080fd5b505af115801561148a573d6000803e3d6000fd5b505050506040513d60208110156114a057600080fd5b505191506114af338585611624565b6000858152600160208181526040808420600381018054899003905580548690038155338086526004909101835293819020805460ff191690931790925581518481529151939450919287927f6f4c982acc31b0af2cf1dc1556f21c0325d893782d65e83c68a5534a33f59957928290030190a36003546040805160e060020a63a9059cbb028152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561157a57600080fd5b505af115801561158e573d6000803e3d6000fd5b505050506040513d60208110156115a457600080fd5b505115156115b157600080fd5b50505050565b60016020819052600091825260409091208054918101546002820154600390920154600160a060020a0382169260a060020a90920460ff16919085565b6000828152600160209081526040808320600160a060020a038516845260040190915290205460ff165b92915050565b6000828152600160209081526040808320600381015490546004805484517fb43bd069000000000000000000000000000000000000000000000000000000008152600160a060020a038b811693820193909352602481018a9052604481018990529451939592948794929091169263b43bd0699260648084019382900301818787803b1580156116b357600080fd5b505af11580156116c7573d6000803e3d6000fd5b505050506040513d60208110156116dd57600080fd5b50519050828282028115156116ee57fe5b04979650505050505050565b600080600061173d6040805190810160405280600b81526020017f704d696e4465706f736974000000000000000000000000000000000000000000815250610be4565b915084846040518083805190602001908083835b602083106117705780518252601f199092019160209182019101611751565b51815160001960209485036101000a019081169019919091161790529201938452506040805193849003820184207f64697370656e736174696f6e50637400000000000000000000000000000000008552905193849003600f0184208a5191965094508993925082918401908083835b602083106117ff5780518252601f1990920191602091820191016117e0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614806118cc5750604080517f7044697370656e736174696f6e5063740000000000000000000000000000000081529051908190036010018120865190918791819060208401908083835b602083106118995780518252601f19909201916020918201910161187a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916145b156118df5760648411156118df57600080fd5b6118e881610a96565b156118f257600080fd5b836118fc86610be4565b141561190757600080fd5b604080516101208101909152600e60e082019081527f704170706c7953746167654c656e00000000000000000000000000000000000061010083015281906119529061094d90610be4565b81526020016000815260200183815260200186815260200133600160a060020a031681526020016119c060055461095a6108cb6040805190810160405280600f81526020017f7052657665616c53746167654c656e0000000000000000000000000000000000815250610be4565b8152602090810186905260008381526002808352604091829020845181558484015160018201559184015190820155606083015180519192611a0a92600385019290910190612307565b5060808201516004828101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0393841617905560a0840151600584015560c090930151600690920191909155600354604080517f23b872dd000000000000000000000000000000000000000000000000000000008152339481019490945230602485015260448401869052519116916323b872dd9160648083019260209291908290030181600087803b158015611abf57600080fd5b505af1158015611ad3573d6000803e3d6000fd5b505050506040513d6020811015611ae957600080fd5b50511515611af657600080fd5b6000818152600260209081526040808320548151808401899052918201859052606082018690526080820181905260a0808352895190830152885133947fb25bdef16105f099e5c185f9c7fd969571e8e0caa3f7bd75409512fe0a41a60b948b948b9489948b949193839260c0840192918a0191908190849084905b83811015611b8a578181015183820152602001611b72565b50505050905090810190601f168015611bb75780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a2949350505050565b6000611bda612285565b600083815260026020818152604092839020835160e0810185528154815260018083015482850152828501548287015260038301805487516000199382161561010002939093011695909504601f810185900485028201850190965285815290949193606086019391929091830182828015611c975780601f10611c6c57610100808354040283529160200191611c97565b820191906000526020600020905b815481529060010190602001808311611c7a57829003601f168201915b50505091835250506004820154600160a060020a0316602082015260058201546040820152600690910154606090910152805190915042118015611cde57508060a0015142105b8015611cec57506020810151155b9392505050565b60006020819052908152604090205481565b600354600160a060020a031681565b600454600160a060020a031681565b80600080846040518082805190602001908083835b60208310611d575780518252601f199092019160209182019101611d38565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555050505050565b611da1612285565b6000828152600260208181526040808420815160e0810183528154815260018083015482860152828601548285015260038301805485516000199382161561010002939093011696909604601f81018690048602820186019094528381528695919492936060860193919291830182828015611e5e5780601f10611e3357610100808354040283529160200191611e5e565b820191906000526020600020905b815481529060010190602001808311611e4157829003601f168201915b505050505081526020016004820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160058201548152602001600682015481525050925060016000846020015181526020019081526020016000209150611ed28360200151610aaf565b60048054602080870151604080517f053e71a60000000000000000000000000000000000000000000000000000000081529485019190915251939450600160a060020a039091169263053e71a69260248082019392918290030181600087803b158015611f3e57600080fd5b505af1158015611f52573d6000803e3d6000fd5b505050506040513d6020811015611f6857600080fd5b5051600383015560018201805474ff0000000000000000000000000000000000000000191660a060020a17905560048054602085810151604080517f494031830000000000000000000000000000000000000000000000000000000081529485019190915251600160a060020a0390921692634940318392602480830193928290030181600087803b158015611ffd57600080fd5b505af1158015612011573d6000803e3d6000fd5b505050506040513d602081101561202757600080fd5b50511561212e57428360a00151111561204c5761204c83606001518460c00151611d23565b6020808401518354600385015460408051928352938201528251919287927fc4497224aa78dd50c9b3e344aab02596201ca1e6dca4057a91a6c02f83f4f6c19281900390910190a360035460808401516040805160e060020a63a9059cbb028152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b1580156120f257600080fd5b505af1158015612106573d6000803e3d6000fd5b505050506040513d602081101561211c57600080fd5b5051151561212957600080fd5b6115b1565b6020808401518354600385015460408051928352938201528251919287927f362a12431f779a2baff4f77f75ba7960ae993a5c41b425df11f7fd0af2b9cbe69281900390910190a360035460208085015160009081526001808352604080832090910154815160e060020a63a9059cbb028152600160a060020a03918216600482015260248101879052915194169363a9059cbb9360448084019491938390030190829087803b15801561157a57600080fd5b8181018281101561161e57fe5b6000828211156121fa57fe5b50900390565b60008215156122115750600061161e565b5081810281838281151561222157fe5b041461161e57fe5b6000818381151561223657fe5b049392505050565b50805460018160011615610100020316600290046000825580601f106122645750612282565b601f0160209004906000526020600020908101906122829190612385565b50565b60e060405190810160405280600081526020016000815260200160008152602001606081526020016000600160a060020a0316815260200160008152602001600081525090565b60a060405190810160405280600081526020016000600160a060020a0316815260200160001515815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061234857805160ff1916838001178555612375565b82800160010185558215612375579182015b8281111561237557825182559160200191906001019061235a565b50612381929150612385565b5090565b61239f91905b80821115612381576000815560010161238b565b905600a165627a7a72305820ed840535900f894fb89ac1b708fbec598795cafcab5034977f4db1cc2ec92cea0029",
  "deployedBytecode": "0x6080604052600436106100fa5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166229514f81146100ff57806330490e911461012657806332ed5b1214610140578063353009901461020c57806350411552146102385780635f02116f14610250578063693ec85e146102de57806377609a41146103375780638240ae4b1461034f57806386bb8f37146103675780638f1d377614610382578063a5ba3b1e146103cd578063a7aad3db146103f1578063bade1c5414610418578063c51131fb14610473578063dc6ab5271461048b578063fc0c546a146104a3578063fce1ccca146104d4575b600080fd5b34801561010b57600080fd5b506101146104e9565b60408051918252519081900360200190f35b34801561013257600080fd5b5061013e6004356104ef565b005b34801561014c57600080fd5b506101586004356109ca565b604051808881526020018781526020018681526020018060200185600160a060020a0316600160a060020a03168152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b838110156101cb5781810151838201526020016101b3565
Download .txt
gitextract_g8jrarxw/

├── .circleci/
│   └── config.yml
├── .dockerignore
├── .editorconfig
├── .gitattributes
├── .gitignore
├── .prettierignore
├── .prettierrc.yaml
├── .releaserc
├── .vscode/
│   ├── launch.json
│   └── settings.json
├── Dockerfile-dapp
├── README.md
├── commitlint.config.js
├── lerna.json
├── package.json
├── packages/
│   ├── artifacts/
│   │   ├── package.json
│   │   └── v1/
│   │       ├── ACL.json
│   │       ├── AddressRegistry.json
│   │       ├── AttributeStore.json
│   │       ├── CVLToken.json
│   │       ├── CivilPLCRVoting.json
│   │       ├── CivilParameterizer.json
│   │       ├── CivilTCR.json
│   │       ├── CivilTokenController.json
│   │       ├── ContractAddressRegistry.json
│   │       ├── CreateNewsroomInGroup.json
│   │       ├── DLL.json
│   │       ├── DummyACL.json
│   │       ├── DummyTokenTelemetry.json
│   │       ├── ECRecovery.json
│   │       ├── ERC1404.json
│   │       ├── ERC20.json
│   │       ├── ERC20Detailed.json
│   │       ├── EventStorage.json
│   │       ├── Factory.json
│   │       ├── Government.json
│   │       ├── IERC20.json
│   │       ├── IGovernment.json
│   │       ├── IMultiSigWalletFactory.json
│   │       ├── Managed.json
│   │       ├── ManagedWhitelist.json
│   │       ├── MessagesAndCodes.json
│   │       ├── Migrations.json
│   │       ├── MultiSigWallet.json
│   │       ├── MultiSigWalletFactory.json
│   │       ├── Newsroom.json
│   │       ├── NewsroomFactory.json
│   │       ├── NoOpTokenController.json
│   │       ├── Ownable.json
│   │       ├── PLCRVoting.json
│   │       ├── Parameterizer.json
│   │       ├── RBAC.json
│   │       ├── RestrictedAddressRegistry.json
│   │       ├── Roles.json
│   │       ├── RootCommits.json
│   │       ├── SafeMath.json
│   │       ├── TokenTelemetryI.json
│   │       ├── UniswapExchange.json
│   │       ├── UniswapFactory.json
│   │       └── Whitelist.json
│   ├── components/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── .releaserc
│   │   ├── .storybook/
│   │   │   ├── config.ts
│   │   │   ├── preview-head.html
│   │   │   ├── register-context.ts
│   │   │   └── webpack.config.js
│   │   ├── LICENSE
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── Account/
│   │   │   │   ├── Auth/
│   │   │   │   │   ├── AuthStyledComponents.tsx
│   │   │   │   │   ├── AuthTextComponents.tsx
│   │   │   │   │   ├── ConfirmEmailToken.tsx
│   │   │   │   │   ├── EmailAuth.stories.tsx
│   │   │   │   │   ├── EmailAuth.tsx
│   │   │   │   │   ├── EmailSent.tsx
│   │   │   │   │   ├── EthAuth.tsx
│   │   │   │   │   ├── UserSetAvatar.stories.tsx
│   │   │   │   │   ├── UserSetAvatar.tsx
│   │   │   │   │   ├── UserSetEmail.stories.tsx
│   │   │   │   │   ├── UserSetEmail.tsx
│   │   │   │   │   ├── UserSetHandle.tsx
│   │   │   │   │   ├── VerifyToken.stories.tsx
│   │   │   │   │   ├── VerifyToken.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       ├── EmailAuth.stories.storyshot
│   │   │   │   │       ├── EthAuth.stories.storyshot
│   │   │   │   │       ├── UserSetAvatar.stories.storyshot
│   │   │   │   │       ├── UserSetEmail.stories.storyshot
│   │   │   │   │       └── VerifyToken.stories.storyshot
│   │   │   │   ├── LoadUser.tsx
│   │   │   │   └── index.ts
│   │   │   ├── AddressWithCopyButton.tsx
│   │   │   ├── AddressWithMetaMaskIcon.tsx
│   │   │   ├── ApplicationPhaseStatusLabels.stories.tsx
│   │   │   ├── ApplicationPhaseStatusLabels.tsx
│   │   │   ├── AuthenticatedRoute.tsx
│   │   │   ├── BrowserCompatible/
│   │   │   │   ├── BrowserCompatible.stories.tsx
│   │   │   │   ├── BrowserCompatible.tsx
│   │   │   │   ├── BrowserCompatibleStyledComponents.tsx
│   │   │   │   ├── BrowserCompatibleTextComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── BrowserCompatible.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── Button.stories.tsx
│   │   │   ├── Button.tsx
│   │   │   ├── Card/
│   │   │   │   ├── Card.stories.tsx
│   │   │   │   ├── Card.tsx
│   │   │   │   ├── CardStyledComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Card.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── CardTransactionButton.tsx
│   │   │   ├── ChallengeResultsChart/
│   │   │   │   ├── ChallengeResults.stories.tsx
│   │   │   │   ├── ChallengeResults.tsx
│   │   │   │   ├── ChallengeResultsChartTextComponents.tsx
│   │   │   │   ├── UserVotingSummary.tsx
│   │   │   │   ├── VoteTypeSummaryRow.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ChallengeResults.stories.storyshot
│   │   │   │   ├── constants.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── types.d.ts
│   │   │   │   └── types.ts
│   │   │   ├── ChevronAnchor.stories.tsx
│   │   │   ├── ChevronAnchor.tsx
│   │   │   ├── ChevronAnchorLeft.tsx
│   │   │   ├── ClaimRewards.tsx
│   │   │   ├── ClipLoader.tsx
│   │   │   ├── Collapsable.stories.tsx
│   │   │   ├── Collapsable.tsx
│   │   │   ├── Comments/
│   │   │   │   ├── CommentsCount.tsx
│   │   │   │   ├── CommentsStyledComponents.tsx
│   │   │   │   └── index.ts
│   │   │   ├── Contributors/
│   │   │   │   ├── ContributorCount.tsx
│   │   │   │   ├── Contributors.stories.tsx
│   │   │   │   ├── Contributors.tsx
│   │   │   │   ├── ContributorsDefaultAvatar.tsx
│   │   │   │   ├── ContributorsStyledComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Contributors.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── types.ts
│   │   │   ├── CopyToClipboard/
│   │   │   │   ├── CopyStyledComponents.tsx
│   │   │   │   ├── CopyURL.stories.tsx
│   │   │   │   ├── CopyURL.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── CopyURL.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── CurrencyConverter/
│   │   │   │   ├── CurrencyConverted.tsx
│   │   │   │   ├── CurrencyConverter.stories.tsx
│   │   │   │   ├── CurrencyConverter.tsx
│   │   │   │   ├── CurrencyConverterStyledComponents.tsx
│   │   │   │   ├── CurrencyConverterTextComponents.tsx
│   │   │   │   ├── UsdEthConverter.tsx
│   │   │   │   ├── UsdEthCvlConverter.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── CurrencyConverter.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── DAppMessageContent/
│   │   │   │   ├── ErrorLoadingData.tsx
│   │   │   │   ├── ErrorNotFound.tsx
│   │   │   │   ├── InsufficientCVL.tsx
│   │   │   │   ├── WrongNetwork.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── textComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── DetailTransactionButton.stories.tsx
│   │   │   ├── DetailTransactionButton.tsx
│   │   │   ├── DetailsButtonComponent.tsx
│   │   │   ├── EmailSignup/
│   │   │   │   ├── EmailSignup.stories.tsx
│   │   │   │   ├── EmailSignup.tsx
│   │   │   │   ├── EmailSignupSuccess.tsx
│   │   │   │   ├── EmailStyledComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── EmailSignup.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── EthAddressViewer/
│   │   │   │   ├── EthAddressViewer.stories.tsx
│   │   │   │   ├── EthAddressViewer.tsx
│   │   │   │   ├── StyledEthAddressViewer.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── EthAddressViewer.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── ExecuteOnMount.tsx
│   │   │   ├── FullscreenModal.tsx
│   │   │   ├── GasEstimate.tsx
│   │   │   ├── Heading.stories.tsx
│   │   │   ├── Heading.tsx
│   │   │   ├── HelmetHelper.tsx
│   │   │   ├── Hero/
│   │   │   │   ├── Hero.stories.tsx
│   │   │   │   ├── Hero.tsx
│   │   │   │   ├── HeroStyledComponents.tsx
│   │   │   │   ├── HeroTextComponents.tsx
│   │   │   │   ├── HomepageHero.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Hero.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── Layout/
│   │   │   │   ├── index.ts
│   │   │   │   └── styledComponents.tsx
│   │   │   ├── ListingDetailHeader/
│   │   │   │   ├── EthereumInfoModal.tsx
│   │   │   │   ├── ListingDetailHeader.stories.tsx
│   │   │   │   ├── ListingDetailHeader.tsx
│   │   │   │   ├── ListingDetailHeaderStyledComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ListingDetailHeader.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── ListingDetailPhaseCard/
│   │   │   │   ├── AppealAwaitingDecisionCard.tsx
│   │   │   │   ├── AppealChallengeCommitVoteCard.tsx
│   │   │   │   ├── AppealChallengeResolveCard.tsx
│   │   │   │   ├── AppealChallengeRevealVoteCard.tsx
│   │   │   │   ├── AppealDecisionCard.tsx
│   │   │   │   ├── AppealDecisionDetail.tsx
│   │   │   │   ├── AppealResolveCard.tsx
│   │   │   │   ├── ChallengeCommitVoteCard.tsx
│   │   │   │   ├── ChallengePhaseDetail.tsx
│   │   │   │   ├── ChallengeRequestAppealCard.tsx
│   │   │   │   ├── ChallengeResolveCard.tsx
│   │   │   │   ├── ChallengeRevealVoteCard.tsx
│   │   │   │   ├── CommitVote.tsx
│   │   │   │   ├── CompleteChallengeResults.tsx
│   │   │   │   ├── InApplicationCard.tsx
│   │   │   │   ├── InApplicationResolveCard.tsx
│   │   │   │   ├── ListingDetailsPhaseCard.stories.tsx
│   │   │   │   ├── NeedHelp.tsx
│   │   │   │   ├── RejectedCard.tsx
│   │   │   │   ├── RevealVote.tsx
│   │   │   │   ├── SaltField.tsx
│   │   │   │   ├── VoteButton.tsx
│   │   │   │   ├── WhitelistedCard.tsx
│   │   │   │   ├── WithdrawnCard.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ListingDetailsPhaseCard.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── textComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── ListingHistoryEvent/
│   │   │   │   ├── AppealGrantedEvent.tsx
│   │   │   │   ├── AppealRequestedEvent.tsx
│   │   │   │   ├── ApplicationEvent.tsx
│   │   │   │   ├── ChallengeEvent.tsx
│   │   │   │   ├── ChallengeFailedEvent.tsx
│   │   │   │   ├── ChallengeSucceededEvent.tsx
│   │   │   │   ├── DepositEvent.tsx
│   │   │   │   ├── EventDate.tsx
│   │   │   │   ├── GrantedAppealChallengedEvent.tsx
│   │   │   │   ├── ListingHistoryEvent.stories.tsx
│   │   │   │   ├── ListingHistoryEvent.tsx
│   │   │   │   ├── ListingWithdrawnEvent.tsx
│   │   │   │   ├── RejectedEvent.tsx
│   │   │   │   ├── TouchAndRemovedEvent.tsx
│   │   │   │   ├── WhitelistedEvent.tsx
│   │   │   │   ├── WithdrawalEvent.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ListingHistoryEvent.stories.storyshot
│   │   │   │   ├── constants.ts
│   │   │   │   ├── index.tsx
│   │   │   │   └── types.ts
│   │   │   ├── ListingSummary/
│   │   │   │   ├── AppealJudgementBanner.tsx
│   │   │   │   ├── ChallengeOrAppealStatementSummary.tsx
│   │   │   │   ├── ChallengeResults.tsx
│   │   │   │   ├── ChallengeResultsBanner.tsx
│   │   │   │   ├── DepositOrStakeAmount.tsx
│   │   │   │   ├── ListingPhaseLabel.tsx
│   │   │   │   ├── ListingSummary.stories.tsx
│   │   │   │   ├── ListingSummary.tsx
│   │   │   │   ├── ListingSummaryApproved.tsx
│   │   │   │   ├── ListingSummaryBase.tsx
│   │   │   │   ├── ListingSummaryList.tsx
│   │   │   │   ├── ListingSummaryReadyToUpdate.tsx
│   │   │   │   ├── ListingSummaryRejected.tsx
│   │   │   │   ├── ListingSummaryUnderChallenge.tsx
│   │   │   │   ├── NewsroomInfo.tsx
│   │   │   │   ├── NewsroomTagline.tsx
│   │   │   │   ├── PhaseCountdownOrTimestamp.tsx
│   │   │   │   ├── SummaryActionButton.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ListingSummary.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── textComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── LoadingIndicator.stories.tsx
│   │   │   ├── LoadingIndicator.tsx
│   │   │   ├── LoadingMessage.stories.tsx
│   │   │   ├── LoadingMessage.tsx
│   │   │   ├── Message.stories.tsx
│   │   │   ├── Message.tsx
│   │   │   ├── MetaMaskLogoButton.tsx
│   │   │   ├── MetaMaskModal.stories.tsx
│   │   │   ├── MetaMaskModal.tsx
│   │   │   ├── Modal.stories.tsx
│   │   │   ├── Modal.tsx
│   │   │   ├── ModalContent.stories.tsx
│   │   │   ├── ModalContent.tsx
│   │   │   ├── NavBar/
│   │   │   │   └── __snapshots__/
│   │   │   │       └── NavBar.stories.storyshot
│   │   │   ├── Notice/
│   │   │   │   ├── Notice.stories.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Notice.stories.storyshot
│   │   │   │   └── index.tsx
│   │   │   ├── Parameterizer/
│   │   │   │   ├── ChallengeProposal.tsx
│   │   │   │   ├── ChallengeProposalCommitVote.tsx
│   │   │   │   ├── ChallengeProposalRevealVote.tsx
│   │   │   │   ├── ChallengeProposalReviewVote.tsx
│   │   │   │   ├── CreateGovtProposal.tsx
│   │   │   │   ├── CreateProposal.tsx
│   │   │   │   ├── Parameterizer.stories.tsx
│   │   │   │   ├── ParameterizerStyledComponents.tsx
│   │   │   │   ├── ParameterizerTableCell.tsx
│   │   │   │   ├── ProcessProposal.tsx
│   │   │   │   ├── ResolveChallengeProposal.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Parameterizer.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── textComponents.tsx
│   │   │   ├── Payments/
│   │   │   │   ├── AvatarLogin.tsx
│   │   │   │   ├── PaymentIntentsStripeForm.tsx
│   │   │   │   ├── Payments.stories.tsx
│   │   │   │   ├── Payments.tsx
│   │   │   │   ├── PaymentsAmount.tsx
│   │   │   │   ├── PaymentsApplePay.tsx
│   │   │   │   ├── PaymentsEth.tsx
│   │   │   │   ├── PaymentsEthForm.tsx
│   │   │   │   ├── PaymentsEthUpdateAmount.tsx
│   │   │   │   ├── PaymentsEthWrapper.tsx
│   │   │   │   ├── PaymentsFormWrapper.tsx
│   │   │   │   ├── PaymentsGooglePay.tsx
│   │   │   │   ├── PaymentsInputValidationUI.tsx
│   │   │   │   ├── PaymentsLoadStripePayRequest.tsx
│   │   │   │   ├── PaymentsLoginOrGuest.tsx
│   │   │   │   ├── PaymentsModal.tsx
│   │   │   │   ├── PaymentsRadio.tsx
│   │   │   │   ├── PaymentsRequest.tsx
│   │   │   │   ├── PaymentsSelectType.tsx
│   │   │   │   ├── PaymentsStripe.tsx
│   │   │   │   ├── PaymentsStripeCardComponent.tsx
│   │   │   │   ├── PaymentsStripeForm.tsx
│   │   │   │   ├── PaymentsStripeFormSavedCard.tsx
│   │   │   │   ├── PaymentsStyledComponents.tsx
│   │   │   │   ├── PaymentsSuccess.tsx
│   │   │   │   ├── PaymentsTextComponents.tsx
│   │   │   │   ├── PaymentsWrapper.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Payments.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── queries.ts
│   │   │   │   └── types.ts
│   │   │   ├── PhaseCountdown/
│   │   │   │   ├── PhaseCountdown.stories.tsx
│   │   │   │   ├── ProgressBarCountdownTimer.tsx
│   │   │   │   ├── SmallProgressBarCountdownTimer.tsx
│   │   │   │   ├── TextCountdownTimer.tsx
│   │   │   │   ├── TwoPhaseProgressBarCountdownTimer.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── PhaseCountdown.stories.storyshot
│   │   │   │   ├── constants.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   ├── textComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── ProgressModalContent.tsx
│   │   │   ├── QuestionToolTip.stories.tsx
│   │   │   ├── QuestionToolTip.tsx
│   │   │   ├── RegistryEmpty/
│   │   │   │   ├── index.ts
│   │   │   │   └── styledComponents.tsx
│   │   │   ├── RescueTokens.tsx
│   │   │   ├── ReviewVote/
│   │   │   │   ├── ReviewVote.stories.tsx
│   │   │   │   ├── ReviewVoteModal.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ReviewVote.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   └── textComponents.tsx
│   │   │   ├── Share/
│   │   │   │   ├── Share.stories.tsx
│   │   │   │   └── __snapshots__/
│   │   │   │       └── Share.stories.storyshot
│   │   │   ├── SignConstitutionButton.stories.tsx
│   │   │   ├── SignConstitutionButton.tsx
│   │   │   ├── SnackBar/
│   │   │   │   ├── SnackBar.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── styledComponents.tsx
│   │   │   ├── StepProcess/
│   │   │   │   ├── StepHeader.tsx
│   │   │   │   ├── StepProcess.stories.tsx
│   │   │   │   ├── StepProcess.tsx
│   │   │   │   ├── StepProcessTopNav/
│   │   │   │   │   ├── Step.tsx
│   │   │   │   │   ├── StepProcessTopNav.stories.tsx
│   │   │   │   │   ├── StepProcessTopNav.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── StepProcessTopNav.stories.storyshot
│   │   │   │   │   └── index.ts
│   │   │   │   ├── StepProcessTopNavNoButtons/
│   │   │   │   │   ├── Step.tsx
│   │   │   │   │   ├── StepProcessTopNav.stories.tsx
│   │   │   │   │   ├── StepProcessTopNavNoButtons.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── StepProcessTopNav.stories.storyshot
│   │   │   │   │   └── index.ts
│   │   │   │   ├── StepStyled.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── StepProcess.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── StoryFeed/
│   │   │   │   ├── StoryNewsroomStatus.tsx
│   │   │   │   └── index.ts
│   │   │   ├── TCRUserDashboard/
│   │   │   │   ├── Dashboard.tsx
│   │   │   │   ├── DashboardActivity.tsx
│   │   │   │   ├── DashboardActivityItem.tsx
│   │   │   │   ├── DashboardActivityItemCTAButton.tsx
│   │   │   │   ├── DashboardActivityItemTask.tsx
│   │   │   │   ├── DashboardActivityItemTitle.tsx
│   │   │   │   ├── DashboardActivityProposalItemCTAButton.tsx
│   │   │   │   ├── DashboardActivitySelectableItem.tsx
│   │   │   │   ├── DashboardActivityTabTitle.tsx
│   │   │   │   ├── DashboardNewsroom.tsx
│   │   │   │   ├── DashboardNewsroomProceeds.tsx
│   │   │   │   ├── DashboardNewsroomStripeConnect.tsx
│   │   │   │   ├── DashboardNewsroomSubmitLink.tsx
│   │   │   │   ├── DashboardStyledComponents.tsx
│   │   │   │   ├── DashboardTextComponents.tsx
│   │   │   │   ├── DashboardTransferTokenForm.tsx
│   │   │   │   ├── DashboardTypes.ts
│   │   │   │   ├── DashboardUserInfoSummary.tsx
│   │   │   │   ├── DashboardUserProfileSummary.tsx
│   │   │   │   ├── NoNewsrooms.tsx
│   │   │   │   └── index.ts
│   │   │   ├── Table/
│   │   │   │   ├── Table.stories.tsx
│   │   │   │   ├── Table.tsx
│   │   │   │   ├── TableCell.tsx
│   │   │   │   ├── TableHeader.tsx
│   │   │   │   ├── Tr.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Table.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   ├── styledComponents.tsx
│   │   │   │   └── types.ts
│   │   │   ├── Tabs/
│   │   │   │   ├── Tab.tsx
│   │   │   │   ├── TabTitles.tsx
│   │   │   │   ├── Tabs.stories.tsx
│   │   │   │   ├── Tabs.tsx
│   │   │   │   ├── TabsStyled.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Tabs.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── textComponents.tsx
│   │   │   ├── Tokens/
│   │   │   │   ├── EthereumTransactionButton.tsx
│   │   │   │   ├── TokenPurchaseSummary.tsx
│   │   │   │   ├── Tokens.tsx
│   │   │   │   ├── TokensAccount.stories.tsx
│   │   │   │   ├── TokensAccountBuy.tsx
│   │   │   │   ├── TokensAccountFaq.tsx
│   │   │   │   ├── TokensAccountHelp.tsx
│   │   │   │   ├── TokensAccountPaypal.tsx
│   │   │   │   ├── TokensAccountProgress.tsx
│   │   │   │   ├── TokensAccountRequirement.tsx
│   │   │   │   ├── TokensAccountSignup.tsx
│   │   │   │   ├── TokensStyledComponents.tsx
│   │   │   │   ├── TokensTextComponents.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── TokensAccount.stories.storyshot
│   │   │   │   ├── buy/
│   │   │   │   │   ├── AirswapBuyCVL.tsx
│   │   │   │   │   ├── AirswapBuySection.tsx
│   │   │   │   │   ├── TokensTabBuy.stories.tsx
│   │   │   │   │   ├── TokensTabBuy.tsx
│   │   │   │   │   ├── TokensTabBuyActive.tsx
│   │   │   │   │   ├── TokensTabBuyComplete.tsx
│   │   │   │   │   ├── UniswapBuy.tsx
│   │   │   │   │   ├── UniswapBuySection.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       └── TokensTabBuy.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── sell/
│   │   │   │       ├── TokensTabSell.stories.tsx
│   │   │   │       ├── TokensTabSell.tsx
│   │   │   │       ├── TokensTabSellActive.tsx
│   │   │   │       ├── TokensTabSellComplete.tsx
│   │   │   │       ├── UniswapCvlEthConverter.tsx
│   │   │   │       ├── UniswapSell.tsx
│   │   │   │       ├── UniswapSellSection.tsx
│   │   │   │       └── __snapshots__/
│   │   │   │           └── TokensTabSell.stories.storyshot
│   │   │   ├── ToolTip.tsx
│   │   │   ├── TransactionButton.tsx
│   │   │   ├── Tutorial/
│   │   │   │   ├── Tutorial.stories.tsx
│   │   │   │   ├── TutorialFooter.tsx
│   │   │   │   ├── TutorialInfo.tsx
│   │   │   │   ├── TutorialProgress.tsx
│   │   │   │   ├── TutorialQuestion.tsx
│   │   │   │   ├── TutorialRadio.tsx
│   │   │   │   ├── TutorialStyledComponents.tsx
│   │   │   │   ├── TutorialTextComponents.tsx
│   │   │   │   ├── TutorialTopicCompleted.tsx
│   │   │   │   ├── TutorialTopicIntro.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Tutorial.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── UserStatement/
│   │   │   │   ├── RequestAppealStatement.tsx
│   │   │   │   ├── SubmitAppealChallengeStatement.tsx
│   │   │   │   ├── SubmitChallengeStatement.tsx
│   │   │   │   ├── UserStatement.stories.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── UserStatement.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── styledComponents.tsx
│   │   │   ├── ViewTransactionLink.stories.tsx
│   │   │   ├── ViewTransactionLink.tsx
│   │   │   ├── WalletOnboarding.stories.tsx
│   │   │   ├── WalletOnboarding.tsx
│   │   │   ├── WalletOnboardingV2/
│   │   │   │   ├── WalletOnboardingV2.connected.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.decorator.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.disabled.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.locked.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.mismatch.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.network.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.provider.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.save.stories.tsx
│   │   │   │   ├── WalletOnboardingV2.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── WalletOnboardingV2.connected.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.disabled.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.locked.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.mismatch.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.network.stories.storyshot
│   │   │   │   │   ├── WalletOnboardingV2.provider.stories.storyshot
│   │   │   │   │   └── WalletOnboardingV2.save.stories.storyshot
│   │   │   │   └── index.ts
│   │   │   ├── WithNewsroomChannelHOC.tsx
│   │   │   ├── __mocks__/
│   │   │   │   └── fileMock.js
│   │   │   ├── __snapshots__/
│   │   │   │   ├── ApplicationPhaseStatusLabels.stories.storyshot
│   │   │   │   ├── Button.stories.storyshot
│   │   │   │   ├── ChevronAnchor.stories.storyshot
│   │   │   │   ├── ClipLoader.stories.storyshot
│   │   │   │   ├── Collapsable.stories.storyshot
│   │   │   │   ├── DetailTransactionButton.stories.storyshot
│   │   │   │   ├── Heading.stories.storyshot
│   │   │   │   ├── LoadingIndicator.stories.storyshot
│   │   │   │   ├── LoadingMessage.stories.storyshot
│   │   │   │   ├── Message.stories.storyshot
│   │   │   │   ├── MetaMaskModal.stories.storyshot
│   │   │   │   ├── Modal.stories.storyshot
│   │   │   │   ├── ModalContent.stories.storyshot
│   │   │   │   ├── QuestionToolTip.stories.storyshot
│   │   │   │   ├── ViewTransactionLink.stories.storyshot
│   │   │   │   └── WalletOnboarding.stories.storyshot
│   │   │   ├── __test__/
│   │   │   │   ├── setupTests.ts
│   │   │   │   └── storyshot.test.ts
│   │   │   ├── containers/
│   │   │   │   ├── ButtonActions.tsx
│   │   │   │   ├── PaddedSection.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── context/
│   │   │   │   ├── AuthService.ts
│   │   │   │   ├── CivilContext.ts
│   │   │   │   ├── CivilProvider.tsx
│   │   │   │   ├── IdentityParentPlugin.ts
│   │   │   │   └── index.ts
│   │   │   ├── features/
│   │   │   │   ├── FeatureFlag.tsx
│   │   │   │   └── index.ts
│   │   │   ├── hooks/
│   │   │   │   ├── useAsyncEffect.ts
│   │   │   │   ├── useIntervalEffect.ts
│   │   │   │   └── useStateWithLocalStorage.ts
│   │   │   ├── icons/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── icon.stories.storyshot
│   │   │   │   ├── index.ts
│   │   │   │   └── logos/
│   │   │   │       ├── Paypal.tsx
│   │   │   │       └── index.ts
│   │   │   ├── imageUrls.ts
│   │   │   ├── index.ts
│   │   │   ├── input/
│   │   │   │   ├── AddressInput.stories.tsx
│   │   │   │   ├── AddressInput.tsx
│   │   │   │   ├── Checkbox.tsx
│   │   │   │   ├── Dropdown.stories.tsx
│   │   │   │   ├── Dropdown.tsx
│   │   │   │   ├── ImageFileToDataUri.tsx
│   │   │   │   ├── Input.stories.tsx
│   │   │   │   ├── Input.tsx
│   │   │   │   ├── InputGroup.tsx
│   │   │   │   ├── InputWithButton.tsx
│   │   │   │   ├── RadioInput.tsx
│   │   │   │   ├── SaltInput.tsx
│   │   │   │   ├── SimpleImageFileToDataUri.tsx
│   │   │   │   ├── SlideCheckbox.tsx
│   │   │   │   ├── SubmitLink.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── AddressInput.stories.storyshot
│   │   │   │   │   ├── Dropdown.stories.storyshot
│   │   │   │   │   ├── Input.stories.storyshot
│   │   │   │   │   └── checkbox.stories.storyshot
│   │   │   │   ├── checkbox.stories.tsx
│   │   │   │   └── index.ts
│   │   │   ├── onboardingStyledComponents.tsx
│   │   │   ├── styleConstants.ts
│   │   │   ├── theme.ts
│   │   │   └── types.d.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── contracts/
│   │   ├── .doxityrc
│   │   ├── .gitignore
│   │   ├── .soliumignore
│   │   ├── .soliumrc.json
│   │   ├── README.md
│   │   ├── conf/
│   │   │   └── config.json
│   │   ├── contracts/
│   │   │   ├── Migrations.sol
│   │   │   ├── RootCommits/
│   │   │   │   └── RootCommits.sol
│   │   │   ├── installed_contracts/
│   │   │   │   ├── AttributeStore.sol
│   │   │   │   ├── DLL.sol
│   │   │   │   ├── PLCRVoting.sol
│   │   │   │   └── Parameterizer.sol
│   │   │   ├── interfaces/
│   │   │   │   ├── IGovernment.sol
│   │   │   │   └── IMultiSigWalletFactory.sol
│   │   │   ├── multisig/
│   │   │   │   ├── Factory.sol
│   │   │   │   ├── MultiSigWallet.sol
│   │   │   │   └── MultiSigWalletFactory.sol
│   │   │   ├── newsroom/
│   │   │   │   ├── ACL.sol
│   │   │   │   ├── EventStorage.sol
│   │   │   │   ├── Newsroom.sol
│   │   │   │   └── NewsroomFactory.sol
│   │   │   ├── proof-of-use/
│   │   │   │   └── telemetry/
│   │   │   │       └── TokenTelemetryI.sol
│   │   │   ├── tcr/
│   │   │   │   ├── AddressRegistry.sol
│   │   │   │   ├── CivilPLCRVoting.sol
│   │   │   │   ├── CivilParameterizer.sol
│   │   │   │   ├── CivilTCR.sol
│   │   │   │   ├── ContractAddressRegistry.sol
│   │   │   │   ├── Government.sol
│   │   │   │   └── RestrictedAddressRegistry.sol
│   │   │   ├── test/
│   │   │   │   ├── DummyACL.sol
│   │   │   │   └── DummyTokenTelemetry.sol
│   │   │   ├── token/
│   │   │   │   ├── CVLToken.sol
│   │   │   │   ├── CivilTokenController.sol
│   │   │   │   ├── ERC1404/
│   │   │   │   │   ├── ERC1404.sol
│   │   │   │   │   └── MessagesAndCodes.sol
│   │   │   │   ├── Managed.sol
│   │   │   │   ├── ManagedWhitelist.sol
│   │   │   │   └── NoOpTokenController.sol
│   │   │   ├── ux/
│   │   │   │   └── CreateNewsroomInGroup.sol
│   │   │   └── zeppelin-solidity/
│   │   │       ├── ECRecovery.sol
│   │   │       ├── README.md
│   │   │       ├── access/
│   │   │       │   ├── Whitelist.sol
│   │   │       │   └── rbac/
│   │   │       │       ├── RBAC.sol
│   │   │       │       └── Roles.sol
│   │   │       ├── license/
│   │   │       │   └── LICENSE
│   │   │       ├── math/
│   │   │       │   └── SafeMath.sol
│   │   │       ├── ownership/
│   │   │       │   └── Ownable.sol
│   │   │       └── token/
│   │   │           └── ERC20/
│   │   │               ├── ERC20.sol
│   │   │               ├── ERC20Detailed.sol
│   │   │               └── IERC20.sol
│   │   ├── docs/
│   │   │   ├── CivilTCR.md
│   │   │   └── Newsroom.md
│   │   ├── ethpm.json
│   │   ├── licenses/
│   │   │   ├── LICENSE-general
│   │   │   └── LICENSE-tcr
│   │   ├── migrations/
│   │   │   ├── 10_government.ts
│   │   │   ├── 11_deploy_ecrecovery.ts
│   │   │   ├── 12_registry.ts
│   │   │   ├── 14_multisig_factory.ts
│   │   │   ├── 15_newsroom_factory.ts
│   │   │   ├── 16_add_test_listings.ts
│   │   │   ├── 17_deploy_eventstorage.ts
│   │   │   ├── 19_create_newsroom_in_group.ts
│   │   │   ├── 1_migrations.ts
│   │   │   ├── 20_government_take2.ts
│   │   │   ├── 21_deploy_root_commits.ts
│   │   │   ├── 2_optional_for_test.ts
│   │   │   ├── 3_deploy_libs.ts
│   │   │   ├── 8_deploy_plcr.ts
│   │   │   ├── 9_deploy_parameterizer.ts
│   │   │   └── utils/
│   │   │       ├── consts.ts
│   │   │       └── index.ts
│   │   ├── package.json
│   │   ├── test/
│   │   │   ├── .gitkeep
│   │   │   ├── global_hooks.ts
│   │   │   ├── modules.d.ts
│   │   │   ├── multisig/
│   │   │   │   └── multsigwallet.ts
│   │   │   ├── newsroom/
│   │   │   │   ├── ACL.ts
│   │   │   │   ├── eventStorage.ts
│   │   │   │   ├── newsroom.ts
│   │   │   │   └── newsroomFactory.ts
│   │   │   ├── tcr/
│   │   │   │   ├── contractRegistry/
│   │   │   │   │   └── apply.ts
│   │   │   │   ├── government/
│   │   │   │   │   ├── get.ts
│   │   │   │   │   ├── getAppellate.ts
│   │   │   │   │   ├── getGovernmentController.ts
│   │   │   │   │   ├── processProposal.ts
│   │   │   │   │   ├── proposeReparameterization.ts
│   │   │   │   │   ├── setAppellate.ts
│   │   │   │   │   └── setNewConstitution.ts
│   │   │   │   ├── parameterizer/
│   │   │   │   │   ├── canBeSet.ts
│   │   │   │   │   ├── challengeCanBeResolved.ts
│   │   │   │   │   ├── challengeReparameterization.ts
│   │   │   │   │   ├── claimReward.ts
│   │   │   │   │   ├── get.ts
│   │   │   │   │   ├── processProposal.ts
│   │   │   │   │   ├── propExists.ts
│   │   │   │   │   ├── proposeReparameterization.ts
│   │   │   │   │   ├── voterReward.ts
│   │   │   │   │   └── voting.ts
│   │   │   │   ├── plcrVoting/
│   │   │   │   │   ├── commitVote.ts
│   │   │   │   │   ├── didCommit.ts
│   │   │   │   │   ├── didReveal.ts
│   │   │   │   │   └── revealVote.ts
│   │   │   │   ├── registry/
│   │   │   │   │   ├── appWasMade.ts
│   │   │   │   │   ├── apply.ts
│   │   │   │   │   ├── challenge.ts
│   │   │   │   │   ├── claimReward.ts
│   │   │   │   │   ├── deposit.ts
│   │   │   │   │   ├── exit.ts
│   │   │   │   │   ├── hasClaimedTokens.ts
│   │   │   │   │   ├── isWhitelisted.ts
│   │   │   │   │   ├── tokenClaims.ts
│   │   │   │   │   ├── updateStatus.ts
│   │   │   │   │   ├── userStories.ts
│   │   │   │   │   └── withdraw.ts
│   │   │   │   ├── registryWithAppeals/
│   │   │   │   │   ├── allUserRewards.ts
│   │   │   │   │   ├── appealCanBeResolved.ts
│   │   │   │   │   ├── appealChallengeCanBeResolved.ts
│   │   │   │   │   ├── appealChallengeReward.ts
│   │   │   │   │   ├── apply.ts
│   │   │   │   │   ├── challenge.ts
│   │   │   │   │   ├── challengeCanBeResolved.ts
│   │   │   │   │   ├── challengeGrantedAppeal.ts
│   │   │   │   │   ├── checkAppealChallengeVoteOutcomes.ts
│   │   │   │   │   ├── claimAppealChallengeReward.ts
│   │   │   │   │   ├── claimReward.ts
│   │   │   │   │   ├── grantAppeal.ts
│   │   │   │   │   ├── hasClaimedChallengeAppealTokens.ts
│   │   │   │   │   ├── isWhitelisted.ts
│   │   │   │   │   ├── requestAppeal.ts
│   │   │   │   │   ├── transferGovernment.ts
│   │   │   │   │   ├── updateStatus.ts
│   │   │   │   │   └── voterReward.ts
│   │   │   │   └── restrictedRegistry/
│   │   │   │       └── apply.ts
│   │   │   ├── token/
│   │   │   │   ├── CVLToken.ts
│   │   │   │   ├── CivilTokenController.ts
│   │   │   │   └── DisbursementHander.ts
│   │   │   └── utils/
│   │   │       ├── constants.ts
│   │   │       ├── contractutils.ts
│   │   │       ├── coverage.ts
│   │   │       └── getethapi.ts
│   │   ├── truffle-config.js
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── core/
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── doc/
│   │   │   └── examples/
│   │   │       ├── example.ts
│   │   │       └── low-level/
│   │   │           ├── multisig.ts
│   │   │           └── typed_contracts.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── FeatureFlagService.ts
│   │   │   ├── UniswapService.ts
│   │   │   ├── civil.ts
│   │   │   ├── content/
│   │   │   │   ├── contentprovider.ts
│   │   │   │   ├── eventstorageprovider.ts
│   │   │   │   ├── fallbackprovider.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── inmemoryprovider.ts
│   │   │   │   └── ipfsprovider.ts
│   │   │   ├── contracts/
│   │   │   │   ├── basecontract.ts
│   │   │   │   ├── basewrapper.ts
│   │   │   │   ├── interfaces/
│   │   │   │   │   ├── contract.ts
│   │   │   │   │   └── ownable.ts
│   │   │   │   ├── multisig/
│   │   │   │   │   ├── basemultisigproxy.ts
│   │   │   │   │   ├── multisig.ts
│   │   │   │   │   └── multisigtransaction.ts
│   │   │   │   ├── newsroom.ts
│   │   │   │   ├── tcr/
│   │   │   │   │   ├── appeal.ts
│   │   │   │   │   ├── appealChallenge.ts
│   │   │   │   │   ├── challenge.ts
│   │   │   │   │   ├── civilTCR.ts
│   │   │   │   │   ├── council.ts
│   │   │   │   │   ├── cvltoken.ts
│   │   │   │   │   ├── government.ts
│   │   │   │   │   ├── listing.ts
│   │   │   │   │   ├── parameterizer.ts
│   │   │   │   │   └── voting.ts
│   │   │   │   └── utils/
│   │   │   │       └── contracts.ts
│   │   │   ├── globals.d.ts
│   │   │   ├── index.ts
│   │   │   ├── templates/
│   │   │   │   ├── artifacts.handlebars
│   │   │   │   ├── contract/
│   │   │   │   │   ├── contract.handlebars
│   │   │   │   │   ├── multisigproxy.handlebars
│   │   │   │   │   └── partials/
│   │   │   │   │       ├── call.handlebars
│   │   │   │   │       ├── constructor.handlebars
│   │   │   │   │       ├── event.handlebars
│   │   │   │   │       ├── event_types.handlebars
│   │   │   │   │       ├── params.handlebars
│   │   │   │   │       ├── proxy_tx.handlebars
│   │   │   │   │       ├── return_type.handlebars
│   │   │   │   │       ├── tx.handlebars
│   │   │   │   │       └── typed_inputs.handlebars
│   │   │   │   └── events.handlebars
│   │   │   ├── types.ts
│   │   │   └── utils/
│   │   │       ├── ethersHelpers.ts
│   │   │       └── events.ts
│   │   ├── test/
│   │   │   └── .gitkeep
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── dapp/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── config-overrides.js
│   │   ├── devops/
│   │   │   ├── nginx.conf
│   │   │   └── start.sh
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── .well-known/
│   │   │   │   └── apple-developer-merchantid-domain-association
│   │   │   ├── index.html
│   │   │   └── manifest.json
│   │   ├── src/
│   │   │   ├── App.test.tsx
│   │   │   ├── App.tsx
│   │   │   ├── apis/
│   │   │   │   └── CivilHelper.tsx
│   │   │   ├── components/
│   │   │   │   ├── Auth/
│   │   │   │   │   ├── AuthButtonContent.tsx
│   │   │   │   │   ├── AuthLogout.tsx
│   │   │   │   │   ├── AuthWeb3.tsx
│   │   │   │   │   ├── AuthWeb3Login.tsx
│   │   │   │   │   ├── AuthWeb3Signup.tsx
│   │   │   │   │   ├── CheckEmail.tsx
│   │   │   │   │   ├── ConfirmEmail.tsx
│   │   │   │   │   ├── Eth.tsx
│   │   │   │   │   ├── Login.tsx
│   │   │   │   │   ├── SetAvatar.tsx
│   │   │   │   │   ├── SetEmail.tsx
│   │   │   │   │   ├── SetUsername.tsx
│   │   │   │   │   ├── Signup.tsx
│   │   │   │   │   ├── VerifyToken.tsx
│   │   │   │   │   ├── authStyledComponents.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── Boosts/
│   │   │   │   │   ├── Boost.tsx
│   │   │   │   │   ├── BoostFeedPage.tsx
│   │   │   │   │   ├── BoostStyledComponents.tsx
│   │   │   │   │   ├── BoostSuccess.tsx
│   │   │   │   │   └── BoostSuccessComponent.tsx
│   │   │   │   ├── ContractAddresses.tsx
│   │   │   │   ├── Dashboard/
│   │   │   │   │   ├── Account/
│   │   │   │   │   │   ├── Account.tsx
│   │   │   │   │   │   ├── AccountAddCard.tsx
│   │   │   │   │   │   ├── AccountPayments.tsx
│   │   │   │   │   │   ├── AccountProfile.tsx
│   │   │   │   │   │   ├── AccountStyledComponents.tsx
│   │   │   │   │   │   ├── AccountTextComponents.tsx
│   │   │   │   │   │   ├── AccountTransactions.tsx
│   │   │   │   │   │   ├── AccountUserAvatarUpdate.tsx
│   │   │   │   │   │   └── AccountUserEmailUpdate.tsx
│   │   │   │   │   ├── ActivityListItemRescueTokens.tsx
│   │   │   │   │   ├── ChallengeSummary.tsx
│   │   │   │   │   ├── ChallengesWithRewardsToClaim.tsx
│   │   │   │   │   ├── ChallengesWithTokensToRescue.tsx
│   │   │   │   │   ├── ClaimRewardsItem/
│   │   │   │   │   │   ├── ClaimRewardsItem.tsx
│   │   │   │   │   │   ├── ClaimRewardsItemWrapper.tsx
│   │   │   │   │   │   ├── ClaimRewardsViewComponents.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── Dashboard.tsx
│   │   │   │   │   ├── DashboardActivity.tsx
│   │   │   │   │   ├── DashboardPage.tsx
│   │   │   │   │   ├── DepositTokens.tsx
│   │   │   │   │   ├── ManageNewsroom/
│   │   │   │   │   │   ├── ManageNewsroom.tsx
│   │   │   │   │   │   ├── ManageNewsroomChannelPage.tsx
│   │   │   │   │   │   ├── ManageNewsroomStyledComponents.tsx
│   │   │   │   │   │   ├── ManageNewsroomTextComponents.tsx
│   │   │   │   │   │   └── WithNewsroomChannelAdminList.tsx
│   │   │   │   │   ├── MyChallengeItem/
│   │   │   │   │   │   ├── MyChallengesItem.tsx
│   │   │   │   │   │   ├── MyChallengesItemComponent.tsx
│   │   │   │   │   │   ├── MyChallengesItemTypes.ts
│   │   │   │   │   │   ├── MyChallengesItemWrapper.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── MyChallenges.tsx
│   │   │   │   │   ├── MyTasks.tsx
│   │   │   │   │   ├── MyTasksItem/
│   │   │   │   │   │   ├── MyTasksItem.tsx
│   │   │   │   │   │   ├── MyTasksItemComponent.tsx
│   │   │   │   │   │   ├── MyTasksItemTypes.ts
│   │   │   │   │   │   ├── MyTasksItemWrapper.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── MyTasksItemPhaseCountdown.tsx
│   │   │   │   │   ├── MyTasksList.tsx
│   │   │   │   │   ├── MyTasksProposalItem/
│   │   │   │   │   │   ├── MyTasksProposalItem.tsx
│   │   │   │   │   │   ├── MyTasksProposalItemComponent.tsx
│   │   │   │   │   │   ├── MyTasksProposalItemTypes.ts
│   │   │   │   │   │   ├── MyTasksProposalItemWrapper.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── NewsroomsList.tsx
│   │   │   │   │   ├── NewsroomsListItem.tsx
│   │   │   │   │   ├── NewsroomsListItemComponent.tsx
│   │   │   │   │   ├── PhaseCountdownTimer.tsx
│   │   │   │   │   ├── ProposalChallengeSummary.tsx
│   │   │   │   │   ├── ReclaimTokens.tsx
│   │   │   │   │   ├── RescueTokensItem/
│   │   │   │   │   │   ├── RescueTokensItem.tsx
│   │   │   │   │   │   ├── RescueTokensItemWrapper.tsx
│   │   │   │   │   │   ├── RescueTokensViewComponents.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── TransferCivilTokens.tsx
│   │   │   │   │   ├── UserInfoSummary.tsx
│   │   │   │   │   ├── UserManagement/
│   │   │   │   │   │   ├── UserManagementNotification.tsx
│   │   │   │   │   │   ├── UserManagementPageLayout.tsx
│   │   │   │   │   │   ├── UserManagementSection.tsx
│   │   │   │   │   │   ├── UserManagementStyledComponents.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── UserProfileSummary.tsx
│   │   │   │   │   ├── WinningChallengeResults.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── GetStarted.tsx
│   │   │   │   ├── GlobalNav.tsx
│   │   │   │   ├── Main.tsx
│   │   │   │   ├── Parameterizer/
│   │   │   │   │   ├── ChallengeProposal.tsx
│   │   │   │   │   ├── ChallengeProposalCommitVote.tsx
│   │   │   │   │   ├── ChallengeProposalDetail.tsx
│   │   │   │   │   ├── ChallengeProposalResolve.tsx
│   │   │   │   │   ├── ChallengeProposalRevealVote.tsx
│   │   │   │   │   ├── CreateGovtProposal.tsx
│   │   │   │   │   ├── CreateProposal.tsx
│   │   │   │   │   ├── GovernmentReparameterization.tsx
│   │   │   │   │   ├── Parameter.tsx
│   │   │   │   │   ├── ProcessProposal.tsx
│   │   │   │   │   ├── Proposal.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── proposeReparameterization.tsx
│   │   │   │   ├── SignUpNewsroom.tsx
│   │   │   │   ├── StoryFeed/
│   │   │   │   │   ├── CivilComment.tsx
│   │   │   │   │   ├── MoreComments.tsx
│   │   │   │   │   ├── PostComments.tsx
│   │   │   │   │   ├── Story.tsx
│   │   │   │   │   ├── StoryBoost.tsx
│   │   │   │   │   ├── StoryDetails.tsx
│   │   │   │   │   ├── StoryFeed.tsx
│   │   │   │   │   ├── StoryFeedItem.tsx
│   │   │   │   │   ├── StoryFeedMarquee.tsx
│   │   │   │   │   ├── StoryFeedPage.tsx
│   │   │   │   │   ├── StoryFeedStyledComponents.tsx
│   │   │   │   │   ├── StoryFeedTextComponents.tsx
│   │   │   │   │   ├── StoryModal.tsx
│   │   │   │   │   ├── StoryNewsroomDetails.tsx
│   │   │   │   │   ├── StoryRegistryDetails.tsx
│   │   │   │   │   ├── queries.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── Sunset/
│   │   │   │   │   └── Sunset.tsx
│   │   │   │   ├── Tokens/
│   │   │   │   │   ├── StorefrontPage.tsx
│   │   │   │   │   ├── Tokens.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Web3AuthWrapper.tsx
│   │   │   │   ├── WrongNetwork.tsx
│   │   │   │   ├── council/
│   │   │   │   │   ├── Government.tsx
│   │   │   │   │   └── SetAppellate.tsx
│   │   │   │   ├── errors/
│   │   │   │   │   └── ErrorBoundry.tsx
│   │   │   │   ├── footer/
│   │   │   │   │   └── Footer.tsx
│   │   │   │   ├── header/
│   │   │   │   │   ├── NavBar.tsx
│   │   │   │   │   ├── NavBarTypes.ts
│   │   │   │   │   ├── NavDrawer.tsx
│   │   │   │   │   ├── NavDropDown.tsx
│   │   │   │   │   ├── NavErrorBar.tsx
│   │   │   │   │   ├── NavLink.tsx
│   │   │   │   │   ├── NavMenu.tsx
│   │   │   │   │   ├── NavMenuResponsiveToggleButton.tsx
│   │   │   │   │   ├── UserAccount.tsx
│   │   │   │   │   ├── UserAccountContainer.tsx
│   │   │   │   │   ├── UserNotificationBar.tsx
│   │   │   │   │   ├── styledComponents.tsx
│   │   │   │   │   └── textComponents.tsx
│   │   │   │   ├── listing/
│   │   │   │   │   ├── AppealAwaitingDecision.tsx
│   │   │   │   │   ├── AppealChallengeCommitVote.tsx
│   │   │   │   │   ├── AppealChallengeDetail.tsx
│   │   │   │   │   ├── AppealChallengeResolve.tsx
│   │   │   │   │   ├── AppealChallengeRevealVote.tsx
│   │   │   │   │   ├── AppealDetail.tsx
│   │   │   │   │   ├── AppealResolve.tsx
│   │   │   │   │   ├── AppealSubmitChallenge.tsx
│   │   │   │   │   ├── ApplicationUpdateStatus.tsx
│   │   │   │   │   ├── Challenge.tsx
│   │   │   │   │   ├── ChallengeCommitVote.tsx
│   │   │   │   │   ├── ChallengeDetail.tsx
│   │   │   │   │   ├── ChallengeResolve.tsx
│   │   │   │   │   ├── ChallengeRevealVote.tsx
│   │   │   │   │   ├── ChallengeRewardsDetail.tsx
│   │   │   │   │   ├── ChallengesWithTokensToRescue.tsx
│   │   │   │   │   ├── EmailSignup.tsx
│   │   │   │   │   ├── Listing.tsx
│   │   │   │   │   ├── ListingChallengeStatement.tsx
│   │   │   │   │   ├── ListingCharter.tsx
│   │   │   │   │   ├── ListingCharterRosterMember.tsx
│   │   │   │   │   ├── ListingDiscourse.tsx
│   │   │   │   │   ├── ListingEvent.tsx
│   │   │   │   │   ├── ListingHeader.tsx
│   │   │   │   │   ├── ListingHistory.tsx
│   │   │   │   │   ├── ListingOwnerActions.tsx
│   │   │   │   │   ├── ListingPhaseActions.tsx
│   │   │   │   │   ├── ListingRedux.tsx
│   │   │   │   │   ├── RequestAppeal.tsx
│   │   │   │   │   ├── RevealVoteDetail.tsx
│   │   │   │   │   ├── SubmitAppealChallenge.tsx
│   │   │   │   │   ├── SubmitChallenge/
│   │   │   │   │   │   ├── InsufficientBalanceSnackBar.tsx
│   │   │   │   │   │   ├── SubmitChallenge.tsx
│   │   │   │   │   │   ├── SubmitChallengeGraphQLApolloContainer.tsx
│   │   │   │   │   │   ├── SubmitChallengeTypes.ts
│   │   │   │   │   │   ├── SubmitChallengeViewComponent.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── WhitelistedDetail.tsx
│   │   │   │   │   └── styledComponents.tsx
│   │   │   │   ├── listinglist/
│   │   │   │   │   ├── EmptyRegistryTabContent.tsx
│   │   │   │   │   ├── ListItemStyle.tsx
│   │   │   │   │   ├── ListingList.tsx
│   │   │   │   │   ├── ListingListItem.tsx
│   │   │   │   │   ├── Listings.tsx
│   │   │   │   │   ├── ListingsInProgress.tsx
│   │   │   │   │   ├── ListingsInProgressContainer.tsx
│   │   │   │   │   ├── RejectedListingListContainer.tsx
│   │   │   │   │   ├── TabDescriptions.tsx
│   │   │   │   │   ├── WhitelistedListingItem.tsx
│   │   │   │   │   └── WhitelistedListingListContainer.tsx
│   │   │   │   ├── newsroom/
│   │   │   │   │   ├── NewsroomDetail.tsx
│   │   │   │   │   ├── NewsroomManagement.tsx
│   │   │   │   │   └── NewsroomManagementV2.tsx
│   │   │   │   ├── providers/
│   │   │   │   │   ├── AnalyticsProvider.tsx
│   │   │   │   │   └── AppProvider.tsx
│   │   │   │   └── utility/
│   │   │   │       ├── AsyncComponent.tsx
│   │   │   │       ├── CompleteChallengeResultsHOC.tsx
│   │   │   │       ├── CountdownTimer.tsx
│   │   │   │       ├── ErrorLoadingData.tsx
│   │   │   │       ├── ErrorNotFound.tsx
│   │   │   │       ├── FormElements.tsx
│   │   │   │       ├── HigherOrderComponents.tsx
│   │   │   │       ├── ScrollToTop.tsx
│   │   │   │       ├── TransactionStatusModalsHOC.tsx
│   │   │   │       ├── ViewModules.tsx
│   │   │   │       ├── WinningChallengeResultsHOC.tsx
│   │   │   │       └── styledComponents.tsx
│   │   │   ├── constants.ts
│   │   │   ├── embeds/
│   │   │   │   ├── BoostLoader.tsx
│   │   │   │   ├── EmbedsApp.tsx
│   │   │   │   └── StoryBoostLoader.tsx
│   │   │   ├── globals.d.ts
│   │   │   ├── helpers/
│   │   │   │   ├── config.ts
│   │   │   │   ├── contractAddresses.ts
│   │   │   │   ├── government.ts
│   │   │   │   ├── links.ts
│   │   │   │   ├── listingEvents.ts
│   │   │   │   ├── networkHelpers.ts
│   │   │   │   ├── queryTransformations.ts
│   │   │   │   ├── salt.ts
│   │   │   │   ├── tokenController.ts
│   │   │   │   ├── tokenEvents.ts
│   │   │   │   ├── transforms.ts
│   │   │   │   └── vote.ts
│   │   │   ├── index.tsx
│   │   │   ├── react-app-env.d.ts
│   │   │   ├── redux/
│   │   │   │   ├── actionCreators/
│   │   │   │   │   ├── analytics.ts
│   │   │   │   │   ├── challenges.ts
│   │   │   │   │   ├── contractAddresses.ts
│   │   │   │   │   ├── errors.ts
│   │   │   │   │   ├── government.ts
│   │   │   │   │   ├── network.ts
│   │   │   │   │   ├── newsrooms.ts
│   │   │   │   │   ├── ui.ts
│   │   │   │   │   └── userAccount.ts
│   │   │   │   ├── analytics.ts
│   │   │   │   ├── reducers/
│   │   │   │   │   ├── challenges.ts
│   │   │   │   │   ├── contractAddresses.ts
│   │   │   │   │   ├── government.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── network.ts
│   │   │   │   │   ├── newsrooms.ts
│   │   │   │   │   ├── ui.ts
│   │   │   │   │   └── userAccount.ts
│   │   │   │   └── store.ts
│   │   │   ├── registerServiceWorker.ts
│   │   │   ├── registry/
│   │   │   │   ├── LazyRegistryApp.tsx
│   │   │   │   ├── RegistryApp.tsx
│   │   │   │   └── RegistryShell.tsx
│   │   │   ├── selectors/
│   │   │   │   └── index.ts
│   │   │   ├── stories/
│   │   │   │   └── StoriesApp.tsx
│   │   │   └── typings.d.ts
│   │   ├── tsconfig.json
│   │   ├── tsconfig.prod.json
│   │   ├── tsconfig.test.json
│   │   └── tslint.json
│   ├── dev-utils/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── generate-from-files/
│   │   │   │   ├── bin.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── utils.ts
│   │   │   └── strip-artifacts.ts
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── modules.d.ts
│   │   │   └── test/
│   │   │       ├── bignumber-chai.ts
│   │   │       ├── index.ts
│   │   │       └── test.d.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── elements/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── .releaserc
│   │   ├── .storybook/
│   │   │   ├── config.ts
│   │   │   ├── preview-head.html
│   │   │   ├── register-context.ts
│   │   │   └── webpack.config.js
│   │   ├── LICENSE
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── foo
│   │   ├── src/
│   │   │   ├── __mocks__/
│   │   │   │   └── fileMock.js
│   │   │   ├── __snapshots__/
│   │   │   │   └── index.stories.storyshot
│   │   │   ├── __test__/
│   │   │   │   ├── setupTests.ts
│   │   │   │   └── storyshot.test.ts
│   │   │   ├── buttons/
│   │   │   │   ├── Button.tsx
│   │   │   │   ├── CTAButton.tsx
│   │   │   │   ├── CloseXButton.tsx
│   │   │   │   ├── PaymentButton.tsx
│   │   │   │   ├── ShareButton.tsx
│   │   │   │   └── index.ts
│   │   │   ├── colors/
│   │   │   │   └── index.ts
│   │   │   ├── containers/
│   │   │   │   ├── Hero.tsx
│   │   │   │   ├── Panel.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── mediaQueries.ts
│   │   │   ├── icons/
│   │   │   │   ├── ApplicationInProgressIcon.tsx
│   │   │   │   ├── ApprovedNewsroomsIcon.tsx
│   │   │   │   ├── ArticleIndexIcon.tsx
│   │   │   │   ├── ArticleIndexPanelIcon.tsx
│   │   │   │   ├── ArticleSignIcon.tsx
│   │   │   │   ├── ArticleSignPanelIcon.tsx
│   │   │   │   ├── AvatarGenericIcon.tsx
│   │   │   │   ├── BellIcon.tsx
│   │   │   │   ├── BookreaderIcon.tsx
│   │   │   │   ├── BrainIcon.tsx
│   │   │   │   ├── CCAmexIcon.tsx
│   │   │   │   ├── CCDiscoverIcon.tsx
│   │   │   │   ├── CCMastercardIcon.tsx
│   │   │   │   ├── CCSecurityCodeIcon.tsx
│   │   │   │   ├── CCVisaIcon.tsx
│   │   │   │   ├── ChallengeMarkIcon.tsx
│   │   │   │   ├── Chevron.tsx
│   │   │   │   ├── CircleLockIcon.tsx
│   │   │   │   ├── CivilIcon.tsx
│   │   │   │   ├── CivilTutorialIcon.tsx
│   │   │   │   ├── ClipLoader.tsx
│   │   │   │   ├── ClockIcon.tsx
│   │   │   │   ├── CloseXIcon.tsx
│   │   │   │   ├── CommitVoteSuccessIcon.tsx
│   │   │   │   ├── CvlToken.tsx
│   │   │   │   ├── DashboardNewsroomApplicationIcon.tsx
│   │   │   │   ├── DisclosureArrowIcon.tsx
│   │   │   │   ├── DropdownArrow.tsx
│   │   │   │   ├── EmbedIcon.tsx
│   │   │   │   ├── ErrorIcon.tsx
│   │   │   │   ├── ExamIcon.tsx
│   │   │   │   ├── ExchangeArrowsIcon.tsx
│   │   │   │   ├── ExpandDownArrow.tsx
│   │   │   │   ├── FacebookIcon.tsx
│   │   │   │   ├── GrantSubmitIcon.tsx
│   │   │   │   ├── GreenCheckMark.tsx
│   │   │   │   ├── HamburgerIcon.tsx
│   │   │   │   ├── HollowGrayNotGranted.tsx
│   │   │   │   ├── HollowGreenCheck.tsx
│   │   │   │   ├── HollowRedNoGood.tsx
│   │   │   │   ├── Info.tsx
│   │   │   │   ├── InstagramIcon.tsx
│   │   │   │   ├── LinkIcon.tsx
│   │   │   │   ├── LinkedInIcon.tsx
│   │   │   │   ├── LockOpenIcon.tsx
│   │   │   │   ├── MediumIcon.tsx
│   │   │   │   ├── MetaMaskIcons.tsx
│   │   │   │   ├── NetworkIcon.tsx
│   │   │   │   ├── NorthEastArrow.tsx
│   │   │   │   ├── OctopusErrorIcon.tsx
│   │   │   │   ├── OpenInNewIcon.tsx
│   │   │   │   ├── PhotoDragIcon.tsx
│   │   │   │   ├── RegistryEmptyIcon.tsx
│   │   │   │   ├── RejectedNewsroomsIcon.tsx
│   │   │   │   ├── RequestAppealSuccessIcon.tsx
│   │   │   │   ├── RevealVoteSuccessIcon.tsx
│   │   │   │   ├── ReviewIcon.tsx
│   │   │   │   ├── SecureLockIcon.tsx
│   │   │   │   ├── ShareEmailIcon.tsx
│   │   │   │   ├── ShareIcon.tsx
│   │   │   │   ├── ShareTwitterIcon.tsx
│   │   │   │   ├── SubmitChallengeSuccessIcon.tsx
│   │   │   │   ├── TelegramIcon.tsx
│   │   │   │   ├── TipIcon.tsx
│   │   │   │   ├── TokenWalletIcon.tsx
│   │   │   │   ├── TrendsIcon.tsx
│   │   │   │   ├── TrustMarkIcon.tsx
│   │   │   │   ├── TwitterIcon.tsx
│   │   │   │   ├── VerifyIdentityIcon.tsx
│   │   │   │   ├── WaitForApply.tsx
│   │   │   │   ├── WarningIcon.tsx
│   │   │   │   ├── ZoomInIcon.tsx
│   │   │   │   ├── ZoomOutIcon.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── icon.stories.storyshot
│   │   │   │   ├── icon.stories.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── logos/
│   │   │   │       ├── Burner.tsx
│   │   │   │       ├── CivilLogo.tsx
│   │   │   │       ├── Incognito.tsx
│   │   │   │       ├── Metamask.tsx
│   │   │   │       ├── OvalImage.ts
│   │   │   │       ├── Paypal.tsx
│   │   │   │       ├── Portis.tsx
│   │   │   │       └── index.ts
│   │   │   ├── images/
│   │   │   │   └── __snapshots__/
│   │   │   │       └── icon.stories.storyshot
│   │   │   ├── index.stories.tsx
│   │   │   ├── index.ts
│   │   │   ├── inputs/
│   │   │   │   ├── Input.tsx
│   │   │   │   ├── RadioInput.tsx
│   │   │   │   └── index.ts
│   │   │   ├── layouts/
│   │   │   │   └── index.ts
│   │   │   ├── module.d.ts
│   │   │   ├── share/
│   │   │   │   ├── SharePanel.tsx
│   │   │   │   ├── ShareStory.tsx
│   │   │   │   └── index.ts
│   │   │   └── text/
│   │   │       ├── fonts.ts
│   │   │       ├── headings.tsx
│   │   │       └── index.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── ethapi/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── abidecoder.ts
│   │   │   ├── ethapi.ts
│   │   │   ├── globals.d.ts
│   │   │   ├── helpers.ts
│   │   │   ├── index.ts
│   │   │   └── infura.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── kirby/
│   │   ├── .gitignore
│   │   ├── .releaserc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── KirbyApp.tsx
│   │   │   ├── common/
│   │   │   │   ├── colors.ts
│   │   │   │   ├── containers/
│   │   │   │   │   └── layouts.tsx
│   │   │   │   ├── input/
│   │   │   │   │   └── WalletOptions.tsx
│   │   │   │   └── text/
│   │   │   │       └── index.tsx
│   │   │   ├── index.tsx
│   │   │   ├── plugins/
│   │   │   │   ├── CivilID.ts
│   │   │   │   └── common.ts
│   │   │   ├── viewport/
│   │   │   │   └── Viewport.tsx
│   │   │   └── views/
│   │   │       ├── SignatureConfirm.tsx
│   │   │       ├── Web3Enable.tsx
│   │   │       └── identity/
│   │   │           ├── Login.tsx
│   │   │           └── Signup.tsx
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── newsroom-manager/
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── ApplyToTCR.tsx
│   │   │   ├── ApplyToTCRPlaceholder.tsx
│   │   │   ├── CivilContext.tsx
│   │   │   ├── CompleteYourProfile.tsx
│   │   │   ├── CreateCharterPartOne.tsx
│   │   │   ├── CreateCharterPartTwo.tsx
│   │   │   ├── NameAndAddress.tsx
│   │   │   ├── Newsroom.tsx
│   │   │   ├── NewsroomUser.tsx
│   │   │   ├── RosterMember.tsx
│   │   │   ├── SignConstitution.tsx
│   │   │   ├── TransactionButtonInner.tsx
│   │   │   ├── Welcome.tsx
│   │   │   ├── actionCreators.ts
│   │   │   ├── contentViewer/
│   │   │   │   ├── ContentItem.tsx
│   │   │   │   ├── ContentViewer.tsx
│   │   │   │   ├── Revision.tsx
│   │   │   │   ├── actions.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── reducers.ts
│   │   │   ├── index.ts
│   │   │   ├── reducers.ts
│   │   │   ├── styledComponents.tsx
│   │   │   ├── types.ts
│   │   │   └── utils.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── newsroom-signup/
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── ApplyToTCR/
│   │   │   │   ├── AboutApplicationButton.tsx
│   │   │   │   ├── ApplyToTCR.tsx
│   │   │   │   ├── ApplyToTCRForm.tsx
│   │   │   │   ├── ApplyToTCRSuccess.tsx
│   │   │   │   ├── ApplyToTCRWhitelisted.tsx
│   │   │   │   ├── TransferToMultisig.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── ApplyToTCRPlaceholder.tsx
│   │   │   ├── AuthWrapper.tsx
│   │   │   ├── DataWrapper.tsx
│   │   │   ├── InfoModalButton.tsx
│   │   │   ├── Newsroom.tsx
│   │   │   ├── NewsroomManager/
│   │   │   │   ├── ManageContractMembers.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── NewsroomProfile/
│   │   │   │   ├── AddRosterMembers.tsx
│   │   │   │   ├── ApplicationSoFarPage.tsx
│   │   │   │   ├── CharterQuestions.tsx
│   │   │   │   ├── GrantApplication.tsx
│   │   │   │   ├── LearnMoreButton.tsx
│   │   │   │   ├── NewsroomBio.tsx
│   │   │   │   ├── RosterMember.tsx
│   │   │   │   ├── RosterMemberListItem.tsx
│   │   │   │   ├── SignConstitution.tsx
│   │   │   │   ├── WaitingAfterSkip.tsx
│   │   │   │   ├── WaitingForGrant.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── NewsroomUser.tsx
│   │   │   ├── PurchaseTokens/
│   │   │   │   └── index.tsx
│   │   │   ├── RepublishCharterNotice.tsx
│   │   │   ├── SmartContract/
│   │   │   │   ├── AboutSmartContractsButton.tsx
│   │   │   │   ├── AddMember.tsx
│   │   │   │   ├── AddMembersToContract.tsx
│   │   │   │   ├── CreateNewsroomContract.tsx
│   │   │   │   ├── LetsGetStartedPage.tsx
│   │   │   │   ├── UnderstandingEth.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── TransactionButtonInner.tsx
│   │   │   ├── TransactionStatusModalsHOC.tsx
│   │   │   ├── Welcome.tsx
│   │   │   ├── actionCreators.ts
│   │   │   ├── analytics.ts
│   │   │   ├── constants.ts
│   │   │   ├── index.ts
│   │   │   ├── mutations.ts
│   │   │   ├── queries.ts
│   │   │   ├── reducers.ts
│   │   │   ├── styledComponents.tsx
│   │   │   ├── types.ts
│   │   │   └── utils.ts
│   │   ├── tsconfig.json
│   │   ├── tslint.json
│   │   └── types.d.ts
│   ├── sdk/
│   │   ├── .dockerignore
│   │   ├── .prettierignore
│   │   ├── .prettierrc.yaml
│   │   ├── .releaserc
│   │   ├── .storybook/
│   │   │   ├── config.tsx
│   │   │   └── webpack.config.js
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── build.js
│   │   ├── certs.js
│   │   ├── config/
│   │   │   ├── env.js
│   │   │   ├── jest/
│   │   │   │   ├── cssTransform.js
│   │   │   │   └── fileTransform.js
│   │   │   ├── paths.js
│   │   │   ├── webpack.config.js
│   │   │   └── webpackDevServer.config.js
│   │   ├── docs/
│   │   │   ├── Makefile
│   │   │   ├── README.md
│   │   │   ├── make.bat
│   │   │   └── source/
│   │   │       ├── civil_sdk_package.rst
│   │   │       ├── conf.py
│   │   │       ├── index.rst
│   │   │       ├── install/
│   │   │       │   └── getting_started.rst
│   │   │       ├── lockbox/
│   │   │       │   ├── index.rst
│   │   │       │   └── intro.rst
│   │   │       ├── registry/
│   │   │       │   ├── index.rst
│   │   │       │   └── intro.rst
│   │   │       └── requirements.txt
│   │   ├── index.html
│   │   ├── index.js
│   │   ├── manifest.json
│   │   ├── nginx.conf
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── boost-embed.html
│   │   │   ├── index.html
│   │   │   └── manifest.json
│   │   ├── scripts/
│   │   │   ├── build.js
│   │   │   ├── start.js
│   │   │   └── test.js
│   │   ├── server.js
│   │   ├── site-maker.sh
│   │   ├── src/
│   │   │   ├── constants.ts
│   │   │   ├── examples/
│   │   │   │   └── registry.stories.tsx
│   │   │   ├── iframe/
│   │   │   │   ├── index.tsx
│   │   │   │   └── services/
│   │   │   │       ├── MessageHandler.test.ts
│   │   │   │       ├── MessageHandler.ts
│   │   │   │       ├── MessageHandlerTypes.ts
│   │   │   │       ├── civil-node/
│   │   │   │       │   ├── CivilPersistence.test.ts
│   │   │   │       │   ├── CivilPersistence.ts
│   │   │   │       │   ├── LockboxService.ts
│   │   │   │       │   └── Persistence.ts
│   │   │   │       ├── communication/
│   │   │   │       │   ├── CivilWebsocket.ts
│   │   │   │       │   ├── PrivateChannel.test.ts
│   │   │   │       │   ├── PrivateChannel.ts
│   │   │   │       │   ├── RealtimeCommunication.ts
│   │   │   │       │   ├── ReceiveTypes.ts
│   │   │   │       │   ├── SecureTypes.ts
│   │   │   │       │   └── SendTypes.ts
│   │   │   │       ├── crypto/
│   │   │   │       │   ├── crypto.test.ts
│   │   │   │       │   └── crypto.ts
│   │   │   │       ├── keys/
│   │   │   │       │   ├── Key.ts
│   │   │   │       │   ├── KeyManager.test.ts
│   │   │   │       │   ├── KeyManager.ts
│   │   │   │       │   ├── KeyUtils.ts
│   │   │   │       │   └── PersistentKey.ts
│   │   │   │       └── messageTypes.ts
│   │   │   ├── index.ts
│   │   │   ├── react/
│   │   │   │   ├── CivilProvider.tsx
│   │   │   │   ├── NewsroomWithdraw.tsx
│   │   │   │   ├── StoryBoost/
│   │   │   │   │   ├── StoryBoost.tsx
│   │   │   │   │   ├── embed.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── queries.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── boosts/
│   │   │   │   │   ├── Boost.stories.tsx
│   │   │   │   │   ├── Boost.tsx
│   │   │   │   │   ├── BoostCard.tsx
│   │   │   │   │   ├── BoostCardListView.tsx
│   │   │   │   │   ├── BoostCompleted.tsx
│   │   │   │   │   ├── BoostEmbedIframe.tsx
│   │   │   │   │   ├── BoostEmbedNoScroll.tsx
│   │   │   │   │   ├── BoostForm.tsx
│   │   │   │   │   ├── BoostImg.tsx
│   │   │   │   │   ├── BoostModal.tsx
│   │   │   │   │   ├── BoostNewsroom.tsx
│   │   │   │   │   ├── BoostPayments.tsx
│   │   │   │   │   ├── BoostPermissionsHOC.tsx
│   │   │   │   │   ├── BoostProceeds.tsx
│   │   │   │   │   ├── BoostProgress.tsx
│   │   │   │   │   ├── BoostShare.tsx
│   │   │   │   │   ├── BoostShareEmbed.tsx
│   │   │   │   │   ├── BoostStyledComponents.tsx
│   │   │   │   │   ├── BoostTextComponents.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── queries.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── urlConstants.ts
│   │   │   ├── react-app-env.d.ts
│   │   │   ├── sdk/
│   │   │   │   ├── SDKMessage.ts
│   │   │   │   ├── dmz/
│   │   │   │   │   └── DMZ.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── lockbox/
│   │   │   │   │   ├── Lockbox.ts
│   │   │   │   │   └── LockboxMessage.ts
│   │   │   │   ├── registry/
│   │   │   │   │   ├── Registry.ts
│   │   │   │   │   └── RegistryMessage.ts
│   │   │   │   └── telemetry/
│   │   │   │       └── Telemetry.ts
│   │   │   ├── serviceWorker.ts
│   │   │   ├── setupTests.ts
│   │   │   ├── test-utils/
│   │   │   │   ├── MockWebsocketServer.ts
│   │   │   │   └── helpers.ts
│   │   │   └── types.d.ts
│   │   ├── start.js
│   │   ├── start.sh
│   │   ├── test.js
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── tslint-rules/
│   │   ├── .releaserc
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   └── tslint.yaml
│   ├── typescript-types/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── tslint.json
│   ├── typescript-typings/
│   │   ├── .releaserc
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── package.json
│   │   └── types/
│   │       ├── @ledgerhq/
│   │       │   ├── LICENSE
│   │       │   └── index.d.ts
│   │       ├── ethereumjs-abi/
│   │       │   └── index.d.ts
│   │       ├── ethereumjs-util/
│   │       │   ├── LICENSE
│   │       │   └── index.d.ts
│   │       ├── ethjs-util/
│   │       │   └── index.d.ts
│   │       ├── is-hex-prefixed/
│   │       │   └── index.d.ts
│   │       ├── strip-hex-prefix/
│   │       │   └── index.d.ts
│   │       ├── to-snake-case/
│   │       │   └── index.d.ts
│   │       └── web3-provider-engine/
│   │           ├── LICENSE
│   │           └── index.d.ts
│   └── utils/
│       ├── LICENSE
│       ├── README.md
│       ├── package.json
│       ├── src/
│       │   ├── airswap.ts
│       │   ├── apolloClient.ts
│       │   ├── bip39.english.ts
│       │   ├── browser.ts
│       │   ├── civilConstants.ts
│       │   ├── civilHelpers.ts
│       │   ├── contracts.ts
│       │   ├── coreHelpers/
│       │   │   ├── appealChallengeHelpers.ts
│       │   │   ├── appealHelpers.ts
│       │   │   ├── challengeHelpers.ts
│       │   │   ├── index.ts
│       │   │   ├── listingHelpers.ts
│       │   │   ├── paramPropChallengeHelpers.ts
│       │   │   ├── pollHelpers.ts
│       │   │   └── userChallengeDataHelpers.ts
│       │   ├── crypto.ts
│       │   ├── email.ts
│       │   ├── errors.ts
│       │   ├── etherscan.ts
│       │   ├── gql/
│       │   │   ├── queries.ts
│       │   │   └── transforms.ts
│       │   ├── handle.ts
│       │   ├── index.ts
│       │   ├── language.ts
│       │   ├── localStorage.ts
│       │   ├── rxjs.ts
│       │   ├── salt.ts
│       │   ├── stripe.ts
│       │   ├── time.ts
│       │   ├── types.d.ts
│       │   ├── urlConstants.ts
│       │   └── viewHelpers.tsx
│       ├── test/
│       │   ├── language.ts
│       │   └── salt.ts
│       ├── tsconfig.json
│       └── tslint.json
└── tsconfig.json
Download .txt
Showing preview only (332K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3346 symbols across 742 files)

FILE: packages/components/.storybook/config.ts
  function loadStories (line 7) | function loadStories() {

FILE: packages/components/src/Account/Auth/AuthStyledComponents.tsx
  type AuthFooterTermsProps (line 134) | interface AuthFooterTermsProps {
  type AuthEmailVerifyProps (line 148) | interface AuthEmailVerifyProps {
  type ConfirmEmailVerifyProps (line 185) | interface ConfirmEmailVerifyProps {

FILE: packages/components/src/Account/Auth/ConfirmEmailToken.tsx
  type ConfirmEmailTokenProps (line 15) | interface ConfirmEmailTokenProps {
  type ConfirmEmailTokenState (line 23) | interface ConfirmEmailTokenState {
  class ConfirmEmailTokenWithApolloClient (line 28) | class ConfirmEmailTokenWithApolloClient extends React.Component<ConfirmE...
    method constructor (line 34) | constructor(props: ConfirmEmailTokenProps) {
    method componentDidMount (line 38) | public async componentDidMount(): Promise<void> {
    method render (line 68) | public render(): JSX.Element {
  class ConfirmEmailToken (line 82) | class ConfirmEmailToken extends React.Component<ConfirmEmailTokenProps> {
    method render (line 83) | public render(): JSX.Element {

FILE: packages/components/src/Account/Auth/EmailAuth.tsx
  type AuthMutationVariables (line 18) | interface AuthMutationVariables {
  type AuthSignupEmailSendResult (line 40) | interface AuthSignupEmailSendResult {
  type AccountEmailAuthProps (line 46) | interface AccountEmailAuthProps {
  type AuthEmailError (line 55) | type AuthEmailError = "unknown" | "emailexists" | "emailnotfound" | unde...
  type AccountEmailAuthState (line 57) | interface AccountEmailAuthState {
  class AccountEmailAuth (line 65) | class AccountEmailAuth extends React.Component<AccountEmailAuthProps, Ac...
    method constructor (line 66) | constructor(props: AccountEmailAuthProps) {
    method renderEmailInput (line 77) | public renderEmailInput(): JSX.Element {
    method renderCheckboxes (line 97) | public renderCheckboxes(): JSX.Element {
    method renderAuthError (line 128) | public renderAuthError(): JSX.Element {
    method render (line 159) | public render(): JSX.Element {
    method handleSubmit (line 205) | private async handleSubmit(event: React.FormEvent, mutation: MutationF...

FILE: packages/components/src/Account/Auth/EmailSent.tsx
  type AccountEmailSentProps (line 6) | interface AccountEmailSentProps extends Partial<RouteComponentProps> {
  class AccountEmailSent (line 12) | class AccountEmailSent extends React.Component<AccountEmailSentProps> {
    method render (line 13) | public render(): JSX.Element {

FILE: packages/components/src/Account/Auth/EthAuth.tsx
  type AccountEthAuthProps (line 17) | interface AccountEthAuthProps {
  type AccountEthAuthState (line 24) | interface AccountEthAuthState {
  class AccountEthAuth (line 43) | class AccountEthAuth extends React.Component<AccountEthAuthProps, Accoun...
    method constructor (line 49) | constructor(props: AccountEthAuthProps) {
    method render (line 54) | public render(): JSX.Element {
    method componentDidMount (line 76) | public componentDidMount(): void {
    method componentWillUnmount (line 79) | public componentWillUnmount(): void {
    method renderTransactionUI (line 83) | private renderTransactionUI(): JSX.Element {
    method renderWaitingSignModal (line 121) | private renderWaitingSignModal(): JSX.Element | null {
    method renderSignRejectionModal (line 132) | private renderSignRejectionModal(userSetEthAddress: MutationFunc): JSX...
    method renderSaveErrorModal (line 150) | private renderSaveErrorModal(): JSX.Element | null {

FILE: packages/components/src/Account/Auth/UserSetAvatar.tsx
  type UserSetAvatarProps (line 101) | interface UserSetAvatarProps {
  type UserSetAvatarState (line 109) | interface UserSetAvatarState {
  type PreviewImageState (line 119) | interface PreviewImageState {
  class UserSetAvatar (line 128) | class UserSetAvatar extends React.Component<UserSetAvatarProps, UserSetA...
    method constructor (line 131) | constructor(props: UserSetAvatarProps) {
    method render (line 144) | public render(): JSX.Element {
    method onSkipForNowClicked (line 213) | private async onSkipForNowClicked(client: ApolloClient<any>): Promise<...
    method onCancelClicked (line 227) | private onCancelClicked(): void {
    method renderAvatarSelector (line 233) | private renderAvatarSelector(): JSX.Element {
    method handleSubmit (line 288) | private async handleSubmit(event: React.FormEvent, mutation: MutationF...

FILE: packages/components/src/Account/Auth/UserSetEmail.tsx
  type UserSetEmailProps (line 69) | interface UserSetEmailProps {
  type UserSetEmailError (line 76) | type UserSetEmailError = "unknown" | "emailexists" | "emailnotfound" | u...
  type UserSetEmailState (line 78) | interface UserSetEmailState {
  class UserSetEmail (line 86) | class UserSetEmail extends React.Component<UserSetEmailProps, UserSetEma...
    method constructor (line 87) | constructor(props: UserSetEmailProps) {
    method renderEmailInput (line 98) | public renderEmailInput(): JSX.Element {
    method renderAuthError (line 118) | public renderAuthError(): JSX.Element {
    method render (line 132) | public render(): JSX.Element {
    method renderCheckboxes (line 186) | public renderCheckboxes(): JSX.Element {
    method onSkipForNowClicked (line 213) | private async onSkipForNowClicked(client: ApolloClient<any>): Promise<...
    method onCancelClicked (line 229) | private onCancelClicked(): void {
    method handleSubmit (line 238) | private async handleSubmit(event: React.FormEvent, mutation: MutationF...

FILE: packages/components/src/Account/Auth/UserSetHandle.tsx
  type UserSetHandleAuthProps (line 25) | interface UserSetHandleAuthProps {
  constant ERROR_MESSAGE_INVALID_HANDLE (line 31) | const ERROR_MESSAGE_INVALID_HANDLE =
  constant ERROR_MESSAGE_NOT_UNIQUE (line 33) | const ERROR_MESSAGE_NOT_UNIQUE = "That username is already in use. Pleas...
  type UserSetHandleAuthState (line 35) | interface UserSetHandleAuthState {
  class UserSetHandle (line 42) | class UserSetHandle extends React.Component<UserSetHandleAuthProps, User...
    method constructor (line 43) | constructor(props: UserSetHandleAuthProps) {
    method renderHandleInput (line 54) | public renderHandleInput(): JSX.Element {
    method render (line 92) | public render(): JSX.Element {
    method handleSubmit (line 128) | private async handleSubmit(event: React.FormEvent, mutation: MutationF...

FILE: packages/components/src/Account/Auth/VerifyToken.tsx
  type AccountVerifyTokenProps (line 27) | interface AccountVerifyTokenProps {
  type VerifyTokenState (line 34) | interface VerifyTokenState {
  class AccountVerifyToken (line 39) | class AccountVerifyToken extends React.Component<AccountVerifyTokenProps...
    method constructor (line 45) | constructor(props: AccountVerifyTokenProps) {
    method componentDidMount (line 49) | public async componentDidMount(): Promise<void> {
    method render (line 84) | public render(): JSX.Element {

FILE: packages/components/src/Account/LoadUser.tsx
  type LoadUserChildrenProps (line 6) | interface LoadUserChildrenProps {
  type LoadUserProps (line 12) | interface LoadUserProps {

FILE: packages/components/src/Account/index.ts
  type AuthApplicationEnum (line 22) | enum AuthApplicationEnum {
  type AuthLoginResponse (line 28) | interface AuthLoginResponse {

FILE: packages/components/src/AddressWithCopyButton.tsx
  type AddressWithCopyButtonProps (line 7) | interface AddressWithCopyButtonProps {
  class AddressWithCopyButton (line 36) | class AddressWithCopyButton extends React.Component<AddressWithCopyButto...
    method render (line 38) | public render(): JSX.Element {

FILE: packages/components/src/AddressWithMetaMaskIcon.tsx
  type AddressWithMetaMaskIconProps (line 6) | interface AddressWithMetaMaskIconProps {
  class AddressWithMetaMaskIcon (line 33) | class AddressWithMetaMaskIcon extends React.Component<AddressWithMetaMas...
    method render (line 34) | public render(): JSX.Element {

FILE: packages/components/src/AuthenticatedRoute.tsx
  type AuthenticatedRouteProps (line 6) | interface AuthenticatedRouteProps extends RouteProps {

FILE: packages/components/src/Card/Card.tsx
  type CardClickableProps (line 5) | interface CardClickableProps {

FILE: packages/components/src/ChallengeResultsChart/constants.ts
  type CHALLENGE_RESULTS_VOTE_TYPES (line 5) | enum CHALLENGE_RESULTS_VOTE_TYPES {

FILE: packages/components/src/ChallengeResultsChart/types.ts
  type ChallengeResultsProps (line 3) | interface ChallengeResultsProps {
  type BreakdownBarPercentageProps (line 21) | interface BreakdownBarPercentageProps {
  type VotesPerTokenVoteProps (line 27) | interface VotesPerTokenVoteProps {
  type VoteTypeSummaryRowProps (line 31) | interface VoteTypeSummaryRowProps {
  type VoteTypeLabelProps (line 37) | interface VoteTypeLabelProps {
  type VoteTypeColorProps (line 41) | interface VoteTypeColorProps {
  type UserVotingSummaryProps (line 45) | interface UserVotingSummaryProps {

FILE: packages/components/src/ChevronAnchor.tsx
  type ChevronAnchorProps (line 7) | interface ChevronAnchorProps extends React.AnchorHTMLAttributes<HTMLAnch...

FILE: packages/components/src/ChevronAnchorLeft.tsx
  type ChevronAnchorLeftProps (line 9) | interface ChevronAnchorLeftProps extends React.AnchorHTMLAttributes<HTML...

FILE: packages/components/src/ClaimRewards.tsx
  type ClaimRewardsProps (line 6) | interface ClaimRewardsProps {
  class ClaimRewards (line 12) | class ClaimRewards extends React.Component<ClaimRewardsProps> {
    method render (line 13) | public render(): JSX.Element {

FILE: packages/components/src/Collapsable.tsx
  type OpenBool (line 5) | interface OpenBool {
  type ArrowProps (line 9) | interface ArrowProps extends OpenBool {
  type CollapsableProps (line 13) | interface CollapsableProps extends OpenBool {
  type CollapseAreaProps (line 21) | interface CollapseAreaProps extends OpenBool {
  class Collapsable (line 48) | class Collapsable extends React.Component<CollapsableProps, CollapseArea...
    method constructor (line 51) | constructor(props: CollapsableProps) {
    method componentDidMount (line 60) | public componentDidMount(): void {
    method componentWillReceiveProps (line 70) | public componentWillReceiveProps(nextProps: CollapsableProps): void {
    method render (line 75) | public render(): JSX.Element {

FILE: packages/components/src/Comments/CommentsCount.tsx
  type CommentsCountProps (line 4) | interface CommentsCountProps {
  class CommentsCount (line 8) | class CommentsCount extends React.Component<CommentsCountProps> {
    method render (line 9) | public render(): JSX.Element {

FILE: packages/components/src/Contributors/ContributorCount.tsx
  type ContributorsCountProps (line 11) | interface ContributorsCountProps {
  class ContributorCount (line 16) | class ContributorCount extends React.Component<ContributorsCountProps> {
    method render (line 17) | public render(): JSX.Element {

FILE: packages/components/src/Contributors/Contributors.tsx
  type ContributorsProps (line 17) | interface ContributorsProps {

FILE: packages/components/src/Contributors/ContributorsDefaultAvatar.tsx
  type ContributorsDefaultAvatarProps (line 5) | interface ContributorsDefaultAvatarProps {
  type ContributorsDefaultAvatarStyledProps (line 11) | interface ContributorsDefaultAvatarStyledProps {

FILE: packages/components/src/Contributors/types.ts
  type ContributorData (line 1) | interface ContributorData {

FILE: packages/components/src/CopyToClipboard/CopyURL.tsx
  type CopyURLProps (line 6) | interface CopyURLProps {
  type CopyURLStates (line 10) | interface CopyURLStates {
  class CopyURL (line 14) | class CopyURL extends React.Component<CopyURLProps, CopyURLStates> {
    method constructor (line 15) | public constructor(props: CopyURLProps) {
    method render (line 22) | public render(): JSX.Element {

FILE: packages/components/src/CurrencyConverter/CurrencyConverted.tsx
  type CurrencyConvertedProps (line 4) | interface CurrencyConvertedProps {
  type CurrencyConvertedStates (line 9) | interface CurrencyConvertedStates {
  class CurrencyConverted (line 13) | class CurrencyConverted extends React.Component<CurrencyConvertedProps, ...
    method constructor (line 14) | constructor(props: any) {
    method render (line 21) | public render(): JSX.Element {

FILE: packages/components/src/CurrencyConverter/CurrencyConverter.tsx
  type CurrencyConverterProps (line 17) | interface CurrencyConverterProps {
  type CurrencyConverterState (line 30) | interface CurrencyConverterState {
  class CurrencyConverter (line 37) | class CurrencyConverter extends React.Component<CurrencyConverterProps, ...
    method constructor (line 42) | constructor(props: any) {
    method componentDidMount (line 54) | public async componentDidMount(): Promise<void> {
    method render (line 74) | public render(): JSX.Element {
    method handleConversion (line 101) | private async handleConversion(fromValueString: string): Promise<void> {

FILE: packages/components/src/CurrencyConverter/CurrencyConverterTextComponents.tsx
  type CurrencyCVLTextProps (line 3) | interface CurrencyCVLTextProps {

FILE: packages/components/src/CurrencyConverter/UsdEthConverter.tsx
  type UsdEthConverterProps (line 12) | interface UsdEthConverterProps {
  function convertToETH (line 46) | async function convertToETH(usdAmount: number, storefrontEthPrice: numbe...

FILE: packages/components/src/CurrencyConverter/UsdEthCvlConverter.tsx
  type CurrencyConverterProps (line 15) | interface CurrencyConverterProps {
  type CurrencyConverterStates (line 22) | interface CurrencyConverterStates {
  class UsdEthCvlConverter (line 27) | class UsdEthCvlConverter extends React.Component<CurrencyConverterProps,...
    method constructor (line 28) | constructor(props: any) {
    method render (line 36) | public render(): JSX.Element {
    method updateConversion (line 56) | private updateConversion(usdValue: number, ethValue: number): void {

FILE: packages/components/src/DAppMessageContent/ErrorLoadingData.tsx
  type ErrorLoadingDataProps (line 7) | interface ErrorLoadingDataProps {

FILE: packages/components/src/DAppMessageContent/ErrorNotFound.tsx
  type ErrorNotFoundProps (line 7) | interface ErrorNotFoundProps {

FILE: packages/components/src/DAppMessageContent/WrongNetwork.tsx
  type WrongNetworkComponentProps (line 7) | interface WrongNetworkComponentProps {

FILE: packages/components/src/DAppMessageContent/types.ts
  type InsufficientCVLProps (line 1) | interface InsufficientCVLProps {
  type BuyCVLButtonProps (line 6) | interface BuyCVLButtonProps {

FILE: packages/components/src/DetailTransactionButton.tsx
  type DetailTransactionButtonProps (line 16) | interface DetailTransactionButtonProps {
  type DetailTransactionButtonState (line 27) | interface DetailTransactionButtonState {
  class DetailTransactionButton (line 89) | class DetailTransactionButton extends React.Component<
    method constructor (line 93) | constructor(props: DetailTransactionButtonProps) {
    method componentWillReceiveProps (line 104) | public async componentWillReceiveProps(nextProps: DetailTransactionBut...
    method divinePrice (line 108) | public async divinePrice(estimateFunctions?: Array<() => Promise<numbe...
    method componentDidMount (line 131) | public async componentDidMount(): Promise<void> {
    method componentWillUnmount (line 136) | public async componentWillUnmount(): Promise<void> {
    method createEthereumSubscription (line 140) | public createEthereumSubscription(civil?: Civil): void {
    method unbscribeEthereum (line 153) | public unbscribeEthereum(): void {
    method render (line 159) | public render(): JSX.Element {
    method isDisabled (line 181) | public isDisabled(): boolean {
    method renderNoMetaMask (line 187) | public renderNoMetaMask(): JSX.Element {
    method renderMetaMaskLocked (line 199) | public renderMetaMaskLocked(): JSX.Element {
    method renderWrongNetwork (line 208) | public renderWrongNetwork(): JSX.Element {
    method renderCostsEstimates (line 220) | public renderCostsEstimates(): JSX.Element {
    method renderTransactionDetails (line 230) | public renderTransactionDetails(): JSX.Element {
    method renderDetails (line 251) | public renderDetails(): JSX.Element {

FILE: packages/components/src/DetailsButtonComponent.tsx
  type DetailsButtonComponentProps (line 16) | interface DetailsButtonComponentProps {
  class DetailsButtonComponent (line 21) | class DetailsButtonComponent extends React.Component<DetailsButtonCompon...
    method render (line 22) | public render(): JSX.Element {

FILE: packages/components/src/EmailSignup/EmailSignup.stories.tsx
  function onChange (line 19) | function onChange(name: string, value: string): void {
  function onSubmit (line 25) | async function onSubmit(): Promise<void> {

FILE: packages/components/src/EmailSignup/EmailSignup.tsx
  type EmailSignupProps (line 9) | interface EmailSignupProps {

FILE: packages/components/src/EthAddressViewer/EthAddressViewer.tsx
  type EthAddressViewerProps (line 15) | interface EthAddressViewerProps {

FILE: packages/components/src/ExecuteOnMount.tsx
  type ExecuteOnMountProps (line 3) | interface ExecuteOnMountProps {
  class ExecuteOnMount (line 7) | class ExecuteOnMount extends React.Component<ExecuteOnMountProps> {
    method componentDidMount (line 8) | public async componentDidMount(): Promise<void> {
    method render (line 18) | public render(): JSX.Element {

FILE: packages/components/src/FullscreenModal.tsx
  type ModalWrapperProps (line 6) | interface ModalWrapperProps {
  type FullScreenModalProps (line 52) | interface FullScreenModalProps {
  class FullScreenModal (line 60) | class FullScreenModal extends React.Component<FullScreenModalProps> {
    method constructor (line 63) | constructor(props: FullScreenModalProps) {
    method componentDidMount (line 72) | public componentDidMount(): void {
    method componentWillUnmount (line 80) | public componentWillUnmount(): void {
    method render (line 87) | public render(): React.ReactPortal | JSX.Element | null {
    method handleClickOutside (line 100) | private handleClickOutside(event: any): void {
    method close (line 111) | private close(): void {

FILE: packages/components/src/GasEstimate.tsx
  type GasEstimateProps (line 6) | interface GasEstimateProps {
  type GasEstimateState (line 11) | interface GasEstimateState {
  class GasEstimate (line 26) | class GasEstimate extends React.Component<GasEstimateProps, GasEstimateS...
    method constructor (line 27) | constructor(props: GasEstimateProps) {
    method componentDidMount (line 35) | public async componentDidMount(): Promise<void> {
    method divinePrice (line 39) | public async divinePrice(estimateFunctions?: Array<() => Promise<numbe...
    method render (line 63) | public render(): JSX.Element {

FILE: packages/components/src/HelmetHelper.tsx
  type HelmetHelperProps (line 4) | interface HelmetHelperProps {

FILE: packages/components/src/Hero/Hero.tsx
  type HeroProps (line 4) | interface HeroProps {
  class Hero (line 8) | class Hero extends React.Component<HeroProps> {
    method render (line 9) | public render(): JSX.Element {

FILE: packages/components/src/Hero/HomepageHero.tsx
  type HomepageHeroProps (line 13) | interface HomepageHeroProps {

FILE: packages/components/src/Layout/styledComponents.tsx
  type ContentRowProps (line 5) | interface ContentRowProps {
  type ContentWellProps (line 9) | interface ContentWellProps {

FILE: packages/components/src/ListingDetailHeader/EthereumInfoModal.tsx
  type EthereumInfoModalProps (line 16) | interface EthereumInfoModalProps {

FILE: packages/components/src/ListingDetailHeader/ListingDetailHeader.tsx
  type ListingDetailHeaderProps (line 30) | interface ListingDetailHeaderProps {
  type ListingDetailHeaderState (line 56) | interface ListingDetailHeaderState {
  class ListingDetailHeader (line 60) | class ListingDetailHeader extends React.Component<ListingDetailHeaderPro...
    method render (line 65) | public render(): JSX.Element {
    method renderRegistryLink (line 153) | private renderRegistryLink(): JSX.Element | undefined {

FILE: packages/components/src/ListingDetailPhaseCard/AppealAwaitingDecisionCard.tsx
  type AppealProps (line 24) | interface AppealProps {
  type AppealAwaitingDecisionCardState (line 32) | interface AppealAwaitingDecisionCardState {
  type AppealAwaitingDecisionCardProps (line 36) | type AppealAwaitingDecisionCardProps = ListingDetailPhaseCardComponentPr...

FILE: packages/components/src/ListingDetailPhaseCard/AppealChallengeCommitVoteCard.tsx
  type AppealChallengeCommitVoteCardProps (line 40) | type AppealChallengeCommitVoteCardProps = ListingDetailPhaseCardComponen...
  type AppealChallengeCommitVoteCardState (line 48) | interface AppealChallengeCommitVoteCardState {
  class AppealChallengeCommitVoteCard (line 52) | class AppealChallengeCommitVoteCard extends React.Component<
    method constructor (line 56) | constructor(props: AppealChallengeCommitVoteCardProps) {
    method render (line 61) | public render(): JSX.Element {

FILE: packages/components/src/ListingDetailPhaseCard/AppealChallengeResolveCard.tsx
  type AppealChallengeResolveCardProps (line 24) | type AppealChallengeResolveCardProps = ListingDetailPhaseCardComponentPr...

FILE: packages/components/src/ListingDetailPhaseCard/AppealChallengeRevealVoteCard.tsx
  type AppealChallengeRevealVoteCardProps (line 44) | type AppealChallengeRevealVoteCardProps = ListingDetailPhaseCardComponen...
  type AppealChallengeRevealVoteCardState (line 52) | interface AppealChallengeRevealVoteCardState {
  class AppealChallengeRevealVoteCard (line 56) | class AppealChallengeRevealVoteCard extends React.Component<
    method constructor (line 60) | constructor(props: AppealChallengeRevealVoteCardProps) {
    method render (line 65) | public render(): JSX.Element {

FILE: packages/components/src/ListingDetailPhaseCard/AppealDecisionDetail.tsx
  type AppealDecisionDetailProps (line 11) | interface AppealDecisionDetailProps {

FILE: packages/components/src/ListingDetailPhaseCard/ChallengeCommitVoteCard.tsx
  type ChallengeCommitVoteCardProps (line 39) | type ChallengeCommitVoteCardProps = ListingDetailPhaseCardComponentProps &
  type ChallengeCommitVoteCardState (line 44) | interface ChallengeCommitVoteCardState {
  class ChallengeCommitVoteCard (line 48) | class ChallengeCommitVoteCard extends React.Component<
    method constructor (line 52) | constructor(props: ChallengeCommitVoteCardProps) {
    method render (line 57) | public render(): JSX.Element {

FILE: packages/components/src/ListingDetailPhaseCard/ChallengeRevealVoteCard.tsx
  type ChallengeRevealVoteCardProps (line 43) | type ChallengeRevealVoteCardProps = ListingDetailPhaseCardComponentProps &
  type ChallengeRevealVoteCardState (line 48) | interface ChallengeRevealVoteCardState {
  class ChallengeRevealVoteCard (line 52) | class ChallengeRevealVoteCard extends React.Component<
    method constructor (line 56) | constructor(props: ChallengeRevealVoteCardProps) {
    method render (line 61) | public render(): JSX.Element {

FILE: packages/components/src/ListingDetailPhaseCard/CommitVote.tsx
  type CommitVoteState (line 40) | interface CommitVoteState {
  type CommitVoteStepState (line 44) | interface CommitVoteStepState {
  class CommitVote (line 48) | class CommitVote extends React.Component<CommitVoteProps, CommitVoteStat...
    method constructor (line 49) | constructor(props: CommitVoteProps) {
    method render (line 57) | public render(): JSX.Element {

FILE: packages/components/src/ListingDetailPhaseCard/CompleteChallengeResults.tsx
  type CompleteChallengeResultsProps (line 13) | interface CompleteChallengeResultsProps {
  type CompleteChallengeResultsAllProps (line 17) | type CompleteChallengeResultsAllProps = ListingDetailPhaseCardComponentP...

FILE: packages/components/src/ListingDetailPhaseCard/InApplicationCard.tsx
  class InApplicationCard (line 15) | class InApplicationCard extends React.Component<
    method render (line 18) | public render(): JSX.Element {

FILE: packages/components/src/ListingDetailPhaseCard/ListingDetailsPhaseCard.stories.tsx
  function commitVoteChange (line 63) | function commitVoteChange(data: any, callback?: () => any): void {

FILE: packages/components/src/ListingDetailPhaseCard/NeedHelp.tsx
  type NeedHelpProps (line 6) | interface NeedHelpProps {

FILE: packages/components/src/ListingDetailPhaseCard/RejectedCard.tsx
  type RejectedCardProps (line 22) | interface RejectedCardProps {
  type RejectedCardAllProps (line 26) | type RejectedCardAllProps = ListingDetailPhaseCardComponentProps &

FILE: packages/components/src/ListingDetailPhaseCard/RevealVote.tsx
  type RevealVoteState (line 15) | interface RevealVoteState {
  type StepCopyProps (line 19) | interface StepCopyProps {
  class RevealVote (line 32) | class RevealVote extends React.Component<RevealVoteProps, RevealVoteStat...
    method constructor (line 33) | constructor(props: RevealVoteProps) {
    method render (line 38) | public render(): JSX.Element {

FILE: packages/components/src/ListingDetailPhaseCard/SaltField.tsx
  type SaltFieldProps (line 5) | interface SaltFieldProps {
  class SaltField (line 9) | class SaltField extends React.Component<SaltFieldProps> {
    method render (line 10) | public render(): JSX.Element {
    method getSaltyWords (line 17) | private getSaltyWords(): string {

FILE: packages/components/src/ListingDetailPhaseCard/VoteButton.tsx
  type VoteButtonProps (line 39) | interface VoteButtonProps extends VoteBaseProps {

FILE: packages/components/src/ListingDetailPhaseCard/WhitelistedCard.tsx
  type WhitelistedCardProps (line 19) | interface WhitelistedCardProps {

FILE: packages/components/src/ListingDetailPhaseCard/WithdrawnCard.tsx
  type WithdrawnCardProps (line 14) | interface WithdrawnCardProps {
  type WithdrawnCardAllProps (line 18) | type WithdrawnCardAllProps = ListingDetailPhaseCardComponentProps & With...

FILE: packages/components/src/ListingDetailPhaseCard/styledComponents.tsx
  constant BACKGROUND_ACCENT_COLORS (line 7) | const BACKGROUND_ACCENT_COLORS: any = {
  type StyledListingDetailPhaseCardSectionProps (line 27) | interface StyledListingDetailPhaseCardSectionProps {
  type StyledCardStageProps (line 182) | interface StyledCardStageProps {
  type StyledCardProps (line 186) | interface StyledCardProps {
  type StyledStepPropsState (line 276) | interface StyledStepPropsState {

FILE: packages/components/src/ListingDetailPhaseCard/textComponents.tsx
  type VoteCallToActionTextProps (line 21) | interface VoteCallToActionTextProps {
  type RevealVoteCalloutCopyTextProps (line 82) | interface RevealVoteCalloutCopyTextProps {
  type ToolTipTextProps (line 152) | interface ToolTipTextProps {

FILE: packages/components/src/ListingDetailPhaseCard/types.ts
  type ListingDetailPhaseCardComponentProps (line 3) | interface ListingDetailPhaseCardComponentProps {
  type PhaseWithExpiryProps (line 14) | interface PhaseWithExpiryProps {
  type SubmitChallengeProps (line 20) | interface SubmitChallengeProps {
  type RequestAppealProps (line 24) | interface RequestAppealProps {
  type ChallengePhaseProps (line 28) | interface ChallengePhaseProps {
  type VoteBaseProps (line 39) | interface VoteBaseProps {
  type CommitVoteProps (line 48) | interface CommitVoteProps extends VoteBaseProps {
  type RevealVoteProps (line 61) | interface RevealVoteProps extends VoteBaseProps {
  type AppealDecisionProps (line 66) | interface AppealDecisionProps {
  type AppealChallengePhaseProps (line 73) | interface AppealChallengePhaseProps {
  type AppealChallengeResultsProps (line 77) | interface AppealChallengeResultsProps {

FILE: packages/components/src/ListingHistoryEvent/ApplicationEvent.tsx
  type ApplicationEventProps (line 6) | interface ApplicationEventProps extends ListingHistoryEventTimestampProps {

FILE: packages/components/src/ListingHistoryEvent/ChallengeEvent.tsx
  type ChallengeEventProps (line 8) | interface ChallengeEventProps extends ListingHistoryEventTimestampProps {

FILE: packages/components/src/ListingHistoryEvent/DepositEvent.tsx
  type DepositEventProps (line 6) | interface DepositEventProps extends ListingHistoryEventTimestampProps {

FILE: packages/components/src/ListingHistoryEvent/ListingHistoryEvent.tsx
  type ListingHistoryEventStyles (line 7) | enum ListingHistoryEventStyles {
  type StyledEventDetailProps (line 17) | interface StyledEventDetailProps {

FILE: packages/components/src/ListingHistoryEvent/WithdrawalEvent.tsx
  type WithdrawalEventProps (line 6) | interface WithdrawalEventProps extends ListingHistoryEventTimestampProps {

FILE: packages/components/src/ListingHistoryEvent/constants.ts
  type ListingEventTitles (line 1) | enum ListingEventTitles {

FILE: packages/components/src/ListingHistoryEvent/types.ts
  type ListingHistoryEventTimestampProps (line 3) | interface ListingHistoryEventTimestampProps {
  type ListingHistoryEventDetailsProps (line 7) | interface ListingHistoryEventDetailsProps {
  type ListingHistoryEventProps (line 12) | interface ListingHistoryEventProps extends ListingHistoryEventTimestampP...
  type ChallengeCompletedEventProps (line 14) | interface ChallengeCompletedEventProps extends ListingHistoryEventTimest...

FILE: packages/components/src/ListingSummary/ChallengeResults.tsx
  type ListingSummaryChallengeResultsProps (line 8) | interface ListingSummaryChallengeResultsProps
  type ListingSummaryAppealChallengeResultsProps (line 12) | interface ListingSummaryAppealChallengeResultsProps

FILE: packages/components/src/ListingSummary/ListingSummaryApproved.tsx
  type ListingSummaryApprovedComponentProps (line 15) | interface ListingSummaryApprovedComponentProps

FILE: packages/components/src/ListingSummary/ListingSummaryList.tsx
  type ListingSummaryListProps (line 6) | interface ListingSummaryListProps {
  class ListingSummaryList (line 10) | class ListingSummaryList extends React.Component<ListingSummaryListProps> {
    method render (line 11) | public render(): JSX.Element {

FILE: packages/components/src/ListingSummary/ListingSummaryReadyToUpdate.tsx
  type ListingSummaryReadyToUpdateComponentProps (line 12) | interface ListingSummaryReadyToUpdateComponentProps

FILE: packages/components/src/ListingSummary/ListingSummaryUnderChallenge.tsx
  type ListingSummaryUnderChallengeComponentProps (line 16) | interface ListingSummaryUnderChallengeComponentProps

FILE: packages/components/src/ListingSummary/styledComponents.tsx
  type StyledListingSummaryProps (line 42) | interface StyledListingSummaryProps {

FILE: packages/components/src/ListingSummary/types.ts
  type ListingChallengeStatusProps (line 3) | interface ListingChallengeStatusProps {
  type ListingSummaryComponentProps (line 25) | interface ListingSummaryComponentProps extends ListingChallengeStatusPro...
  type ListingSummaryAppealChallengeResultsProps (line 51) | interface ListingSummaryAppealChallengeResultsProps {
  type ChallengeOrAppealStatementSummaryProps (line 60) | interface ChallengeOrAppealStatementSummaryProps {
  type NewsroomTaglineProps (line 68) | interface NewsroomTaglineProps {

FILE: packages/components/src/LoadingIndicator.tsx
  type LoadingIndicatorProps (line 4) | interface LoadingIndicatorProps {

FILE: packages/components/src/Message.tsx
  type MessageProps (line 6) | interface MessageProps {

FILE: packages/components/src/MetaMaskModal.tsx
  type ContentSectionWrapperProps (line 38) | interface ContentSectionWrapperProps {
  type MetaMaskModalProps (line 95) | interface MetaMaskModalProps {

FILE: packages/components/src/Modal.tsx
  type ToggleDisplayEl (line 7) | interface ToggleDisplayEl {
  type TextAlignProps (line 10) | interface TextAlignProps {
  type ModalInnerProps (line 35) | interface ModalInnerProps {
  type ModalPropsAndState (line 70) | interface ModalPropsAndState {
  class Modal (line 79) | class Modal extends React.Component<ModalPropsAndState, ModalPropsAndSta...
    method getDerivedStateFromProps (line 81) | private static getDerivedStateFromProps(props: ModalPropsAndState, sta...
    method constructor (line 91) | public constructor(props: ModalPropsAndState) {
    method componentDidMount (line 99) | public componentDidMount(): void {
    method componentWillUnmount (line 103) | public componentWillUnmount(): void {
    method render (line 107) | public render(): React.ReactPortal {

FILE: packages/components/src/ModalContent.tsx
  type ModalListItemProps (line 64) | interface ModalListItemProps {
  type ModalListItemColorsProps (line 68) | interface ModalListItemColorsProps {
  type ModalListItemTypes (line 72) | enum ModalListItemTypes {

FILE: packages/components/src/Notice/index.tsx
  type NoticeTypes (line 6) | enum NoticeTypes {
  type NoticeContainerProps (line 14) | interface NoticeContainerProps {
  type NoticeProps (line 78) | interface NoticeProps {

FILE: packages/components/src/Parameterizer/ChallengeProposal.tsx
  type ChallengeProposalProps (line 24) | interface ChallengeProposalProps {
  class ChallengeProposal (line 36) | class ChallengeProposal extends React.Component<ChallengeProposalProps> {
    method componentDidMount (line 39) | public componentDidMount(): void {
    method componentWillUnmount (line 43) | public componentWillUnmount(): void {
    method render (line 47) | public render(): React.ReactPortal {

FILE: packages/components/src/Parameterizer/ChallengeProposalCommitVote.tsx
  type ChallengeProposalCommitVoteProps (line 35) | interface ChallengeProposalCommitVoteProps {
  type TChallengeProposalCommitVoteProps (line 45) | type TChallengeProposalCommitVoteProps = ChallengeProposalCommitVoteProps &
  class ChallengeProposalCommitVote (line 50) | class ChallengeProposalCommitVote extends React.Component<TChallengeProp...
    method componentDidMount (line 53) | public componentDidMount(): void {
    method componentWillUnmount (line 57) | public componentWillUnmount(): void {
    method render (line 61) | public render(): React.ReactPortal {

FILE: packages/components/src/Parameterizer/ChallengeProposalRevealVote.tsx
  type ChallengeProposalRevealVoteProps (line 29) | interface ChallengeProposalRevealVoteProps {
  type TChallengeProposalRevealVoteProps (line 41) | type TChallengeProposalRevealVoteProps = ChallengeProposalRevealVoteProps &
  class ChallengeProposalRevealVote (line 46) | class ChallengeProposalRevealVote extends React.Component<TChallengeProp...
    method componentDidMount (line 49) | public componentDidMount(): void {
    method componentWillUnmount (line 53) | public componentWillUnmount(): void {
    method render (line 57) | public render(): React.ReactPortal {

FILE: packages/components/src/Parameterizer/ChallengeProposalReviewVote.tsx
  type ChallengeProposalReviewVoteProps (line 46) | interface ChallengeProposalReviewVoteProps extends FullScreenModalProps {
  type ReviewVoteState (line 62) | interface ReviewVoteState {
  function printThis (line 66) | function printThis(): void {
  function getSaltyWords (line 70) | function getSaltyWords(salt?: string): string {
  function getReadableRevealDateRange (line 78) | function getReadableRevealDateRange(commitEndDate: number, revealEndDate...
  function getCalendarEventDateTime (line 84) | function getCalendarEventDateTime(seconds: number | Date): string {
  class ChallengeProposalReviewVote (line 129) | class ChallengeProposalReviewVote extends React.Component<ChallengePropo...
    method render (line 134) | public render(): JSX.Element {

FILE: packages/components/src/Parameterizer/CreateGovtProposal.tsx
  type CreateGovtProposalProps (line 21) | interface CreateGovtProposalProps {
  type CreateGovtProposalState (line 32) | interface CreateGovtProposalState {
  class CreateGovtProposal (line 36) | class CreateGovtProposal extends React.Component<CreateGovtProposalProps...
    method componentDidMount (line 39) | public componentDidMount(): void {
    method componentWillUnmount (line 43) | public componentWillUnmount(): void {
    method render (line 47) | public render(): React.ReactPortal {

FILE: packages/components/src/Parameterizer/CreateProposal.tsx
  type CreateProposalProps (line 24) | interface CreateProposalProps {
  type CreateProposalState (line 37) | interface CreateProposalState {
  class CreateProposal (line 41) | class CreateProposal extends React.Component<CreateProposalProps, Create...
    method componentDidMount (line 44) | public componentDidMount(): void {
    method componentWillUnmount (line 48) | public componentWillUnmount(): void {
    method render (line 52) | public render(): React.ReactPortal {

FILE: packages/components/src/Parameterizer/ProcessProposal.tsx
  type ProcessProposalProps (line 20) | interface ProcessProposalProps {
  class ProcessProposal (line 31) | class ProcessProposal extends React.Component<ProcessProposalProps> {
    method componentDidMount (line 34) | public componentDidMount(): void {
    method componentWillUnmount (line 38) | public componentWillUnmount(): void {
    method render (line 42) | public render(): React.ReactPortal {

FILE: packages/components/src/Parameterizer/ResolveChallengeProposal.tsx
  type ResolveChallengeProposalProps (line 21) | interface ResolveChallengeProposalProps {
  class ResolveChallengeProposal (line 30) | class ResolveChallengeProposal extends React.Component<ResolveChallengeP...
    method componentDidMount (line 33) | public componentDidMount(): void {
    method componentWillUnmount (line 37) | public componentWillUnmount(): void {
    method render (line 41) | public render(): React.ReactPortal {

FILE: packages/components/src/Parameterizer/textComponents.tsx
  type CreateProposalDescriptionTextProps (line 76) | interface CreateProposalDescriptionTextProps {

FILE: packages/components/src/Payments/AvatarLogin.tsx
  type AvatarLoginStates (line 73) | interface AvatarLoginStates {
  class AvatarLogin (line 77) | class AvatarLogin extends React.Component<{}, AvatarLoginStates> {
    method constructor (line 81) | constructor(props: any) {
    method render (line 86) | public render(): JSX.Element {

FILE: packages/components/src/Payments/PaymentIntentsStripeForm.tsx
  type PaymentIntentsStripeFormProps (line 36) | interface PaymentIntentsStripeFormProps extends ReactStripeElements.Inje...
  type PaymentIntentsStripeFormStates (line 52) | interface PaymentIntentsStripeFormStates {
  class PaymentIntentsStripeForm (line 72) | class PaymentIntentsStripeForm extends React.Component<PaymentIntentsStr...
    method constructor (line 76) | constructor(props: any) {
    method render (line 103) | public render(): JSX.Element {
    method handleChargePayment (line 284) | private async handleChargePayment(): Promise<boolean> {
    method clonePaymentMethodAndPayViaIntent (line 311) | private async clonePaymentMethodAndPayViaIntent(
    method savePaymentMethodThenCloneAndPayViaIntent (line 373) | private async savePaymentMethodThenCloneAndPayViaIntent(): Promise<boo...
    method useOneTimePaymentIntent (line 412) | private async useOneTimePaymentIntent(): Promise<boolean> {
    method handleSubmit (line 431) | private async handleSubmit(): Promise<void> {

FILE: packages/components/src/Payments/Payments.tsx
  type PaymentsProps (line 14) | interface PaymentsProps {
  type PaymentsStates (line 26) | interface PaymentsStates {
  class Payments (line 41) | class Payments extends React.Component<PaymentsProps, PaymentsStates> {
    method constructor (line 45) | constructor(props: any) {
    method componentDidMount (line 61) | public componentDidMount(): void {
    method render (line 73) | public render(): JSX.Element {

FILE: packages/components/src/Payments/PaymentsAmount.tsx
  type SuggestedAmounts (line 13) | interface SuggestedAmounts {
  type PaymentsAmountProps (line 17) | interface PaymentsAmountProps {
  type PaymentsAmountStates (line 23) | interface PaymentsAmountStates {
  class PaymentsAmount (line 28) | class PaymentsAmount extends React.Component<PaymentsAmountProps, Paymen...
    method constructor (line 32) | constructor(props: any) {
    method render (line 40) | public render(): JSX.Element {

FILE: packages/components/src/Payments/PaymentsApplePay.tsx
  type PaymentsApplePayProps (line 6) | interface PaymentsApplePayProps {

FILE: packages/components/src/Payments/PaymentsEth.tsx
  type PaymentsEthProps (line 13) | interface PaymentsEthProps {
  type PaymentsEthStates (line 27) | interface PaymentsEthStates {
  class PaymentsEth (line 34) | class PaymentsEth extends React.Component<PaymentsEthProps, PaymentsEthS...
    method getDerivedStateFromProps (line 38) | public static getDerivedStateFromProps(props: PaymentsEthProps, state:...
    method constructor (line 52) | public constructor(props: PaymentsEthProps) {
    method componentDidMount (line 61) | public async componentDidMount(): Promise<void> {
    method render (line 68) | public render(): JSX.Element {
    method setConvertedAmount (line 161) | private setConvertedAmount(usdToSpend: number, etherToSpend: number): ...

FILE: packages/components/src/Payments/PaymentsEthForm.tsx
  type PaymentsEthFormProps (line 26) | interface PaymentsEthFormProps {
  type PaymentsEthFormState (line 43) | interface PaymentsEthFormState {
  class PaymentsEthForm (line 54) | class PaymentsEthForm extends React.Component<PaymentsEthFormProps, Paym...
    method constructor (line 58) | constructor(props: PaymentsEthFormProps) {
    method render (line 72) | public render(): JSX.Element {

FILE: packages/components/src/Payments/PaymentsEthUpdateAmount.tsx
  type PaymentsEthUpdateAmountProps (line 6) | interface PaymentsEthUpdateAmountProps {
  type PaymentsEthUpdateAmountStates (line 12) | interface PaymentsEthUpdateAmountStates {
  class PaymentsEthUpdateAmount (line 18) | class PaymentsEthUpdateAmount extends React.Component<
    method constructor (line 22) | public constructor(props: PaymentsEthUpdateAmountProps) {
    method render (line 31) | public render(): JSX.Element {
    method setConvertedAmount (line 52) | private setConvertedAmount(usdToSpend: number, etherToSpend: number): ...

FILE: packages/components/src/Payments/PaymentsEthWrapper.tsx
  type MODEL_CONTENT (line 13) | enum MODEL_CONTENT {
  type PaymentsEthWrapperProps (line 19) | interface PaymentsEthWrapperProps {
  type PaymentsEthWrapperStates (line 25) | interface PaymentsEthWrapperStates {
  class PaymentsEthWrapper (line 30) | class PaymentsEthWrapper extends React.Component<PaymentsEthWrapperProps...
    method constructor (line 31) | public constructor(props: PaymentsEthWrapperProps) {
    method render (line 38) | public render(): JSX.Element {

FILE: packages/components/src/Payments/PaymentsFormWrapper.tsx
  type PaymentsFormWrapperProps (line 12) | interface PaymentsFormWrapperProps {

FILE: packages/components/src/Payments/PaymentsGooglePay.tsx
  type PaymentsGooglePayProps (line 6) | interface PaymentsGooglePayProps {

FILE: packages/components/src/Payments/PaymentsInputValidationUI.tsx
  type InputValidationStyleProps (line 6) | interface InputValidationStyleProps {
  type InputValidationUIProps (line 101) | interface InputValidationUIProps {

FILE: packages/components/src/Payments/PaymentsLoadStripePayRequest.tsx
  type PaymentsStripeProps (line 9) | interface PaymentsStripeProps {
  type PaymentsStripeStates (line 19) | interface PaymentsStripeStates {
  class PaymentsLoadStripePayRequest (line 24) | class PaymentsLoadStripePayRequest extends React.Component<PaymentsStrip...
    method constructor (line 27) | constructor(props: PaymentsStripeProps) {
    method render (line 35) | public render(): JSX.Element {

FILE: packages/components/src/Payments/PaymentsLoginOrGuest.tsx
  type PaymentsLoginProps (line 12) | interface PaymentsLoginProps {

FILE: packages/components/src/Payments/PaymentsModal.tsx
  type PaymentsModalProps (line 7) | interface PaymentsModalProps {

FILE: packages/components/src/Payments/PaymentsRadio.tsx
  type PaymentsRadioProps (line 4) | interface PaymentsRadioProps {

FILE: packages/components/src/Payments/PaymentsRequest.tsx
  type PaymentRequestProps (line 15) | interface PaymentRequestProps extends ReactStripeElements.InjectedStripe...
  type PaymentRequestStates (line 25) | interface PaymentRequestStates {
  class PaymentRequestForm (line 30) | class PaymentRequestForm extends React.Component<PaymentRequestProps, Pa...
    method constructor (line 31) | constructor(props: any) {
    method render (line 66) | public render(): JSX.Element {
    method handlePaymentRequest (line 80) | private async handlePaymentRequest(token: any, complete: any, email: s...

FILE: packages/components/src/Payments/PaymentsSelectType.tsx
  type PaymentsSelectTypeProps (line 23) | interface PaymentsSelectTypeProps {

FILE: packages/components/src/Payments/PaymentsStripe.tsx
  type PaymentsStripeProps (line 11) | interface PaymentsStripeProps {
  type PaymentsStripeStates (line 21) | interface PaymentsStripeStates {
  class PaymentsStripe (line 26) | class PaymentsStripe extends React.Component<PaymentsStripeProps, Paymen...
    method constructor (line 29) | constructor(props: PaymentsStripeProps) {
    method render (line 37) | public render(): JSX.Element {

FILE: packages/components/src/Payments/PaymentsStripeCardComponent.tsx
  type PaymentsStripeCardComponentProps (line 14) | interface PaymentsStripeCardComponentProps {

FILE: packages/components/src/Payments/PaymentsStripeForm.tsx
  type PaymentStripeFormProps (line 40) | interface PaymentStripeFormProps extends ReactStripeElements.InjectedStr...
  type PaymentStripeFormStates (line 53) | interface PaymentStripeFormStates {
  class PaymentStripeForm (line 68) | class PaymentStripeForm extends React.Component<PaymentStripeFormProps, ...
    method constructor (line 71) | constructor(props: any) {
    method render (line 91) | public render(): JSX.Element {
    method handleSubmit (line 238) | private async handleSubmit(): Promise<void> {

FILE: packages/components/src/Payments/PaymentsStripeFormSavedCard.tsx
  type PaymentStripeFormSavedCardProps (line 31) | interface PaymentStripeFormSavedCardProps {

FILE: packages/components/src/Payments/PaymentsStyledComponents.tsx
  type PaymentBtnProps (line 147) | interface PaymentBtnProps {
  type PaymentWarningProps (line 274) | interface PaymentWarningProps {
  type PaymentModalProps (line 302) | interface PaymentModalProps {

FILE: packages/components/src/Payments/PaymentsSuccess.tsx
  type PaymentsSuccessProps (line 35) | interface PaymentsSuccessProps {

FILE: packages/components/src/Payments/PaymentsTextComponents.tsx
  type PayOnCivilTextProps (line 48) | interface PayOnCivilTextProps {
  type PaymentEmailPrepopulatedTextProps (line 71) | interface PaymentEmailPrepopulatedTextProps {
  type PaymentAmountTextProps (line 78) | interface PaymentAmountTextProps {
  type PaymentUpdatedTextProps (line 105) | interface PaymentUpdatedTextProps {
  type PaymentSelectTextProps (line 122) | interface PaymentSelectTextProps {
  type PaymentTextProps (line 181) | interface PaymentTextProps {

FILE: packages/components/src/Payments/PaymentsWrapper.tsx
  type PaymentsWrapperProps (line 27) | interface PaymentsWrapperProps {
  class PaymentsWrapper (line 45) | class PaymentsWrapper extends React.Component<PaymentsWrapperProps> {
    method render (line 49) | public render(): JSX.Element {
    method renderHeader (line 67) | public renderHeader(): JSX.Element {
    method renderEmbedHeader (line 84) | public renderEmbedHeader(): JSX.Element {
    method renderBoostAmount (line 134) | public renderBoostAmount(): JSX.Element {

FILE: packages/components/src/Payments/queries.ts
  constant PAYMENTS_ETH_MUTATION (line 3) | const PAYMENTS_ETH_MUTATION = gql`
  constant PAYMENTS_STRIPE_MUTATION (line 11) | const PAYMENTS_STRIPE_MUTATION = gql`
  constant SET_EMAIL_MUTATION (line 19) | const SET_EMAIL_MUTATION = gql`
  constant GET_STRIPE_PAYMENT_INTENT (line 27) | const GET_STRIPE_PAYMENT_INTENT = gql`
  constant CREATE_PAYMENT_METHOD (line 36) | const CREATE_PAYMENT_METHOD = gql`
  constant CLONE_PAYMENT_METHOD (line 45) | const CLONE_PAYMENT_METHOD = gql`

FILE: packages/components/src/Payments/types.ts
  type PAYMENT_STATE (line 5) | enum PAYMENT_STATE {
  type INPUT_STATE (line 17) | enum INPUT_STATE {

FILE: packages/components/src/PhaseCountdown/ProgressBarCountdownTimer.tsx
  class ProgressBarCountdownTimerComponent (line 17) | class ProgressBarCountdownTimerComponent extends React.Component<
    method render (line 20) | public render(): JSX.Element {

FILE: packages/components/src/PhaseCountdown/SmallProgressBarCountdownTimer.tsx
  class SmallProgressBarCountdownTimerComponent (line 14) | class SmallProgressBarCountdownTimerComponent extends React.Component<
    method render (line 17) | public render(): JSX.Element {

FILE: packages/components/src/PhaseCountdown/TextCountdownTimer.tsx
  class TextCountdownTimerComponent (line 32) | class TextCountdownTimerComponent extends React.Component<CountdownTimer...
    method render (line 33) | public render(): JSX.Element {

FILE: packages/components/src/PhaseCountdown/TwoPhaseProgressBarCountdownTimer.tsx
  class TwoPhaseProgressBarCountdownTimerComponent (line 18) | class TwoPhaseProgressBarCountdownTimerComponent extends React.Component<
    method render (line 21) | public render(): JSX.Element {

FILE: packages/components/src/PhaseCountdown/constants.ts
  type PHASE_TYPE_NAMES (line 17) | enum PHASE_TYPE_NAMES {
  constant PHASE_TYPE_LABEL (line 28) | const PHASE_TYPE_LABEL: { [index: string]: React.FunctionComponent } = {
  constant PHASE_TYPE_FLAVOR_TEXT (line 39) | const PHASE_TYPE_FLAVOR_TEXT: { [index: string]: React.FunctionComponent...

FILE: packages/components/src/PhaseCountdown/index.tsx
  method constructor (line 22) | constructor(props: TCountdownTimerProps) {
  method render (line 29) | public render(): JSX.Element {
  method componentDidMount (line 33) | public async componentDidMount(): Promise<void> {
  method componentWillUnmount (line 37) | public componentWillUnmount(): void {

FILE: packages/components/src/PhaseCountdown/types.ts
  type CountdownTimerProps (line 3) | interface CountdownTimerProps {
  type InjectedCountdownTimerProps (line 8) | interface InjectedCountdownTimerProps {
  type CountdownTimerState (line 12) | interface CountdownTimerState {
  type ProgressBarCountdownProps (line 16) | interface ProgressBarCountdownProps extends CountdownTimerProps {
  type TwoPhaseProgressBarCountdownProps (line 23) | interface TwoPhaseProgressBarCountdownProps extends ProgressBarCountdown...

FILE: packages/components/src/ProgressModalContent.tsx
  type ProgressModalContentProps (line 8) | interface ProgressModalContentProps {

FILE: packages/components/src/QuestionToolTip.tsx
  class QuestionToolTip (line 19) | class QuestionToolTip extends React.Component<ToolTipProps> {
    method render (line 20) | public render(): JSX.Element {

FILE: packages/components/src/RescueTokens.tsx
  type RescueTokensProps (line 6) | interface RescueTokensProps {
  class RescueTokens (line 12) | class RescueTokens extends React.Component<RescueTokensProps> {
    method render (line 13) | public render(): JSX.Element {

FILE: packages/components/src/ReviewVote/ReviewVoteModal.tsx
  type ReviewVoteProps (line 48) | interface ReviewVoteProps extends FullScreenModalProps {
  type ReviewVoteState (line 65) | interface ReviewVoteState {
  function printThis (line 69) | function printThis(): void {
  function getSaltyWords (line 73) | function getSaltyWords(salt?: string): string {
  function getReadableRevealDateRange (line 81) | function getReadableRevealDateRange(commitEndDate: number, revealEndDate...
  function getCalendarEventDateTime (line 87) | function getCalendarEventDateTime(seconds: number | Date): string {
  class ReviewVote (line 132) | class ReviewVote extends React.Component<ReviewVoteProps, ReviewVoteStat...
    method render (line 137) | public render(): JSX.Element {

FILE: packages/components/src/ReviewVote/textComponents.tsx
  type ReviewVoteCopyTextProps (line 16) | interface ReviewVoteCopyTextProps {
  type SaltLabelTextProps (line 53) | interface SaltLabelTextProps {
  type ReviewVoteDecisionTextProps (line 61) | interface ReviewVoteDecisionTextProps {

FILE: packages/components/src/SignConstitutionButton.tsx
  type SignConstitutionButtonProps (line 8) | interface SignConstitutionButtonProps {
  class SignConstitutionButton (line 37) | class SignConstitutionButton extends React.Component<SignConstitutionBut...
    method constructor (line 38) | constructor(props: SignConstitutionButtonProps) {
    method render (line 42) | public render(): JSX.Element {
    method isDisabled (line 48) | public isDisabled(): boolean {
    method renderNoMetaMask (line 56) | public renderNoMetaMask(): JSX.Element {
    method renderMetaMaskLocked (line 68) | public renderMetaMaskLocked(): JSX.Element {
    method renderWrongNetwork (line 77) | public renderWrongNetwork(): JSX.Element {
    method renderTransactionDetails (line 89) | public renderTransactionDetails(): JSX.Element {
    method renderIsNotOwner (line 98) | public renderIsNotOwner(): JSX.Element {
    method renderDetails (line 107) | public renderDetails(): JSX.Element {

FILE: packages/components/src/StepProcess/StepHeader.tsx
  type ComponentProps (line 6) | interface ComponentProps {
  type StepHeaderTheme (line 29) | interface StepHeaderTheme {
  type StepHeaderProps (line 34) | interface StepHeaderProps {

FILE: packages/components/src/StepProcess/StepProcess.tsx
  type StepProcessProps (line 4) | interface StepProcessProps {
  type StepProps (line 10) | interface StepProps {
  class StepProcess (line 22) | class StepProcess extends React.Component<StepProcessProps> {
    method render (line 23) | public render(): JSX.Element {

FILE: packages/components/src/StepProcess/StepProcessTopNav/Step.tsx
  type RenderButtonsArgs (line 6) | interface RenderButtonsArgs {
  type StepTopNavProps (line 13) | interface StepTopNavProps {
  type StepState (line 27) | interface StepState {
  type DotProps (line 31) | interface DotProps {
  type StyledLiProps (line 37) | interface StyledLiProps {
  type StepProcessTopNavTheme (line 131) | interface StepProcessTopNavTheme {
  class Step (line 140) | class Step extends React.Component<StepTopNavProps, StepState> {
    method constructor (line 143) | constructor(props: StepTopNavProps) {
    method componentDidMount (line 148) | public componentDidMount(): void {
    method render (line 155) | public render(): JSX.Element {

FILE: packages/components/src/StepProcess/StepProcessTopNav/StepProcessTopNav.tsx
  type StepsProps (line 5) | interface StepsProps {
  type StepProcessTopNavState (line 13) | interface StepProcessTopNavState {
  class StepProcessTopNav (line 51) | class StepProcessTopNav extends React.Component<StepsProps, StepProcessT...
    method constructor (line 55) | constructor(props: StepsProps) {
    method componentDidUpdate (line 62) | public componentDidUpdate(prevProps: StepsProps, prevState: StepProces...
    method renderTabs (line 76) | public renderTabs(): Array<React.ReactElement<StepTopNavProps>> {
    method renderContent (line 89) | public renderContent(): React.ReactNode | undefined {
    method renderButtons (line 97) | public renderButtons(): JSX.Element | undefined {
    method render (line 110) | public render(): JSX.Element {

FILE: packages/components/src/StepProcess/StepProcessTopNavNoButtons/Step.tsx
  type StepTopNavNoButtonsProps (line 6) | interface StepTopNavNoButtonsProps {
  class StepNoButtons (line 41) | class StepNoButtons extends React.Component<StepTopNavNoButtonsProps, St...
    method render (line 42) | public render(): JSX.Element {

FILE: packages/components/src/StepProcess/StepProcessTopNavNoButtons/StepProcessTopNav.stories.tsx
  type StepThingProps (line 8) | interface StepThingProps extends ContentProps {

FILE: packages/components/src/StepProcess/StepProcessTopNavNoButtons/StepProcessTopNavNoButtons.tsx
  type StepsNoButtonsProps (line 7) | interface StepsNoButtonsProps extends StepsProps {
  type ContentProps (line 11) | interface ContentProps {
  type ProgressBarInnerProps (line 16) | interface ProgressBarInnerProps {
  class StepProcessTopNavNoButtons (line 56) | class StepProcessTopNavNoButtons extends React.Component<StepsNoButtonsP...
    method constructor (line 60) | constructor(props: StepsNoButtonsProps) {
    method componentDidUpdate (line 67) | public componentDidUpdate(prevProps: StepsNoButtonsProps, prevState: S...
    method renderTabs (line 81) | public renderTabs(): Array<React.ReactElement<StepTopNavNoButtonsProps...
    method renderContent (line 94) | public renderContent(): React.ReactNode | undefined {
    method render (line 105) | public render(): JSX.Element {

FILE: packages/components/src/StepProcess/StepStyled.tsx
  type StepStyledProps (line 5) | interface StepStyledProps {
  type StepDescriptionProps (line 10) | interface StepDescriptionProps {

FILE: packages/components/src/StoryFeed/StoryNewsroomStatus.tsx
  type StoryNewsroomStatusProps (line 29) | interface StoryNewsroomStatusProps {

FILE: packages/components/src/TCRUserDashboard/DashboardActivity.tsx
  type DashboardActivityProps (line 11) | interface DashboardActivityProps {

FILE: packages/components/src/TCRUserDashboard/DashboardActivityItem.tsx
  type DashboardActivityItemProps (line 29) | interface DashboardActivityItemProps {

FILE: packages/components/src/TCRUserDashboard/DashboardActivityTabTitle.tsx
  type DashboardActivityTabTitleProps (line 12) | interface DashboardActivityTabTitleProps {

FILE: packages/components/src/TCRUserDashboard/DashboardNewsroom.tsx
  type DashboardNewsroomProps (line 31) | interface DashboardNewsroomProps {
  constant CHANNEL_ID_FROM_NEWSROOM_ADDRESS_QUERY (line 52) | const CHANNEL_ID_FROM_NEWSROOM_ADDRESS_QUERY = gql`

FILE: packages/components/src/TCRUserDashboard/DashboardNewsroomProceeds.tsx
  type CurrencyLabelProps (line 50) | interface CurrencyLabelProps {
  type NewsroomProceedsProps (line 59) | interface NewsroomProceedsProps {
  class NewsroomProceedsComponent (line 64) | class NewsroomProceedsComponent extends React.Component<NewsroomProceeds...
    method constructor (line 65) | public constructor(props: NewsroomProceedsProps & NewsroomChannelInjec...
    method render (line 68) | public render(): JSX.Element {

FILE: packages/components/src/TCRUserDashboard/DashboardNewsroomStripeConnect.tsx
  type StripeOauthParams (line 50) | interface StripeOauthParams {
  type DashboardNewsroomStripeConnectOwnProps (line 56) | interface DashboardNewsroomStripeConnectOwnProps {
  type DashboardNewsroomStripeConnectState (line 59) | interface DashboardNewsroomStripeConnectState {
  type DashboardNewsroomStripeConnectProps (line 63) | type DashboardNewsroomStripeConnectProps = WithApolloClient<
  constant CHANNEL_CONNECT_STRIPE_MUTATION (line 67) | const CHANNEL_CONNECT_STRIPE_MUTATION = gql`
  class DashboardNewsroomStripeConnectComponent (line 75) | class DashboardNewsroomStripeConnectComponent extends React.Component<
    method constructor (line 83) | constructor(props: DashboardNewsroomStripeConnectProps) {
    method componentDidMount (line 89) | public async componentDidMount(): Promise<void> {
    method render (line 113) | public render(): JSX.Element {
    method renderBody (line 124) | private renderBody(): JSX.Element {
    method renderStripeConnectButton (line 188) | private renderStripeConnectButton(linkText?: string): JSX.Element {

FILE: packages/components/src/TCRUserDashboard/DashboardNewsroomSubmitLink.tsx
  constant EXTERNAL_LINK_MUTATION (line 6) | const EXTERNAL_LINK_MUTATION = gql`
  type DashboardNewsroomSubmitLinkProps (line 15) | interface DashboardNewsroomSubmitLinkProps {
  type DashboardNewsroomSubmitLinkState (line 19) | interface DashboardNewsroomSubmitLinkState {
  class DashboardNewsroomSubmitLink (line 26) | class DashboardNewsroomSubmitLink extends React.Component<
    method constructor (line 30) | constructor(props: any) {
    method render (line 40) | public render(): JSX.Element {
    method handleSubmit (line 63) | private async handleSubmit(mutation: MutationFunc): Promise<void> {

FILE: packages/components/src/TCRUserDashboard/DashboardStyledComponents.tsx
  type StyledDashboardActivityDescriptionProps (line 70) | interface StyledDashboardActivityDescriptionProps {

FILE: packages/components/src/TCRUserDashboard/DashboardTransferTokenForm.tsx
  type BalanceType (line 20) | enum BalanceType {
  type TransferTokenDropdownOptionProps (line 25) | interface TransferTokenDropdownOptionProps {
  type TransferTokenDropdownSelectedProps (line 39) | interface TransferTokenDropdownSelectedProps {
  type DashboardTransferTokenFormProps (line 54) | interface DashboardTransferTokenFormProps {
  type DashboardTransferTokenFormStates (line 60) | interface DashboardTransferTokenFormStates {
  class DashboardTransferTokenForm (line 65) | class DashboardTransferTokenForm extends React.Component<
    method constructor (line 69) | constructor(props: DashboardTransferTokenFormProps) {
    method render (line 77) | public render(): JSX.Element {

FILE: packages/components/src/TCRUserDashboard/DashboardTypes.ts
  type DashboardActivityItemBaseProps (line 1) | interface DashboardActivityItemBaseProps {
  type DashboardActivityItemLogo (line 5) | interface DashboardActivityItemLogo {
  type DashboardActivityItemTitleProps (line 9) | interface DashboardActivityItemTitleProps {
  type DashboardActivityItemCTAButtonProps (line 13) | interface DashboardActivityItemCTAButtonProps {
  type DashboardActivityItemProposalCTAButtonProps (line 31) | interface DashboardActivityItemProposalCTAButtonProps {
  type DashboardActivityItemProps (line 42) | interface DashboardActivityItemProps
  type DashboardActivityProposalItemProps (line 47) | interface DashboardActivityProposalItemProps
  type DashboardActivitySelectableItemProps (line 52) | interface DashboardActivitySelectableItemProps

FILE: packages/components/src/TCRUserDashboard/DashboardUserInfoSummary.tsx
  type DashboardUserInfoSummaryProps (line 19) | interface DashboardUserInfoSummaryProps {

FILE: packages/components/src/TCRUserDashboard/DashboardUserProfileSummary.tsx
  type DashboardUserProfileSummaryProps (line 12) | interface DashboardUserProfileSummaryProps {

FILE: packages/components/src/TCRUserDashboard/NoNewsrooms.tsx
  type NoNewsroomsProps (line 14) | interface NoNewsroomsProps {

FILE: packages/components/src/Table/styledComponents.tsx
  type StyledTabAccentTextProps (line 55) | interface StyledTabAccentTextProps {

FILE: packages/components/src/Table/types.ts
  type TableProps (line 1) | interface TableProps {
  type TableCellProps (line 6) | interface TableCellProps {

FILE: packages/components/src/Tabs/Tab.tsx
  type TabProps (line 5) | interface TabProps {
  type TabComponentProps (line 16) | interface TabComponentProps {
  class Tab (line 70) | class Tab extends React.Component<TabProps> {
    method render (line 71) | public render(): JSX.Element {

FILE: packages/components/src/Tabs/TabTitles.tsx
  type TabTitleProps (line 11) | interface TabTitleProps {

FILE: packages/components/src/Tabs/Tabs.tsx
  type TabsProps (line 10) | interface TabsProps {
  type TabsState (line 23) | interface TabsState {
  class Tabs (line 28) | class Tabs extends React.Component<TabsProps, TabsState> {
    method getDerivedStateFromProps (line 29) | public static getDerivedStateFromProps(nextProps: TabsProps, prevState...
    method constructor (line 36) | constructor(props: TabsProps) {
    method renderTabs (line 44) | public renderTabs(): Array<React.ReactElement<TabProps>> {
    method renderContent (line 56) | public renderContent(): React.ReactNode | undefined {
    method render (line 64) | public render(): JSX.Element {

FILE: packages/components/src/Tabs/TabsStyled.tsx
  type StyledTabsContainerProps (line 6) | interface StyledTabsContainerProps {
  type StyledResponsiveTabsToggleButtonProps (line 50) | interface StyledResponsiveTabsToggleButtonProps {

FILE: packages/components/src/Tokens/EthereumTransactionButton.tsx
  type EthereumTransactionInfo (line 7) | interface EthereumTransactionInfo {
  type EthereumTransactionButtonProps (line 11) | interface EthereumTransactionButtonProps {
  type EthereumTransactionButtonState (line 17) | interface EthereumTransactionButtonState {
  class EthereumTransactionButton (line 23) | class EthereumTransactionButton extends React.Component<
    method constructor (line 30) | public constructor(props: EthereumTransactionButtonProps) {
    method render (line 34) | public render(): JSX.Element {
    method handleTransaction (line 53) | private async handleTransaction(): Promise<void> {
    method cancelTransaction (line 66) | private cancelTransaction(): void {

FILE: packages/components/src/Tokens/TokenPurchaseSummary.tsx
  type TokenPurchaseSummaryProps (line 3) | interface TokenPurchaseSummaryProps {
  function round (line 11) | function round(amount: number | undefined): number | string {

FILE: packages/components/src/Tokens/Tokens.tsx
  type TOKEN_PROGRESS (line 21) | enum TOKEN_PROGRESS {
  type UserTokenAccountProps (line 27) | interface UserTokenAccountProps {
  class UserTokenAccount (line 35) | class UserTokenAccount extends React.Component<UserTokenAccountProps> {
    method render (line 36) | public render(): JSX.Element | null {

FILE: packages/components/src/Tokens/TokensAccount.stories.tsx
  type UserTokenAccountProgressProps (line 44) | interface UserTokenAccountProgressProps {

FILE: packages/components/src/Tokens/TokensAccountBuy.tsx
  type TokenAccountBuyProps (line 15) | interface TokenAccountBuyProps {

FILE: packages/components/src/Tokens/TokensAccountProgress.tsx
  type UserTokenAccountProgressProps (line 6) | interface UserTokenAccountProgressProps {

FILE: packages/components/src/Tokens/TokensAccountRequirement.tsx
  type TokenAccountRequirementProps (line 4) | interface TokenAccountRequirementProps {

FILE: packages/components/src/Tokens/TokensAccountSignup.tsx
  type TokenRequirementProps (line 8) | interface TokenRequirementProps {

FILE: packages/components/src/Tokens/TokensStyledComponents.tsx
  type TokenRequirementStyleProps (line 9) | interface TokenRequirementStyleProps {
  constant PAYPAL_BLUE (line 27) | const PAYPAL_BLUE = "rgba(43,86,255,0.5)";
  constant PAYPAL_BLUE_DARK (line 28) | const PAYPAL_BLUE_DARK = "#2b56ff";

FILE: packages/components/src/Tokens/buy/AirswapBuyCVL.tsx
  type BuyCVLProps (line 6) | interface BuyCVLProps {
  class BuyCVLBase (line 15) | class BuyCVLBase extends React.Component<BuyCVLProps> {
    method render (line 16) | public render(): JSX.Element {
    method displayAirswap (line 20) | private displayAirswap(): void {

FILE: packages/components/src/Tokens/buy/AirswapBuySection.tsx
  type AirswapBuySectionProps (line 16) | interface AirswapBuySectionProps {

FILE: packages/components/src/Tokens/buy/TokensTabBuy.tsx
  type TokensTabBuyProps (line 7) | interface TokensTabBuyProps {
  type TokensTabBuyStates (line 12) | interface TokensTabBuyStates {
  class TokensTabBuy (line 16) | class TokensTabBuy extends React.Component<TokensTabBuyProps, TokensTabB...
    method constructor (line 17) | public constructor(props: TokensTabBuyProps) {
    method render (line 24) | public render(): JSX.Element | null {

FILE: packages/components/src/Tokens/buy/TokensTabBuyActive.tsx
  type TokensTabBuyActiveProps (line 17) | interface TokensTabBuyActiveProps {
  class TokensTabBuyActive (line 23) | class TokensTabBuyActive extends React.Component<TokensTabBuyActiveProps...
    method constructor (line 24) | constructor(props: TokensTabBuyActiveProps) {
    method render (line 28) | public render(): JSX.Element {
    method setConvertedAmount (line 69) | private setConvertedAmount(usdToSpend: number, etherToSpend: number): ...

FILE: packages/components/src/Tokens/buy/UniswapBuy.tsx
  type UniswapBuyProps (line 8) | interface UniswapBuyProps {
  function updatePrice (line 26) | async function updatePrice(): Promise<void> {
  function buyCVL (line 42) | async function buyCVL(): Promise<any> {

FILE: packages/components/src/Tokens/buy/UniswapBuySection.tsx
  type UniswapBuySectionProps (line 12) | interface UniswapBuySectionProps {

FILE: packages/components/src/Tokens/sell/TokensTabSell.tsx
  type TokensTabSellProps (line 9) | interface TokensTabSellProps {
  type TokensTabSellStates (line 13) | interface TokensTabSellStates {
  class TokensTabSell (line 18) | class TokensTabSell extends React.Component<TokensTabSellProps, TokensTa...
    method constructor (line 21) | public constructor(props: TokensTabSellProps) {
    method componentDidMount (line 29) | public async componentDidMount(): Promise<void> {
    method render (line 33) | public render(): JSX.Element | null {
    method setTokenBalance (line 65) | private async setTokenBalance(): Promise<void> {

FILE: packages/components/src/Tokens/sell/TokensTabSellActive.tsx
  type TokensTabSellActiveProps (line 11) | interface TokensTabSellActiveProps {
  class CVLBalanceHeader (line 33) | class CVLBalanceHeader extends React.Component<any, any> {
    method constructor (line 34) | public constructor(props: any) {
    method render (line 38) | public render(): JSX.Element {
    method showModal (line 67) | private showModal(e: any): void {
    method hideModal (line 71) | private hideModal(): void {

FILE: packages/components/src/Tokens/sell/UniswapCvlEthConverter.tsx
  type UniswapCvlEthConverterProps (line 5) | interface UniswapCvlEthConverterProps {
  class UniswapCvlEthConverter (line 8) | class UniswapCvlEthConverter extends React.Component<UniswapCvlEthConver...
    method constructor (line 10) | public constructor(props: UniswapCvlEthConverterProps) {
    method render (line 13) | public render(): JSX.Element {
    method convertToETH (line 26) | private async convertToETH(cvlAmount: number): Promise<number> {

FILE: packages/components/src/Tokens/sell/UniswapSell.tsx
  type UniswapSellProps (line 34) | interface UniswapSellProps {
  type UniswapSellState (line 39) | interface UniswapSellState {
  class UniswapSell (line 43) | class UniswapSell extends React.Component<UniswapSellProps, UniswapSellS...
    method constructor (line 47) | constructor(props: UniswapSellProps) {
    method componentDidUpdate (line 52) | public async componentDidUpdate(prevProps: UniswapSellProps): Promise<...
    method componentDidMount (line 60) | public async componentDidMount(): Promise<void> {
    method render (line 69) | public render(): JSX.Element {
    method sellCVL (line 144) | private async sellCVL(cvlWei: any, weiToReceive: any): Promise<any> {
    method approve (line 149) | private async approve(cvlWei: BigNumber): Promise<any> {
    method updateApprovedSellAmount (line 154) | private async updateApprovedSellAmount(): Promise<void> {

FILE: packages/components/src/Tokens/sell/UniswapSellSection.tsx
  type UniswapSellSectionProps (line 13) | interface UniswapSellSectionProps {
  type UniswapSellSectionState (line 16) | interface UniswapSellSectionState {
  class UniswapSellSection (line 20) | class UniswapSellSection extends React.Component<UniswapSellSectionProps...
    method constructor (line 21) | constructor(props: UniswapSellSectionProps) {
    method render (line 26) | public render(): JSX.Element {
    method updatePrice (line 49) | private async updatePrice(cvlToSell: number, etherToReceive: number): ...

FILE: packages/components/src/ToolTip.tsx
  type ToolTipTheme (line 6) | interface ToolTipTheme {
  type ToolTipProps (line 13) | interface ToolTipProps {
  type ToolTipState (line 24) | interface ToolTipState {
  type TipContainerProps (line 28) | interface TipContainerProps {
  class ToolTip (line 92) | class ToolTip extends React.Component<ToolTipProps, ToolTipState> {
    method constructor (line 96) | constructor(props: ToolTipProps) {
    method componentDidMount (line 104) | public componentDidMount(): void {
    method componentWillUnmount (line 108) | public componentWillUnmount(): void {
    method render (line 112) | public render(): JSX.Element {

FILE: packages/components/src/TransactionButton.tsx
  type TransactionButtonState (line 14) | interface TransactionButtonState {
  type TransactionButtonModalFlowState (line 23) | interface TransactionButtonModalFlowState {
  type Transaction (line 34) | interface Transaction {
  type TransactionButtonProps (line 45) | interface TransactionButtonProps {
  type progressModalStates (line 54) | enum progressModalStates {
  type TransactionButtonModalContentComponentsProps (line 60) | interface TransactionButtonModalContentComponentsProps {
  type TransactionButtonModalProps (line 67) | interface TransactionButtonModalProps {
  type TransitionButtonModalState (line 72) | interface TransitionButtonModalState {
  constant DEFAULT_MODAL_COMPONENTS (line 77) | const DEFAULT_MODAL_COMPONENTS: TransactionButtonModalContentComponentsP...
  type TransactionButtonInnerProps (line 83) | interface TransactionButtonInnerProps {
  class TransactionButtonNoModal (line 126) | class TransactionButtonNoModal extends React.Component<TransactionButton...
    method constructor (line 130) | constructor(props: TransactionButtonProps) {
    method componentDidUpdate (line 140) | public componentDidUpdate(prevProps: TransactionButtonProps): void {
    method render (line 146) | public render(): JSX.Element {
  class TransactionButton (line 243) | class TransactionButton extends React.Component<
    method constructor (line 247) | constructor(props: TransactionButtonProps & TransactionButtonModalProp...
    method render (line 254) | public render(): JSX.Element {
  class TransactionDarkButton (line 358) | class TransactionDarkButton extends React.Component<
    method render (line 362) | public render(): JSX.Element {
  class TransactionInvertedButton (line 367) | class TransactionInvertedButton extends React.Component<
    method render (line 371) | public render(): JSX.Element {

FILE: packages/components/src/Tutorial/TutorialFooter.tsx
  type TutorialFooterProps (line 4) | interface TutorialFooterProps {

FILE: packages/components/src/Tutorial/TutorialInfo.tsx
  type TutorialInfoProps (line 11) | interface TutorialInfoProps {

FILE: packages/components/src/Tutorial/TutorialProgress.tsx
  type TutorialProgressProps (line 9) | interface TutorialProgressProps {

FILE: packages/components/src/Tutorial/TutorialQuestion.tsx
  type Options (line 17) | interface Options {
  type TutorialQuestionProps (line 21) | interface TutorialQuestionProps {
  type TutorialQuestionStates (line 33) | interface TutorialQuestionStates {
  class TutorialQuestion (line 40) | class TutorialQuestion extends React.Component<TutorialQuestionProps, Tu...
    method getDerivedStateFromProps (line 41) | public static getDerivedStateFromProps(
    method constructor (line 59) | public constructor(props: any) {
    method render (line 69) | public render(): JSX.Element {

FILE: packages/components/src/Tutorial/TutorialRadio.tsx
  type TutorialOptionProps (line 4) | interface TutorialOptionProps {

FILE: packages/components/src/Tutorial/TutorialStyledComponents.tsx
  type TutorialProgressBarProps (line 6) | interface TutorialProgressBarProps {
  type TutorialStyleProps (line 46) | interface TutorialStyleProps {
  type TutorialFooterFullProps (line 105) | interface TutorialFooterFullProps {

FILE: packages/components/src/Tutorial/TutorialTopicCompleted.tsx
  type TutorialTopicCompletedProps (line 10) | interface TutorialTopicCompletedProps {

FILE: packages/components/src/Tutorial/TutorialTopicIntro.tsx
  type TutorialTopicIntroProps (line 13) | interface TutorialTopicIntroProps {

FILE: packages/components/src/UserStatement/RequestAppealStatement.tsx
  type RequestAppealStatementProps (line 33) | interface RequestAppealStatementProps {
  type RequestAppealStatementState (line 46) | interface RequestAppealStatementState {
  constant SUMMARY_MAX_LENGTH (line 51) | const SUMMARY_MAX_LENGTH = 120;
  class RequestAppealStatement (line 53) | class RequestAppealStatement extends React.Component<RequestAppealStatem...
    method constructor (line 54) | constructor(props: RequestAppealStatementProps) {
    method render (line 62) | public render(): JSX.Element {

FILE: packages/components/src/UserStatement/SubmitAppealChallengeStatement.tsx
  type SubmitAppealChallengeStatementProps (line 32) | interface SubmitAppealChallengeStatementProps {
  type SubmitAppealChallengeStatementState (line 47) | interface SubmitAppealChallengeStatementState {
  constant SUMMARY_MAX_LENGTH (line 52) | const SUMMARY_MAX_LENGTH = 120;
  class SubmitAppealChallengeStatement (line 54) | class SubmitAppealChallengeStatement extends React.Component<
    method constructor (line 58) | constructor(props: SubmitAppealChallengeStatementProps) {
    method render (line 66) | public render(): JSX.Element {

FILE: packages/components/src/UserStatement/SubmitChallengeStatement.tsx
  type SubmitChallengeStatementProps (line 35) | interface SubmitChallengeStatementProps {
  type SubmitChallengeStatementState (line 49) | interface SubmitChallengeStatementState {
  constant SUMMARY_MAX_LENGTH (line 56) | const SUMMARY_MAX_LENGTH = 120;
  class SubmitChallengeStatement (line 58) | class SubmitChallengeStatement extends React.Component<
    method render (line 69) | public render(): JSX.Element {

FILE: packages/components/src/ViewTransactionLink.tsx
  type ViewTransactionLinkProps (line 7) | interface ViewTransactionLinkProps {
  type LinkTheme (line 13) | interface LinkTheme {

FILE: packages/components/src/WalletOnboarding.tsx
  type WalletOnboardingProps (line 17) | interface WalletOnboardingProps {
  type WalletOnboardingState (line 35) | interface WalletOnboardingState {
  class WalletOnboarding (line 95) | class WalletOnboarding extends React.Component<WalletOnboardingProps, Wa...
    method constructor (line 96) | constructor(props: WalletOnboardingProps) {
    method render (line 101) | public render(): JSX.Element | null {

FILE: packages/components/src/WalletOnboardingV2/WalletOnboardingV2.tsx
  type WalletOnboardingV2Props (line 39) | interface WalletOnboardingV2Props {
  type WalletOnboardingV2State (line 49) | interface WalletOnboardingV2State {
  class WalletOnboardingV2 (line 192) | class WalletOnboardingV2 extends React.Component<WalletOnboardingV2Props...
    method getDerivedStateFromProps (line 193) | public static getDerivedStateFromProps(
    method constructor (line 208) | constructor(props: WalletOnboardingV2Props) {
    method componentDidMount (line 213) | public async componentDidMount(): Promise<void> {
    method render (line 217) | public render(): JSX.Element | null {
    method renderBrowserIncompatible (line 246) | private renderBrowserIncompatible(): JSX.Element {
    method renderNoProvider (line 254) | private renderNoProvider(): JSX.Element {
    method renderNotEnabled (line 282) | private renderNotEnabled(): JSX.Element {
    method renderLocked (line 310) | private renderLocked(): JSX.Element {
    method renderWrongNetwork (line 333) | private renderWrongNetwork(): JSX.Element {
    method renderSaveAddress (line 357) | private renderSaveAddress(): JSX.Element {
    method renderAddressMismatch (line 381) | private renderAddressMismatch(): JSX.Element {
    method renderConnected (line 411) | private renderConnected(): JSX.Element {

FILE: packages/components/src/WithNewsroomChannelHOC.tsx
  type NewsroomChannelData (line 8) | interface NewsroomChannelData {
  type WithNewsroomChannelOuterProps (line 23) | interface WithNewsroomChannelOuterProps {
  type WithNewsroomChannelState (line 27) | interface WithNewsroomChannelState {
  type NewsroomChannelInjectedProps (line 31) | interface NewsroomChannelInjectedProps {
  constant CHANNEL_BY_NEWSROOM_QUERY (line 35) | const CHANNEL_BY_NEWSROOM_QUERY = gql`
  constant CREATE_NEWSROOM_CHANNEL_MUTATION (line 53) | const CREATE_NEWSROOM_CHANNEL_MUTATION = gql`
  constant NRSIGNUP_DELETE (line 62) | const NRSIGNUP_DELETE = gql`
  type TOriginalProps (line 72) | type TOriginalProps = Omit<TProps, keyof NewsroomChannelInjectedProps>;
  method constructor (line 77) | constructor(props: WithNewsroomChannelOuterProps & TOriginalProps) {
  method render (line 87) | public render(): JSX.Element {
  method renderNoChannel (line 115) | public renderNoChannel(): JSX.Element {
  method renderError (line 151) | public renderError(message: string): JSX.Element {

FILE: packages/components/src/context/AuthService.ts
  type AuthServiceOptions (line 31) | interface AuthServiceOptions {
  class AuthService (line 36) | class AuthService {
    method constructor (line 42) | constructor(opts: AuthServiceOptions) {
    method handleInitialState (line 49) | public async handleInitialState(): Promise<void> {
    method getSession (line 59) | public getSession(): AuthLoginResponse | null {
    method logout (line 63) | public logout(): void {
    method authenticate (line 72) | public async authenticate(signature: any): Promise<any> {
    method signup (line 76) | public async signup(signature: any): Promise<any> {
    method loginUser (line 81) | public async loginUser(session: any): Promise<void> {
    method fetchCurrentUser (line 89) | public async fetchCurrentUser(): Promise<void> {
    method showWeb3Login (line 100) | public async showWeb3Login(): Promise<void> {
    method showWeb3Signup (line 103) | public async showWeb3Signup(): Promise<void> {
    method ensureLoggedInUserEnabled (line 107) | public ensureLoggedInUserEnabled(): void {
    method setShowWeb3Login (line 110) | public setShowWeb3Login(func: () => Promise<void>): void {
    method setShowWeb3Signup (line 113) | public setShowWeb3Signup(func: () => Promise<void>): void {
    method setEnsureLoggedInUserEnabled (line 116) | public setEnsureLoggedInUserEnabled(func: () => void): void {
    method graphqlLoginSignup (line 120) | private async graphqlLoginSignup(mutation: any, signature: any): Promi...

FILE: packages/components/src/context/CivilContext.ts
  type RENDER_CONTEXT (line 6) | enum RENDER_CONTEXT {
  type ICivilContext (line 11) | interface ICivilContext {
  type CivilContextOptions (line 35) | interface CivilContextOptions {
  function buildCivilContext (line 44) | function buildCivilContext(opts: CivilContextOptions): ICivilContext {

FILE: packages/components/src/context/CivilProvider.tsx
  type CivilInnerProviderProps (line 10) | interface CivilInnerProviderProps {
  function onAuthChange (line 32) | function onAuthChange(nextUser: any): void {
  type CivilProviderProps (line 51) | interface CivilProviderProps extends CivilInnerProviderProps {

FILE: packages/components/src/context/IdentityParentPlugin.ts
  constant IDENTITY_LOGIN_REQUEST (line 4) | const IDENTITY_LOGIN_REQUEST = "IDENTITY_LOGIN_REQUEST";
  constant IDENTITY_LOGIN_RESPONSE (line 5) | const IDENTITY_LOGIN_RESPONSE = "IDENTITY_LOGIN_RESPONSE";
  constant IDENTITY_SIGNUP_REQUEST (line 6) | const IDENTITY_SIGNUP_REQUEST = "IDENTITY_SIGNUP_REQUEST";
  type LoginRequest (line 8) | interface LoginRequest {
  type LoginResponse (line 13) | interface LoginResponse {
  type IdentityPluginState (line 17) | type IdentityPluginState = any;
  type IdentityLoginRequestAction (line 19) | interface IdentityLoginRequestAction {
  type IdentityPluginActions (line 24) | type IdentityPluginActions = IdentityLoginRequestAction;
  type Config (line 26) | interface Config {
  type ParentDependencies (line 30) | interface ParentDependencies {
  class IdentityParentPlugin (line 35) | class IdentityParentPlugin extends ParentPlugin<Config, ParentDependenci...
    method reducer (line 41) | public reducer(state: IdentityPluginState = {}, action: any): any {
    method login (line 45) | public async login(service: string): Promise<void> {
    method signup (line 51) | public async signup(service: string): Promise<void> {

FILE: packages/components/src/features/FeatureFlag.tsx
  type FeatureFlagProps (line 4) | interface FeatureFlagProps {
  class FeatureFlag (line 10) | class FeatureFlag extends React.Component<FeatureFlagProps> {
    method render (line 14) | public render(): JSX.Element {

FILE: packages/components/src/hooks/useAsyncEffect.ts
  function useAsyncEffect (line 3) | function useAsyncEffect(fn: () => Promise<void>, watcher: any[]): void {

FILE: packages/components/src/hooks/useIntervalEffect.ts
  function useIntervalEffect (line 5) | function useIntervalEffect(fn: () => Promise<void>, intervalMS: number):...

FILE: packages/components/src/hooks/useStateWithLocalStorage.ts
  function areValuesEqual (line 40) | function areValuesEqual(prevValue: any, newValue: any): boolean {
  function useStateWithLocalStorage (line 67) | function useStateWithLocalStorage(key: string, defaultValue?: any): [any...

FILE: packages/components/src/input/AddressInput.tsx
  type AddressInputProps (line 6) | interface AddressInputProps {
  class AddressInput (line 11) | class AddressInput extends React.Component<AddressInputProps> {
    method invalid (line 12) | public invalid(): boolean {
    method render (line 15) | public render(): JSX.Element {

FILE: packages/components/src/input/Checkbox.tsx
  type CheckboxSizes (line 6) | enum CheckboxSizes {
  type BoxProps (line 10) | interface BoxProps {
  type ContainerProps (line 36) | interface ContainerProps {
  constant DEFAULT_CHECKBOX_THEME (line 72) | const DEFAULT_CHECKBOX_THEME = {
  type CheckboxProps (line 81) | interface CheckboxProps {

FILE: packages/components/src/input/Dropdown.tsx
  type DropdownProps (line 6) | interface DropdownProps {
  type DropdownState (line 12) | interface DropdownState {
  class DropdownComponent (line 16) | class DropdownComponent extends React.Component<DropdownProps, DropdownS...
    method constructor (line 18) | constructor(props: DropdownProps) {
    method componentWillUnmount (line 29) | public componentWillUnmount(): void {
    method render (line 33) | public render(): JSX.Element {
    method handleClickOutside (line 46) | private handleClickOutside(event: any): void {
    method setWrapperRef (line 52) | private setWrapperRef(node: any): void {
    method toggle (line 55) | private toggle(): void {
  type DropdownItemProps (line 127) | interface DropdownItemProps {
  type DropdownLinkProps (line 150) | interface DropdownLinkProps {

FILE: packages/components/src/input/ImageFileToDataUri.tsx
  type ImageFileToDataUriState (line 8) | interface ImageFileToDataUriState {
  type ImageFileToDataUriProps (line 13) | interface ImageFileToDataUriProps {
  type ImageFileToDataUriDefaultProps (line 21) | interface ImageFileToDataUriDefaultProps {
  class ImageFileToDataUri (line 60) | class ImageFileToDataUri extends React.Component<
    method constructor (line 71) | constructor(props: ImageFileToDataUriProps & ImageFileToDataUriDefault...
    method renderModal (line 77) | public renderModal(): JSX.Element | null {
    method render (line 104) | public render(): JSX.Element {

FILE: packages/components/src/input/Input.stories.tsx
  type changeCallback (line 9) | type changeCallback = (name: string, value: any) => any;
  type ControlProps (line 10) | interface ControlProps {
  class ControlComponent (line 13) | class ControlComponent extends React.Component<ControlProps, any> {
    method constructor (line 14) | constructor(props: any) {
    method render (line 20) | public render(): React.ReactNode {

FILE: packages/components/src/input/InputGroup.tsx
  type InputGroupTextProps (line 44) | interface InputGroupTextProps {
  type InputGroupProps (line 73) | interface InputGroupProps {

FILE: packages/components/src/input/InputWithButton.tsx
  type InputContainerProps (line 9) | interface InputContainerProps {
  type InputWithButtonProps (line 21) | interface InputWithButtonProps extends InputProps {
  type InputWithButtonState (line 27) | interface InputWithButtonState {
  class InputContainer (line 67) | class InputContainer extends React.Component<InputContainerProps, InputW...
    method constructor (line 71) | constructor(props: InputContainerProps) {
    method render (line 78) | public render(): JSX.Element {

FILE: packages/components/src/input/SaltInput.tsx
  type SaltInputProps (line 5) | interface SaltInputProps {
  type SaltInputState (line 15) | interface SaltInputState {
  class SaltInput (line 20) | class SaltInput extends React.Component<SaltInputProps, SaltInputState> {
    method constructor (line 21) | constructor(props: SaltInputProps) {
    method render (line 32) | public render(): JSX.Element {

FILE: packages/components/src/input/SimpleImageFileToDataUri.tsx
  type SimpleImageFileToDataUriProps (line 8) | interface SimpleImageFileToDataUriProps {
  class SimpleImageFileToDataUri (line 61) | class SimpleImageFileToDataUri extends React.Component<SimpleImageFileTo...
    method constructor (line 64) | constructor(props: SimpleImageFileToDataUriProps) {
    method renderDropZone (line 74) | public renderDropZone(): JSX.Element | null {
    method render (line 93) | public render(): JSX.Element {

FILE: packages/components/src/input/SlideCheckbox.tsx
  type CheckboxTheme (line 5) | interface CheckboxTheme {
  type SlideCheckboxProps (line 74) | interface SlideCheckboxProps {

FILE: packages/components/src/input/SubmitLink.tsx
  type SubmitLinkResponseProps (line 30) | interface SubmitLinkResponseProps {
  type SubmitLinkProps (line 41) | interface SubmitLinkProps {

FILE: packages/components/src/input/checkbox.stories.tsx
  type TestComponentState (line 6) | interface TestComponentState {
  class TestSlideComponent (line 10) | class TestSlideComponent extends React.Component<any, TestComponentState> {
    method constructor (line 11) | constructor(props: any) {
    method render (line 17) | public render(): JSX.Element {
  class TestComponent (line 25) | class TestComponent extends React.Component<
    method constructor (line 29) | constructor(props: any) {
    method render (line 35) | public render(): JSX.Element {

FILE: packages/components/src/theme.ts
  type Theme (line 7) | interface Theme extends ButtonTheme, LinkTheme, StepHeaderTheme, Checkbo...

FILE: packages/contracts/migrations/12_registry.ts
  constant DLL (line 5) | const DLL = artifacts.require("DLL");

FILE: packages/contracts/migrations/2_optional_for_test.ts
  function giveTokensTo (line 16) | async function giveTokensTo(addresses: string[], originalCount: number):...

FILE: packages/contracts/migrations/3_deploy_libs.ts
  constant DLL (line 3) | const DLL = artifacts.require("DLL");

FILE: packages/contracts/migrations/8_deploy_plcr.ts
  constant DLL (line 6) | const DLL = artifacts.require("DLL");

FILE: packages/contracts/migrations/9_deploy_parameterizer.ts
  constant DLL (line 6) | const DLL = artifacts.require("DLL");

FILE: packages/contracts/migrations/utils/consts.ts
  constant MAIN_NETWORK (line 1) | const MAIN_NETWORK = "mainnet";
  constant RINKEBY (line 2) | const RINKEBY = "rinkeby";
  constant ROPSTEN (line 3) | const ROPSTEN = "ropsten";

FILE: packages/contracts/migrations/utils/index.ts
  function inTesting (line 9) | function inTesting(network: string): boolean {
  function approveEverything (line 13) | async function approveEverything(addresses: string[], token: any, target...

FILE: packages/contracts/test/modules.d.ts
  type Endianness (line 7) | type Endianness = "le" | "be";
  class BN (line 9) | class BN {

FILE: packages/contracts/test/multisig/multsigwallet.ts
  constant EXCLUDE_PENDING (line 12) | const EXCLUDE_PENDING = false;
  constant INCLUDE_PENDING (line 13) | const INCLUDE_PENDING = true;
  constant EXCLUDE_EXECUTED (line 14) | const EXCLUDE_EXECUTED = false;
  constant INCLUDE_EXECUTED (line 15) | const INCLUDE_EXECUTED = true;

FILE: packages/contracts/test/newsroom/ACL.ts
  constant ACL (line 6) | const ACL = artifacts.require("test/DummyACL");

FILE: packages/contracts/test/newsroom/eventStorage.ts
  constant SOME_DATA (line 13) | const SOME_DATA = "this is test data, please ignore";
  constant SOME_DATA_2 (line 14) | const SOME_DATA_2 = "this is more data for testing, also ignore";
  constant SOME_DATA_HASH (line 15) | const SOME_DATA_HASH = keccak256String(SOME_DATA);

FILE: packages/contracts/test/newsroom/newsroom.ts
  constant FIRST_NEWSROOM_NAME (line 14) | const FIRST_NEWSROOM_NAME = "TEST NAME, PLEASE IGNORE";
  constant SOME_URI (line 15) | const SOME_URI = "http://thiistest.uri";
  constant SECOND_URI (line 16) | const SECOND_URI = "http://anotheruri.com";
  constant SOME_HASH (line 17) | const SOME_HASH = web3.utils.sha3("test");
  constant ZERO_ADDRESS (line 18) | const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
  function idFromEvent (line 23) | function idFromEvent(tx: any): BN | undefined {

FILE: packages/contracts/test/newsroom/newsroomFactory.ts
  constant CONTRACT_EVENT (line 19) | const CONTRACT_EVENT = "ContractInstantiation";
  constant NEWSROOM_NAME (line 20) | const NEWSROOM_NAME = "Newsroom name";
  constant SOME_URI (line 21) | const SOME_URI = "http://someuri.com";
  constant SOME_HASH (line 22) | const SOME_HASH = bufferToHex(sha3(""));
  function createdContract (line 24) | function createdContract(factory: any, txReceipt: any): string {
  function codeMatches (line 36) | async function codeMatches(instance: any, clazz: any): Promise<void> {
  function createNewsroom (line 47) | async function createNewsroom(

FILE: packages/contracts/test/tcr/contractRegistry/apply.ts
  constant CHARTER_HASH (line 12) | const CHARTER_HASH = "0x";

FILE: packages/contracts/test/tcr/parameterizer/voting.ts
  constant ZERO_DATA (line 8) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/appWasMade.ts
  constant ZERO_DATA (line 8) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/apply.ts
  constant ZERO_DATA (line 11) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/challenge.ts
  constant ZERO_DATA (line 13) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/claimReward.ts
  constant ZERO_DATA (line 12) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/deposit.ts
  constant ZERO_DATA (line 11) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/exit.ts
  constant ZERO_DATA (line 11) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/hasClaimedTokens.ts
  constant ZERO_DATA (line 10) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/updateStatus.ts
  constant ZERO_DATA (line 10) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/userStories.ts
  constant ZERO_DATA (line 10) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registry/withdraw.ts
  constant ZERO_DATA (line 10) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/allUserRewards.ts
  constant ZERO_DATA (line 10) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/appealCanBeResolved.ts
  constant ZERO_DATA (line 8) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/appealChallengeCanBeResolved.ts
  constant ZERO_DATA (line 9) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/appealChallengeReward.ts
  constant ZERO_DATA (line 10) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/apply.ts
  constant ZERO_DATA (line 14) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/challenge.ts
  constant ZERO_DATA (line 12) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/challengeCanBeResolved.ts
  constant ZERO_DATA (line 8) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/challengeGrantedAppeal.ts
  constant ZERO_DATA (line 12) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/checkAppealChallengeVoteOutcomes.ts
  constant ZERO_DATA (line 10) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/claimAppealChallengeReward.ts
  constant ZERO_DATA (line 13) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/claimReward.ts
  constant ZERO_DATA (line 13) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/grantAppeal.ts
  constant ZERO_DATA (line 12) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/hasClaimedChallengeAppealTokens.ts
  constant ZERO_DATA (line 11) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/isWhitelisted.ts
  constant ZERO_DATA (line 7) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/requestAppeal.ts
  constant ZERO_DATA (line 12) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/updateStatus.ts
  constant CHARTER_HASH (line 9) | const CHARTER_HASH = "0x";
  constant CHALLENGE_HASH (line 10) | const CHALLENGE_HASH = "0x";
  constant ZERO_DATA (line 11) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/registryWithAppeals/voterReward.ts
  constant ZERO_DATA (line 13) | const ZERO_DATA = "0x";

FILE: packages/contracts/test/tcr/restrictedRegistry/apply.ts
  constant CHARTER_HASH (line 13) | const CHARTER_HASH = "0x";

FILE: packages/contracts/test/token/CivilTokenController.ts
  constant DLL (line 19) | const DLL = artifacts.require("DLL");
  function expectFailure (line 195) | async function expectFailure(p: Promise<any>): Promise<any> {
  function expectTransferCode (line 208) | async function expectTransferCode(p: Promise<any>, expectedCode: number)...

FILE: packages/contracts/test/utils/constants.ts
  constant REVERTED (line 1) | const REVERTED = "revert";
  constant REVERTED_CALL (line 2) | const REVERTED_CALL = "Returned values aren't valid, did it run Out of G...
  constant INVALID_ADDRESS (line 3) | const INVALID_ADDRESS = `invalid address (arg="author", coderType="addre...
  constant ACL_TEST_ROLE (line 14) | const ACL_TEST_ROLE = "testrole";
  constant NEWSROOM_ROLE_EDITOR (line 15) | const NEWSROOM_ROLE_EDITOR = "editor";
  constant POU_SUPER_GROUP (line 16) | const POU_SUPER_GROUP = "0x1";
  constant POU_GLOBAL_GROUP (line 17) | const POU_GLOBAL_GROUP = "0x2";

FILE: packages/contracts/test/utils/contractutils.ts
  function findEvent (line 46) | function findEvent<T = any>(tx: any, eventName: string): DecodedLogEntry...
  function getReceiptValue (line 50) | function getReceiptValue(receipt: any, arg: any): any {
  function getBlockTimestamp (line 54) | async function getBlockTimestamp(): Promise<any> {
  function timestampFromTx (line 61) | async function timestampFromTx(web3: Web3, tx: TransactionReceipt): Prom...
  function proposeReparamAndGetPropID (line 69) | async function proposeReparamAndGetPropID(
  function challengeAndGetPollID (line 79) | async function challengeAndGetPollID(listing: string, account: string, r...
  function challengeAppealAndGetPollID (line 84) | async function challengeAppealAndGetPollID(listing: string, account: str...
  function challengeReparamAndGetPollID (line 89) | async function challengeReparamAndGetPollID(
  function simpleSuccessfulChallenge (line 98) | async function simpleSuccessfulChallenge(
  function simpleUnsuccessfulChallenge (line 115) | async function simpleUnsuccessfulChallenge(
  function simpleSuccessfulAppealChallenge (line 132) | async function simpleSuccessfulAppealChallenge(
  function simpleUnsuccessfulAppealChallenge (line 149) | async function simpleUnsuccessfulAppealChallenge(
  function addToWhitelist (line 166) | async function addToWhitelist(
  function getChallengeReward (line 177) | function getChallengeReward(): BN {
  function getAppealChallengeReward (line 186) | function getAppealChallengeReward(): BN {
  function getTotalVoterReward (line 196) | function getTotalVoterReward(): BN {
  function getTotalAppealChallengeVoterReward (line 201) | function getTotalAppealChallengeVoterReward(): BN {
  function toBaseTenBigNumber (line 206) | function toBaseTenBigNumber(p: number): BN {
  function commitVote (line 210) | async function commitVote(
  function divideAndGetWei (line 225) | function divideAndGetWei(numerator: number | BN, denominator: number): BN {
  function multiplyFromWei (line 230) | function multiplyFromWei(x: number | BN, weiBN: BN): BN {
  function multiplyByPercentage (line 236) | function multiplyByPercentage(x: number | BN, y: number | BN, z: number ...
  function giveTokensTo (line 241) | async function giveTokensTo(totalSupply: BN, addresses: string[], accoun...
  function createAndDistributeToken (line 252) | async function createAndDistributeToken(totalSupply: BN, decimals: strin...
  function createTestRegistryInstance (line 259) | async function createTestRegistryInstance(registryContract: any, paramet...
  function createTestCivilTCRInstance (line 281) | async function createTestCivilTCRInstance(
  function createTestTokenInstance (line 324) | async function createTestTokenInstance(accounts: string[]): Promise<any> {
  function createTestPLCRInstance (line 328) | async function createTestPLCRInstance(token: any, telemetry: any, accoun...
  function createTestParameterizerInstance (line 346) | async function createTestParameterizerInstance(accounts: string[], token...
  function createAllTestParameterizerInstance (line 381) | async function createAllTestParameterizerInstance(accounts: string[]): P...
  function createAllTestAddressRegistryInstance (line 389) | async function createAllTestAddressRegistryInstance(accounts: string[]):...
  function createAllTestRestrictedAddressRegistryInstance (line 394) | async function createAllTestRestrictedAddressRegistryInstance(accounts: ...
  function createAllTestContractAddressRegistryInstance (line 399) | async function createAllTestContractAddressRegistryInstance(accounts: st...
  function createAllCivilTCRInstance (line 404) | async function createAllCivilTCRInstance(accounts: string[], appellateEn...
  function createDummyNewsrom (line 409) | async function createDummyNewsrom(from?: string): Promise<any> {
  function configureProviders (line 413) | function configureProviders(...contracts: any[]): void {

FILE: packages/contracts/test/utils/getethapi.ts
  function getEthApi (line 5) | function getEthApi(): EthApi {

FILE: packages/core/src/FeatureFlagService.ts
  class FeatureFlagService (line 3) | class FeatureFlagService {
    method constructor (line 5) | constructor(featureFlags?: string[]) {
    method featureEnabled (line 8) | public featureEnabled(feature: string): boolean {

FILE: packages/core/src/UniswapService.ts
  class UniswapService (line 11) | class UniswapService {
    method constructor (line 18) | public constructor(provider: ethers.providers.Provider, signer: ethers...
    method createExchange (line 40) | public createExchange(): any {
    method priceToBuyCVL (line 46) | public async priceToBuyCVL(tokensToBuy: BigNumber): Promise<BigNumber> {
    method quoteETHToCVL (line 60) | public async quoteETHToCVL(etherToSpend: BigNumber): Promise<BigNumber> {
    method quoteCVLToETH (line 75) | public async quoteCVLToETH(cvlToSell: BigNumber): Promise<BigNumber> {
    method approvedSellAmountForAddress (line 89) | public async approvedSellAmountForAddress(address: string): Promise<Bi...
    method getApprovedSellAmount (line 93) | public async getApprovedSellAmount(): Promise<BigNumber> {
    method setApprovedSellAmount (line 101) | public async setApprovedSellAmount(amount: BigNumber): Promise<BigNumb...
    method executeETHToCVL (line 105) | public async executeETHToCVL(ethToSpend: BigNumber, minTokensToReceive...
    method executeCVLToETH (line 124) | public async executeCVLToETH(cvlToSpend: BigNumber, minETHToReceive: B...
    method parseEther (line 139) | public parseEther(amount: string): BigNumber {
    method weiToEtherNumber (line 142) | public weiToEtherNumber(amount: BigNumber): number {
    method getBlockDeadline (line 148) | private async getBlockDeadline(): Promise<number> {

FILE: packages/core/src/civil.ts
  type CivilOptions (line 29) | interface CivilOptions {
  class Civil (line 41) | class Civil {
    method constructor (line 52) | constructor(options?: CivilOptions) {
    method toBigNumber (line 70) | public toBigNumber(num: number | string | BigNumber): any {
    method toWei (line 73) | public toWei(num: number): BigNumber {
    method toChecksumAddress (line 76) | public toChecksumAddress(address: string): any {
    method signMessage (line 80) | public async signMessage(message: string, account?: EthAddress): Promi...
    method currentProviderEnable (line 84) | public async currentProviderEnable(): Promise<boolean> {
    method accountStream (line 100) | public get accountStream(): Observable<EthAddress | undefined> {
    method networkStream (line 104) | public get networkStream(): Observable<number> {
    method networkNameStream (line 108) | public get networkNameStream(): Observable<string> {
    method currentProvider (line 115) | public get currentProvider(): Provider {
    method currentProvider (line 125) | public set currentProvider(web3Provider: Provider) {
    method newsroomDeployTrusted (line 135) | public async newsroomDeployTrusted(
    method estimateNewsroomDeployTrusted (line 143) | public async estimateNewsroomDeployTrusted(
    method newsroomDeployNonMultisigTrusted (line 157) | public async newsroomDeployNonMultisigTrusted(newsroomName: string): P...
    method newsroomFromTxHashUntrusted (line 171) | public async newsroomFromTxHashUntrusted(transactionHash: TxHash, bloc...
    method newsroomFromFactoryTxHashUntrusted (line 188) | public async newsroomFromFactoryTxHashUntrusted(
    method newsroomAtUntrusted (line 203) | public async newsroomAtUntrusted(address: EthAddress): Promise<Newsroo...
    method tcrSingletonTrusted (line 213) | public async tcrSingletonTrusted(): Promise<CivilTCR> {
    method councilSingletonTrusted (line 217) | public async councilSingletonTrusted(): Promise<Council> {
    method cvlTokenSingletonTrusted (line 221) | public async cvlTokenSingletonTrusted(multisigAddress?: EthAddress): P...
    method tcrSingletonTrustedMultisigSupport (line 231) | public async tcrSingletonTrustedMultisigSupport(multisigAddress?: EthA...
    method awaitReceipt (line 244) | public async awaitReceipt(transactionHash: TxHash, blockConfirmations?...
    method publishContent (line 254) | public async publishContent(content: string, options?: object): Promis...
    method getContent (line 258) | public async getContent(header: StorageHeader): Promise<ContentData | ...
    method getBareContent (line 268) | public async getBareContent(uri: string): Promise<ContentData | undefi...
    method currentBlock (line 281) | public async currentBlock(): Promise<number> {
    method networkName (line 285) | public async networkName(): Promise<string> {
    method getGasPrice (line 289) | public async getGasPrice(): Promise<BigNumber> {
    method accountBalance (line 293) | public async accountBalance(account: EthAddress): Promise<number> {
    method simplePayment (line 297) | public async simplePayment(recipient: EthAddress, amountInETH: string)...

FILE: packages/core/src/content/contentprovider.ts
  type ContentProvider (line 4) | interface ContentProvider {
  type ContentProviderOptions (line 10) | interface ContentProviderOptions {
  type ContentProviderCreator (line 14) | type ContentProviderCreator = new (options: ContentProviderOptions) => C...

FILE: packages/core/src/content/eventstorageprovider.ts
  class EventStorageProvider (line 8) | class EventStorageProvider implements ContentProvider {
    method constructor (line 12) | constructor(options: ContentProviderOptions) {
    method scheme (line 16) | public scheme(): string {
    method get (line 20) | public async get(what: StorageHeader): Promise<ContentData> {
    method put (line 33) | public async put(content: string): Promise<StorageHeader> {
    method eventStorage (line 42) | private async eventStorage(): Promise<EventStorageContract> {

FILE: packages/core/src/content/fallbackprovider.ts
  class FallbackProvider (line 8) | class FallbackProvider implements ContentProvider {
    method build (line 9) | public static build(providers: ContentProviderCreator[]): ContentProvi...
    method constructor (line 15) | public constructor(providers: ContentProviderCreator[], options: Conte...
    method scheme (line 19) | public scheme(): string {
    method get (line 23) | public async get(what: StorageHeader): Promise<ContentData> {
    method put (line 34) | public async put(content: string | object, variables?: object | undefi...

FILE: packages/core/src/content/inmemoryprovider.ts
  class InMemoryProvider (line 6) | class InMemoryProvider implements ContentProvider {
    method scheme (line 9) | public scheme(): string {
    method get (line 13) | public async get(what: StorageHeader): Promise<string> {
    method put (line 21) | public async put(content: string): Promise<StorageHeader> {

FILE: packages/core/src/content/ipfsprovider.ts
  type IpfsStorageHeader (line 15) | interface IpfsStorageHeader extends StorageHeader {
  class IPFSProvider (line 19) | class IPFSProvider implements ContentProvider {
    method scheme (line 20) | public scheme(): string {
    method get (line 24) | public async get(what: StorageHeader): Promise<string> {
    method put (line 30) | public async put(content: string, options?: { hash: string }): Promise...

FILE: packages/core/src/contracts/basecontract.ts
  type ContractConfiguration (line 7) | interface ContractConfiguration {
  constant DEFAULT_CONFIG (line 12) | const DEFAULT_CONFIG: ContractConfiguration = {
  class BaseContract (line 17) | class BaseContract implements IContract {
    method constructor (line 22) | constructor(instance: Contract, ethApi: EthApi, config: Partial<Contra...
    method address (line 31) | public get address(): string {

FILE: packages/core/src/contracts/basewrapper.ts
  class BaseWrapper (line 5) | class BaseWrapper<InstanceType extends BaseContract> {
    method constructor (line 10) | constructor(ethApi: EthApi, instance: InstanceType, defaultBlock: numb...
    method address (line 19) | public get address(): EthAddress {

FILE: packages/core/src/contracts/interfaces/contract.ts
  type Contract (line 3) | interface Contract {

FILE: packages/core/src/contracts/interfaces/ownable.ts
  type OwnableContract (line 4) | interface OwnableContract extends Contract {

FILE: packages/core/src/contracts/multisig/basemultisigproxy.ts
  class BaseMultisigProxy (line 15) | class BaseMultisigProxy {
    method constructor (line 21) | protected constructor(ethApi: EthApi, instance: Contract) {
    method multisigEnabled (line 26) | public get multisigEnabled(): boolean {
    method requireMultisig (line 30) | public requireMultisig(): Multisig {
    method owners (line 37) | public async owners(): Promise<EthAddress[]> {
    method isOwner (line 47) | public async isOwner(address: EthAddress): Promise<boolean> {
    method getMultisigAddress (line 57) | public async getMultisigAddress(): Promise<EthAddress | undefined> {
    method isAddressMultisigWallet (line 64) | public async isAddressMultisigWallet(address: EthAddress): Promise<boo...
    method resolveMultisig (line 74) | protected async resolveMultisig(multisigAddress?: EthAddress): Promise...
    method createProxyTransaction (line 88) | protected createProxyTransaction(txHash: TxHash): MultisigProxyTransac...
  type MultisigProxyTransaction (line 121) | interface MultisigProxyTransaction extends TwoStepEthTransaction {

FILE: packages/core/src/contracts/multisig/multisig.ts
  class Multisig (line 13) | class Multisig extends BaseWrapper<MultiSigWalletContract> {
    method atUntrusted (line 14) | public static atUntrusted(ethApi: EthApi, address: EthAddress): Multis...
    method deployTrusted (line 19) | public static async deployTrusted(
    method constructor (line 33) | private constructor(ethApi: EthApi, instance: MultiSigWalletContract, ...
    method owners (line 41) | public async owners(): Promise<EthAddress[]> {
    method isOwner (line 49) | public async isOwner(address?: EthAddress): Promise<boolean> {
    method required (line 57) | public async required(): Promise<number> {
    method addOwner (line 68) | public async addOwner(owner: EthAddress): Promise<TwoStepEthTransactio...
    method estimateAddOwner (line 75) | public async estimateAddOwner(owner: EthAddress): Promise<number> {
    method removeOwner (line 91) | public async removeOwner(owner: EthAddress): Promise<TwoStepEthTransac...
    method replaceOwner (line 108) | public async replaceOwner(
    method transferEther (line 122) | public async transferEther(ether: BigNumber): Promise<TwoStepEthTransa...
    method changeRequirement (line 140) | public async changeRequirement(newRequired: number): Promise<TwoStepEt...
    method submitTransaction (line 158) | public async submitTransaction(
    method confirmTransaction (line 191) | public async confirmTransaction(txId: number): Promise<TwoStepEthTrans...
    method estimateTransaction (line 207) | public async estimateTransaction(address: EthAddress, weiToSend: BigNu...
    method getRawTransaction (line 211) | public async getRawTransaction(
    method transactionCount (line 223) | public async transactionCount(filters: TransactionFilters = { pending:...
    method transactions (line 238) | public transactions(filters: TransactionFilters = { pending: true }): ...
    method transaction (line 262) | public async transaction(id: number): Promise<MultisigTransaction> {
    method requireOwner (line 266) | private async requireOwner(who?: EthAddress): Promise<void> {
  type TransactionFilters (line 274) | interface TransactionFilters {

FILE: packages/core/src/contracts/multisig/multisigtransaction.ts
  class MultisigTransaction (line 9) | class MultisigTransaction {
    method fromId (line 10) | public static async fromId(
    method constructor (line 31) | private constructor(
    method canBeExecuted (line 49) | public async canBeExecuted(): Promise<boolean> {
    method requiredConfirmations (line 57) | public async requiredConfirmations(): Promise<number> {
    method confirmations (line 64) | public async confirmations(): Promise<EthAddress[]> {
    method execute (line 75) | public async execute(): Promise<TwoStepEthTransaction<MultisigTransact...
    method confirmTransaction (line 88) | public async confirmTransaction(): Promise<TwoStepEthTransaction<Multi...
    method revokeConfirmation (line 99) | public async revokeConfirmation(): Promise<TwoStepEthTransaction<Multi...
  type MultisigTransactionStruct (line 108) | interface MultisigTransactionStruct {

FILE: packages/core/src/contracts/newsroom.ts
  class Newsroom (line 83) | class Newsroom extends BaseWrapper<NewsroomContract> {
    method deployTrusted (line 85) | public static async deployTrusted(
    method fromFactoryReceipt (line 118) | public static async fromFactoryReceipt(
    method estimateDeployTrusted (line 143) | public static async estimateDeployTrusted(
    method deployNonMultisigTrusted (line 165) | public static async deployNonMultisigTrusted(
    method atUntrusted (line 184) | public static async atUntrusted(
    method recoverArchiveTx (line 195) | public static async recoverArchiveTx(tx: Transaction): Promise<string> {
    method constructor (line 205) | private constructor(
    method editors (line 219) | public editors(): Observable<EthAddress> {
    method content (line 232) | public content(fromBlock: number = this.defaultBlock): Observable<EthC...
    method revisions (line 246) | public revisions(
    method nameChanges (line 270) | public nameChanges(fromBlock: number = this.defaultBlock): Observable<...
    method getNewsroomWrapper (line 280) | public async getNewsroomWrapper(): Promise<NewsroomWrapper> {
    method getNewsroomData (line 291) | public async getNewsroomData(): Promise<NewsroomData> {
    method owners (line 308) | public async owners(): Promise<EthAddress[]> {
    method addOwner (line 312) | public async addOwner(owner: EthAddress): Promise<TwoStepEthTransactio...
    method estimateAddOwner (line 318) | public async estimateAddOwner(owner: EthAddress): Promise<number> {
    method getMultisigAddress (line 327) | public async getMultisigAddress(): Promise<EthAddress | undefined> {
    method transferEthFromMultisig (line 336) | public async transferEthFromMultisig(
    method isOwner (line 351) | public async isOwner(address?: EthAddress): Promise<boolean> {
    method isEditor (line 365) | public async isEditor(address?: EthAddress): Promise<boolean> {
    method hasEditorCapabilities (line 380) | public async hasEditorCapabilities(address?: EthAddress): Promise<bool...
    method getArticleHeader (line 392) | public async getArticleHeader(articleId: BigNumber): Promise<EthConten...
    method getCharterHeader (line 396) | public async getCharterHeader(): Promise<EthContentHeader> {
    method getCharter (line 404) | public async getCharter(): Promise<CharterContent | undefined> {
    method loadArticle (line 427) | public async loadArticle(articleId: BigNumber): Promise<NewsroomConten...
    method resolveContent (line 441) | public async resolveContent(header: EthContentHeader): Promise<Newsroo...
    method loadContentHeader (line 459) | public async loadContentHeader(contentId: BigNumber, revisionId?: numb...
    method getName (line 507) | public async getName(): Promise<string> {
    method addRole (line 520) | public async addRole(actor: EthAddress, role: NewsroomRoles): Promise<...
    method removeRole (line 537) | public async removeRole(actor: EthAddress, role: NewsroomRoles): Promi...
    method removeOwner (line 546) | public async removeOwner(actor: EthAddress): Promise<TwoStepEthTransac...
    method setName (line 560) | public async setName(newName: string): Promise<MultisigProxyTransactio...
    method txArchiveForContentId (line 566) | public txArchiveForContentId(contentId: number, revisionId: number): O...
    method estimatePublishURIAndHash (line 577) | public async estimatePublishURIAndHash(
    method estimateUpdateURIAndHash (line 602) | public async estimateUpdateURIAndHash(
    method estimateFromDataMultiSig (line 639) | public async estimateFromDataMultiSig(data: TransactionConfig, content...
    method estimateFromContent (line 651) | public async estimateFromContent(content: any, dataLength: number): Pr...
    method publishURIAndHash (line 662) | public async publishURIAndHash(
    method updateRevisionURIAndHash (line 684) | public async updateRevisionURIAndHash(
    method addArchiveToMultisig (line 728) | public async addArchiveToMultisig(data: TransactionConfig, hex: string...
    method publishWithArchive (line 741) | public async publishWithArchive(
    method updateRevisionURIAndHashWithArchive (line 772) | public async updateRevisionURIAndHashWithArchive(
    method contentIdFromTxHash (line 811) | public async contentIdFromTxHash(txHash: TxHash): Promise<number> {
    method publishContent (line 825) | public async publishContent(
    method revisionFromTxHash (line 856) | public async revisionFromTxHash(txHash: TxHash): Promise<RevisionId> {
    method updateRevision (line 870) | public async updateRevision(
    method signRevision (line 911) | public async signRevision(
    method approveByAuthor (line 953) | public async approveByAuthor(content: string): Promise<ApprovedRevisio...
    method approveByAuthorPersonalSign (line 969) | public async approveByAuthorPersonalSign(contentHash: Hex): Promise<Ap...
    method requireEditor (line 984) | private async requireEditor(): Promise<void> {
    method requireRole (line 988) | private async requireRole(role: NewsroomRoles): Promise<void> {
    method requireOwner (line 997) | private async requireOwner(): Promise<void> {
    method verifyApprovedRevision (line 1003) | private verifyApprovedRevision(storageHeader: StorageHeader, signedDat...
    method uploadToStorage (line 1012) | private async uploadToStorage(
    method twoStepOrMulti (line 1037) | private twoStepOrMulti<T>(

FILE: packages/core/src/contracts/tcr/appeal.ts
  class Appeal (line 10) | class Appeal {
    method constructor (line 15) | constructor(ethApi: EthApi, instance: CivilTCRContract, challengeId: B...
    method getAppealData (line 21) | public async getAppealData(): Promise<AppealData> {
    method getAppealURI (line 60) | private async getAppealURI(): Promise<string | undefined> {
    method getAppealGrantedURI (line 78) | private async getAppealGrantedURI(): Promise<string | undefined> {

FILE: packages/core/src/contracts/tcr/appealChallenge.ts
  class AppealChallenge (line 10) | class AppealChallenge {
    method constructor (line 16) | constructor(ethApi: EthApi, instance: CivilTCRContract, challengeId: B...
    method getAppealChallengeData (line 23) | public async getAppealChallengeData(): Promise<AppealChallengeData> {
    method getAppealChallengeURI (line 42) | private async getAppealChallengeURI(): Promise<string | undefined> {

FILE: packages/core/src/contracts/tcr/challenge.ts
  class Challenge (line 8) | class Challenge {
    method constructor (line 15) | constructor(ethApi: EthApi, instance: CivilTCRContract, challengeId: B...
    method getChallengeData (line 23) | public async getChallengeData(): Promise<ChallengeData> {
    method getListingIdForChallenge (line 55) | public async getListingIdForChallenge(): Promise<EthAddress> {
    method getChallengeURI (line 66) | private async getChallengeURI(): Promise<EthAddress> {

FILE: packages/core/src/contracts/tcr/civilTCR.ts
  class CivilTCR (line 44) | class CivilTCR extends BaseWrapper<CivilTCRContract> {
    method singleton (line 45) | public static async singleton(ethApi: EthApi, contentProvider: Content...
    method singletonMultisigProxy (line 66) | public static async singletonMultisigProxy(
    method constructor (line 87) | private constructor(
    method getVotingAddress (line 105) | public async getVotingAddress(): Promise<EthAddress> {
    method getVoting (line 112) | public getVoting(): Voting {
    method getParameterizer (line 119) | public async getParameterizer(): Promise<Parameterizer> {
    method getGovernment (line 123) | public async getGovernment(): Promise<Government> {
    method getCouncil (line 127) | public async getCouncil(): Promise<Council> {
    method getTokenAddress (line 134) | public async getTokenAddress(): Promise<EthAddress> {
    method getGovernmentAddress (line 138) | public async getGovernmentAddress(): Promise<EthAddress> {
    method getToken (line 145) | public async getToken(): Promise<CVLToken> {
    method getParameterizerAddress (line 160) | public async getParameterizerAddress(): Promise<EthAddress> {
    method allEventsExceptWhitelistFromBlock (line 171) | public allEventsExceptWhitelistFromBlock(
    method allEventsFromBlock (line 251) | public allEventsFromBlock(fromBlock: number = this.defaultBlock, toBlo...
    method whitelistedListings (line 268) | public whitelistedListings(fromBlock: number = this.defaultBlock, toBl...
    method listingsInApplicationStage (line 281) | public listingsInApplicationStage(
    method readyToBeWhitelistedListings (line 297) | public readyToBeWhitelistedListings(
    method currentChallengedCommitVotePhaseListings (line 314) | public currentChallengedCommitVotePhaseListings(
    method currentChallengedRevealVotePhaseListings (line 331) | public currentChallengedRevealVotePhaseListings(
    method listingsAwaitingAppealRequest (line 348) | public listingsAwaitingAppealRequest(
    method listingsWithChallengeToResolve (line 359) | public listingsWithChallengeToResolve(
    method listingsAwaitingAppealJudgment (line 376) | public listingsAwaitingAppealJudgment(
    method listingsAwaitingAppealChallenge (line 393) | public listingsAwaitingAppealChallenge(
    method listingsInAppealChallengeCommitPhase (line 410) | public listingsInAppealChallengeCommitPhase(
    method listingsInAppealChallengeRevealPhase (line 427) | public listingsInAppealChallengeRevealPhase(
    method listingsWithAppealToResolve (line 444) | public listingsWithAppealToResolve(
    method rejectedListings (line 461) | public rejectedListings(fromBlock: number = this.defaultBlock, toBlock...
    method allApplicationsEver (line 469) | public allApplicationsEver(): Observable<ListingWrapper> {
    method allChallengeIDsEver (line 476) | public allChallengeIDsEver(): Observable<WrappedChallengeID> {
    method allAppealChallengeIDsEver (line 485) | public allAppealChallengeIDsEver(): Observable<WrappedAppealChallengeI...
    method challengesStartedByUser (line 497) | public challengesStartedByUser(user: EthAddress): Observable<BigNumber> {
    method rewardsCollected (line 509) | public rewardsCollected(
    method getListing (line 521) | public getListing(listingAddress: EthAddress): Listing {
    method getRawGrantAppealTxData (line 525) | public async getRawGrantAppealTxData(listingAddress: EthAddress): Prom...
    method getChallengeIDForPollID (line 539) | public async getChallengeIDForPollID(pollID: BigNumber): Promise<BigNu...
    method getChallengeData (line 558) | public async getChallengeData(challengeID: BigNumber, listingAddr?: st...
    method getUserAppealChallengeData (line 572) | public async getUserAppealChallengeData(appealChallengeID: BigNumber, ...
    method getUserChallengeData (line 640) | public async getUserChallengeData(challengeID: BigNumber, user: EthAdd...
    method getRewardClaimed (line 722) | public async getRewardClaimed(challengeID: BigNumber, user: EthAddress...
    method voterReward (line 740) | public async voterReward(challengeID: BigNumber, salt: BigNumber, vote...
    method determineReward (line 754) | public async determineReward(challengeID: BigNumber): Promise<BigNumbe...
    method hasClaimedTokens (line 763) | public async hasClaimedTokens(challengeID: BigNumber, voter?: EthAddre...
    method apply (line 781) | public async apply(
    method applyWithURI (line 797) | public async applyWithURI(
    method deposit (line 810) | public async deposit(listingAddress: EthAddress, depositAmount: BigNum...
    method withdraw (line 819) | public async withdraw(listingAddress: EthAddress, withdrawalAmount: Bi...
    method exitListing (line 827) | public async exitListing(listingAddress: EthAddress): Promise<Multisig...
    method challenge (line 836) | public async challenge(listingAddress: EthAddress, data: string = ""):...
    method requestAppeal (line 841) | public async requestAppeal(listingAddress: EthAddress, data: string = ...
    method grantAppeal (line 846) | public async grantAppeal(listingAddress: EthAddress, data: string = ""...
    method challengeGrantedAppeal (line 850) | public async challengeGrantedAppeal(
    method challengeGrantedAppealWithURI (line 857) | public async challengeGrantedAppealWithURI(
    method challengeWithURI (line 870) | public async challengeWithURI(listingAddress: EthAddress, data: string...
    method requestAppealWithURI (line 880) | public async requestAppealWithURI(listingAddress: EthAddress, data: st...
    method updateStatus (line 888) | public async updateStatus(listingAddress: EthAddress): Promise<Multisi...
    method claimReward (line 897) | public async claimReward(challengeID: BigNumber, salt: BigNumber): Pro...
    method multiClaimReward (line 906) | public async multiClaimReward(challengeIDs: BigNumber[], salts: BigNum...

FILE: packages/core/src/contracts/tcr/council.ts
  class Council (line 18) | class Council {
    method singleton (line 19) | public static async singleton(ethApi: EthApi): Promise<Council> {
    method constructor (line 36) | private constructor(govt: GovernmentContract, tcr: CivilTCRContract, m...
    method getRawGrantAppeal (line 43) | public async getRawGrantAppeal(listingAddress: EthAddress, data: strin...
    method grantAppeal (line 47) | public async grantAppeal(listingAddress: EthAddress, data: string = ""...
    method confirmAppeal (line 52) | public async confirmAppeal(txId: number): Promise<TwoStepEthTransactio...
    method transferAppellate (line 56) | public async transferAppellate(newAppellate: EthAddress): Promise<TwoS...
    method getAppellateMembers (line 61) | public async getAppellateMembers(): Promise<string[]> {
    method transactions (line 65) | public transactions(filters: TransactionFilters = { pending: true }): ...

FILE: packages/core/src/contracts/tcr/cvltoken.ts
  class CVLToken (line 17) | class CVLToken extends BaseWrapper<CVLTokenContract> {
    method atUntrusted (line 18) | public static async atUntrusted(
    method singletonTrusted (line 33) | public static async singletonTrusted(web3wrapper: EthApi, multisigAddr...
    method constructor (line 49) | private constructor(
    method approveSpender (line 70) | public async approveSpender(spender: EthAddress, numTokens: BigNumber)...
    method balanceUpdate (line 74) | public balanceUpdate(fromBlock: number = this.defaultBlock, user: EthA...
    method getApprovedTokensForSpender (line 90) | public async getApprovedTokensForSpender(spender: EthAddress, tokenOwn...
    method getBalance (line 102) | public async getBalance(tokenOwner?: EthAddress): Promise<BigNumber> {
    method isTransferAllowed (line 110) | public async isTransferAllowed(to: EthAddress, from?: EthAddress): Pro...
    method isCivilian (line 120) | public async isCivilian(user: EthAddress): Promise<boolean> {
    method isUnlocked (line 124) | public async isUnlocked(user: EthAddress): Promise<boolean> {
    method transfer (line 133) | public async transfer(recipient: EthAddress, numTokens: BigNumber): Pr...
    method transferToSelf (line 137) | public async transferToSelf(numTokens: BigNumber): Promise<MultisigPro...
    method getDefaultCurrentAddress (line 142) | private async getDefaultCurrentAddress(): Promise<EthAddress> {

FILE: packages/core/src/contracts/tcr/government.ts
  type GovtParameters (line 15) | const enum GovtParameters {
  class Government (line 28) | class Government extends BaseWrapper<GovernmentContract> {
    method singleton (line 29) | public static async singleton(ethApi: EthApi, multisigAddress: EthAddr...
    method atUntrusted (line 40) | public static async atUntrusted(web3wrapper: EthApi, address: EthAddre...
    method constructor (line 50) | private constructor(ethApi: EthApi, instance: GovernmentContract, mult...
    method getVoting (line 58) | public async getVoting(): Promise<Voting> {
    method getVotingAddress (line 65) | public async getVotingAddress(): Promise<EthAddress> {
    method getParameterSet (line 72) | public getParameterSet(fromBlock: number = this.defaultBlock): Observa...
    method getAppealFee (line 81) | public async getAppealFee(): Promise<BigNumber> {
    method getParameterValue (line 88) | public async getParameterValue(parameter: string): Promise<BigNumber> {
    method set (line 97) | public async set(paramName: GovtParameters | string, newValue: BigNumb...
    method processProposal (line 102) | public async processProposal(propID: string): Promise<TwoStepEthTransa...
    method getConstitutionURI (line 109) | public async getConstitutionURI(): Promise<string> {
    method getConstitutionHash (line 116) | public async getConstitutionHash(): Promise<string> {
    method getAppellate (line 120) | public async getAppellate(): Promise<EthAddress> {
    method getController (line 124) | public async getController(): Promise<EthAddress> {
    method propIDsInCommitPhase (line 134) | public propIDsInCommitPhase(fromBlock: number = this.defaultBlock): Ob...
    method propIDsInRevealPhase (line 147) | public propIDsInRevealPhase(fromBlock: number = this.defaultBlock): Ob...
    method propIDsToProcess (line 161) | public propIDsToProcess(fromBlock: number = this.defaultBlock): Observ...
    method getPropState (line 168) | public async getPropState(propID: string): Promise<ParamProposalState> {
    method isPropInCommitPhase (line 186) | public async isPropInCommitPhase(propID: string): Promise<boolean> {
    method isPropInRevealPhase (line 203) | public async isPropInRevealPhase(propID: string): Promise<boolean> {
    method isPropInResolvePhase (line 220) | public async isPropInResolvePhase(propID: string): Promise<boolean> {
    method getChallengeID (line 237) | public async getChallengeID(parameter: string): Promise<BigNumber> {
    method getPropCommitExpiry (line 247) | public async getPropCommitExpiry(propID: string): Promise<Date> {
    method getPropRevealExpiry (line 263) | public async getPropRevealExpiry(propID: string): Promise<Date> {
    method getPropProcessBy (line 279) | public async getPropProcessBy(propID: string): Promise<Date> {
    method getPropName (line 288) | public async getPropName(propID: string): Promise<string> {
    method getPropValue (line 297) | public async getPropValue(propID: string): Promise<BigNumber> {

FILE: packages/core/src/contracts/tcr/listing.ts
  class Listing (line 9) | class Listing {
    method constructor (line 15) | constructor(ethApi: EthApi, instance: CivilTCRContract, address: EthAd...
    method getListingWrapper (line 22) | public async getListingWrapper(): Promise<ListingWrapper> {
    method getListingData (line 30) | public async getListingData(): Promise<ListingData> {
    method applications (line 51) | public applications(
    method challenges (line 59) | public challenges(
    method deposits (line 67) | public deposits(fromBlock: number = this.defaultBlock): Observable<Tim...
    method withdrawls (line 73) | public withdrawls(
    method whitelisteds (line 81) | public whitelisteds(
    method applicationRemoveds (line 91) | public applicationRemoveds(
    method listingRemoveds (line 99) | public listingRemoveds(
    method failedChallenges (line 107) | public failedChallenges(
    method successfulChallenges (line 115) | public successfulChallenges(
    method touchedAndRemoves (line 123) | public touchedAndRemoves(
    method appealChallenges (line 131) | public appealChallenges(
    method appealGranteds (line 141) | public appealGranteds(
    method appealRequesteds (line 149) | public appealRequesteds(
    method compositeObservables (line 157) | public compositeObservables(start: number = 0): Observable<any> {
    method compositeEventsSubscription (line 188) | public compositeEventsSubscription(start: number = 0): Subscription {
    method latestChallengeSucceeded (line 192) | public latestChallengeSucceeded(): BehaviorSubject<
    method latestWhitelisted (line 202) | public latestWhitelisted(): BehaviorSubject<
    method latestListingRemoved (line 212) | public latestListingRemoved(): BehaviorSubject<TimestampedEvent<CivilT...

FILE: packages/core/src/contracts/tcr/parameterizer.ts
  type Parameters (line 25) | const enum Parameters {
  function extractPropID (line 43) | function extractPropID(e: any): string {
  class Parameterizer (line 52) | class Parameterizer extends BaseWrapper<CivilParameterizerContract> {
    method singleton (line 53) | public static async singleton(ethApi: EthApi): Promise<Parameterizer> {
    method atUntrusted (line 63) | public static async atUntrusted(web3wrapper: EthApi, address: EthAddre...
    method constructor (line 70) | private constructor(ethApi: EthApi, instance: CivilParameterizerContra...
    method getVoting (line 79) | public async getVoting(): Promise<Voting> {
    method getVotingAddress (line 86) | public async getVotingAddress(): Promise<EthAddress> {
    method getPropState (line 90) | public async getPropState(propID: string): Promise<ParamProposalState> {
    method propIDsInApplicationPhase (line 117) | public propIDsInApplicationPhase(fromBlock: number = this.defaultBlock...
    method propIDsInChallengeCommitPhase (line 130) | public propIDsInChallengeCommitPhase(fromBlock: number = this.defaultB...
    method propIDsInChallengeRevealPhase (line 143) | public propIDsInChallengeRevealPhase(fromBlock: number = this.defaultB...
    method propIDsInChallenge (line 150) | public propIDsInChallenge(fromBlock: number = this.defaultBlock): Obse...
    method propIDsToProcess (line 161) | public propIDsToProcess(fromBlock: number = this.defaultBlock): Observ...
    method pollIDsForResolvedChallenges (line 181) | public pollIDsForResolvedChallenges(propID: string, fromBlock: number ...
    method propIDsForResolvedChallenges (line 194) | public propIDsForResolvedChallenges(fromBlock: number = this.defaultBl...
    method allProposalChallengeIDsEver (line 201) | public allProposalChallengeIDsEver(): Observable<WrappedPropID> {
    method proposeReparameterization (line 219) | public async proposeReparameterization(
    method challengeReparameterization (line 233) | public async challengeReparameterization(propID: Bytes32): Promise<Two...
    method processProposal (line 245) | public async processProposal(propID: Bytes32): Promise<TwoStepEthTrans...
    method claimReward (line 254) | public async claimReward(challengeID: BigNumber, salt: BigNumber): Pro...
    method getProposal (line 269) | public async getProposal(propID: string): Promise<ParamProp> {
    method voterReward (line 285) | public async voterReward(challengeID: BigNumber, salt: BigNumber, vote...
    method getParameterValue (line 299) | public async getParameterValue(parameter: string): Promise<BigNumber> {
    method getChallengeID (line 307) | public async getChallengeID(parameter: string): Promise<BigNumber> {
    method getChallengeData (line 316) | public async getChallengeData(challengeID: BigNumber): Promise<ParamPr...
    method isPropInUnchallengedApplicationPhase (line 338) | public async isPropInUnchallengedApplicationPhase(propID: string): Pro...
    method isPropInUnchallengedApplicationUpdatePhase (line 361) | public async isPropInUnchallengedApplicationUpdatePhase(propID: string...
    method isPropInChallengeCommitPhase (line 382) | public async isPropInChallengeCommitPhase(propID: string): Promise<boo...
    method isPropInChallengeRevealPhase (line 399) | public async isPropInChallengeRevealPhase(propID: string): Promise<boo...
    method isPropInChallengeResolvePhase (line 416) | public async isPropInChallengeResolvePhase(propID: string): Promise<bo...
    method isChallengeResolved (line 433) | public async isChallengeResolved(pollID: BigNumber): Promise<boolean> {
    method getPropApplicationExpiry (line 442) | public async getPropApplicationExpiry(propID: string): Promise<Date> {
    method getPropChallengeCommitExpiry (line 452) | public async getPropChallengeCommitExpiry(propID: string): Promise<Dat...
    method getPropChallengeRevealExpiry (line 468) | public async getPropChallengeRevealExpiry(propID: string): Promise<Dat...
    method getPropProcessBy (line 484) | public async getPropProcessBy(propID: string): Promise<Date> {
    method getPropApplicationExpiryTimestamp (line 493) | public async getPropApplicationExpiryTimestamp(propID: string): Promis...
    method getPropName (line 502) | public async getPropName(propID: string): Promise<string> {
    method getPropValue (line 511) | public async getPropValue(propID: string): Promise<BigNumber> {
    method getUserProposalChallengeData (line 516) | public async getUserProposalChallengeData(propChallengeID: BigNumber, ...
    method getRewardClaimed (line 587) | public async getRewardClaimed(challengeID: BigNumber, user: EthAddress...

FILE: packages/core/src/contracts/tcr/voting.ts
  class Voting (line 17) | class Voting extends BaseWrapper<CivilPLCRVotingContract> {
    method singleton (line 18) | public static async singleton(ethApi: EthApi): Promise<Voting> {
    method atUntrusted (line 28) | public static async atUntrusted(web3wrapper: EthApi, address: EthAddre...
    method constructor (line 34) | private constructor(ethApi: EthApi, instance: CivilPLCRVotingContract,...
    method activePolls (line 48) | public activePolls(fromBlock: number = this.defaultBlock, toBlock?: nu...
    method votesCommitted (line 62) | public votesCommitted(
    method votesRevealed (line 78) | public votesRevealed(
    method votesRescued (line 94) | public votesRescued(
    method balanceUpdate (line 104) | public balanceUpdate(fromBlock: number = this.defaultBlock, user: EthA...
    method withdrawVotingRights (line 119) | public async withdrawVotingRights(numTokens: BigNumber): Promise<TwoSt...
    method requestVotingRights (line 130) | public async requestVotingRights(numTokens: BigNumber): Promise<TwoSte...
    method canRescueTokens (line 144) | public async canRescueTokens(user: EthAddress, pollID: BigNumber): Pro...
    method rescueTokens (line 161) | public async rescueTokens(pollID: BigNumber): Promise<TwoStepEthTransa...
    method rescueTokensInMultiplePolls (line 172) | public async rescueTokensInMultiplePolls(pollIDs: BigNumber[]): Promis...
    method commitVote (line 188) | public async commitVote(
    method revealVote (line 211) | public async revealVote(pollID: BigNumber, voteOption: BigNumber, salt...
    method getRevealedVote (line 218) | public async getRevealedVote(pollID: BigNumber, voter: EthAddress): Pr...
    method isVoterWinner (line 229) | public async isVoterWinner(pollID: BigNumber, voter: EthAddress): Prom...
    method getRevealedVoteEvent (line 242) | public async getRevealedVoteEvent(
    method getNumVotingRights (line 269) | public async getNumVotingRights(tokenOwner?: EthAddress): Promise<BigN...
    method hasVoteBeenRevealed (line 283) | public async hasVoteBeenRevealed(pollID: BigNumber, voter?: EthAddress...
    method isRevealPeriodActive (line 295) | public async isRevealPeriodActive(pollID: BigNumber): Promise<boolean> {
    method isCommitPeriodActive (line 303) | public async isCommitPeriodActive(pollID: BigNumber): Promise<boolean> {
    method didCommitVote (line 307) | public async didCommitVote(user: EthAddress, pollID: BigNumber): Promi...
    method didRevealVote (line 310) | public async didRevealVote(user: EthAddress, pollID: BigNumber): Promi...
    method hasPollEnded (line 318) | public async hasPollEnded(pollID: BigNumber): Promise<boolean> {
    method getTotalTokensForWinners (line 326) | public async getTotalTokensForWinners(pollID: BigNumber): Promise<BigN...
    method getNumPassingTokens (line 337) | public async getNumPassingTokens(pollID: BigNumber, salt: BigNumber, v...
    method getNumLosingTokens (line 343) | public async getNumLosingTokens(pollID: BigNumber, salt: BigNumber, vo...
    method getNumTokens (line 349) | public async getNumTokens(pollID: BigNumber, voter: EthAddress): Promi...
    method isPollPassed (line 357) | public async isPollPassed(pollID: BigNumber): Promise<boolean> {
    method getPrevPollID (line 367) | public async getPrevPollID(tokens: BigNumber, pollID: BigNumber, accou...
    method getPoll (line 377) | public async getPoll(pollID: BigNumber): Promise<PollData> {

FILE: packages/core/src/contracts/utils/contracts.ts
  type EventOptions (line 13) | interface EventOptions {
  function findEvent (line 20) | function findEvent<T extends DecodedLogEntry>(tx: TransactionReceipt, ev...
  function findEventOrThrow (line 27) | function findEventOrThrow<T extends DecodedLogEntry>(tx: TransactionRece...
  function findEvents (line 35) | function findEvents<T extends DecodedLogEntry>(tx: TransactionReceipt, e...
  function isContract (line 39) | function isContract<T extends Contract>(what: any): what is T {
  function isOwnableContract (line 45) | function isOwnableContract(contract: IContract | OwnableContract): contr...
  function isDecodedLog (line 49) | function isDecodedLog(what: Log | EventData): what is DecodedLogEntry {
  type TypedEventFilter (line 53) | type TypedEventFilter<T> = { [P in keyof T]?: T[P] | Array<T[P]> };
  type DecodedFilterCallback (line 54) | type DecodedFilterCallback<L extends DecodedLogEntryEvent> = (err: Error...
  type DecodedFilterResult (line 55) | interface DecodedFilterResult<L extends DecodedLogEntryEvent> {
  type EventFunction (line 60) | type EventFunction<A, L extends DecodedLogEntryEvent<A>> = (
  function streamifyEvent (line 67) | function streamifyEvent<A, L extends DecodedLogEntryEvent<A>>(
  function isTxData (line 104) | function isTxData(data: any): data is TransactionConfig {
  function createTwoStepTransaction (line 115) | function createTwoStepTransaction<T>(
  function createTwoStepSimple (line 127) | function createTwoStepSimple(ethApi: EthApi, txHash: TxHash): TwoStepEth...
  function isEthAddress (line 135) | function isEthAddress(what: any): what is EthAddress {
  function isAddressMultisigWallet (line 139) | async function isAddressMultisigWallet(ethApi: EthApi, address: EthAddre...

FILE: packages/core/src/globals.d.ts
  type Assertion (line 16) | interface Assertion {
  type PromisedAssertion (line 21) | interface PromisedAssertion {

FILE: packages/core/src/types.ts
  type CivilTransactionReceipt (line 8) | type CivilTransactionReceipt = DecodedTransactionReceipt<CivilLogs>;
  type TwoStepEthTransaction (line 10) | interface TwoStepEthTransaction<T = CivilTransactionReceipt> {
  type TimestampedEvent (line 16) | interface TimestampedEvent<T extends DecodedLogEntryEvent> extends Decod...

FILE: packages/core/src/utils/ethersHelpers.ts
  type EthersProviderResult (line 3) | interface EthersProviderResult {
  function makeEthersProvider (line 8) | function makeEthersProvider(web3Provider: any, network: number): EthersP...

FILE: packages/core/src/utils/events.ts
  function createTimestampedEvent (line 5) | function createTimestampedEvent<T extends DecodedLogEntryEvent>(ethApi: ...

FILE: packages/dapp/src/apis/CivilHelper.tsx
  class CivilHelper (line 18) | class CivilHelper {
    method constructor (line 22) | constructor(civil: Civil) {
    method getTCR (line 27) | public async getTCR(): Promise<CivilTCR> {
    method publishContent (line 35) | public async publishContent(content: string): Promise<StorageHeader> {
    method approveForChallenge (line 40) | public async approveForChallenge(): Promise<TwoStepEthTransaction | vo...
    method approveForApply (line 48) | public async approveForApply(multisigAddress?: EthAddress): Promise<Tw...
    method approveForDeposit (line 56) | public async approveForDeposit(
    method approveForAppeal (line 63) | public async approveForAppeal(): Promise<TwoStepEthTransaction | void> {
    method approveForChallengeGrantedAppeal (line 71) | public async approveForChallengeGrantedAppeal(): Promise<TwoStepEthTra...
    method toWei (line 79) | public toWei(amount: number): BigNumber {
    method approve (line 83) | public async approve(amount: BigNumber, multisigAddress?: EthAddress):...
    method approveForProposeReparameterization (line 97) | public async approveForProposeReparameterization(): Promise<TwoStepEth...
    method applyToTCR (line 109) | public async applyToTCR(address: EthAddress, multisigAddress?: EthAddr...
    method challengeGrantedAppeal (line 117) | public async challengeGrantedAppeal(address: EthAddress, data: string ...
    method requestAppealWithUri (line 123) | public async requestAppealWithUri(address: EthAddress, uri: string = "...
    method challengeGrantedAppealWithUri (line 129) | public async challengeGrantedAppealWithUri(address: EthAddress, uri: s...
    method challengeListing (line 135) | public async challengeListing(address: EthAddress, data: string = ""):...
    method challengeListingWithUri (line 141) | public async challengeListingWithUri(address: EthAddress, uri: string ...
    method commitVote (line 147) | public async commitVote(
    method depositTokens (line 162) | public async depositTokens(
    method exitListing (line 172) | public async exitListing(address: EthAddress, multisigAddress?: EthAdd...
    method withdrawTokensFromMultisig (line 178) | public async withdrawTokensFromMultisig(multisigAddress?: EthAddress):...
    method updateStatus (line 184) | public async updateStatus(address: EthAddress): Promise<TwoStepEthTran...
    method getNewsroom (line 190) | public async getNewsroom(address: EthAddress): Promise<any> {
    method getParameterValues (line 197) | public async getParameterValues(params: string[]): Promise<BigNumber[]> {
    method getGovernmentParameters (line 204) | public async getGovernmentParameters(params: string[]): Promise<BigNum...
    method getApplicationMaximumLengthInBlocks (line 210) | public async getApplicationMaximumLengthInBlocks(): Promise<BigNumber> {
    method setAppellate (line 230) | public async setAppellate(address: EthAddress): Promise<TwoStepEthTran...
    method getRawGrantAppeal (line 236) | public async getRawGrantAppeal(address: EthAddress): Promise<string> {
    method grantAppeal (line 244) | public async grantAppeal(address: EthAddress, uri: string): Promise<Tw...
    method confirmAppeal (line 251) | public async confirmAppeal(id: number): Promise<TwoStepEthTransaction> {
    method approveVotingRightsForCommit (line 258) | public async approveVotingRightsForCommit(numTokens: BigNumber): Promi...
    method approveVotingRightsForTransfer (line 276) | public async approveVotingRightsForTransfer(tokensWei: BigNumber): Pro...
    method revealVote (line 295) | public async revealVote(pollID: BigNumber, voteOption: BigNumber, salt...
    method withdrawTokens (line 303) | public async withdrawTokens(
    method proposeReparameterization (line 313) | public async proposeReparameterization(
    method challengeReparameterization (line 323) | public async challengeReparameterization(propID: string): Promise<TwoS...
    method updateReparameterizationProp (line 329) | public async updateReparameterizationProp(propID: string): Promise<Two...
    method updateGovernmentParameter (line 335) | public async updateGovernmentParameter(
    method updateGovernmentProposal (line 345) | public async updateGovernmentProposal(propID: string): Promise<TwoStep...
    method multiClaimRewards (line 352) | public async multiClaimRewards(challengeIDs: BigNumber[], salts: BigNu...
    method claimRewards (line 357) | public async claimRewards(challengeID: BigNumber, salt: BigNumber): Pr...
    method rescueTokens (line 362) | public async rescueTokens(challengeID: BigNumber): Promise<TwoStepEthT...
    method rescueTokensInMultiplePolls (line 369) | public async rescueTokensInMultiplePolls(pollIDs: BigNumber[]): Promis...
    method withdrawVotingRights (line 375) | public async withdrawVotingRights(numTokens: BigNumber): Promise<TwoSt...
    method requestVotingRights (line 381) | public async requestVotingRights(tokensWei: BigNumber): Promise<TwoSte...
    method signMessage (line 387) | public async signMessage(message: string): Promise<EthSignedMessage> {
    method getConstitutionUri (line 392) | public async getConstitutionUri(): Promise<string> {
    method getConstitutionHash (line 398) | public async getConstitutionHash(): Promise<string> {

FILE: packages/dapp/src/components/Auth/AuthButtonContent.tsx
  type AuthButtonProps (line 47) | interface AuthButtonProps {

FILE: packages/dapp/src/components/Auth/AuthWeb3.tsx
  type AuthWeb3Props (line 7) | interface AuthWeb3Props {
  constant USER_ALREADY_EXISTS (line 20) | const USER_ALREADY_EXISTS = "GraphQL error: User already exists with thi...
  constant NO_USER_EXISTS (line 21) | const NO_USER_EXISTS = "GraphQL error: signature invalid or not signed up";
  constant CANCELLED (line 22) | const CANCELLED = "cancelled";
  constant SWITCH_TO_SIGNUP (line 23) | const SWITCH_TO_SIGNUP = "switch to sign up";
  constant SWITCH_TO_LOGIN (line 24) | const SWITCH_TO_LOGIN = "switch to log in";
  function kirbyLogin (line 43) | async function kirbyLogin(): Promise<void> {
  function renderSignRejectionModal (line 93) | function renderSignRejectionModal(): JSX.Element | null {
  function renderSaveErrorModal (line 110) | function renderSaveErrorModal(): JSX.Element | null {
  function cancelTransaction (line 134) | function cancelTransaction(): void {

FILE: packages/dapp/src/components/Auth/AuthWeb3Login.tsx
  type AuthWeb3LoginProps (line 6) | interface AuthWeb3LoginProps {
  type AuthLoginDropdownProps (line 15) | interface AuthLoginDropdownProps {

FILE: packages/dapp/src/components/Auth/AuthWeb3Signup.tsx
  type AuthWeb3SignUpProps (line 5) | interface AuthWeb3SignUpProps {

FILE: packages/dapp/src/components/Auth/CheckEmail.tsx
  type AuthCheckEmailProps (line 5) | interface AuthCheckEmailProps extends Partial<RouteComponentProps> {

FILE: packages/dapp/src/components/Auth/ConfirmEmail.tsx
  type ConfirmEmailTokenProps (line 5) | interface ConfirmEmailTokenProps extends Partial<RouteComponentProps> {

FILE: packages/dapp/src/components/Auth/Eth.tsx
  type AuthEthProps (line 7) | interface AuthEthProps {
  type AuthEthReduxProps (line 11) | interface AuthEthReduxProps {

FILE: packages/dapp/src/components/Auth/Login.tsx
  type AuthLoginProps (line 11) | interface AuthLoginProps {

FILE: packages/dapp/src/components/Auth/SetAvatar.tsx
  type SetAvatarProps (line 4) | interface SetAvatarProps {

FILE: packages/dapp/src/components/Auth/SetEmail.tsx
  type SetUsernameProps (line 4) | interface SetUsernameProps {

FILE: packages/dapp/src/components/Auth/SetUsername.tsx
  type SetUsernameProps (line 4) | interface SetUsernameProps {

FILE: packages/dapp/src/components/Auth/Signup.tsx
  type AuthSignupProps (line 11) | interface AuthSignupProps {

FILE: packages/dapp/src/components/Auth/VerifyToken.tsx
  type AuthVerifyTokenProps (line 5) | interface AuthVerifyTokenProps extends Partial<RouteComponentProps> {

FILE: packages/dapp/src/components/Auth/index.tsx
  type AuthVerifyTokenRouteParams (line 19) | interface AuthVerifyTokenRouteParams {
  type AuthenticatedRedirectRouteParams (line 23) | interface AuthenticatedRedirectRouteParams {
  constant TOKEN_PARAM (line 27) | const TOKEN_PARAM = "jwt";
  function getTokenFromSearch (line 29) | function getTokenFromSearch(search: string): string | undefined {
  class AuthRouter (line 41) | class AuthRouter extends React.Component<RouteComponentProps> {
    method render (line 42) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Boosts/Boost.tsx
  type BoostPageProps (line 10) | interface BoostPageProps {
  class BoostPage (line 17) | class BoostPage extends React.Component<BoostPageProps> {
    method render (line 18) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Boosts/BoostFeedPage.tsx
  class BoostFeedPage (line 16) | class BoostFeedPage extends React.Component {
    method render (line 17) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Boosts/BoostSuccess.tsx
  type BoostPageProps (line 29) | interface BoostPageProps {
  class BoostSuccessPage (line 33) | class BoostSuccessPage extends React.Component<BoostPageProps> {
    method render (line 34) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Boosts/BoostSuccessComponent.tsx
  type StyleProps (line 19) | interface StyleProps {
  type BoostSuccessProps (line 228) | interface BoostSuccessProps {

FILE: packages/dapp/src/components/ContractAddresses.tsx
  type ContractAddressItemProps (line 15) | interface ContractAddressItemProps {
  type ContractAddressesReduxProps (line 21) | interface ContractAddressesReduxProps {

FILE: packages/dapp/src/components/Dashboard/Account/Account.tsx
  type AccountParams (line 12) | interface AccountParams {
  constant TABS (line 15) | const TABS = ["profile", "payments", "transactions"];
  type AccountProps (line 17) | interface AccountProps {

FILE: packages/dapp/src/components/Dashboard/Account/AccountAddCard.tsx
  type AccountAddCardProps (line 9) | interface AccountAddCardProps extends ReactStripeElements.InjectedStripe...
  type AccountAddCardState (line 17) | interface AccountAddCardState {
  type INPUT_STATE (line 28) | enum INPUT_STATE {
  class AccountAddCard (line 44) | class AccountAddCard extends React.Component<AccountAddCardProps, Accoun...
    method constructor (line 46) | constructor(props: AccountAddCardProps) {
    method render (line 60) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Dashboard/Account/AccountPayments.tsx
  type AccountPaymentsState (line 21) | interface AccountPaymentsState {
  class AccountPayments (line 33) | class AccountPayments extends React.Component<{}, AccountPaymentsState> {
    method constructor (line 37) | constructor(props: any) {
    method componentDidMount (line 42) | public async componentDidMount(): Promise<void> {
    method render (line 56) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Dashboard/Account/AccountTransactions.tsx
  type PostData (line 62) | interface PostData {
  type TransactionData (line 77) | interface TransactionData {
  type PaymentHistoryData (line 89) | interface PaymentHistoryData {
  constant SUPPORTED_PAYMENT_TYPES (line 97) | const SUPPORTED_PAYMENT_TYPES = ["PaymentStripe", "PaymentEther"];
  constant SUPPORTED_POST_TYPES (line 98) | const SUPPORTED_POST_TYPES = ["externallink", "boost"];

FILE: packages/dapp/src/components/Dashboard/Account/AccountUserAvatarUpdate.tsx
  type DashboardUserProfileSummaryProps (line 10) | interface DashboardUserProfileSummaryProps {

FILE: packages/dapp/src/components/Dashboard/Account/AccountUserEmailUpdate.tsx
  type AccountUserEmailProps (line 5) | interface AccountUserEmailProps {

FILE: packages/dapp/src/components/Dashboard/ActivityListItemRescueTokens.tsx
  type ActivityListItemRescueTokensOwnProps (line 23) | interface ActivityListItemRescueTokensOwnProps {
  type ActivityListItemRescueTokensReduxProps (line 30) | interface ActivityListItemRescueTokensReduxProps {
  type ProposalItemRescueTokensReduxProps (line 39) | interface ProposalItemRescueTokensReduxProps {
  type ActivityListItemRescueTokensComponentProps (line 47) | type ActivityListItemRescueTokensComponentProps = ActivityListItemRescue...
  type ProposalItemRescueTokensComponentProps (line 50) | type ProposalItemRescueTokensComponentProps = ActivityListItemRescueToke...
  class ActivityListItemRescueTokensComponent (line 52) | class ActivityListItemRescueTokensComponent extends React.Component<
    method componentDidMount (line 58) | public async componentDidMount(): Promise<void> {
    method componentDidUpdate (line 62) | public async componentDidUpdate(): Promise<void> {
    method render (line 66) | public render(): JSX.Element | null {
  class ProposalRescueTokensComponent (line 97) | class ProposalRescueTokensComponent extends React.Component<
    method render (line 103) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Dashboard/ChallengeSummary.tsx
  type AppealDecisionTextProps (line 23) | interface AppealDecisionTextProps {

FILE: packages/dapp/src/components/Dashboard/ChallengesWithRewardsToClaim.tsx
  type TransactionTypes (line 30) | enum TransactionTypes {
  type ChallengesWithRewardsToClaimProps (line 66) | interface ChallengesWithRewardsToClaimProps {
  type ChallengesWithRewardsToClaimState (line 75) | interface ChallengesWithRewardsToClaimState {
  class ChallengesWithRewardsToClaim (line 79) | class ChallengesWithRewardsToClaim extends React.Component<
    method componentWillMount (line 89) | public componentWillMount(): void {
    method componentWillUnmount (line 93) | public componentWillUnmount(): void {
    method render (line 97) | public render(): JSX.Element {
    method isEmpty (line 226) | private isEmpty(obj: any): boolean {

FILE: packages/dapp/src/components/Dashboard/ChallengesWithTokensToRescue.tsx
  type TransactionTypes (line 29) | enum TransactionTypes {
  type ChallengesWithTokensToRescueProps (line 68) | interface ChallengesWithTokensToRescueProps {
  type ChallengesWithTokensToRescueState (line 77) | interface ChallengesWithTokensToRescueState {
  class ChallengesWithTokensToRescue (line 81) | class ChallengesWithTokensToRescue extends React.Component<
    method componentWillMount (line 92) | public componentWillMount(): void {
    method componentWillUnmount (line 96) | public componentWillUnmount(): void {
    method render (line 100) | public render(): JSX.Element {
    method isEmpty (line 195) | private isEmpty(obj: any): boolean {

FILE: packages/dapp/src/components/Dashboard/ClaimRewardsItem/types.ts
  type ClaimRewardsItemOwnProps (line 3) | interface ClaimRewardsItemOwnProps {
  type ClaimRewardsViewComponentProps (line 12) | interface ClaimRewardsViewComponentProps {
  type ProposalClaimRewardsComponentProps (line 19) | interface ProposalClaimRewardsComponentProps {

FILE: packages/dapp/src/components/Dashboard/Dashboard.tsx
  type DashboardProps (line 63) | interface DashboardProps {
  type DashboardReduxProps (line 68) | interface DashboardReduxProps {

FILE: packages/dapp/src/components/Dashboard/DashboardActivity.tsx
  constant TABS (line 33) | const TABS: TDashboardTab[] = [
  constant SUB_TABS (line 39) | const SUB_TABS: { [index in TDashboardTab]?: TDashboardSubTab[] } = {
  type DashboardActivityProps (line 50) | interface DashboardActivityProps {
  type DashboardActivityReduxProps (line 55) | interface DashboardActivityReduxProps {
  type ChallengesToProcess (line 59) | interface ChallengesToProcess {
  type DashboardActivityState (line 63) | interface DashboardActivityState {
  constant NO_RESULTS (line 81) | const NO_RESULTS = "No results from persister";
  constant NO_JSONB (line 82) | const NO_JSONB = "No jsonb found";
  constant USER_NRSIGNUP_QUERY (line 84) | const USER_NRSIGNUP_QUERY = gql`
  constant DASHBOARD_CHALLENGE_FRAGMENT (line 96) | const DASHBOARD_CHALLENGE_FRAGMENT = gql`
  constant USER_CHALLENGE_DASHBOARD_QUERY (line 166) | const USER_CHALLENGE_DASHBOARD_QUERY = gql`
  class DashboardActivity (line 238) | class DashboardActivity extends React.Component<
    method componentWillMount (line 249) | public componentWillMount(): void {
    method render (line 263) | public render(): JSX.Element {
    method renderNoMobileTransactions (line 560) | private renderNoMobileTransactions(): JSX.Element {

FILE: packages/dapp/src/components/Dashboard/DepositTokens.tsx
  type TransactionTypes (line 21) | enum TransactionTypes {
  type DepositTokensProps (line 83) | interface DepositTokensProps {
  type DepositTokenReduxProps (line 87) | interface DepositTokenReduxProps {
  type DepositTokensState (line 91) | interface DepositTokensState {
  class DepositTokensComponent (line 95) | class DepositTokensComponent extends React.Component<
    method constructor (line 102) | constructor(props: any) {
    method componentWillMount (line 109) | public componentWillMount(): void {
    method render (line 113) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Dashboard/ManageNewsroom/ManageNewsroom.tsx
  type ManageQueryData (line 97) | interface ManageQueryData {
  type ManageQueryVariables (line 108) | interface ManageQueryVariables {
  type ManageParams (line 112) | interface ManageParams {
  constant TABS (line 115) | const TABS = ["edit-charter", "smart-contract", "launch-boost"];
  type ManageNewsroomOwnProps (line 117) | interface ManageNewsroomOwnProps extends RouteComponentProps<ManageParam...

FILE: packages/dapp/src/components/Dashboard/ManageNewsroom/ManageNewsroomTextComponents.tsx
  type ManageNewsoomTitleTextProps (line 4) | interface ManageNewsoomTitleTextProps {

FILE: packages/dapp/src/components/Dashboard/ManageNewsroom/WithNewsroomChannelAdminList.tsx
  type WithNewsroomChannelAdminListProps (line 34) | interface WithNewsroomChannelAdminListProps {
  function newsroomChannelsFromQueryData (line 39) | function newsroomChannelsFromQueryData(data?: any): any[] {

FILE: packages/dapp/src/components/Dashboard/MyChallengeItem/MyChallengesItemTypes.ts
  type MyChallengesItemOwnProps (line 14) | interface MyChallengesItemOwnProps {
  type MyChallengesItemWrapperReduxProps (line 22) | interface MyChallengesItemWrapperReduxProps {
  type MyChallengesItemReduxProps (line 28) | interface MyChallengesItemReduxProps {
  type ViewDetailURLProps (line 45) | interface ViewDetailURLProps {
  type MyChallengesItemSubComponentProps (line 50) | type MyChallengesItemSubComponentProps = MyChallengesItemOwnProps &

FILE: packages/dapp/src/components/Dashboard/MyChallenges.tsx
  type MyChallengesProps (line 14) | interface MyChallengesProps {

FILE: packages/dapp/src/components/Dashboard/MyTasks.tsx
  type MyTasksProps (line 21) | interface MyTasksProps {
  type TasksDropdownSelectedProps (line 157) | interface TasksDropdownSelectedProps {

FILE: packages/dapp/src/components/Dashboard/MyTasksItem/MyTasksItemTypes.ts
  type MyTasksItemOwnProps (line 14) | interface MyTasksItemOwnProps {
  type MyTasksItemWrapperReduxProps (line 22) | interface MyTasksItemWrapperReduxProps {
  type MyTasksItemReduxProps (line 28) | interface MyTasksItemReduxProps {
  type ViewDetailURLProps (line 45) | interface ViewDetailURLProps {
  type MyTasksItemSubComponentProps (line 50) | type MyTasksItemSubComponentProps = MyTasksItemOwnProps & ViewDetailURLP...

FILE: packages/dapp/src/components/Dashboard/MyTasksItemPhaseCountdown.tsx
  type TaskItemPhaseCountdownProps (line 7) | interface TaskItemPhaseCountdownProps {

FILE: packages/dapp/src/components/Dashboard/MyTasksList.tsx
  type MyTasksListOwnProps (line 7) | interface MyTasksListOwnProps {

FILE: packages/dapp/src/components/Dashboard/MyTasksProposalItem/MyTasksProposalItemTypes.ts
  type MyTasksProposalItemOwnProps (line 3) | interface MyTasksProposalItemOwnProps {
  type MyTasksProposalItemWrapperReduxProps (line 10) | interface MyTasksProposalItemWrapperReduxProps {
  type MyTasksProposalItemReduxProps (line 14) | interface MyTasksProposalItemReduxProps {

FILE: packages/dapp/src/components/Dashboard/NewsroomsList.tsx
  type NewsroomsListOwnProps (line 5) | interface NewsroomsListOwnProps {

FILE: packages/dapp/src/components/Dashboard/NewsroomsListItem.tsx
  type NewsroomListItemOwnProps (line 6) | interface NewsroomListItemOwnProps {

FILE: packages/dapp/src/components/Dashboard/NewsroomsListItemComponent.tsx
  type NewsroomsListItemOwnProps (line 20) | interface NewsroomsListItemOwnProps {
  type NewsroomsListItemReduxProps (line 27) | interface NewsroomsListItemReduxProps {
  type NewsroomsListItemListingReduxState (line 36) | interface NewsroomsListItemListingReduxState {
  class NewsroomsListItemListingRedux (line 40) | class NewsroomsListItemListingRedux extends React.Component<
    method constructor (line 47) | constructor(props: NewsroomsListItemOwnProps & NewsroomsListItemReduxP...
    method componentDidUpdate (line 52) | public async componentDidUpdate(): Promise<void> {
    method componentDidMount (line 56) | public async componentDidMount(): Promise<void> {
    method render (line 60) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Dashboard/PhaseCountdownTimer.tsx
  type TPhaseCountdownBarProps (line 6) | type TPhaseCountdownBarProps = ProgressBarCountdownProps & CountdownTime...

FILE: packages/dapp/src/components/Dashboard/ReclaimTokens.tsx
  type TransactionTypes (line 15) | enum TransactionTypes {
  type ReclaimTokenProps (line 53) | interface ReclaimTokenProps {
  type ReclaimTokensState (line 57) | interface ReclaimTokensState {
  class ReclaimTokensComponent (line 62) | class ReclaimTokensComponent extends React.Component<
    method constructor (line 69) | constructor(props: ReclaimTokenProps & InjectedTransactionStatusModalP...
    method componentWillMount (line 77) | public componentWillMount(): void {
    method render (line 81) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Dashboard/RescueTokensItem/types.ts
  type RescueTokensItemOwnProps (line 3) | interface RescueTokensItemOwnProps {
  type RescueTokensViewComponentProps (line 12) | interface RescueTokensViewComponentProps {
  type ProposalRescueTokensComponentProps (line 18) | interface ProposalRescueTokensComponentProps {

FILE: packages/dapp/src/components/Dashboard/TransferCivilTokens.tsx
  type TransferCivilTokensProps (line 21) | interface TransferCivilTokensProps {
  type TransferCivilTokensReduxProps (line 25) | interface TransferCivilTokensReduxProps {
  type TransferCivilTokensState (line 31) | interface TransferCivilTokensState {
  class TransferCivilTokens (line 36) | class TransferCivilTokens extends React.Component<
    method render (line 48) | public render(): JSX.Element {
    method renderTransferTokensMsg (line 72) | private renderTransferTokensMsg(): JSX.Element {

FILE: packages/dapp/src/components/Dashboard/UserManagement/UserManagementNotification.tsx
  type UserManagementNotificationProps (line 24) | interface UserManagementNotificationProps {

FILE: packages/dapp/src/components/Dashboard/UserManagement/UserManagementPageLayout.tsx
  type UserManagementPageLayoutProps (line 31) | interface UserManagementPageLayoutProps {

FILE: packages/dapp/src/components/Dashboard/UserManagement/UserManagementSection.tsx
  type UserManagementSectionProps (line 35) | interface UserManagementSectionProps {

FILE: packages/dapp/src/components/Dashboard/WinningChallengeResults.tsx
  type WinningChallengeWrapperResultsProps (line 6) | interface WinningChallengeWrapperResultsProps {

FILE: packages/dapp/src/components/GetStarted.tsx
  constant COLUMN_BREAK_QUERY (line 19) | const COLUMN_BREAK_QUERY = "@media only screen and (max-width: 900px)";
  constant CTA (line 116) | const CTA = styled.div`
  constant DEFAULT_NEXT (line 163) | const DEFAULT_NEXT = formatRoute(routes.DASHBOARD, { activeDashboardTab:...

FILE: packages/dapp/src/components/GlobalNav.tsx
  function maybeAccount (line 12) | function maybeAccount(state: State): any {

FILE: packages/dapp/src/components/Main.tsx
  type MainReduxProps (line 74) | interface MainReduxProps {
  type MainOwnProps (line 78) | interface MainOwnProps {
  function onNetworkUpdated (line 106) | async function onNetworkUpdated(network: number): Promise<void> {

FILE: packages/dapp/src/components/Parameterizer/ChallengeProposal.tsx
  type ChallengeProposalProps (line 16) | interface ChallengeProposalProps extends ChallengeProposalComponentProps {
  type TransactionTypes (line 20) | enum TransactionTypes {
  class ChallengeProposal (line 84) | class ChallengeProposal extends React.Component<ChallengeProposalProps &...
    method componentWillMount (line 87) | public componentWillMount(): void {
    method render (line 92) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Parameterizer/ChallengeProposalCommitVote.tsx
  type TransactionTypes (line 23) | enum TransactionTypes {
  class ChallengeProposalCommitVote (line 87) | class ChallengeProposalCommitVote extends React.Component<
    method constructor (line 94) | public constructor(
    method componentWillMount (line 105) | public componentWillMount(): void {
    method render (line 110) | public render(): JSX.Element {
    method renderReviewVoteModal (line 133) | private renderReviewVoteModal(): JSX.Element {
    method commitMaxTokens (line 165) | private commitMaxTokens(): void {

FILE: packages/dapp/src/components/Parameterizer/ChallengeProposalDetail.tsx
  type ChallengeDetailContainerProps (line 30) | interface ChallengeDetailContainerProps {
  type ChallengeContainerReduxProps (line 41) | interface ChallengeContainerReduxProps {
  type ChallengeDetailProps (line 50) | interface ChallengeDetailProps {
  type ChallengeVoteState (line 67) | interface ChallengeVoteState {
  class ChallengeDetail (line 76) | class ChallengeDetail extends React.Component<ChallengeDetailProps & Par...
    method render (line 77) | public render(): JSX.Element {
    method renderCommitStage (line 91) | private renderCommitStage(): JSX.Element {
    method renderRevealStage (line 137) | private renderRevealStage(): JSX.Element {
  class ChallengeContainer (line 197) | class ChallengeContainer extends React.Component<
    method render (line 200) | public render(): JSX.Element | null {

FILE: packages/dapp/src/components/Parameterizer/ChallengeProposalResolve.tsx
  type ChallegeProposalResolveProps (line 16) | interface ChallegeProposalResolveProps extends ResolveChallengeProposalC...
  type TransactionTypes (line 25) | enum TransactionTypes {
  class ChallengeProposalResolve (line 63) | class ChallengeProposalResolve extends React.Component<
    method componentWillMount (line 69) | public componentWillMount(): void {
    method render (line 74) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Parameterizer/ChallengeProposalRevealVote.tsx
  type TransactionTypes (line 26) | enum TransactionTypes {
  class ChallengeProposalRevealVote (line 60) | class ChallengeProposalRevealVote extends React.Component<
    method constructor (line 67) | constructor(
    method componentWillMount (line 79) | public componentWillMount(): void {
    method render (line 89) | public render(): JSX.Element {
    method getVoteOption (line 104) | private getVoteOption(): string | undefined {

FILE: packages/dapp/src/components/Parameterizer/CreateGovtProposal.tsx
  type CreateGovtProposalProps (line 17) | interface CreateGovtProposalProps extends CreateProposalComponentProps {
  type TransactionTypes (line 21) | enum TransactionTypes {
  class CreateGovtProposal (line 66) | class CreateGovtProposal extends React.Component<CreateGovtProposalProps...
    method componentWillMount (line 70) | public componentWillMount(): void {
    method render (line 75) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Parameterizer/CreateProposal.tsx
  type CreateProposalProps (line 19) | interface CreateProposalProps extends CreateProposalComponentProps {
  type TransactionTypes (line 23) | enum TransactionTypes {
  class CreateProposal (line 85) | class CreateProposal extends React.Component<CreateProposalProps & Injec...
    method componentWillMount (line 89) | public componentWillMount(): void {
    method render (line 94) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Parameterizer/GovernmentReparameterization.tsx
  type GovernmentReparameterizationProps (line 9) | interface GovernmentReparameterizationProps {
  type GovernmentReparameterizationState (line 13) | interface GovernmentReparameterizationState {
  class GovernmentReparameterization (line 18) | class GovernmentReparameterization extends React.Component<
    method constructor (line 22) | constructor(props: any) {
    method render (line 30) | public render(): JSX.Element {
    method componentWillReceiveProps (line 58) | public componentWillReceiveProps(nextProps: GovernmentReparameterizati...

FILE: packages/dapp/src/components/Parameterizer/Parameter.tsx
  constant PARAMETER_PROPOSALS_QUERY (line 25) | const PARAMETER_PROPOSALS_QUERY = gql`
  type ParameterProps (line 42) | interface ParameterProps {
  class ParameterComponent (line 58) | class ParameterComponent extends React.Component<ParameterProps> {
    method render (line 62) | public render(): JSX.Element {
    method renderCreateProposalAction (line 82) | private renderCreateProposalAction(): JSX.Element {
    method renderProposals (line 96) | private renderProposals(): JSX.Element {

FILE: packages/dapp/src/components/Parameterizer/ProcessProposal.tsx
  type ProcessProposalProps (line 14) | interface ProcessProposalProps extends ProcessProposalComponentProps {
  type TransactionTypes (line 18) | enum TransactionTypes {
  class ProcessProposal (line 58) | class ProcessProposal extends React.Component<ProcessProposalProps & Inj...
    method componentWillMount (line 62) | public componentWillMount(): void {
    method render (line 67) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Parameterizer/Proposal.tsx
  type ProposalProps (line 9) | interface ProposalProps {
  class Proposal (line 16) | class Proposal extends React.Component<ProposalProps> {
    method render (line 20) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Parameterizer/index.tsx
  type GovernmentParameterProps (line 163) | interface GovernmentParameterProps {
  type ParameterizerPageProps (line 173) | interface ParameterizerPageProps {
  type ParameterizerPageState (line 178) | interface ParameterizerPageState {
  class Parameterizer (line 191) | class Parameterizer extends React.Component<
    method constructor (line 198) | constructor(props: ParameterizerPageProps & DispatchProp<any> & Parame...
    method render (line 208) | public render(): JSX.Element {

FILE: packages/dapp/src/components/Parameterizer/proposeReparameterization.tsx
  type ProposeReparameterizationProps (line 9) | interface ProposeReparameterizationProps {
  type ProposeReparameterizationState (line 14) | interface ProposeReparameterizationState {
  class ProposeReparameterization (line 19) | class ProposeReparameterization extends React.Component<
    method constructor (line 26) | constructor(props: any) {
    method render (line 34) | public render(): JSX.Element {
    method componentWillReceiveProps (line 70) | public componentWillReceiveProps(nextProps: ProposeReparameterizationP...

FILE: packages/dapp/src/components/SignUpNewsroom.tsx
  type CreateNewsroomProps (line 9) | type CreateNewsroomProps = RouteComponentProps<{

FILE: packages/dapp/src/components/StoryFeed/CivilComment.tsx
  type CivilCommentProps (line 14) | interface CivilCommentProps {

FILE: packages/dapp/src/components/StoryFeed/MoreComments.tsx
  type MoreCommentsProps (line 8) | interface MoreCommentsProps {

FILE: packages/dapp/src/components/StoryFeed/PostComments.tsx
  type PostCommentsProps (line 11) | interface PostCommentsProps {

FILE: packages/dapp/src/components/StoryFeed/Story.tsx
  type StoryProps (line 7) | interface StoryProps {

FILE: packages/dapp/src/components/StoryFeed/StoryBoost.tsx
  type StoryBoostProps (line 20) | interface StoryBoostProps {

FILE: packages/dapp/src/components/StoryFeed/StoryDetails.tsx
  type StoryDetailsProps (line 33) | interface StoryDetailsProps {

FILE: packages/dapp/src/components/StoryFeed/StoryFeed.tsx
  type StoryFeedProps (line 11) | interface StoryFeedProps {
  class StoryFeed (line 24) | class StoryFeed extends React.Component<StoryFeedProps> {
    method render (line 28) | public render(): JSX.Element {

FILE: packages/dapp/src/components/StoryFeed/StoryFeedItem.tsx
  type StoryFeedItemProps (line 14) | interface StoryFeedItemProps {
  type StoryFeedItemStates (line 28) | interface StoryFeedItemStates {
  class StoryFeedItem (line 32) | class StoryFeedItem extends React.Component<StoryFeedItemProps, StoryFee...
    method constructor (line 33) | public constructor(props: any) {
    method render (line 40) | public render(): JSX.Element {

FILE: packages/dapp/src/components/StoryFeed/StoryFeedPage.tsx
  type StoryFeedPageProps (line 8) | interface StoryFeedPageProps {
  class StoryFeedPage (line 16) | class StoryFeedPage extends React.Component<StoryFeedPageProps> {
    method render (line 19) | public render(): JSX.Element {

FILE: packages/dapp/src/components/StoryFeed/StoryFeedStyledComponents.tsx
  type StoryRegistryStatusProps (line 266) | interface StoryRegistryStatusProps {
  type StoryModalProps (line 305) | interface StoryModalProps {

FILE: packages/dapp/src/components/StoryFeed/StoryModal.tsx
  type StoryModalProps (line 6) | interface StoryModalProps {

FILE: packages/dapp/src/components/StoryFeed/StoryNewsroomDetails.tsx
  type StoryNewsroomDetailsProps (line 20) | interface StoryNewsroomDetailsProps {

FILE: packages/dapp/src/components/StoryFeed/StoryRegistryDetails.tsx
  type StoryRegistryDetailsProps (line 6) | interface StoryRegistryDetailsProps {

FILE: packages/dapp/src/components/StoryFeed/queries.ts
  constant STORY_FEED_QUERY (line 3) | const STORY_FEED_QUERY = gql`
  constant COMMENT_FRAGMENT (line 86) | const COMMENT_FRAGMENT = gql`
  constant POST_CHILDREN (line 101) | const POST_CHILDREN = gql`
  constant STORY_BOOST (line 135) | const STORY_BOOST = gql`
  constant POST_COMMENT_MUTATION (line 215) | const POST_COMMENT_MUTATION = gql`
  constant COMMENT (line 223) | const COMMENT = gql`

FILE: packages/dapp/src/components/StoryFeed/types.ts
  type StoryBoostData (line 1) | interface StoryBoostData {
  type StoryBoostPaymentsData (line 19) | interface StoryBoostPaymentsData {
  type StoryNewsroomData (line 27) | interface StoryNewsroomData {
  type OpenGraphData (line 40) | interface OpenGraphData {
  type OpenGraphImageData (line 50) | interface OpenGraphImageData {

FILE: packages/dapp/src/components/Tokens/Tokens.tsx
  type TokensProps (line 8) | interface TokensProps {

FILE: packages/dapp/src/components/Web3AuthWrapper.tsx
  function onNetworkUpdated (line 46) | async function onNetworkUpdated(network: number): Promise<void> {
  function onNetworkNameUpdated (line 51) | async function onNetworkNameUpdated(networkName: string): Promise<void> {
  function handleLoginClicked (line 90) | async function handleLoginClicked(): Promise<void> {
  function handleSignUpClicked (line 94) | async function handleSignUpClicked(): Promise<void> {
  function handleOnOuterClicked (line 98) | async function handleOnOuterClicked(): Promise<void> {
  function handleOnSignupContinue (line 102) | async function handleOnSignupContinue(): Promise<void> {
  function handleOnLoginContinue (line 106) | async function handleOnLoginContinue(): Promise<void> {
  function handleSignUpUserExists (line 110) | async function handleSignUpUserExists(): Promise<void> {
  function handleLogInNoUserExists (line 114) | async function handleLogInNoUserExists(): Promise<void> {
  function handleUserSelectSignUp (line 118) | async function handleUserSelectSignUp(): Promise<void> {
  function handleUserSelectLogIn (line 122) | async function handleUserSelectLogIn(): Promise<void> {
  function handleUpdateUser (line 126) | async function handleUpdateUser(): Promise<void> {

FILE: packages/dapp/src/components/WrongNetwork.tsx
  type WrongNetworkProps (line 7) | interface WrongNetworkProps {

FILE: packages/dapp/src/components/council/Government.tsx
  type CouncilPageProps (line 13) | interface CouncilPageProps {
  class Government (line 19) | class Government extends React.Component<CouncilPageProps & DispatchProp...
    method constructor (line 20) | constructor(props: any) {
    method render (line 24) | public render(): JSX.Element {

FILE: packages/dapp/src/components/council/SetAppellate.tsx
  type SetAppellateState (line 8) | interface SetAppellateState {
  class SetAppellate (line 12) | class SetAppellate extends React.Component<{}, SetAppellateState> {
    method constructor (line 16) | constructor(props: any) {
    method render (line 23) | public render(): JSX.Element {

FILE: packages/dapp/src/components/errors/ErrorBoundry.tsx
  class ErrorBoundry (line 4) | class ErrorBoundry extends React.Component<any, any> {
    method constructor (line 5) | constructor(props: any) {
    method componentDidCatch (line 10) | public componentDidCatch(error: Error, errorInfo: any): void {
    method render (line 20) | public render(): JSX.Element | React.ReactNode {

FILE: packages/dapp/src/components/header/NavBarTypes.ts
  type NavUserAccountProps (line 1) | interface NavUserAccountProps {
  type NavAuthenticationProps (line 8) | interface NavAuthenticationProps {
  type NavProps (line 14) | type NavProps = NavUserAccountProps & NavAuthenticationProps & NavDrawer...
  type NavState (line 16) | interface NavState {
  type NavArrowProps (line 20) | interface NavArrowProps {
  type NavMenuState (line 24) | interface NavMenuState {

FILE: packages/dapp/src/components/header/NavDrawer.tsx
  type NavDrawerProps (line 11) | interface NavDrawerProps {
  function onLogoutPressed (line 21) | async function onLogoutPressed(): Promise<any> {
  class NavDrawer (line 59) | class NavDrawer extends React.Component<NavDrawerProps> {
    method componentDidMount (line 62) | public componentDidMount(): void {
    method componentWillUnmount (line 67) | public componentWillUnmount(): void {
    method render (line 72) | public render(): React.ReactPortal {

FILE: packages/dapp/src/components/header/NavDropDown.tsx
  type NavDropDownProps (line 4) | interface NavDropDownProps {

FILE: packages/dapp/src/components/header/NavLink.tsx
  type NavLinkProps (line 4) | interface NavLinkProps {

FILE: packages/dapp/src/components/header/NavMenu.tsx
  type NavMenuCloseDrawerProp (line 22) | interface NavMenuCloseDrawerProp {
  class NavMenuResponsiveDrawer (line 68) | class NavMenuResponsiveDrawer extends React.Component<NavMenuState & Nav...
    method componentDidMount (line 71) | public componentDidMount(): void {
    method componentWillUnmount (line 75) | public componentWillUnmount(): void {
    method render (line 79) | public render(): React.ReactPortal | null {
  class NavMenu (line 96) | class NavMenu extends React.Component<{}, NavMenuState> {
    method constructor (line 97) | constructor(props: {}) {
    method render (line 104) | public render(): JSX.Element {

FILE: packages/dapp/src/components/header/NavMenuResponsiveToggleButton.tsx
  type NavMenuResponsiveToggleButtonProps (line 8) | interface NavMenuResponsiveToggleButtonProps extends NavMenuState {
  class NavMenuResponsiveToggleButton (line 12) | class NavMenuResponsiveToggleButton extends React.Component<NavMenuRespo...
    method render (line 13) | public render(): JSX.Element {

FILE: packages/dapp/src/components/header/UserAccount.tsx
  function onLoginPressed (line 44) | async function onLoginPressed(): Promise<any> {
  function onSignupPressed (line 47) | async function onSignupPressed(): Promise<any> {

FILE: packages/dapp/src/components/listing/AppealAwaitingDecision.tsx
  type TransactionTypes (line 22) | enum TransactionTypes {
  type AwaitingAppealDecisionState (line 72) | interface AwaitingAppealDecisionState {
  class AwaitingAppealDecision (line 76) | class AwaitingAppealDecision extends React.Component<
    method constructor (line 83) | constructor(props: AppealDetailProps & InjectedTransactionStatusModalP...
    method render (line 89) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/AppealChallengeCommitVote.tsx
  type TransactionTypes (line 31) | enum TransactionTypes {
  type AppealCommitCardKeyState (line 100) | interface AppealCommitCardKeyState {
  class AppealChallengeCommitVote (line 112) | class AppealChallengeCommitVote extends React.Component<
    method constructor (line 119) | constructor(props: any) {
    method componentWillMount (line 129) | public componentWillMount(): void {
    method render (line 134) | public render(): JSX.Element | null {
    method commitMaxTokens (line 183) | private commitMaxTokens(): void {
    method renderReviewVoteModal (line 194) | private renderReviewVoteModal(): JSX.Element {

FILE: packages/dapp/src/components/listing/AppealChallengeDetail.tsx
  type AppealChallengeDetailProps (line 15) | interface AppealChallengeDetailProps {
  type ChallengeVoteState (line 31) | interface ChallengeVoteState {
  class AppealChallengeDetail (line 38) | class AppealChallengeDetail extends React.Component<AppealChallengeDetai...
    method render (line 39) | public render(): JSX.Element {
    method renderCommitStage (line 54) | private renderCommitStage(): JSX.Element {
    method renderRevealStage (line 58) | private renderRevealStage(): JSX.Element {
    method renderResolveAppealChallenge (line 62) | private renderResolveAppealChallenge(): JSX.Element {

FILE: packages/dapp/src/components/listing/AppealChallengeResolve.tsx
  type TransactionTypes (line 21) | enum TransactionTypes {
  type ChallengeResolveProps (line 59) | interface ChallengeResolveProps extends ChallengeContainerProps {
  class AppealChallengeResolve (line 71) | class AppealChallengeResolve extends React.Component<AppealChallengeDeta...
    method componentWillMount (line 75) | public componentWillMount(): void {
    method render (line 79) | public render(): JSX.Element | null {

FILE: packages/dapp/src/components/listing/AppealChallengeRevealVote.tsx
  type TransactionTypes (line 30) | enum TransactionTypes {
  type AppealRevealCardKeyState (line 64) | interface AppealRevealCardKeyState {
  class AppealChallengeRevealVote (line 76) | class AppealChallengeRevealVote extends React.Component<
    method constructor (line 83) | constructor(props: AppealChallengeDetailProps & InjectedTransactionSta...
    method componentWillMount (line 94) | public componentWillMount(): void {
    method render (line 103) | public render(): JSX.Element | null {
    method getVoteOption (line 198) | private getVoteOption(): string | undefined {

FILE: packages/dapp/src/components/listing/AppealDetail.tsx
  type AppealDetailProps (line 23) | interface AppealDetailProps {
  class AppealDetail (line 41) | class AppealDetail extends React.Component<AppealDetailProps> {
    method render (line 42) | public render(): JSX.Element {
    method renderAwaitingAppealDecision (line 76) | private renderAwaitingAppealDecision(): JSX.Element {
    method renderCanResolve (line 80) | private renderCanResolve(): JSX.Element {
    method renderChallengeAppealStage (line 84) | private renderChallengeAppealStage(): JSX.Element {

FILE: packages/dapp/src/components/listing/AppealResolve.tsx
  type TransactionTypes (line 33) | enum TransactionTypes {
  class AppealResolve (line 71) | class AppealResolve extends React.Component<AppealDetailProps & Injected...
    method render (line 75) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/AppealSubmitChallenge.tsx
  class AppealSubmitChallenge (line 37) | class AppealSubmitChallenge extends React.Component<AppealDetailProps> {
    method render (line 38) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/ApplicationUpdateStatus.tsx
  type ApplicationUpdateStatusProps (line 11) | interface ApplicationUpdateStatusProps {
  type TransactionTypes (line 15) | enum TransactionTypes {
  class ApplicationUpdateStatus (line 48) | class ApplicationUpdateStatus extends React.Component<
    method componentDidMount (line 54) | public componentDidMount(): void {
    method render (line 58) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/Challenge.tsx
  type ChallengePageProps (line 28) | interface ChallengePageProps {
  class ChallengePage (line 32) | class ChallengePage extends React.Component<ChallengePageProps> {
    method render (line 33) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/ChallengeCommitVote.tsx
  type TransactionTypes (line 31) | enum TransactionTypes {
  type CommitCardKeyState (line 99) | interface CommitCardKeyState {
  class ChallengeCommitVote (line 103) | class ChallengeCommitVote extends React.Component<
    method constructor (line 110) | constructor(props: any) {
    method componentWillMount (line 120) | public componentWillMount(): void {
    method render (line 125) | public render(): JSX.Element | null {
    method commitMaxTokens (line 170) | private commitMaxTokens(): void {
    method renderReviewVoteModal (line 181) | private renderReviewVoteModal(): JSX.Element {

FILE: packages/dapp/src/components/listing/ChallengeDetail.tsx
  type ChallengeDetailContainerProps (line 77) | interface ChallengeDetailContainerProps {
  type ChallengeContainerReduxProps (line 88) | interface ChallengeContainerReduxProps {
  type ChallengeDetailProps (line 101) | interface ChallengeDetailProps {
  type ChallengeVoteState (line 120) | interface ChallengeVoteState {
  type ProgressModalPropsState (line 130) | interface ProgressModalPropsState {
  class ChallengeDetail (line 141) | class ChallengeDetail extends React.Component<ChallengeDetailProps> {
    method render (line 142) | public render(): JSX.Element {
    method renderAllStages (line 209) | private renderAllStages(
    method renderAppeal (line 235) | private renderAppeal(userAppealChallengeData?: UserChallengeData): JSX...
    method renderCommitStage (line 258) | private renderCommitStage(userChallengeData?: UserChallengeData): JSX....
    method renderRevealStage (line 266) | private renderRevealStage(userChallengeData?: UserChallengeData): JSX....
    method renderRequestAppealStage (line 274) | private renderRequestAppealStage(): JSX.Element {
    method renderVoteResult (line 295) | private renderVoteResult(): JSX.Element {
    method renderRewardsDetail (line 307) | private renderRewardsDetail(userChallengeData?: UserChallengeData): JS...
    method renderAppealChallengeRewardsDetail (line 318) | private renderAppealChallengeRewardsDetail(userAppealChallengeData?: U...
  class ChallengeContainer (line 330) | class ChallengeContainer extends React.Component<
    method componentDidUpdate (line 336) | public componentDidUpdate(): void {
    method render (line 345) | public render(): JSX.Element | null {

FILE: packages/dapp/src/components/listing/ChallengeResolve.tsx
  type TransactionTypes (line 20) | enum TransactionTypes {
  type ChallengeResolveProps (line 58) | interface ChallengeResolveProps extends ChallengeContainerProps {
  class ChallengeResolve (line 69) | class ChallengeResolve extends React.Component<ChallengeResolveProps & I...
    method componentWillMount (line 73) | public componentWillMount(): void {
    method render (line 77) | public render(): JSX.Element | null {

FILE: packages/dapp/src/components/listing/ChallengeRevealVote.tsx
  type TransactionTypes (line 39) | enum TransactionTypes {
  type RevealCardKeyState (line 73) | interface RevealCardKeyState {
  class ChallengeRevealVote (line 77) | class ChallengeRevealVote extends React.Component<
    method constructor (line 84) | constructor(props: ChallengeDetailProps & InjectedTransactionStatusMod...
    method componentWillMount (line 95) | public componentWillMount(): void {
    method render (line 104) | public render(): JSX.Element | null {
    method getVoteOption (line 139) | private getVoteOption(): string | undefined {

FILE: packages/dapp/src/components/listing/ChallengeRewardsDetail.tsx
  type ChallengeRewardsDetailProps (line 15) | interface ChallengeRewardsDetailProps {
  class ChallengeRewardsDetail (line 23) | class ChallengeRewardsDetail extends React.Component<ChallengeRewardsDet...
    method render (line 27) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/EmailSignup.tsx
  type EmailSignupState (line 6) | interface EmailSignupState {
  class EmailSignup (line 13) | class EmailSignup extends React.Component<{}, EmailSignupState> {
    method constructor (line 14) | constructor(props: any) {
    method render (line 23) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/Listing.tsx
  type ListingPageProps (line 21) | interface ListingPageProps {
  type PreListingReduxProps (line 29) | interface PreListingReduxProps {
  class ListingPageComponent (line 34) | class ListingPageComponent extends React.Component<ListingPageProps> {
    method render (line 35) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/ListingChallengeStatement.tsx
  type ListingChallengeStatementProps (line 19) | interface ListingChallengeStatementProps {
  type ListingChallengeStatementReduxProps (line 26) | interface ListingChallengeStatementReduxProps {
  class ListingChallengeStatement (line 32) | class ListingChallengeStatement extends React.Component<
    method componentDidMount (line 38) | public async componentDidMount(): Promise<void> {
    method componentDidUpdate (line 42) | public async componentDidUpdate(
    method render (line 50) | public render(): JSX.Element {
    method getContents (line 60) | private async getContents(): Promise<void> {

FILE: packages/dapp/src/components/listing/ListingCharter.tsx
  type ListingCharterProps (line 32) | interface ListingCharterProps {
  type ListingCharterReduxProps (line 40) | interface ListingCharterReduxProps {
  type ListingCharterState (line 44) | interface ListingCharterState {
  class ListingCharter (line 123) | class ListingCharter extends React.Component<
    method constructor (line 130) | constructor(props: ListingCharterProps & DispatchProp) {
    method componentDidUpdate (line 138) | public async componentDidUpdate(prevProps: ListingCharterProps, prevSt...
    method render (line 158) | public render(): JSX.Element {
    method getSelectedCharterContent (line 206) | private getSelectedCharterContent(): CharterData | undefined {
    method getSelectedPreviousCharterContent (line 220) | private getSelectedPreviousCharterContent(): CharterData | undefined {
    method getSelectedCharterTimestamp (line 235) | private getSelectedCharterTimestamp(): [string, string] | undefined {
    method isViewingFirstRevision (line 248) | private isViewingFirstRevision(): boolean {
    method renderCharterRevisionHeader (line 263) | private renderCharterRevisionHeader(): JSX.Element {
    method renderCharterField (line 295) | private renderCharterField(charterField: string, prevCharterField?: st...
    method renderPendingUpdateMessage (line 320) | private renderPendingUpdateMessage(): JSX.Element | null {
    method renderDiffSummary (line 337) | private renderDiffSummary(charterMission: any, prevCharterMission: any...
    method renderSelectedCharterRevisionTimestamp (line 369) | private renderSelectedCharterRevisionTimestamp(): JSX.Element {
    method renderCharterRevisionNav (line 397) | private renderCharterRevisionNav(): JSX.Element {

FILE: packages/dapp/src/components/listing/ListingCharterRosterMember.tsx
  type ListingCharterRosterMemberProps (line 7) | interface ListingCharterRosterMemberProps {
  constant DEFAULT_AVATAR_URL (line 66) | const DEFAULT_AVATAR_URL = "https://www.gravatar.com/avatar/000000000000...
  class ListingCharterRosterMember (line 68) | class ListingCharterRosterMember extends React.Component<ListingCharterR...
    method render (line 69) | public render(): JSX.Element {

FILE: packages/dapp/src/components/listing/ListingDiscourse.tsx
  type ListingDiscourseProps (line 14) | interface ListingDiscourseProps {
  type DiscourseCommentsProps (line 19) | interface DiscourseCommentsProps {

FILE: packages/dapp/src/components/listing/ListingEvent.tsx
  type ListingEventProps (line 26) | interface ListingEventProps {
  class ListingEvent (line 37) | class ListingEvent extends React.Component<ListingEventProps> {
    method constructor (line 38) | constructor(props: any) {
    method render (line 42) | public render(): JSX.Element | null {
    method renderWithdrawalEvent (line 99) | private renderWithdrawalEvent(wrappedEvent: any): JSX.Element {
    method renderDepositEvent (line 105) | private renderDepositEvent(wrappedEvent: any): JSX.Element {
    method renderApplicationEvent (line 111) | private renderApplicationEvent(wrappedEvent: any): JSX.Element {
    method renderChallengeEvent (line 117) | private renderChallengeEvent(wrappedEvent: any): JSX.Element {
    method renderChallengeFailedEvent (line 133) | private renderChallengeFailedEvent(wrappedEvent: any): JSX.Element {
    method renderChallengeSucceededEvent (line 142) | private renderChallengeSucceededEvent(wrappedEvent: any): JSX.Element {

FILE: packages/dapp/src/components/listing/ListingHeader.tsx
  type ListingHeaderProps (line 19) | interface ListingHeaderProps {
  type TRegistryURLDataParameter
Condensed preview — 1466 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,981K chars).
[
  {
    "path": ".circleci/config.yml",
    "chars": 9025,
    "preview": "version: 2\n\n# What is this - http://yaml.org/type/merge.html\ndefaults: &defaults\n  docker:\n    - image: circleci/node:12"
  },
  {
    "path": ".dockerignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": ".editorconfig",
    "chars": 208,
    "preview": "root = true\n\n[*]\ninsert_final_newline = true\nindent_style = space\nindent_size = 2\nend_of_line = lf\n\n[*.{mustache,handleb"
  },
  {
    "path": ".gitattributes",
    "chars": 296,
    "preview": "# Normalizes all line endings in the repository\n# as per https://git-scm.com/docs/gitattributes\n#\n# This is needed becau"
  },
  {
    "path": ".gitignore",
    "chars": 1026,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directo"
  },
  {
    "path": ".prettierignore",
    "chars": 165,
    "preview": "node_modules/\nbuild/\ninstalled_contracts/\npackage.json\ngenerated/\ndoxity/\ndocs/asset-manifest.json\n/packages/dapp/src/co"
  },
  {
    "path": ".prettierrc.yaml",
    "chars": 101,
    "preview": "printWidth: 120\nbracketSpacing: true\nsemi: true\nsingleQuote: false\ntrailingComma: all\nuseTabs: false\n"
  },
  {
    "path": ".releaserc",
    "chars": 81,
    "preview": "{\n  \"repositoryUrl\": \"git@github.com:joincivil/Civil.git\",\n  \"branch\": \"master\"\n}"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 493,
    "preview": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  //"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 182,
    "preview": "{\n  \"files.exclude\": {\n    \"**/build/\": true,\n    \"**/node_modules/\": true\n  },\n  \"search.exclude\": {\n    \"**/build/\": t"
  },
  {
    "path": "Dockerfile-dapp",
    "chars": 257,
    "preview": "FROM nginx:1.12-alpine\nADD ./packages/dapp/build /usr/share/nginx/html\nADD ./packages/dapp/devops/nginx.conf /etc/nginx/"
  },
  {
    "path": "README.md",
    "chars": 7730,
    "preview": "![Civil Logo](doc/civil_logo_white.png?raw=true)\n\n---\n\n[Civil](https://joincivil.com/) is a decentralized and censorship"
  },
  {
    "path": "commitlint.config.js",
    "chars": 102,
    "preview": "module.exports = { extends: [\"@commitlint/config-conventional\", \"@commitlint/config-lerna-scopes\"] };\n"
  },
  {
    "path": "lerna.json",
    "chars": 274,
    "preview": "{\n  \"lerna\": \"3.15.0\",\n  \"packages\": [\"packages/*\"],\n  \"npmClient\": \"yarn\",\n  \"useWorkspaces\": true,\n  \"version\": \"indep"
  },
  {
    "path": "package.json",
    "chars": 3984,
    "preview": "{\n  \"name\": \"@joincivil/root\",\n  \"private\": true,\n  \"homepage\": \"https://civil.co\",\n  \"workspaces\": [\n    \"packages/*\"\n "
  },
  {
    "path": "packages/artifacts/package.json",
    "chars": 373,
    "preview": "{\n  \"name\": \"@joincivil/artifacts\",\n  \"version\": \"1.1.9\",\n  \"description\": \"Civil Ethereum smart contract artifacts\",\n  "
  },
  {
    "path": "packages/artifacts/v1/ACL.json",
    "chars": 6679,
    "preview": "{\n  \"contractName\": \"ACL\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b5060008054600160a060020a031916331790556103"
  },
  {
    "path": "packages/artifacts/v1/AddressRegistry.json",
    "chars": 61463,
    "preview": "{\n  \"contractName\": \"AddressRegistry\",\n  \"bytecode\": \"0x60806040523480156200001157600080fd5b5060405162002f3838038062002f"
  },
  {
    "path": "packages/artifacts/v1/AttributeStore.json",
    "chars": 4097,
    "preview": "{\n  \"contractName\": \"AttributeStore\",\n  \"bytecode\": \"0x610257610030600b82828239805160001a6073146000811461002057610022565"
  },
  {
    "path": "packages/artifacts/v1/CVLToken.json",
    "chars": 29571,
    "preview": "{\n  \"contractName\": \"CVLToken\",\n  \"bytecode\": \"0x60806040523480156200001157600080fd5b50604051620011dc380380620011dc83398"
  },
  {
    "path": "packages/artifacts/v1/CivilPLCRVoting.json",
    "chars": 48891,
    "preview": "{\n  \"contractName\": \"CivilPLCRVoting\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b50604051604080611eb58339810160"
  },
  {
    "path": "packages/artifacts/v1/CivilParameterizer.json",
    "chars": 51180,
    "preview": "{\n  \"contractName\": \"CivilParameterizer\",\n  \"bytecode\": \"0x608060405262093a806005553480156200001857600080fd5b50604051620"
  },
  {
    "path": "packages/artifacts/v1/CivilTCR.json",
    "chars": 107139,
    "preview": "{\n  \"contractName\": \"CivilTCR\",\n  \"bytecode\": \"0x60806040523480156200001157600080fd5b506040516080806200543d8339810160408"
  },
  {
    "path": "packages/artifacts/v1/CivilTokenController.json",
    "chars": 36274,
    "preview": "{\n  \"contractName\": \"CivilTokenController\",\n  \"bytecode\": \"0x60806040523480156200001157600080fd5b5060008054600160a060020"
  },
  {
    "path": "packages/artifacts/v1/ContractAddressRegistry.json",
    "chars": 61921,
    "preview": "{\n  \"contractName\": \"ContractAddressRegistry\",\n  \"bytecode\": \"0x60806040523480156200001157600080fd5b5060405162002fad3803"
  },
  {
    "path": "packages/artifacts/v1/CreateNewsroomInGroup.json",
    "chars": 6848,
    "preview": "{\n  \"contractName\": \"CreateNewsroomInGroup\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b506040516040806105638339"
  },
  {
    "path": "packages/artifacts/v1/DLL.json",
    "chars": 7328,
    "preview": "{\n  \"contractName\": \"DLL\",\n  \"bytecode\": \"0x610369610030600b82828239805160001a6073146000811461002057610022565bfe5b503060"
  },
  {
    "path": "packages/artifacts/v1/DummyACL.json",
    "chars": 12198,
    "preview": "{\n  \"contractName\": \"DummyACL\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b5060008054600160a060020a0319163317905"
  },
  {
    "path": "packages/artifacts/v1/DummyTokenTelemetry.json",
    "chars": 1208,
    "preview": "{\n  \"contractName\": \"DummyTokenTelemetry\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b5060a38061001f6000396000f3"
  },
  {
    "path": "packages/artifacts/v1/ECRecovery.json",
    "chars": 936,
    "preview": "{\n  \"contractName\": \"ECRecovery\",\n  \"bytecode\": \"0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600"
  },
  {
    "path": "packages/artifacts/v1/ERC1404.json",
    "chars": 994,
    "preview": "{\n  \"contractName\": \"ERC1404\",\n  \"bytecode\": \"0x\",\n  \"deployedBytecode\": \"0x\",\n  \"abi\": [\n    {\n      \"constant\": true,\n"
  },
  {
    "path": "packages/artifacts/v1/ERC20.json",
    "chars": 9623,
    "preview": "{\n  \"contractName\": \"ERC20\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b50610535806100206000396000f3006080604052"
  },
  {
    "path": "packages/artifacts/v1/ERC20Detailed.json",
    "chars": 4482,
    "preview": "{\n  \"contractName\": \"ERC20Detailed\",\n  \"bytecode\": \"0x\",\n  \"deployedBytecode\": \"0x\",\n  \"abi\": [\n    {\n      \"constant\": "
  },
  {
    "path": "packages/artifacts/v1/EventStorage.json",
    "chars": 2983,
    "preview": "{\n  \"contractName\": \"EventStorage\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b506101bc806100206000396000f300608"
  },
  {
    "path": "packages/artifacts/v1/Factory.json",
    "chars": 3577,
    "preview": "{\n  \"contractName\": \"Factory\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b506101e4806100206000396000f30060806040"
  },
  {
    "path": "packages/artifacts/v1/Government.json",
    "chars": 35671,
    "preview": "{\n  \"contractName\": \"Government\",\n  \"bytecode\": \"0x608060405262093a806007553480156200001857600080fd5b5060405162001c66380"
  },
  {
    "path": "packages/artifacts/v1/IERC20.json",
    "chars": 3339,
    "preview": "{\n  \"contractName\": \"IERC20\",\n  \"bytecode\": \"0x\",\n  \"deployedBytecode\": \"0x\",\n  \"abi\": [\n    {\n      \"anonymous\": false,"
  },
  {
    "path": "packages/artifacts/v1/IGovernment.json",
    "chars": 1000,
    "preview": "{\n  \"contractName\": \"IGovernment\",\n  \"bytecode\": \"0x\",\n  \"deployedBytecode\": \"0x\",\n  \"abi\": [\n    {\n      \"constant\": tr"
  },
  {
    "path": "packages/artifacts/v1/IMultiSigWalletFactory.json",
    "chars": 568,
    "preview": "{\n  \"contractName\": \"IMultiSigWalletFactory\",\n  \"bytecode\": \"0x\",\n  \"deployedBytecode\": \"0x\",\n  \"abi\": [\n    {\n      \"co"
  },
  {
    "path": "packages/artifacts/v1/Managed.json",
    "chars": 6791,
    "preview": "{\n  \"contractName\": \"Managed\",\n  \"bytecode\": \"0x608060405260008054600160a060020a031916331790556103a8806100256000396000f3"
  },
  {
    "path": "packages/artifacts/v1/ManagedWhitelist.json",
    "chars": 24003,
    "preview": "{\n  \"contractName\": \"ManagedWhitelist\",\n  \"bytecode\": \"0x608060405260008054600160a060020a03191633179055610ed080610025600"
  },
  {
    "path": "packages/artifacts/v1/MessagesAndCodes.json",
    "chars": 14227,
    "preview": "{\n  \"contractName\": \"MessagesAndCodes\",\n  \"bytecode\": \"0x610a88610030600b82828239805160001a60731460008114610020576100225"
  },
  {
    "path": "packages/artifacts/v1/Migrations.json",
    "chars": 4159,
    "preview": "{\n  \"contractName\": \"Migrations\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b5060008054600160a060020a03191633179"
  },
  {
    "path": "packages/artifacts/v1/MultiSigWallet.json",
    "chars": 32458,
    "preview": "{\n  \"contractName\": \"MultiSigWallet\",\n  \"bytecode\": \"0x60806040523480156200001157600080fd5b50604051620016a6380380620016a"
  },
  {
    "path": "packages/artifacts/v1/MultiSigWalletFactory.json",
    "chars": 28937,
    "preview": "{\n  \"contractName\": \"MultiSigWalletFactory\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b506119cb8061002060003960"
  },
  {
    "path": "packages/artifacts/v1/Newsroom.json",
    "chars": 41902,
    "preview": "{\n  \"contractName\": \"Newsroom\",\n  \"bytecode\": \"0x60806040523480156200001157600080fd5b50604051620023273803806200232783398"
  },
  {
    "path": "packages/artifacts/v1/NewsroomFactory.json",
    "chars": 46836,
    "preview": "{\n  \"contractName\": \"NewsroomFactory\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b50604051602080612a6f8339810160"
  },
  {
    "path": "packages/artifacts/v1/NoOpTokenController.json",
    "chars": 4170,
    "preview": "{\n  \"contractName\": \"NoOpTokenController\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b50610216806100206000396000"
  },
  {
    "path": "packages/artifacts/v1/Ownable.json",
    "chars": 3755,
    "preview": "{\n  \"contractName\": \"Ownable\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b5060008054600160a060020a03191633179055"
  },
  {
    "path": "packages/artifacts/v1/PLCRVoting.json",
    "chars": 44750,
    "preview": "{\n  \"contractName\": \"PLCRVoting\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b50604051602080611c7e833981016040525"
  },
  {
    "path": "packages/artifacts/v1/Parameterizer.json",
    "chars": 50280,
    "preview": "{\n  \"contractName\": \"Parameterizer\",\n  \"bytecode\": \"0x608060405262093a806005553480156200001857600080fd5b5060405162002868"
  },
  {
    "path": "packages/artifacts/v1/RBAC.json",
    "chars": 4260,
    "preview": "{\n  \"contractName\": \"RBAC\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b5061029c806100206000396000f30060806040526"
  },
  {
    "path": "packages/artifacts/v1/RestrictedAddressRegistry.json",
    "chars": 62647,
    "preview": "{\n  \"contractName\": \"RestrictedAddressRegistry\",\n  \"bytecode\": \"0x60806040523480156200001157600080fd5b506040516200306638"
  },
  {
    "path": "packages/artifacts/v1/Roles.json",
    "chars": 501,
    "preview": "{\n  \"contractName\": \"Roles\",\n  \"bytecode\": \"0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b503060005260"
  },
  {
    "path": "packages/artifacts/v1/RootCommits.json",
    "chars": 11456,
    "preview": "{\n  \"contractName\": \"RootCommits\",\n  \"bytecode\": \"0x608060405234801561001057600080fd5b50610869806100206000396000f3006080"
  },
  {
    "path": "packages/artifacts/v1/SafeMath.json",
    "chars": 504,
    "preview": "{\n  \"contractName\": \"SafeMath\",\n  \"bytecode\": \"0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b503060005"
  },
  {
    "path": "packages/artifacts/v1/TokenTelemetryI.json",
    "chars": 490,
    "preview": "{\n  \"contractName\": \"TokenTelemetryI\",\n  \"bytecode\": \"0x\",\n  \"deployedBytecode\": \"0x\",\n  \"abi\": [\n    {\n      \"constant\""
  },
  {
    "path": "packages/artifacts/v1/UniswapExchange.json",
    "chars": 14712,
    "preview": "{\n  \"contractName\": \"UniswapExchange\",\n  \"abi\": [\n    {\n      \"name\": \"TokenPurchase\",\n      \"inputs\": [\n        { \"type"
  },
  {
    "path": "packages/artifacts/v1/UniswapFactory.json",
    "chars": 2136,
    "preview": "{\n  \"contractName\": \"UniswapFactory\",\n  \"abi\": [\n    {\n      \"name\": \"NewExchange\",\n      \"inputs\": [\n        { \"type\": "
  },
  {
    "path": "packages/artifacts/v1/Whitelist.json",
    "chars": 14682,
    "preview": "{\n  \"contractName\": \"Whitelist\",\n  \"bytecode\": \"0x608060405260008054600160a060020a031916331790556109b7806100256000396000"
  },
  {
    "path": "packages/components/.babelrc",
    "chars": 282,
    "preview": "{\n  \"presets\": [\n    [\"@babel/preset-env\", { \"targets\": { \"node\": \"current\" } }],\n    \"@babel/preset-typescript\",\n    \"@"
  },
  {
    "path": "packages/components/.gitignore",
    "chars": 5,
    "preview": "/out\n"
  },
  {
    "path": "packages/components/.releaserc",
    "chars": 764,
    "preview": "{\n  \"plugins\": [\n    [\n      \"@semantic-release/commit-analyzer\",\n      {\n        \"preset\": \"angular\",\n        \"releaseR"
  },
  {
    "path": "packages/components/.storybook/config.ts",
    "chars": 345,
    "preview": "import { configure, addDecorator } from \"@storybook/react\";\nimport { withInfo } from \"@storybook/addon-info\";\n\n// automa"
  },
  {
    "path": "packages/components/.storybook/preview-head.html",
    "chars": 203,
    "preview": "<link href=\"https://fonts.googleapis.com/css?family=Spectral:200,400,400i,700,800\" rel=\"stylesheet\">\n<link href=\"https:/"
  },
  {
    "path": "packages/components/.storybook/register-context.ts",
    "chars": 129,
    "preview": "// @ts-ignore\nimport registerRequireContextHook from \"babel-plugin-require-context-hook/register\";\nregisterRequireContex"
  },
  {
    "path": "packages/components/.storybook/webpack.config.js",
    "chars": 450,
    "preview": "module.exports = ({ config, mode }) => {\n  config.module.rules.push({\n    test: /\\.tsx?$/,\n    use: [\n      {\n        lo"
  },
  {
    "path": "packages/components/LICENSE",
    "chars": 10173,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "packages/components/jest.config.js",
    "chars": 567,
    "preview": "module.exports = {\n  transform: {\n    \"^.+\\\\.(ts|tsx)?$\": \"babel-jest\",\n  },\n  testPathIgnorePatterns: [\"/node_modules/\""
  },
  {
    "path": "packages/components/package.json",
    "chars": 3454,
    "preview": "{\n  \"name\": \"@joincivil/components\",\n  \"version\": \"1.9.10\",\n  \"description\": \"React components for Civil\",\n  \"main\": \"bu"
  },
  {
    "path": "packages/components/src/Account/Auth/AuthStyledComponents.tsx",
    "chars": 5879,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts, mediaQueries } from \"../"
  },
  {
    "path": "packages/components/src/Account/Auth/AuthTextComponents.tsx",
    "chars": 4266,
    "preview": "import * as React from \"react\";\nimport {\n  PageHeadingTextCenteredSmall,\n  PageHeadingTextCentered,\n  PageSubHeadingCent"
  },
  {
    "path": "packages/components/src/Account/Auth/ConfirmEmailToken.tsx",
    "chars": 2558,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { EmailConfirmVerify } from \"./AuthStyledComponent"
  },
  {
    "path": "packages/components/src/Account/Auth/EmailAuth.stories.tsx",
    "chars": 1630,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport apolloStorybookDecorator from \"apol"
  },
  {
    "path": "packages/components/src/Account/Auth/EmailAuth.tsx",
    "chars": 6994,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { AuthApplicationEnum } from \"../index\";\nimport { "
  },
  {
    "path": "packages/components/src/Account/Auth/EmailSent.tsx",
    "chars": 957,
    "preview": "import * as React from \"react\";\nimport { RouteComponentProps } from \"react-router-dom\";\nimport { CheckEmailSection, Auth"
  },
  {
    "path": "packages/components/src/Account/Auth/EthAuth.tsx",
    "chars": 6903,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { Mutation, MutationFunc } from \"react-apollo\";\nim"
  },
  {
    "path": "packages/components/src/Account/Auth/UserSetAvatar.stories.tsx",
    "chars": 1306,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport apolloStorybookDecorator from \"apol"
  },
  {
    "path": "packages/components/src/Account/Auth/UserSetAvatar.tsx",
    "chars": 9741,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { Mutation, MutationFn, ApolloConsumer } from \"rea"
  },
  {
    "path": "packages/components/src/Account/Auth/UserSetEmail.stories.tsx",
    "chars": 1489,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport apolloStorybookDecorator from \"apol"
  },
  {
    "path": "packages/components/src/Account/Auth/UserSetEmail.tsx",
    "chars": 7362,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { Mutation, MutationFn, ApolloConsumer } from \"rea"
  },
  {
    "path": "packages/components/src/Account/Auth/UserSetHandle.tsx",
    "chars": 5274,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { Mutation, MutationFn, ApolloConsumer } from \"rea"
  },
  {
    "path": "packages/components/src/Account/Auth/VerifyToken.stories.tsx",
    "chars": 886,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport { AuthEmailVerify } from \"./AuthSty"
  },
  {
    "path": "packages/components/src/Account/Auth/VerifyToken.tsx",
    "chars": 2705,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { setApolloSession, getApolloClient } from \"@joinc"
  },
  {
    "path": "packages/components/src/Account/Auth/__snapshots__/EmailAuth.stories.storyshot",
    "chars": 13718,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Auth / Email Signup Flow AccountEmailAuth 1`] ="
  },
  {
    "path": "packages/components/src/Account/Auth/__snapshots__/EthAuth.stories.storyshot",
    "chars": 150258,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Auth / ETH AccountEthAuth Component 1`] = `\n<di"
  },
  {
    "path": "packages/components/src/Account/Auth/__snapshots__/UserSetAvatar.stories.storyshot",
    "chars": 16511,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Web3Auth UserSetAvatar 1`] = `\n<div>\n  <div\n   "
  },
  {
    "path": "packages/components/src/Account/Auth/__snapshots__/UserSetEmail.stories.storyshot",
    "chars": 13356,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Web3Auth UserSetEmail 1`] = `\n<div>\n  <div\n    "
  },
  {
    "path": "packages/components/src/Account/Auth/__snapshots__/VerifyToken.stories.storyshot",
    "chars": 26705,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Auth / VerifyToken Complete 1`] = `\n<div>\n  <di"
  },
  {
    "path": "packages/components/src/Account/LoadUser.tsx",
    "chars": 1180,
    "preview": "import * as React from \"react\";\nimport { getApolloSessionKey, getCurrentUserQuery } from \"@joincivil/utils\";\nimport { Qu"
  },
  {
    "path": "packages/components/src/Account/index.ts",
    "chars": 740,
    "preview": "export * from \"./Auth/VerifyToken\";\nexport * from \"./Auth/ConfirmEmailToken\";\nexport * from \"./Auth/EmailAuth\";\nexport *"
  },
  {
    "path": "packages/components/src/AddressWithCopyButton.tsx",
    "chars": 1245,
    "preview": "import * as React from \"react\";\nimport { copyToClipboard } from \"@joincivil/utils\";\nimport styled from \"styled-component"
  },
  {
    "path": "packages/components/src/AddressWithMetaMaskIcon.tsx",
    "chars": 900,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { MetaMaskFrontIcon } from \"./\";\nimport {"
  },
  {
    "path": "packages/components/src/ApplicationPhaseStatusLabels.stories.tsx",
    "chars": 1062,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nim"
  },
  {
    "path": "packages/components/src/ApplicationPhaseStatusLabels.tsx",
    "chars": 2340,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts } from \"./styleConstants\""
  },
  {
    "path": "packages/components/src/AuthenticatedRoute.tsx",
    "chars": 1772,
    "preview": "import * as React from \"react\";\nimport { Route, RouteProps, Redirect } from \"react-router-dom\";\nimport { getCurrentUserQ"
  },
  {
    "path": "packages/components/src/BrowserCompatible/BrowserCompatible.stories.tsx",
    "chars": 351,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport StoryRouter from \"storybook-react-r"
  },
  {
    "path": "packages/components/src/BrowserCompatible/BrowserCompatible.tsx",
    "chars": 1492,
    "preview": "import * as React from \"react\";\nimport { buttonSizes, OBSmallestParagraph } from \"../\";\nimport {\n  BrowserCompatWrapper,"
  },
  {
    "path": "packages/components/src/BrowserCompatible/BrowserCompatibleStyledComponents.tsx",
    "chars": 1052,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { InvertedButton, OBSectionDescription, m"
  },
  {
    "path": "packages/components/src/BrowserCompatible/BrowserCompatibleTextComponents.tsx",
    "chars": 733,
    "preview": "import * as React from \"react\";\nimport { OBSectionTitle } from \"../\";\nimport { BrowserCompatIntroStyled } from \"./Browse"
  },
  {
    "path": "packages/components/src/BrowserCompatible/__snapshots__/BrowserCompatible.stories.storyshot",
    "chars": 13051,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Browser Compatible Message Browser Compatible 1"
  },
  {
    "path": "packages/components/src/BrowserCompatible/index.ts",
    "chars": 37,
    "preview": "export * from \"./BrowserCompatible\";\n"
  },
  {
    "path": "packages/components/src/Button.stories.tsx",
    "chars": 2417,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport StoryRouter from \"storybook-react-router\";\nimport * as React from \""
  },
  {
    "path": "packages/components/src/Button.tsx",
    "chars": 224,
    "preview": "export {\n  buttonSizes,\n  ButtonProps,\n  ButtonTheme,\n  DEFAULT_BUTTON_THEME,\n  ButtonComponent,\n  Button,\n  InvertedBut"
  },
  {
    "path": "packages/components/src/Card/Card.stories.tsx",
    "chars": 648,
    "preview": "import * as React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport styled from \"styled-components\";\n\ni"
  },
  {
    "path": "packages/components/src/Card/Card.tsx",
    "chars": 494,
    "preview": "import * as React from \"react\";\n\nimport { StyledCardClickable } from \"./CardStyledComponents\";\n\nexport interface CardCli"
  },
  {
    "path": "packages/components/src/Card/CardStyledComponents.tsx",
    "chars": 724,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts } from \"../styleConstants"
  },
  {
    "path": "packages/components/src/Card/__snapshots__/Card.stories.storyshot",
    "chars": 10086,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Pattern Library / Cards Clickable Card 1`] = `\n<div>\n  <"
  },
  {
    "path": "packages/components/src/Card/index.ts",
    "chars": 24,
    "preview": "export * from \"./Card\";\n"
  },
  {
    "path": "packages/components/src/CardTransactionButton.tsx",
    "chars": 405,
    "preview": "import * as React from \"react\";\nimport { CardClickable } from \"./Card\";\nimport { TransactionButtonInnerProps } from \"./T"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/ChallengeResults.stories.tsx",
    "chars": 990,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nim"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/ChallengeResults.tsx",
    "chars": 3830,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { StyledListingDetailPhaseCardSectionHead"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/ChallengeResultsChartTextComponents.tsx",
    "chars": 606,
    "preview": "import * as React from \"react\";\nimport { HollowGreenCheck, HollowRedNoGood } from \"../icons\";\nimport { VoteTypeLabelProp"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/UserVotingSummary.tsx",
    "chars": 811,
    "preview": "import * as React from \"react\";\n\nimport { UserVotingSummaryProps } from \"./types\";\nimport { voteTypeLabel } from \"./Chal"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/VoteTypeSummaryRow.tsx",
    "chars": 1376,
    "preview": "import * as React from \"react\";\nimport {\n  VoteTypeSummary,\n  VotesPerTokenContainer,\n  VotesPerTokenVote,\n  VotesPerTok"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/__snapshots__/ChallengeResults.stories.storyshot",
    "chars": 18554,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Registry Challenge Results Chart 1`] = `\n<div>\n  <div\n  "
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/constants.ts",
    "chars": 548,
    "preview": "import { colors } from \"../styleConstants\";\n\nimport { VoteTypeColorProps } from \"./types\";\n\nexport enum CHALLENGE_RESULT"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/index.ts",
    "chars": 165,
    "preview": "export * from \"./ChallengeResults\";\nexport * from \"./VoteTypeSummaryRow\";\nexport * from \"./UserVotingSummary\";\nexport * "
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/styledComponents.tsx",
    "chars": 2831,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors } from \"../styleConstants\";\nimpo"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/types.d.ts",
    "chars": 3,
    "preview": "o;\n"
  },
  {
    "path": "packages/components/src/ChallengeResultsChart/types.ts",
    "chars": 993,
    "preview": "import * as React from \"react\";\n\nexport interface ChallengeResultsProps {\n  challengeID?: string;\n  totalVotes: string;\n"
  },
  {
    "path": "packages/components/src/ChevronAnchor.stories.tsx",
    "chars": 968,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport { ChevronAnchor } from \"./ChevronAn"
  },
  {
    "path": "packages/components/src/ChevronAnchor.tsx",
    "chars": 745,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Chevron } from \"@joincivil/elements\";\n\n"
  },
  {
    "path": "packages/components/src/ChevronAnchorLeft.tsx",
    "chars": 589,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Chevron } from \"@joincivil/elements\";\n\n"
  },
  {
    "path": "packages/components/src/ClaimRewards.tsx",
    "chars": 922,
    "preview": "import * as React from \"react\";\nimport { TextInput } from \"./input/\";\nimport { TransactionButton } from \"./TransactionBu"
  },
  {
    "path": "packages/components/src/ClipLoader.tsx",
    "chars": 50,
    "preview": "export { ClipLoader } from \"@joincivil/elements\";\n"
  },
  {
    "path": "packages/components/src/Collapsable.stories.tsx",
    "chars": 1672,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nim"
  },
  {
    "path": "packages/components/src/Collapsable.tsx",
    "chars": 3058,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors } from \"./styleConstants\";\n\nexpo"
  },
  {
    "path": "packages/components/src/Comments/CommentsCount.tsx",
    "chars": 783,
    "preview": "import * as React from \"react\";\nimport { CommentsCountStyled, CommentsLabel } from \"./CommentsStyledComponents\";\n\nexport"
  },
  {
    "path": "packages/components/src/Comments/CommentsStyledComponents.tsx",
    "chars": 565,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts } from \"@joincivil/elemen"
  },
  {
    "path": "packages/components/src/Comments/index.ts",
    "chars": 77,
    "preview": "export * from \"./CommentsCount\";\nexport * from \"./CommentsStyledComponents\";\n"
  },
  {
    "path": "packages/components/src/Contributors/ContributorCount.tsx",
    "chars": 1677,
    "preview": "import * as React from \"react\";\nimport {\n  ContributorCountStyled,\n  ContributorsLabel,\n  ContributorCountAvatars,\n  Con"
  },
  {
    "path": "packages/components/src/Contributors/Contributors.stories.tsx",
    "chars": 1375,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nim"
  },
  {
    "path": "packages/components/src/Contributors/Contributors.tsx",
    "chars": 1813,
    "preview": "import * as React from \"react\";\nimport {\n  ContributorsStyled,\n  ContributorsTitle,\n  ContributorsLabel,\n  ContributorsP"
  },
  {
    "path": "packages/components/src/Contributors/ContributorsDefaultAvatar.tsx",
    "chars": 1794,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts, AvatarGenericIcon } from"
  },
  {
    "path": "packages/components/src/Contributors/ContributorsStyledComponents.tsx",
    "chars": 2177,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts } from \"@joincivil/elemen"
  },
  {
    "path": "packages/components/src/Contributors/__snapshots__/Contributors.stories.storyshot",
    "chars": 60262,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Contributors Contributor Count 1`] = `\n<div>\n  "
  },
  {
    "path": "packages/components/src/Contributors/index.ts",
    "chars": 141,
    "preview": "export * from \"./Contributors\";\nexport * from \"./ContributorCount\";\nexport * from \"./ContributorsStyledComponents\";\nexpo"
  },
  {
    "path": "packages/components/src/Contributors/types.ts",
    "chars": 138,
    "preview": "export interface ContributorData {\n  usdEquivalent: number;\n  payerChannel: {\n    handle: string;\n    tiny72AvatarDataUr"
  },
  {
    "path": "packages/components/src/CopyToClipboard/CopyStyledComponents.tsx",
    "chars": 747,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts } from \"../styleConstants"
  },
  {
    "path": "packages/components/src/CopyToClipboard/CopyURL.stories.tsx",
    "chars": 389,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport { CopyURL } from \"./CopyURL\";\nimpor"
  },
  {
    "path": "packages/components/src/CopyToClipboard/CopyURL.tsx",
    "chars": 936,
    "preview": "import * as React from \"react\";\nimport { copyToClipboard } from \"@joincivil/utils\";\nimport { CopyBtn, CopyURLSuccess } f"
  },
  {
    "path": "packages/components/src/CopyToClipboard/__snapshots__/CopyURL.stories.storyshot",
    "chars": 9056,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Copy Copy URL 1`] = `\n<div>\n  <div\n    style={\n"
  },
  {
    "path": "packages/components/src/CopyToClipboard/index.ts",
    "chars": 27,
    "preview": "export * from \"./CopyURL\";\n"
  },
  {
    "path": "packages/components/src/CurrencyConverter/CurrencyConverted.tsx",
    "chars": 861,
    "preview": "import * as React from \"react\";\nimport { CurrencyConvertedBox, CurrencyCode, CurrencyConvertedPrice } from \"./CurrencyCo"
  },
  {
    "path": "packages/components/src/CurrencyConverter/CurrencyConverter.stories.tsx",
    "chars": 1854,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport apolloStorybookDecorator from \"apol"
  },
  {
    "path": "packages/components/src/CurrencyConverter/CurrencyConverter.tsx",
    "chars": 4290,
    "preview": "import * as React from \"react\";\nimport {\n  CurrencyConverterContain,\n  CurrencyContain,\n  CurrencyLabel,\n  StyledCurrenc"
  },
  {
    "path": "packages/components/src/CurrencyConverter/CurrencyConverterStyledComponents.tsx",
    "chars": 2626,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts, mediaQueries } from \"../"
  },
  {
    "path": "packages/components/src/CurrencyConverter/CurrencyConverterTextComponents.tsx",
    "chars": 347,
    "preview": "import * as React from \"react\";\n\nexport interface CurrencyCVLTextProps {\n  pricePerCvl: number;\n  totalPrice: number;\n}\n"
  },
  {
    "path": "packages/components/src/CurrencyConverter/UsdEthConverter.tsx",
    "chars": 1558,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { Query } from \"react-apollo\";\nimport { CurrencyCo"
  },
  {
    "path": "packages/components/src/CurrencyConverter/UsdEthCvlConverter.tsx",
    "chars": 1851,
    "preview": "import * as React from \"react\";\nimport gql from \"graphql-tag\";\nimport { Query } from \"react-apollo\";\nimport { CurrencyCo"
  },
  {
    "path": "packages/components/src/CurrencyConverter/__snapshots__/CurrencyConverter.stories.storyshot",
    "chars": 43084,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Currency / Currency Converter CVL to ETH 1`] = "
  },
  {
    "path": "packages/components/src/CurrencyConverter/index.ts",
    "chars": 163,
    "preview": "export * from \"./CurrencyConverted\";\nexport * from \"./CurrencyConverterStyledComponents\";\nexport * from \"./UsdEthCvlConv"
  },
  {
    "path": "packages/components/src/DAppMessageContent/ErrorLoadingData.tsx",
    "chars": 755,
    "preview": "import * as React from \"react\";\n\nimport { OctopusErrorIcon } from \"../icons\";\n\nimport { StyledErrorIconContainer, Styled"
  },
  {
    "path": "packages/components/src/DAppMessageContent/ErrorNotFound.tsx",
    "chars": 645,
    "preview": "import * as React from \"react\";\n\nimport { OctopusErrorIcon } from \"../icons\";\n\nimport { StyledErrorIconContainer, Styled"
  },
  {
    "path": "packages/components/src/DAppMessageContent/InsufficientCVL.tsx",
    "chars": 2086,
    "preview": "import * as React from \"react\";\nimport { InvertedButton, buttonSizes } from \"../Button\";\nimport { WarningIcon } from \".."
  },
  {
    "path": "packages/components/src/DAppMessageContent/WrongNetwork.tsx",
    "chars": 1251,
    "preview": "import * as React from \"react\";\nimport { urlConstants } from \"@joincivil/utils\";\nimport metaMaskNetworkSwitchUrl from \"."
  },
  {
    "path": "packages/components/src/DAppMessageContent/index.ts",
    "chars": 136,
    "preview": "export * from \"./ErrorLoadingData\";\nexport * from \"./ErrorNotFound\";\nexport * from \"./InsufficientCVL\";\nexport * from \"."
  },
  {
    "path": "packages/components/src/DAppMessageContent/styledComponents.tsx",
    "chars": 1612,
    "preview": "import * as React from \"react\";\nimport { InvertedButton } from \"../Button\";\nimport styled from \"styled-components\";\nimpo"
  },
  {
    "path": "packages/components/src/DAppMessageContent/textComponents.tsx",
    "chars": 980,
    "preview": "import * as React from \"react\";\nimport { InsufficientCVLProps } from \"./types\";\n\nexport const InsufficientCVLForChalleng"
  },
  {
    "path": "packages/components/src/DAppMessageContent/types.ts",
    "chars": 148,
    "preview": "export interface InsufficientCVLProps {\n  minDeposit?: string;\n  appealFee?: string;\n}\n\nexport interface BuyCVLButtonPro"
  },
  {
    "path": "packages/components/src/DetailTransactionButton.stories.tsx",
    "chars": 1741,
    "preview": "import { Civil, TwoStepEthTransaction } from \"@joincivil/core\";\nimport { storiesOf } from \"@storybook/react\";\nimport * a"
  },
  {
    "path": "packages/components/src/DetailTransactionButton.tsx",
    "chars": 7594,
    "preview": "import { Civil } from \"@joincivil/core\";\nimport { EthAddress } from \"@joincivil/typescript-types\";\nimport { debounce } f"
  },
  {
    "path": "packages/components/src/DetailsButtonComponent.tsx",
    "chars": 909,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { buttonSizes } from \"./Button\";\n\nconst W"
  },
  {
    "path": "packages/components/src/EmailSignup/EmailSignup.stories.tsx",
    "chars": 1223,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nim"
  },
  {
    "path": "packages/components/src/EmailSignup/EmailSignup.tsx",
    "chars": 1893,
    "preview": "import * as React from \"react\";\n\nimport { BellIcon } from \"../icons\";\nimport { Button, buttonSizes } from \"../Button\";\ni"
  },
  {
    "path": "packages/components/src/EmailSignup/EmailSignupSuccess.tsx",
    "chars": 858,
    "preview": "import * as React from \"react\";\n\nimport { GreenCheckMark } from \"../icons\";\n\nimport {\n  StyledEmailSignupSuccessContaine"
  },
  {
    "path": "packages/components/src/EmailSignup/EmailStyledComponents.tsx",
    "chars": 955,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { colors, fonts } from \"../styleConstant"
  },
  {
    "path": "packages/components/src/EmailSignup/__snapshots__/EmailSignup.stories.storyshot",
    "chars": 21653,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Registry / Mailing List Signup Component Mailing List Si"
  },
  {
    "path": "packages/components/src/EmailSignup/index.ts",
    "chars": 69,
    "preview": "export * from \"./EmailSignup\";\nexport * from \"./EmailSignupSuccess\";\n"
  },
  {
    "path": "packages/components/src/EthAddressViewer/EthAddressViewer.stories.tsx",
    "chars": 741,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nim"
  },
  {
    "path": "packages/components/src/EthAddressViewer/EthAddressViewer.tsx",
    "chars": 1395,
    "preview": "import * as React from \"react\";\nimport { copyToClipboard } from \"@joincivil/utils\";\n\nimport { colors } from \"../styleCon"
  },
  {
    "path": "packages/components/src/EthAddressViewer/StyledEthAddressViewer.tsx",
    "chars": 1193,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Button, InvertedButton } from \"../Butto"
  },
  {
    "path": "packages/components/src/EthAddressViewer/__snapshots__/EthAddressViewer.stories.storyshot",
    "chars": 12612,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Common / Ethereum / EthAddress Viewer EthAddress Viewer "
  },
  {
    "path": "packages/components/src/EthAddressViewer/index.ts",
    "chars": 36,
    "preview": "export * from \"./EthAddressViewer\";\n"
  },
  {
    "path": "packages/components/src/ExecuteOnMount.tsx",
    "chars": 408,
    "preview": "import * as React from \"react\";\n\nexport interface ExecuteOnMountProps {\n  onDidMount(): any;\n}\n\nexport class ExecuteOnMo"
  },
  {
    "path": "packages/components/src/FullscreenModal.tsx",
    "chars": 3299,
    "preview": "import * as React from \"react\";\nimport * as ReactDom from \"react-dom\";\nimport styled from \"styled-components\";\nimport { "
  },
  {
    "path": "packages/components/src/GasEstimate.tsx",
    "chars": 2038,
    "preview": "import * as React from \"react\";\nimport { Civil } from \"@joincivil/core\";\nimport { fonts, colors } from \"./styleConstants"
  },
  {
    "path": "packages/components/src/Heading.stories.tsx",
    "chars": 705,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nim"
  },
  {
    "path": "packages/components/src/Heading.tsx",
    "chars": 2919,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { fonts, colors } from \"./styleConstants\""
  },
  {
    "path": "packages/components/src/HelmetHelper.tsx",
    "chars": 798,
    "preview": "import * as React from \"react\";\nimport { Helmet } from \"react-helmet\";\n\nexport interface HelmetHelperProps {\n  title?: s"
  },
  {
    "path": "packages/components/src/Hero/Hero.stories.tsx",
    "chars": 528,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport StoryRouter from \"storybook-react-router\";\nimport * as React from \""
  },
  {
    "path": "packages/components/src/Hero/Hero.tsx",
    "chars": 405,
    "preview": "import * as React from \"react\";\nimport { HeroOuter, HeroInner } from \"./HeroStyledComponents\";\n\nexport interface HeroPro"
  },
  {
    "path": "packages/components/src/Hero/HeroStyledComponents.tsx",
    "chars": 1937,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { colors, fonts, mediaQueries } from \"../"
  },
  {
    "path": "packages/components/src/Hero/HeroTextComponents.tsx",
    "chars": 655,
    "preview": "import * as React from \"react\";\nimport { HomepageHeroProps } from \"./HomepageHero\";\n\nexport const HeroTitleText: React.F"
  },
  {
    "path": "packages/components/src/Hero/HomepageHero.tsx",
    "chars": 1456,
    "preview": "import * as React from \"react\";\nimport { buttonSizes } from \"../Button\";\nimport { ExpandDownArrow } from \"../icons\";\nimp"
  },
  {
    "path": "packages/components/src/Hero/__snapshots__/Hero.stories.storyshot",
    "chars": 13318,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Registry / Hero Homepage 1`] = `\n<div>\n  <div\n    style="
  },
  {
    "path": "packages/components/src/Hero/index.ts",
    "chars": 56,
    "preview": "export * from \"./HomepageHero\";\nexport * from \"./Hero\";\n"
  },
  {
    "path": "packages/components/src/Layout/index.ts",
    "chars": 36,
    "preview": "export * from \"./styledComponents\";\n"
  },
  {
    "path": "packages/components/src/Layout/styledComponents.tsx",
    "chars": 1283,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { mediaQueries } from \"../styleConstants\""
  },
  {
    "path": "packages/components/src/ListingDetailHeader/EthereumInfoModal.tsx",
    "chars": 2294,
    "preview": "import * as React from \"react\";\nimport { EthAddress } from \"@joincivil/typescript-types\";\n\nimport { EthAddressViewer } f"
  },
  {
    "path": "packages/components/src/ListingDetailHeader/ListingDetailHeader.stories.tsx",
    "chars": 2924,
    "preview": "import { storiesOf } from \"@storybook/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nim"
  },
  {
    "path": "packages/components/src/ListingDetailHeader/ListingDetailHeader.tsx",
    "chars": 5659,
    "preview": "import * as React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CharterData } from \"@joincivil/typescr"
  },
  {
    "path": "packages/components/src/ListingDetailHeader/ListingDetailHeaderStyledComponents.tsx",
    "chars": 4269,
    "preview": "import * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { colors, fonts, mediaQueries } from \".."
  },
  {
    "path": "packages/components/src/ListingDetailHeader/__snapshots__/ListingDetailHeader.stories.storyshot",
    "chars": 87182,
    "preview": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Storyshots Registry / Listing / Listing Details Header Accepting Vo"
  },
  {
    "path": "packages/components/src/ListingDetailHeader/index.ts",
    "chars": 39,
    "preview": "export * from \"./ListingDetailHeader\";\n"
  },
  {
    "path": "packages/components/src/ListingDetailPhaseCard/AppealAwaitingDecisionCard.tsx",
    "chars": 4292,
    "preview": "import * as React from \"react\";\nimport { getLocalDateTimeStrings } from \"@joincivil/utils\";\nimport { ListingDetailPhaseC"
  },
  {
    "path": "packages/components/src/ListingDetailPhaseCard/AppealChallengeCommitVoteCard.tsx",
    "chars": 7036,
    "preview": "import * as React from \"react\";\nimport {\n  ListingDetailPhaseCardComponentProps,\n  PhaseWithExpiryProps,\n  ChallengePhas"
  },
  {
    "path": "packages/components/src/ListingDetailPhaseCard/AppealChallengeResolveCard.tsx",
    "chars": 4053,
    "preview": "import * as React from \"react\";\nimport {\n  ListingDetailPhaseCardComponentProps,\n  ChallengePhaseProps,\n  AppealDecision"
  },
  {
    "path": "packages/components/src/ListingDetailPhaseCard/AppealChallengeRevealVoteCard.tsx",
    "chars": 6941,
    "preview": "import * as React from \"react\";\nimport {\n  ListingDetailPhaseCardComponentProps,\n  PhaseWithExpiryProps,\n  ChallengePhas"
  }
]

// ... and 1266 more files (download for full content)

About this extraction

This page contains the full source code of the joincivil/Civil GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1466 files (8.9 MB), approximately 2.4M tokens, and a symbol index with 3346 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!