Skip to content

Commit

Permalink
Merge pull request #480 from ethereum/kyc-info
Browse files Browse the repository at this point in the history
Add KYC info
  • Loading branch information
samajammin authored Jan 10, 2022
2 parents e24b0d7 + ff5fdbd commit 294769e
Show file tree
Hide file tree
Showing 16 changed files with 164 additions and 74 deletions.
4 changes: 2 additions & 2 deletions contracts/scripts/deployRound.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -153,7 +153,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand Down
18 changes: 9 additions & 9 deletions contracts/scripts/deployTestRound.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -131,7 +131,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -151,7 +151,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -171,7 +171,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -190,7 +190,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -210,7 +210,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -229,7 +229,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -249,7 +249,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand All @@ -268,7 +268,7 @@ async function main() {
teamName: 'metadata.teamName',
teamDescription: 'metadata.teamDescription',
githubUrl: 'https://github.com/',
radicleUrl: 'https://radicle.com/',
radicleUrl: 'https://radicle.xyz/',
websiteUrl: 'https://website.com/',
twitterUrl: 'https://twitter.com/',
discordUrl: 'https://discord.com/',
Expand Down
12 changes: 12 additions & 0 deletions netlify.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[build]
command = "yarn build"
functions = "vue-app/dist/lambda"
publish = "vue-app/dist"

[context.kyc-info.environment]
VUE_APP_ETHEREUM_API_URL = "https://arb-rinkeby.g.alchemy.com/v2/wPwZJEp0lIu0XwccG_t0MAqF-phtI3og"
VUE_APP_ETHEREUM_API_CHAINID = "421611"
VUE_APP_CLRFUND_FACTORY_ADDRESS = "0x70FeEfA879603BD978CcaaE4B0BDb10320aE0C16"
VUE_APP_SUBGRAPH_URL = "https://api.thegraph.com/subgraphs/name/pettinarip/clrfundrinkarby2"
VUE_APP_USER_REGISTRY_TYPE = "brightid"
VUE_APP_BRIGHTID_CONTEXT = "CLRFundTest"
8 changes: 6 additions & 2 deletions vue-app/src/components/CriteriaModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,14 @@
</div>
</div>
<p>
For this pilot round, {{ operator }} members will remove any projects
that don't meet the round criteria. So read carefully! In later rounds
The registry admin ({{ operator }}) will remove any projects that
don't meet the round criteria. So read carefully! In later rounds
we're hoping that this review process can be done by the community.
</p>
<p>
Learn more about the project application process in our
<links to="/about/how-it-works/recipients">recipient guide</links>.
</p>
<div class="content">
<div
v-for="({ emoji, criterion, description }, idx) in criteria"
Expand Down
1 change: 0 additions & 1 deletion vue-app/src/components/NavBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
src="@/assets/help.svg"
/>
<div id="myHelpDropdown" class="button-menu" v-if="showHelpDowndown">
<div class="dropdown-title">Help</div>
<div
v-for="({ to, text, emoji }, idx) of dropdownItems"
:key="idx"
Expand Down
2 changes: 1 addition & 1 deletion vue-app/src/components/RoundInformation.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<template v-if="currentRound">
<div class="round">
<div class="round-title-bar">
<h2 class="round-title">CLR.fund</h2>
<h2 class="round-title">Ethereum Staking CLR</h2>
<v-popover class="verified-container">
<div class="verified">
<img src="@/assets/verified.svg" />
Expand Down
27 changes: 18 additions & 9 deletions vue-app/src/plugins/round/criteria.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export interface Criterion {
description: string
}

const baseCriterion: Criterion[] = [
const BASE_CRITERION: Criterion[] = [
{
emoji: '🤲',
criterion: 'Free and open source',
Expand All @@ -29,12 +29,6 @@ const baseCriterion: Criterion[] = [
description:
'The project must be yours or you must have permission from the project owner.',
},
{
emoji: '💻',
criterion: 'No clients',
description:
'Client teams are so important but this round of funding is focused on supporting other parts of the ecosystem.',
},
]

/**
Expand All @@ -43,7 +37,7 @@ const baseCriterion: Criterion[] = [
const ADDITIONAL_CRITERION: Criterion[] = [
{
emoji: '💰',
criterion: 'Related to Ethereum upgrades and staking',
criterion: 'Related to Ethereum staking',
description: 'Your project must support Ethereum staking/validating.',
},
{
Expand All @@ -52,6 +46,21 @@ const ADDITIONAL_CRITERION: Criterion[] = [
description:
'Client teams are so important but this round of funding is focused on supporting other parts of the ecosystem.',
},
{
emoji: '💦',
criterion: 'No pools',
description:
'No pools directly, but useful infrastructure and tooling built by pools can be supported.',
},
{
emoji: '🆔',
criterion: 'KYC',
description:
"You'll be contacted by the registry admin and must complete some basic KYC/AML requirements.",
},
]

export const criteria: Criterion[] = [...baseCriterion, ...ADDITIONAL_CRITERION]
export const criteria: Criterion[] = [
...BASE_CRITERION,
...ADDITIONAL_CRITERION,
]
2 changes: 1 addition & 1 deletion vue-app/src/router/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const routes = [
name: 'landing',
component: Landing,
meta: {
title: 'Clr.fund',
title: 'Ethereum Staking CLR',
},
},
{
Expand Down
5 changes: 5 additions & 0 deletions vue-app/src/views/AboutContributors.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<template>
<div class="about">
<h1 class="content-heading">Contributor guide</h1>
<p>
An overview of how things work as a contributor so you can learn what to
expect throughout the duration of a funding round.
</p>
<h2>Get funds on {{ chain.label }}</h2>
<p>
You'll need some {{ chain.currency }} on {{ chain.label }} in order to
Expand Down Expand Up @@ -97,6 +101,7 @@ import { ChainInfo } from '@/plugins/Web3/constants/chains'
@Component({ components: { Links } })
export default class AboutContributors extends Vue {
// TODO: update to new getter
get nativeTokenSymbol(): string {
const { nativeTokenSymbol } = this.$store.state.currentRound
return nativeTokenSymbol
Expand Down
3 changes: 3 additions & 0 deletions vue-app/src/views/AboutHowItWorks.vue
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ import Links from '@/components/Links.vue'
@Component({ components: { Links } })
export default class AboutHowItWorks extends Vue {
// TODO: should we hardcode defaults instead of TBD for our round?
get contributionPhaseDays(): number | string {
if (this.$store.state.currentRound) {
const { signUpDeadline, startTime } = this.$store.state.currentRound
Expand All @@ -161,6 +162,7 @@ export default class AboutHowItWorks extends Vue {
return MAX_CONTRIBUTION_AMOUNT
}
// TODO: should we hardcode defaults instead of TBD for our round?
get maxRecipients(): number | string {
return this.$store.state?.currentRound?.maxRecipients || 'TBD'
}
Expand All @@ -169,6 +171,7 @@ export default class AboutHowItWorks extends Vue {
return this.$store.state?.currentRound?.nativeTokenSymbol
}
// TODO: should we hardcode defaults instead of TBD for our round?
get reallocationPhaseDays(): number | string {
if (this.$store.state.currentRound) {
const { signUpDeadline, votingDeadline } = this.$store.state.currentRound
Expand Down
77 changes: 67 additions & 10 deletions vue-app/src/views/AboutRecipients.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<template>
<div class="about">
<h1 class="content-heading">Recipient guide</h1>
<p>
An overview of how things work as a recipient so you can learn what to
expect throughout the duration of a funding round.
</p>
<div v-if="chain.bridge">
<h2>Get funds on {{ chain.label }}</h2>
<p>
Expand Down Expand Up @@ -32,6 +36,17 @@
</p>
</div>
<h2>Register your project</h2>
<p>
In order to participate in a funding round as a project, you'll need to
submit an application to join the recipient registry (via an on-chain
transaction) then complete KYC requirements to verify your project is
legitimate.
</p>
<p>
Note: all application data (except contact email address) will be publicly
stored on-chain.
</p>
<h3>Submit your application</h3>
<ol>
<li>Head over to the <links to="/join">Join page</links>.</li>
<li>
Expand All @@ -44,20 +59,62 @@
out asking for more information about your project.
</li>
<li>
With the forms finished, you can finish your submission by:
With the forms finished, you can finish your submission:
<ol>
<li>connecting to the right network via your wallet of choice</li>
<li>Connect to the right network via your wallet of choice.</li>
<li>
sending a deposit of {{ depositAmount }} {{ depositToken }} to the
registry contract.
Send a transaction (with a deposit of {{ depositAmount }}
{{ depositToken }}) to the registry contract.
</li>
</ol>
Projects are accepted by default, but the registry admin may remove
projects that don't meet the criteria. Either way, your
{{ depositToken }} will be returned once your application has been
either accepted or denied. Note that metadata pointing to all your
project information (but not contact information) will be stored
publicly on-chain.
</li>
</ol>
<h3>Complete KYC</h3>
<p>
You'll submit a contact email address as part of your project's
application. The email address will not be stored on-chain (with the rest
of the application data) but it will be sent to the registry admin (the
clr.fund team) and the Ethereum Foundation for the purposes of completing
your KYC. The Ethereum Foundation will use this email address to contact
you and verify information about your project. The registry admin may
reject projects that don't meet the round criteria or pass KYC/AML
requirements.
</p>
<p>
In any case, your
{{ depositToken }} will be returned once your application has been either
accepted or denied. Note that metadata pointing to all your project
information (but not contact information) will be stored publicly
on-chain.
</p>
<h4>Required documents</h4>
<p style="text-decoration: underline">For individuals</p>
<ol>
<li>Scanned copy of passport</li>
<li>
Proof of address from within the last 3 months, such as bank statement,
utility bill or telecom subscription
</li>
</ol>
<p style="text-decoration: underline">For organizations</p>
<ol>
<li>Certificate of Incorporation</li>
<li>
Proof of address from within the last 3 months, such as bank statement,
utility bill or telecom subscription
</li>
<li>
Shareholders' and Directors' registers / Members' register (for
organization without shareholdings)
</li>
<li>
For each director, officer and individual shareholder (more than 10%),
please provide (i) scan copy of passport, and (ii) copy of proof of
address
</li>
<li>
If the shareholder is an organization and holds more than 10%, please
provide 1 through 4
</li>
</ol>
<h2>Claim your funds</h2>
Expand Down
Loading

0 comments on commit 294769e

Please sign in to comment.