From 639d18167ea580c0379540f84e499ae2feb93190 Mon Sep 17 00:00:00 2001 From: seanyesmunt Date: Tue, 6 Apr 2021 17:45:08 -0400 Subject: [PATCH] help lbry save crypto --- analytics.js | 6 + component/email.jsx | 71 ++++ component/footer.jsx | 3 + component/header.jsx | 178 ++++++++++ component/twitter.jsx | 55 +++ faq/en.md | 191 +++++++++++ faq/es.md | 133 ++++++++ i18n.js | 195 +++++++++++ next.config.js | 10 + package.json | 10 +- pages/_app.js | 6 +- pages/api/email.js | 35 ++ pages/api/hello.js | 6 - pages/api/twitter.js | 43 +++ pages/faq.js | 60 ++++ pages/index.js | 276 ++++++++++++--- public/lbc.png | Bin 0 -> 1067 bytes public/machine.png | Bin 0 -> 68080 bytes public/megaphone.png | Bin 0 -> 43222 bytes public/question.png | Bin 0 -> 37632 bytes public/vercel.svg | 4 - styles/Home.module.css | 122 ------- styles/globals.css | 16 - styles/globals.scss | 534 +++++++++++++++++++++++++++++ vercel.json | 5 + yarn.lock | 739 ++++++++++++++++++++++++++++++++++++++++- 26 files changed, 2488 insertions(+), 210 deletions(-) create mode 100644 analytics.js create mode 100644 component/email.jsx create mode 100644 component/footer.jsx create mode 100644 component/header.jsx create mode 100644 component/twitter.jsx create mode 100644 faq/en.md create mode 100644 faq/es.md create mode 100644 i18n.js create mode 100644 next.config.js create mode 100644 pages/api/email.js delete mode 100644 pages/api/hello.js create mode 100644 pages/api/twitter.js create mode 100644 pages/faq.js create mode 100644 public/lbc.png create mode 100644 public/machine.png create mode 100644 public/megaphone.png create mode 100644 public/question.png delete mode 100644 public/vercel.svg delete mode 100644 styles/Home.module.css delete mode 100644 styles/globals.css create mode 100644 styles/globals.scss create mode 100644 vercel.json diff --git a/analytics.js b/analytics.js new file mode 100644 index 0000000..225ab87 --- /dev/null +++ b/analytics.js @@ -0,0 +1,6 @@ +import MatomoTracker from '@datapunt/matomo-tracker-js'; + +export const tracker = new MatomoTracker({ + urlBase: 'https://analytics.lbry.com/', + siteId: 12, +}); diff --git a/component/email.jsx b/component/email.jsx new file mode 100644 index 0000000..f6ce442 --- /dev/null +++ b/component/email.jsx @@ -0,0 +1,71 @@ +import React from 'react'; +import { m } from '../i18n'; + +export function Email({ i18n }) { + const [email, setEmail] = React.useState(''); + const [emailLoading, setEmailLoading] = React.useState(false); + const [emailError, setEmailError] = React.useState(); + const [emailSuccess, setEmailSuccess] = React.useState(); + + function handleEmailSubmit(e) { + e.preventDefault(); + + if (!email) { + return; + } + + setEmailError(false); + setEmailSuccess(false); + setEmailLoading(true); + + fetch('/api/email', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + email, + }), + }) + .then((res) => res.json()) + .then((data) => { + setEmailLoading(false); + setEmailSuccess(true); + }) + .catch(() => { + setEmailLoading(false); + setEmailSuccess(false); + setEmailError(true); + }); + } + + return ( +
+

{i18n(m.email_title)}

+
{i18n(m.email_subtitle)}
+ + +
+ setEmail(e.target.value)} + /> + +
+ + {emailSuccess && ( +
{i18n(m.email_success)}
+ )} + {emailError && ( +
{i18n(m.email_error)}
+ )} +
+ ); +} diff --git a/component/footer.jsx b/component/footer.jsx new file mode 100644 index 0000000..b1481ce --- /dev/null +++ b/component/footer.jsx @@ -0,0 +1,3 @@ +export function Footer(props) { + return ; +} diff --git a/component/header.jsx b/component/header.jsx new file mode 100644 index 0000000..e3eb085 --- /dev/null +++ b/component/header.jsx @@ -0,0 +1,178 @@ +import Head from 'next/head'; +import Image from 'next/image'; +import Link from 'next/link'; +import { t, m } from '../i18n'; +import { useRouter } from 'next/router'; + +export function Header(props) { + const { faqPage } = props; + const router = useRouter(); + const lang = router.query.lang || 'en'; + + let faqHref = '/faq'; + if (lang !== 'en') { + faqHref += `?lang=${lang}`; + } + + let homeHref = '/'; + if (lang !== 'en') { + homeHref += `?lang=${lang}`; + } + + function __(message) { + return t(message, lang); + } + + return ( + <> + + {__(m.title)} + + + Help LBRY Save Crypto + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LBRY + + , THE SEC, & THE FUTURE OF CRYPTO + + + +
+ {!faqPage ? ( + + FAQ + + ) : ( + + {__(m.go_home)} + + )} +
+
+ + ); +} diff --git a/component/twitter.jsx b/component/twitter.jsx new file mode 100644 index 0000000..544e4de --- /dev/null +++ b/component/twitter.jsx @@ -0,0 +1,55 @@ +import React from 'react'; +import { m } from '../i18n'; + +export function Twitter({ i18n }) { + const [tweets, setTweets] = React.useState(); + const [error, setError] = React.useState(); + React.useEffect(() => { + fetch('/api/twitter') + .then((res) => res.json()) + .then((res) => { + if (res.error) { + throw Error(res.error); + } + + setTweets(res.data.statuses); + }) + .catch((err) => { + setError(true); + }); + }, []); + + if (!tweets) { + return null; + } + + return ( + tweets && + tweets.length > 0 && ( +
+ {tweets.map((tweet) => ( + + + +
+
+
+
{tweet.user.name}
+
@{tweet.user.screen_name}
+
+
+ +
{tweet.text}
+
+
+ ))} +
+ ) + ); +} diff --git a/faq/en.md b/faq/en.md new file mode 100644 index 0000000..7c99843 --- /dev/null +++ b/faq/en.md @@ -0,0 +1,191 @@ +# Case Guide and FAQ + +## Summary + +The Securities and Exchange Commission has filed a complaint against LBRY Inc alleging that all +distributions of LBRY Credits by LBRY Inc are unregistered securities offerings. This claim is a +tremendous threat to the entire cryptocurrency industry. + +The LBRY network is decentralized and not at risk. For users of the LBRY protocol and apps, your +channels, content, and token holdings are not at risk. Even in an unlikely scenario in which LBRY +Inc loses, the LBRY protocol will live on and work on it will continue. + +LBRY Inc has been preparing to fight this case for three full years, which is how long the SEC has +been investigating this matter. We wanted to tell you sooner, but transparency in ongoing +investigations is not welcomed by the SEC. + +## Frequently Asked Questions + +### Are my LBRY Credits safe? + +Yes, all of your Credits remain yours and remain usable even after the SEC’s complaint is filed and +regardless of the outcome. + +If you want to ensure you have complete control over your Credits, channels, and content, +download [LBRY Desktop](https://lbry.com/get). + +### Is the LBRY network in danger? + +The LBRY network is robust and decentralized, and far harder to disrupt than LBRY Inc. Hundreds of +people across six continents contributed to LBRY last year (c’mon Antarctica!). Most of them don't +work at LBRY Inc, and we don't even know who many of them are. Even if LBRY Inc is shut down by the +SEC as a result of this lawsuit, the LBRY network will continue to function and grow through the +effort of the distributed LBRY community. + +### What's the difference between LBRY and LBRY Inc? + +**LBRY** is a decentralized protocol for accessing and publishing digital content. The devices that +talk to each other using the LBRY protocol are collectively called the LBRY network. + +**LBRY Inc** is a company that helps develop the protocol and builds applications on top of it. + +### What are the specific charges? + +Simply put, the SEC believes that the LBRY Credits are securities and should have been registered +with the SEC prior to selling. This case is about overregulation. The SEC is not +alleging fraud and is not charging any individuals. + +However, the SEC believes that, at a minimum, the following transactions were unregistered +securities offerings: + +- $10,000 worth of Credit sales to Shapeshift in July of 2016 to facilitate distribution to their + users. +- Several hundred thousand dollars worth of Credit sales to an Unnamed Group in 2017 and 2018, + despite that group explicitly saying they’re for use on the network. The name of this group is omitted at their request. +- Several million dollars worth of Credit sales on exchanges, over a period of several years, only + after the LBRY protocol was completely functional and had been in use for over a year, and always a small portion of private sales. + +At times, the SEC has made representations that even tipping $.25 worth of Credits for a clever GIF +is an unregistered security transaction that must be registered and tracked. However, it’s unclear +at this time if the SEC will continue to make this allegation in court. + +A full table of sales is available in Appendix A. All of our Credit use has been diligently tracked +at [lbry.com/credit-reports](https://lbry.com/credit-reports). + +### What is a security? + +A security is a tradable financial asset. Securities come in two types: equity +(shares of a company) and debt (that must be paid back), though some securities are a mix of the two. + +Securities are often contrasted with commodities, which are things like corn or nails. They are bought +to be used (e.g. to be eaten, to build a house with), not just for speculation. + +### Why does LBRY think the SEC is wrong? + +We do not believe that the LBRY Credit is a security subject to SEC regulation. +The SEC claims that Credits have no use other than speculation, which contradicts the facts +and history of experience on LBRY. + +The LBRY Credit serves an integral function in our network. It allows individuals to create an +identity, tip creators, and publish, purchase, and boost content in a decentralized way. Millions of +people have used it this way, and many were using it well before we sold any tokens to anyone. +The SEC is completely ignoring this. + +### Has anyone alleged harm or damages? + +Despite LBRY being used by millions of people, to our knowledge, not a single person has alleged +harm or damage as a result of purchasing LBRY Credits. + +### Who is LBRY Inc represented by? + +LBRY has hired one of the best law firms in the blockchain space -- [Perkins Coie](https://www.perkinscoie.com/en/). +Keith Miller and Adam Schuman will represent us at trial. Keith is a former SEC enforcement +lawyer, and Adam is a former federal prosecutor. Keith and Adam have been named by _Business Insider_ +as two of the top 20 cryptocurrency lawyers in the country. + +### What’s the timeline? + +LBRY Inc has been under investigation for three years, since May of 2018. + +The SEC repeatedly requested documents from LBRY Inc, at times doing so in overbearing and costly +ways that seemed punitive. If it’s true that LBRY Inc violated the law in +the ways the SEC alleges, all of the relevant facts were clearly known to the SEC by the fall of 2018. +We’re glad to finally be getting through this painful process and to be allowed to +express our positions to the public and in court. + +The trial will likely not be resolved in 2021. + +### What’s the cost been to LBRY Inc? + +LBRY Inc has spent more than $1,000,000 on legal fees and several thousand hours of team member +time (a similar or greater value) on this case. This has been a substantial burden to bear as a +small start-up and is extremely chilling to an innovative industry. If it takes several million +dollars in legal fees just to begin, blockchain becomes much less accessible. + +### Why is this case unusual compared to other cases the SEC has brought? + +There are several facts about this case that are unusual to past cases: + +- The SEC is not alleging fraud. +- LBRY Inc conducted no Initial Coin Offering (ICO). +- LBRY Inc did not breach any fiduciary duties. +- LBRY Inc at no time indicated that LBRY Credits were an investment, and consistently discouraged + purchasing Credits for this purpose. +- LBRY Inc did not sell any tokens until after they could be used on a functional network, a + previously stated key element by the SEC in how they assess token transactions. + +### Did LBRY Inc make an attempt to settle? + +Yes. The SEC declined to offer any terms that would have made it viable for U.S. citizens to +exchange tokens or to allow LBRY Inc to continue to operate. We were willing to give them a pound of +flesh, but they were only interested in our head. + +### Did LBRY Inc ask how to operate legally? + +We repeatedly asked the SEC for guidance on how it would be possible to run the company legally. The +SEC said that they could not tell us how to operate legally, but could only tell us that we were +breaking the law. + +### What are the implications for the blockchain and tech industry? + +The implications of this case are extremely dire for the blockchain and technology industry in the +United States. The SEC is alleging that any entity that transfers a blockchain token while +simultaneously working or funding work on it is performing a security offering. Under that standard, +every blockchain technology that is actively developed faces existential threat, so long as that +development is either funded by a token holder, even if indirectly, or if the developers themselves hold the token. + +This case is also chilling for the start-up scene in the United States more generally. We’ve acted +in extremely good-faith, attempted to follow all the rules, and complied with the SEC at every turn. +We would be hesitant to start another company in the United States in any cutting-edge field, as +cutting-edge fields frequently have unclear regulations. + +### Why are they charging LBRY Inc when there are many other companies with worse facts, or that are outright frauds and scams? + +We would love to know the actual answer to this question. Our best guess is that by acting in such a +radically transparent manner, we made ourselves an easy target. We fear that the SEC is more intent +on rigid and overly strict enforcement of their interpretation of the rules, than seeking to find +constructive solutions that promote innovation and business within a reasonable regulatory +framework. + +Consider an apathetic enforcer whose job review is simply “how many enforcements did you produce”. +Are they more incentivized to go after what is at-hand, or what is actually wrong? + +### Will LBRY Credit distribution, rewards program, or anything else change as a result of this case? + +At this time, we do not expect any of these programs to change. Some exchanges may choose to no +longer allow U.S. customers to exchange LBRY Credits. We do not expect any other changes until the +case is resolved. Please see our FAQ for a [full list of available exchanges](https://lbry.com/faq/exchanges). + +### Where can I view the full complaint? + +The full complaint can be viewed at [odysee.com/secvslbrycomplaint](https://odysee.com/secvslbrycomplaint) + +### How can I schedule an interview or request a quote? + +Email [press@lbry.com](mailto:press@lbry.com). + +### How can I support LBRY Inc in this case? + +- [Share this story](/#share) on social media, in your own words, using the tag #helplbrysavecrypto. + Or you can just share a link to [helplbrysavecrypto.com](https://helplbrysavecrypto.com/). +- Sign the [petition](/#petition). +- If you’re involved in one of the hundreds of other blockchain companies being investigated by the + SEC, tell your story. **The SEC doesn’t want you to talk because your silence helps them.** + By talking, we can coordinate our response. Until one of us wins, we’ll continue to be + digested, bit by bit. + +### How can I stay up-to-date on this case? + +- Follow #helplbrysavecrypto on social media and [@lbrycom](https://twitter.com/lbrycom) on twitter. +- Updates will be posted to the [@lbry](https://odysee.com/@lbry) channel on LBRY. +- Subscribe for updates below 👇 diff --git a/faq/es.md b/faq/es.md new file mode 100644 index 0000000..5b19b63 --- /dev/null +++ b/faq/es.md @@ -0,0 +1,133 @@ +# Guía de caso y preguntas frecuentes + +## Resumen + +La Comisión de Valores y Bolsa ha presentado una denuncia contra LBRY Inc. alegando que todas las +distribuciones de Créditos LBRY por parte de LBRY Inc son ofertas de valores no registradas. Esta afirmación +carece de hechos y es una tremenda amenaza para toda la industria de la criptomoneda. + +La red LBRY está descentralizada y no corre peligro. Para los usuarios del protocolo y las aplicaciones de LBRY, sus canales, contenidos y Créditos no corren ningún riesgo. Incluso en un escenario improbable en el que LBRY Inc. pierda, el protocolo LBRY seguirá vivo y se seguirá trabajando en él. + +LBRY Inc se ha preparado para luchar contra este caso durante tres años completos, que es el tiempo que la SEC ha estado investigando este asunto. Queríamos decírselo antes, pero la transparencia en las investigaciones en curso no es bien recibida por la SEC. + +## Preguntas frecuentes + +### ¿Están seguros mis Créditos LBRY? + +Sí, todos sus Créditos siguen siendo suyos y siguen siendo utilizables incluso después de la presentación de la denuncia de la SEC e independientemente del resultado. + +Si quiere asegurarse de tener un control total sobre sus Créditos, canales y contenidos, descargue [LBRY Desktop](https://lbry.com/get). + +### ¿Está en peligro la red LBRY? + +La red LBRY es robusta y descentralizada, y mucho más difícil de interrumpir que LBRY Inc. Cientos de personas de seis continentes contribuyeron a LBRY el año pasado (¡vamos, la Antártida!). La mayoría de ellos no trabaja en LBRY Inc, y ni siquiera sabemos quiénes son muchos de ellos. Incluso si la SEC cierra LBRY Inc como resultado de esta demanda, la red LBRY seguirá funcionando y creciendo gracias al esfuerzo de la comunidad distribuida LBRY. + +### ¿Cuál es la diferencia entre LBRY y LBRY Inc? + +**LBRY** es un protocolo descentralizado para acceder y publicar contenido digital. Los dispositivos hablan entre sí mediante el protocolo LBRY y se denominan colectivamente red LBRY. + +**LBRY Inc** es una empresa que ayuda a desarrollar el protocolo y crea aplicaciones sobre él. + +### ¿Cuáles son los cargos específicos? + +En pocas palabras, la SEC considera que los Créditos LBRY son valores y deberían haberse registrado en la SEC antes de su venta. Este caso trata de un exceso de regulación. La SEC no alega fraude y no acusa a ninguna persona. + +Sin embargo, la SEC cree que, como mínimo, las siguientes transacciones eran ofertas de valores no registradas: + +- 10.000 dólares en ventas de Créditos a Shapeshift en julio de 2016 para facilitar la distribución a sus usuarios. +- Varios cientos de miles de dólares en ventas de Crédito a un grupo sin nombre en 2017 y 2018, a pesar de que ese grupo dijo explícitamente que son para uso en la red. El nombre de este grupo se omite a petición suya. +- Varios millones de dólares de ventas de Créditos en las bolsas, durante un periodo de varios años, solo después de que el protocolo LBRY fuera completamente funcional y llevara más de un año en uso, y siempre una pequeña parte de las ventas privadas. + +En ocasiones, la SEC ha manifestado que incluso la entrega de Créditos por valor de 0,25 dólares para un GIF inteligente es una transacción de valores no registrada que debe ser registrada y rastreada. Sin embargo, no está claro en este momento si la SEC seguirá haciendo esta alegación en los tribunales. + +En el Apéndice A figura un cuadro completo de las ventas. Todo el uso de nuestros Créditos ha sido diligentemente rastreado en [lbry.com/credit-reports](https://lbry.com/credit-reports). + +### ¿Qué es un security? + +Un valor es un activo financiero negociable. Los valores vienen en dos tipos: acciones (acciones de una empresa) y deuda (que debe reembolsarse), aunque algunos valores son una combinación de los dos. + +Los valores a menudo se contrastan con los productos básicos, que son cosas como el maíz o los clavos. Se compran para ser utilizados (por ejemplo, para ser comido, para construir una casa), no solo para la especulación. + +### ¿Por qué cree LBRY que la SEC está equivocada? + +No creemos que los Créditos LBRY sean un valor sujeto a la regulación de la SEC. La SEC afirma que los Créditos no tienen otro uso que la especulación, lo que contradice los hechos e historial de experiencia en LBRY. + +El Crédito LBRY cumple una función integral en nuestra red. Permite a las personas crear una identidad, dar propina a los creadores y publicar, comprar e impulsar el contenido de forma descentralizada. Millones de personas lo han usado de esta manera, y muchos lo estaban usando mucho antes de que vendiéramos tokens a nadie. La SEC está ignorando esto por completo. + +### ¿Ha alegado alguien daños y perjuicios? + +A pesar de que LBRY es utilizado por millones de personas, hasta donde sabemos, ni una sola persona ha alegado daños o perjuicios como resultado de la compra de Créditos LBRY. + +### ¿Quién representa a LBRY Inc? + +LBRY ha contratado a uno de los mejores bufetes de abogados en el espacio blockchain -- [Perkins Coie](https://www.perkinscoie.com/en/). +Keith Miller y Adam Schuman nos representarán en el juicio. Keith es un antiguo abogado de la SEC y Adam es un antiguo fiscal federal. Keith y Adam han sido nombrados por _Business Insider_ como dos de los 20 mejores abogados de criptomonedas del país. + +### ¿Cuál es el calendario? + +LBRY Inc ha estado bajo investigación durante tres años, desde mayo de 2018. + +La SEC solicitó repetidamente documentos a LBRY Inc., en ocasiones haciéndolo de forma prepotente y costosa que podría poner en peligro la supervivencia de LBRY Inc. Si es cierto que LBRY Inc violó la ley de las formas que la SEC alega, todos los hechos relevantes eran claramente conocidos por la SEC en el otoño de 2018. Nos alegramos de haber superado por fin este doloroso proceso y de que por fin se nos permita expresar nuestras posiciones ante el público y ante el Tribunal. + +Es probable que el juicio no se resuelva en 2021. + +### ¿Cuál ha sido el coste para LBRY Inc? + +LBRY Inc ha gastado más de 1.000.000 de dólares en honorarios legales y varios miles de horas de tiempo de los miembros del equipo (un valor similar o mayor) en este caso. Esto ha sido una carga sustancial para soportar como una pequeña start-up y es extremadamente escalofriante para una industria innovadora. Si se necesitan varios millones de dólares en honorarios legales solo para empezar, blockchain se vuelve mucho menos accesible. + +### ¿Por qué este caso es inusual en comparación con otros casos que la SEC ha presentado? + +Hay varios hechos en este caso que son inusuales a los casos anteriores: + +- La SEC no acusa de fraude. +- LBRY Inc. no realizó ninguna oferta inicial de monedas (ICO). +- LBRY Inc. no incumplió ningún deber fiduciario. +- LBRY Inc. no indicó en ningún momento que los Créditos LBRY fueran una inversión, y desaconsejó sistemáticamente la compra de Créditos con este fin. +- LBRY Inc. no vendió ningún token hasta que pudo ser utilizado en una red funcional, un elemento clave previamente declarado por la SEC en la forma de evaluar las transacciones de tokens. + +### ¿Intentó LBRY Inc. llegar a un acuerdo? + +Sí. La SEC se negó a ofrecer condiciones que hicieran viable el intercambio de tokens por parte de los ciudadanos estadounidenses o que permitieran a LBRY Inc seguir operando. Estábamos dispuestos a darles una libra de carne, pero solo les interesaba nuestra cabeza. + +### ¿Preguntó LBRY Inc. cómo operar legalmente? + +Pedimos repetidamente a la SEC que nos orientara sobre cómo sería posible dirigir la empresa legalmente. La SEC dijo que no podía decirnos cómo operar legalmente, sino que sólo podía decirnos que estábamos infringiendo la ley. + +### ¿Cuáles son las implicaciones para la industria del blockchain y la tecnología? + +Las implicaciones de este caso son extremadamente nefastas para la industria del blockchain y la tecnología en Estados Unidos. La SEC alega que cualquier entidad que transfiera un token de blockchain mientras simultáneamente trabaja o financia trabajos en ella está realizando una oferta de valores. Bajo esa norma, toda tecnología blockchain que se desarrolle activamente se enfrenta a una amenaza existencial, siempre que ese desarrollo sea financiado por un titular de un token, aunque sea de forma indirecta, o si los propios desarrolladores poseen el token. + +Este caso también es escalofriante para el panorama de las empresas emergentes en Estados Unidos en general. Hemos actuado de muy buena fe, hemos intentado seguir todas las reglas y hemos cumplido con la SEC en todo momento. +No nos atreveríamos a crear otra empresa en Estados Unidos en cualquier campo de vanguardia, ya que los campos de vanguardia suelen tener una normativa poco clara. + +### ¿Por qué cobran a LBRY Inc. cuando hay muchas otras empresas con hechos peores, o que son auténticos fraudes y estafas? + +Nos encantaría saber la respuesta real a esta pregunta. Nuestra mejor suposición es que al actuar de forma tan radicalmente transparente, nos convertimos en un blanco fácil. Nos tememos que la SEC está más empeñada en aplicar de forma rígida y excesivamente estricta su interpretación de las normas, que en buscar soluciones constructivas que promuevan la innovación y el negocio dentro de un marco normativo razonable. + +Piensa en un ejecutor apático cuya evaluación del trabajo es simplemente "cuántas ejecuciones has producido". ¿Están más incentivados para perseguir lo que está a mano, o lo que realmente está mal? + +### ¿Cambiará la distribución de Créditos LBRY, el programa de recompensas o cualquier otra cosa como resultado de este caso? + +En este momento, no esperamos que ninguno de estos programas cambie. Algunos exchanges pueden optar por no permitir que los clientes de EE.UU. intercambien Créditos LBRY. No esperamos ningún otro cambio hasta que se resuelva el caso. Consulte nuestras preguntas frecuentes para obtener una [lista completa de los intercambios disponibles](https://lbry.com/faq/exchanges). + +### ¿Dónde puedo ver la denuncia completa? + +La denuncia completa se puede ver en [odysee.com/secvslbrycomplaint](https://odysee.com/secvslbrycomplaint) + +### ¿Cómo puedo programar una entrevista o solicitar un comentario? + +Envía un correo a [press@lbry.com](mailto:press@lbry.com). + +### ¿Cómo puedo apoyar a LBRY Inc en este caso? + +- [Comparte esta historia](/#share) por las redes sociales, en tus propias palabras, usando el tag #helplbrysavecrypto. + O simplemente puedes compartir este enlace [helplbrysavecrypto.com](https://helplbrysavecrypto.com/). +- Firma la [petición](/#petition). +- Si estás involucrado en uno de los cientos de empresas de blockchain que están siendo investigadas por la SEC, cuenta tu historia. **La SEC no quiere que hables porque tu silencio les ayuda.** + Hablando, podemos coordinar nuestra respuesta. Hasta que uno de nosotros gane, seguiremos siendo digeridos, poco a poco. + +### ¿Cómo puedo estar al día sobre este caso? + +- Sigue #helplbrysavecrypto en las redes sociales y [@lbrycom](https://twitter.com/lbrycom) en twitter. +- Las actualizaciones se publicarán en el canal [@lbry](https://odysee.com/@lbry) en LBRY. +- Suscríbase a las actualizaciones a continuación 👇 diff --git a/i18n.js b/i18n.js new file mode 100644 index 0000000..3db2cba --- /dev/null +++ b/i18n.js @@ -0,0 +1,195 @@ +export const m = { + help_lbry: 'help_lbry', + save_crypto: 'save_crypto', + go_home: 'go_home', + og_description: 'og_description', + landing_subtitle: 'landing_subtitle', + landing_action: 'landing_action', + summary_title: 'summary_title', + summary_subtitle: 'summary_subtitle', + video_subtitle: 'video_subtitle', + video_link: 'video_link', + p1_a: 'p1_a', + p1_b: 'p1_b', + p2_a: 'p2_a', + p2_b: 'p2_b', + share_story_title: 'share_story_title', + share_story_subtitle: 'share_story_subtitle', + petition_title: 'petition_title', + petition_subtitle: 'petition_subtitle', + petition_link: 'petition_link', + read_more_title: 'read_more_title', + read_more_subtitle: 'read_more_subtitle', + read_more_link: 'read_more_link', + email_title: 'email_title', + email_subtitle: 'email_subtitle', + email_input_label: 'email_input_label', + email_input_button: 'email_input_button', + email_input_button_loading: 'email_input_button_loading', + email_success: 'email_success', + email_error: 'email_error', + try_lbry_title: 'try_lbry_title', + try_lbry_subtitle: 'try_lbry_subtitle', + try_lbry_desktop_link: 'try_lbry_desktop_link', + try_lbry_desktop_help: 'try_lbry_desktop_help', + try_odysee_help: 'try_odysee_help', + contact_title: 'contact_title', + contact_press: 'contact_press', + contact_legal: 'contact_legal', + contact_other_email: 'contact_other_email', + contact_discord: 'contact_discord', +}; + +const en = { + faq: 'VIEW FAQ', + help_lbry: 'HELP LBRY', + save_crypto: 'SAVE CRYPTO', + go_home: 'Go Home', + og_description: + 'The SEC doesn’t understand blockchain. The claims made in SEC vs. LBRY would destroy the United States cryptocurrency industry.', + + landing_subtitle: + 'The SEC doesn’t understand blockchain. The claims made in SEC vs. LBRY would destroy the United States cryptocurrency industry.', + landing_action: 'Help us educate the SEC', + + summary_title: 'What’s the big deal?', + summary_subtitle: + 'The entire blockchain industry is at risk in the United States. Big tech and Wall St. would have more power and many people could lose their jobs.', + + video_subtitle: + 'Warning / Enticement: this video is more entertainment than education, for the facts read the FAQ.', + + video_link: 'Case Guide & FAQ', + + p1_a: + 'The SEC is advancing an aggressive and disastrous new standard that would make almost all blockchain tokens securities.', + p1_b: + 'Classifying all actively-developed blockchain tokens as securities will be a bureaucratic nightmare for United States residents and businesses operating in the US.', + + p2_a: + 'Under this new standard, almost any token is a security, including the previously safe Ethereum. The nature of technology is that it is never "finished".', + p2_b: + 'This change will make it much harder for startups to form new blockchain companies, cause massive job loss, and stunt the development of a critical new technology. All the while, big tech and Wall St. prosper!', + + share_story_title: 'Share this story', + share_story_subtitle: 'Post to social media to spread awareness.', + + twitter_title: 'What are people saying?', + + petition_title: 'Sign the petition', + petition_subtitle: + 'Tell the SEC that cryptocurrency must remain legal and free.', + petition_link: 'Add your signature', + + read_more_title: 'Read more', + read_more_subtitle: 'Read our case guide and FAQ', + read_more_link: 'here', + + email_title: 'Stay Informed', + email_subtitle: 'We will keep you up to date with the latest on this case.', + email_input_label: 'Email', + email_input_button: 'Submit', + email_input_button_loading: 'Submitting', + email_success: 'Thank you. We will keep you in the loop.', + email_error: 'Sorry, there was an error. Please try again.', + + try_lbry_title: 'Try LBRY', + try_lbry_subtitle: + 'If the government and big tech want it gone, it must be good.', + try_lbry_desktop_link: 'LBRY Desktop', + try_lbry_desktop_help: 'decentralized and open-source', + try_odysee_help: 'easiest to use', + + contact_title: 'Contact us', + contact_press: 'Press inquiries', + contact_legal: 'Legal', + contact_other_email: 'Other email', + contact_discord: 'Discord (not run by LBRY Inc)', +}; + +const es = { + faq: 'VER PREGUNTAS FRECUENTES', + help_lbry: 'AYUDA A LBRY.', + save_crypto: 'SALVA LAS CRIPTOMONEDAS', + go_home: 'Ir a Inicio', + og_description: + 'La SEC no comprende blockchain. Las afirmaciones hechas en SEC vs LBRY destruirían la industria de las criptomonedas en los Estados Unidos.', + + landing_subtitle: + 'La SEC no comprende blockchain. Las afirmaciones hechas en SEC vs LBRY destruirían la industria de las criptomonedas en los Estados Unidos.', + landing_action: 'Ayúdanos a educar a la SEC', + + summary_title: '¿Cuál es el problema?', + summary_subtitle: + 'Toda la industria blockchain está en riesgo en los Estados Unidos. Las grandes tecnologías y Wall St. tendrían más poder y muchas personas podrían perder sus trabajos.', + + video_subtitle: + 'Advertencia/Tentativo: este video es más entretenimiento que educación, para los hechos, lea las preguntas frecuentes.', + + video_link: 'Guía de casos y preguntas frecuentes', + + p1_a: + 'La SEC está avanzando en un nuevo estándar agresivo y desastroso que convertiría a casi todos los tokens de blockchain en valores.', + p1_b: + 'Clasificar todos los tokens de blockchain desarrollados activamente como valores será una pesadilla burocrática para los residentes y las empresas de los Estados Unidos que operan en los EE. UU.', + + p2_a: + 'Bajo este nuevo estándar, casi cualquier token es un valor, incluido Ethereum, que antes era security. La naturaleza de la tecnología es que nunca está "terminada".', + p2_b: + 'Este cambio hará que sea mucho más difícil para las nuevas empresas formar nuevas empresas blockchain, provocará una pérdida masiva de puestos de trabajo y obstaculizará el desarrollo de una nueva tecnología crítica. ¡Mientras tanto, la gran tecnología y Wall St. prosperan!', + + share_story_title: 'Comparte esta historia', + share_story_subtitle: + 'Publica en las redes sociales para difundir el conocimiento.', + + twitter_title: '¿Qué dice la gente?', + + petition_title: 'Firma la petición', + petition_subtitle: + 'Dígale a la SEC que la criptomoneda debe seguir siendo legal y gratuita.', + petition_link: 'Agrega tu firma', + + read_more_title: 'Lee mas', + read_more_subtitle: 'Lea nuestra guía de casos y preguntas frecuentes', + read_more_link: 'aquí', + + email_title: 'Mantente informado', + email_subtitle: + 'Le mantendremos informado de las últimas novedades sobre este caso.', + email_input_label: 'Correo electrónico', + email_input_button: 'Enviar', + email_input_button_loading: 'Enviando', + email_success: 'Gracias. Te mantendremos informado.', + email_error: 'Lo sentimos, ha habido un error. Inténtalo de nuevo.', + + try_lbry_title: 'Prueba LBRY', + try_lbry_subtitle: + 'Si el gobierno y la gran tecnología quieren que se vaya, debe ser bueno.', + try_lbry_desktop_link: 'LBRY Desktop', + try_lbry_desktop_help: 'descentralizado y de código abierto', + try_odysee_help: 'más fácil de usar', + + contact_title: 'Contacta con nosotros', + contact_press: 'preguntas de la prensa', + contact_legal: 'Legal', + contact_other_email: 'Otro correo electrónico', + contact_discord: 'Discord (no dirigido por LBRY Inc)', +}; + +const languages = { + es, +}; + +export function t(string, lang) { + let val; + + if (languages[lang]) { + val = languages[lang][string]; + } + + if (val) { + return val; + } else { + return en[string]; + } +} diff --git a/next.config.js b/next.config.js new file mode 100644 index 0000000..964307f --- /dev/null +++ b/next.config.js @@ -0,0 +1,10 @@ +module.exports = { + webpack: (config) => { + config.module.rules.push({ + test: /\.md$/, + use: 'raw-loader', + }); + + return config; + }, +}; diff --git a/package.json b/package.json index bb83722..c85b1fc 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,16 @@ "start": "next start" }, "dependencies": { + "@datapunt/matomo-tracker-js": "^0.4.0", "next": "10.0.9", "react": "17.0.2", - "react-dom": "17.0.2" + "react-dom": "17.0.2", + "react-markdown": "^5.0.3", + "stripe": "^8.140.0", + "twitter": "^1.7.1" + }, + "devDependencies": { + "raw-loader": "^4.0.2", + "sass": "^1.32.8" } } diff --git a/pages/_app.js b/pages/_app.js index 1e1cec9..1b19274 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -1,7 +1,7 @@ -import '../styles/globals.css' +import '../styles/globals.scss'; function MyApp({ Component, pageProps }) { - return + return ; } -export default MyApp +export default MyApp; diff --git a/pages/api/email.js b/pages/api/email.js new file mode 100644 index 0000000..0f9e50f --- /dev/null +++ b/pages/api/email.js @@ -0,0 +1,35 @@ +const API = 'https://api.lbry.com/'; +const USER_TAG = 'lbry-sec'; + +function buildUrl(email) { + let url = `${API}/list/subscribe?email=${encodeURIComponent( + email + )}&tag=${USER_TAG}`; + + return url; +} + +export default (req, res) => { + const { email } = req.body; + + if (!email) { + res.statusCode = 400; + res.json({ error: 'no email passed to api' }); + return; + } + + return fetch(buildUrl(email)) + .then((res) => res.json()) + .then((res) => { + if (res.error) { + throw Error(res.error); + } + + res.statusCode = 200; + res.json({ success: true }); + }) + .catch((error) => { + res.statusCode = 400; + res.json({ error }); + }); +}; diff --git a/pages/api/hello.js b/pages/api/hello.js deleted file mode 100644 index 5b77ec0..0000000 --- a/pages/api/hello.js +++ /dev/null @@ -1,6 +0,0 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction - -export default (req, res) => { - res.statusCode = 200 - res.json({ name: 'John Doe' }) -} diff --git a/pages/api/twitter.js b/pages/api/twitter.js new file mode 100644 index 0000000..b63aeba --- /dev/null +++ b/pages/api/twitter.js @@ -0,0 +1,43 @@ +import Twitter from 'twitter'; + +var client = new Twitter({ + bearer_token: + 'AAAAAAAAAAAAAAAAAAAAAMM7OAEAAAAAnyZGPrtcyMxTcMaeEKs2w5h9tLE%3DIhFiagHIQttMtwim6PC6bdSWVRKh8yciPNYSQONsZ0SW9pPlwg', + consumer_key: 'QHDGGCESRXnzIPqjkM5gXeFJW', + consumer_secret: 'UOmIuZIrqqOHDoWPwDmP9MhSMC8Jg0TseZcudx0JckdNrtqVCs', + access_token_key: '409427707-xOAx3oBfwsh5FesJYxrYlcN7wlU7wXDRcPfRxUtT', + access_token_secret: 'WbUYTqNm0zeweC5HRawXfq2OKxDVKrY5OD6W0MJqtnrgp', +}); + +let cachedTweets; +let cacheDate; +const CACHE_TIME = 1 * 60 * 1000; + +export default (req, res) => { + const skipCache = cacheDate && new Date() - cacheDate > CACHE_TIME; + + if (cachedTweets && cacheDate && !skipCache) { + res.statusCode = 200; + return res.json({ data: cachedTweets }); + } + + return new Promise((resolve, reject) => { + client.get( + 'search/tweets', + { q: '#HelpLBRYSaveCrypto', count: 100 }, + function (error, tweets, response) { + if (error) { + res.statusCode = 500; + Promise.resolve(res.json({ error: 'Unable to fetch tweets' })); + return; + } + + cachedTweets = tweets; + cacheDate = new Date(); + + res.statusCode = 200; + Promise.resolve(res.json({ data: tweets })); + } + ); + }); +}; diff --git a/pages/faq.js b/pages/faq.js new file mode 100644 index 0000000..0009fa6 --- /dev/null +++ b/pages/faq.js @@ -0,0 +1,60 @@ +import React from 'react'; +import ReactMarkdown from 'react-markdown'; +import { useRouter } from 'next/router'; +import { Header } from '../component/header'; +import { Email } from '../component/email'; +import { tracker } from '../analytics'; +import { t, m } from '../i18n'; +import EN_MD from '../faq/en.md'; +import ES_MD from '../faq/es.md'; + +function flatten(text, child) { + return typeof child === 'string' + ? text + child + : React.Children.toArray(child.props.children).reduce(flatten, text); +} + +function HeadingRenderer(props) { + var children = React.Children.toArray(props.children); + var text = children.reduce(flatten, ''); + var slug = text.toLowerCase().replace(/\W/g, '-'); + return React.createElement('h' + props.level, { id: slug }, props.children); +} + +export default function Faq() { + const router = useRouter(); + const lang = router.query.lang || 'en'; + + let md; + switch (true) { + case lang === 'es': + md = ES_MD; + break; + default: + md = EN_MD; + } + + React.useEffect(() => { + tracker.trackPageView(window.location.pathname); + }, []); + + function __(message) { + return t(message, lang); + } + + return ( +
+
+ +
+
+ + {md} + +
+ + +
+
+ ); +} diff --git a/pages/index.js b/pages/index.js index 43956d9..918c318 100644 --- a/pages/index.js +++ b/pages/index.js @@ -1,65 +1,241 @@ -import Head from 'next/head' -import styles from '../styles/Home.module.css' +import React from 'react'; +import Image from 'next/image'; +import { useRouter } from 'next/router'; +import { Header } from '../component/header'; +import { Twitter } from '../component/twitter'; +import { Email } from '../component/email'; +import { t, m } from '../i18n'; +import { tracker } from '../analytics'; export default function Home() { + const router = useRouter(); + const lang = router.query.lang || 'en'; + + let faqHref = '/faq'; + if (lang !== 'en') { + faqHref += `?lang=${lang}`; + } + + React.useEffect(() => { + tracker.trackPageView(); + }, []); + + function __(message) { + return t(message, lang); + } + return ( -
- - Create Next App - - +
+
-
-

- Welcome to Next.js! -

+
+
+ +
-

- Get started by editing{' '} - pages/index.js -

+
+

+ {__(m.help_lbry)} +
+ {__(m.save_crypto)} +

+
+
{__(m.landing_subtitle)}
+ {/* +
+ {__(m.landing_action)} +
- +
- -

Learn →

-

Learn about Next.js in an interactive course with quizzes!

-
+
+

{__(m.summary_title)}

+
{__(m.summary_subtitle)}
- -

Examples →

-

Discover and deploy boilerplate example Next.js projects.

-
+ {/*
+ + {__(m.video_subtitle)}{' '} + + {__(m.video_link)} + + +
*/} +
+