/** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const React = require("react"); const CompLibrary = require("../../core/CompLibrary.js"); const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */ const Container = CompLibrary.Container; const GridBlock = CompLibrary.GridBlock; const Logo = props => (
Project Logo
); class HomeSplash extends React.Component { render() { const { siteConfig, language = "" } = this.props; const { baseUrl, docsUrl } = siteConfig; const docsPart = `${docsUrl ? `${docsUrl}/` : ""}`; const langPart = `${language ? `${language}/` : ""}`; const docUrl = doc => `${baseUrl}${docsPart}${langPart}${doc}`; const SplashContainer = props => (
{props.children}
); const ProjectTitle = () => (

{siteConfig.tagline}

); const PromoSection = props => (
{props.children}
); return (
{/* */}
); } } class Index extends React.Component { render() { const { config: siteConfig, language = "" } = this.props; const { baseUrl, docsUrl } = siteConfig; const docsPart = `${docsUrl ? `${docsUrl}/` : ""}`; const langPart = `${language ? `${language}/` : ""}`; const docUrl = doc => `${baseUrl}${docsPart}${langPart}${doc}`; const Block = props => ( ); const Button = props => (
{props.children}
); // cribbed from Bloop site, https://github.com/scalacenter/bloop/blob/6b5384241d1bba4143315e66f668876d65a2e34f/website/pages/en/index.js#L92 const Hero = ({ siteConfig }) => (

{siteConfig.tagline}

); const TryOut = () => ( {[ { content: [ "Use our RPC clients for `bitcoind`/Bitcoin Core and Eclair, and get powerful", "static typing baked into your RPC calls. All returned values you get from `bitcoind`", "and Eclair are converted into native Bitcoin/Lightning data structures for you.", "Is that raw hex string you've been passing around a transaction or a Lightning invoice?", "With Bitcoin-S you get both confidence in your code _and_ powerful methods available", "on your data" ].join(" "), image: `${baseUrl}img/undraw_target_kriv.svg`, imageAlign: "left", title: "Super-powered RPC clients" } ]} ); const Description = () => ( {[ { content: [ "Bitcoin-S is used in production today, facilitating transactions and systems handling", "millions of dollars each day. It has a very high degree of code coverage,", "with unit tests, property based tests and integration tests." ].join(" "), image: `${baseUrl}img/undraw_Security_on_s9ym.svg`, imageAlign: "right", title: "Battle tested, high quality code" } ]} ); const LearnHow = () => ( {[ { content: [ "We provide solid APIs for constructing and signing transactions.", "From small-scale 1-in 2-out transactions, to custom logic powering exchange withdrawals, we've got you covered.", "Check out our [`TxBuilder` example](docs/core/txbuilder) to see how." ].join(" "), image: `${baseUrl}img/undraw_transfer_money_rywa.svg`, imageAlign: "right", title: "Construct and sign bitcoin transactions" } ]} ); const Features = () => ( {[ { content: [ "Bitcoin-S allows you to interact with data structures found in the", "Bitcoin and Lightning protocols as first-class citizens of your app.", "Go back and forth between hex, byte and JVM representation trivially,", "letting our abstractions focus on what you want to build" ].join(" "), image: `${baseUrl}img/undraw_digital_currency_qpak.svg`, imageAlign: "top", title: "Deep protocol understanding" }, { content: [ "Code with confidence, knowing your data won't change under you. All", "data structures in Bitcoin-S are immutable. This eliminates a big", "range of bugs right away, and enable you to write concurrent code", "much easier" ].join(" "), image: `${baseUrl}img/undraw_code_review_l1q9.svg`, imageAlign: "top", title: "Immutable data structures" }, { content: [ "Get the compiler to work for you, ensuring your logic covers all cases.", "Modelling your application with mathematically founded types enables greater confidence in the correctness of your code" ].join(" "), image: `${baseUrl}img/undraw_mathematics_4otb.svg`, imageAlign: "top", title: "Algebraic data types" } ]} ); const Showcase = () => { if ((siteConfig.users || []).length === 0) { return null; } const showcase = siteConfig.users .filter(user => user.pinned) .map(user => ( {user.caption} )); const pageUrl = page => baseUrl + (language ? `${language}/` : "") + page; return (

Who is using Bitcoin-S?

Bitcoin-S is used in production applications, by both small and large companies

{showcase}
Read more
); }; return (
); } } module.exports = Index;