From 4c46aa35135b77d5c7643f5f4b9449c3950454bb Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Tue, 26 May 2026 10:58:35 +0200 Subject: [PATCH 1/3] Small update to test case --- packages/cashc/test/valid-contract-files/bitshift.cash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cashc/test/valid-contract-files/bitshift.cash b/packages/cashc/test/valid-contract-files/bitshift.cash index bce4ad3a..47b2cdf5 100644 --- a/packages/cashc/test/valid-contract-files/bitshift.cash +++ b/packages/cashc/test/valid-contract-files/bitshift.cash @@ -8,6 +8,6 @@ contract Bitshift() { int a = 8; int b = a >> 2 << 1; - require (b == 16); + require (b == 4); } } From 1ef2f3d87a8f65f4667e20bc47140b5a02c4b12a Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Thu, 28 May 2026 10:41:23 +0200 Subject: [PATCH 2/3] Add supporters page to website --- packages/cashc/test/generation/fixtures.ts | 6 +- website/docusaurus.config.ts | 23 ++-- website/src/constants.ts | 7 ++ website/src/pages/index.module.css | 130 +++++++++++++++++++++ website/src/pages/index.tsx | 2 +- website/src/pages/supporters.tsx | 83 +++++++++++++ 6 files changed, 236 insertions(+), 15 deletions(-) create mode 100644 website/src/constants.ts create mode 100644 website/src/pages/supporters.tsx diff --git a/packages/cashc/test/generation/fixtures.ts b/packages/cashc/test/generation/fixtures.ts index 235bbd5d..3ff2529f 100644 --- a/packages/cashc/test/generation/fixtures.ts +++ b/packages/cashc/test/generation/fixtures.ts @@ -1272,10 +1272,10 @@ export const fixtures: Fixture[] = [ contractName: 'Bitshift', constructorInputs: [], abi: [{ name: 'spend', inputs: [] }], - bytecode: '1122334455667788 OP_4 OP_LSHIFTBIN OP_4 OP_RSHIFTBIN 0000000055667788 OP_EQUALVERIFY OP_8 OP_2 OP_RSHIFTNUM OP_1 OP_LSHIFTNUM OP_16 OP_NUMEQUAL', + bytecode: '1122334455667788 OP_4 OP_LSHIFTBIN OP_4 OP_RSHIFTBIN 0000000055667788 OP_EQUALVERIFY OP_8 OP_2 OP_RSHIFTNUM OP_1 OP_LSHIFTNUM OP_4 OP_NUMEQUAL', debug: { - bytecode: '081122334455667788549854990800000000556677888858528e518d609c', - sourceMap: '3:19:3:37;4:24:4:25;:19:::1;:29::30:0;:19:::1;6:21:6:39:0;:8::41:1;8:16:8:17:0;9:21:9:22;:16:::1;:26::27:0;:16:::1;11:22:11:24:0;:8::26:1', + bytecode: '081122334455667788549854990800000000556677888858528e518d549c', + sourceMap: '3:19:3:37;4:24:4:25;:19:::1;:29::30:0;:19:::1;6:21:6:39:0;:8::41:1;8:16:8:17:0;9:21:9:22;:16:::1;:26::27:0;:16:::1;11:22:11:23:0;:8::25:1', logs: [], requires: [ { ip: 6, line: 6 }, diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts index 06ac244a..08b4b6d3 100644 --- a/website/docusaurus.config.ts +++ b/website/docusaurus.config.ts @@ -1,6 +1,7 @@ import { themes as prismThemes } from 'prism-react-renderer'; import type { Config } from '@docusaurus/types'; import type { Options as ClassicPresetOptions } from '@docusaurus/preset-classic'; +import { FLIPSTARTER_URL, GITHUB_URL, KALIS_URL, TELEGRAM_URL, TWITTER_URL } from './src/constants'; const config: Config = { title: 'CashScript', @@ -33,7 +34,7 @@ const config: Config = { position: 'right', }, { - href: 'https://github.com/CashScript/cashscript', + href: GITHUB_URL, label: 'GitHub', position: 'right', }, @@ -61,7 +62,7 @@ const config: Config = { items: [ { label: 'Telegram', - href: 'https://t.me/CashScriptBCH', + href: TELEGRAM_URL, }, { label: 'Showcase', @@ -74,24 +75,24 @@ const config: Config = { items: [ { label: 'Kalis.me', - href: 'https://kalis.me', + href: KALIS_URL, }, { label: 'Twitter', - href: 'https://twitter.com/CashScriptBCH', + href: TWITTER_URL, }, ], }, { - title: 'Sponsors', + title: 'Supporters', items: [ { - html: ` - - General Protocols - - `, + to: '/supporters', + label: 'Supporters', + }, + { + label: 'Flipstarter', + href: FLIPSTARTER_URL, }, ], }, diff --git a/website/src/constants.ts b/website/src/constants.ts new file mode 100644 index 00000000..b5ea9c4e --- /dev/null +++ b/website/src/constants.ts @@ -0,0 +1,7 @@ +// Shared external URLs used across the Docusaurus config and the page components. + +export const GITHUB_URL = 'https://github.com/CashScript/cashscript'; +export const TELEGRAM_URL = 'https://t.me/CashScriptBCH'; +export const TWITTER_URL = 'https://twitter.com/CashScriptBCH'; +export const KALIS_URL = 'https://kalis.me'; +export const FLIPSTARTER_URL = 'https://flipstarter-2025.cashscript.org/'; diff --git a/website/src/pages/index.module.css b/website/src/pages/index.module.css index f14a2dec..f7afe417 100755 --- a/website/src/pages/index.module.css +++ b/website/src/pages/index.module.css @@ -33,3 +33,133 @@ height: 150px; width: 250px; } + +/* Supporters section */ +.supporters { + display: flex; + flex-direction: column; + flex: 1; +} + +/* Header band: a distinct surface-coloured banner for the title, intro and link. */ +.supportersHeader { + background-color: var(--ifm-background-surface-color); + text-align: center; + padding: 3rem 2rem; +} + +.supportersHeader h1 { + font-size: 2rem; + margin-bottom: 0.6rem; +} + +.supportersSubtitle { + max-width: 640px; + margin: 0 auto 0.85rem; + font-size: 1rem; + line-height: 1.55; + color: var(--ifm-color-emphasis-700); +} + +.supportersLink { + display: inline-block; + font-weight: 600; + color: var(--ifm-color-primary); +} + +/* Body: the cards sit on the default page background, distinct from the header band. */ +.supportersBody { + flex: 1; + padding: 2.5rem 2rem 3.5rem; + background-color: var(--ifm-background-color); +} + +/* Constrain the cards grid width while the body background stays full-width. */ +.supporterCards { + max-width: 850px; + margin: 0 auto; +} + +.supporterTier { + display: grid; + gap: 0.75rem; + margin-bottom: 0.75rem; +} + +.supporterTier:last-child { + margin-bottom: 0; +} + +.tierTop { + grid-template-columns: repeat(3, 1fr); +} + +.tierMid { + grid-template-columns: repeat(2, 1fr); +} + +.tierRest { + grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); +} + +.supporterCard { + display: flex; + flex-direction: column; + justify-content: center; + background-color: var(--ifm-background-surface-color); + border: 1px solid var(--ifm-color-emphasis-200); + border-radius: 8px; + padding: 0.85rem 1rem; + text-align: center; +} + +.tierTop .supporterCard { + padding: 1.5rem; + border: 2px solid var(--ifm-color-primary); +} + +.tierMid .supporterCard { + padding: 1.1rem 1.25rem; + border: 1px solid color-mix(in srgb, var(--ifm-color-primary) 25%, var(--ifm-color-emphasis-200)); +} + +.supporterName { + font-size: 0.95rem; + font-weight: 700; + color: var(--ifm-heading-color); + margin: 0; + overflow-wrap: anywhere; +} + +.tierTop .supporterName { + font-size: 1.3rem; +} + +.tierMid .supporterName { + font-size: 1.1rem; +} + +.supporterMessage { + margin: 0.35rem 0 0; + font-size: 0.85rem; + line-height: 1.45; + color: var(--ifm-color-emphasis-700); + font-style: italic; +} + +.tierTop .supporterMessage { + margin-top: 0.6rem; + font-size: 0.95rem; +} + +@media screen and (max-width: 768px) { + .supportersHeader { + padding: 2.5rem 1rem; + } + .supportersBody { + padding: 2rem 1rem 3rem; + } + .tierTop { + grid-template-columns: 1fr; + } +} diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx index ee8aa2d0..af228b0f 100644 --- a/website/src/pages/index.tsx +++ b/website/src/pages/index.tsx @@ -45,7 +45,7 @@ const features: FeatureItem[] = [ title: 'Advanced Debug Tooling', description: ( <> - To offer the best developer experience for debugging and automated testing easy for developers, + To offer the best developer experience for debugging and automated testing, CashScript has extensive debug tooling built-in. This makes it possible to develop robust contract testing suites, and to debug your contracts with the Bitauth-IDE. diff --git a/website/src/pages/supporters.tsx b/website/src/pages/supporters.tsx new file mode 100644 index 00000000..86b8a5d9 --- /dev/null +++ b/website/src/pages/supporters.tsx @@ -0,0 +1,83 @@ +import React from 'react'; +import classnames from 'classnames'; +import Layout from '@theme/Layout'; +import Link from '@docusaurus/Link'; +import styles from './index.module.css'; +import { FLIPSTARTER_URL } from '../constants'; + +type Supporter = { + name: string; + bch: number; + message?: string; +}; + +// Backers of the 2025 CashScript Flipstarter, ordered by contribution. +const supporters2025: Supporter[] = [ + { name: 'molecular', bch: 119.78, message: 'developers, developers, developeeeers!' }, + { name: 'majamalu', bch: 50.10 }, + { name: 'General Protocols', bch: 27.52, message: 'Hedge, short or long on bchbull.com — made with CashScript!' }, + { name: 'toorik', bch: 8.01 }, + { name: 'The Bitcoin Cash Podcast', bch: 5.01, message: 'CashScript is essential.' }, + { name: 'AsashoryuMaryBerry', bch: 2.02 }, + { name: 'Richard Brady', bch: 2.00, message: 'CashScript FTW!' }, + { name: 'emergent_reasons', bch: 1.51, message: 'Professionalism, good maintenance and practical progress 💯' }, + { name: 'Steve2048', bch: 1.01, message: 'Belgian Power! Congrats for all you do and good luck with Blaze!' }, + { name: 'Bernanácatl', bch: 0.65, message: 'Keep cooking liberty with passion!' }, + { name: 'im_uname', bch: 0.62, message: 'wait nobody told me this was going on' }, + { name: 'Kallisti.cash', bch: 0.51, message: 'essential!' }, + { name: 'CashDragon', bch: 0.51, message: 'RealBitcoin.Cash' }, + { name: 'minimalB', bch: 0.50 }, + { name: 'Bitcoin Out Loud', bch: 0.25, message: 'CashScript FTW!' }, +]; + +function SupporterCard({ supporter, hideMessage }: { supporter: Supporter; hideMessage?: boolean }) { + const { name, message } = supporter; + return ( +
+

{name}

+ {message && !hideMessage &&

{message}

} +
+ ); +} + +function Supporters(): React.ReactNode { + return ( + +
+
+

Supporters

+

+ CashScript development is funded by the Bitcoin Cash community. Our heartfelt thanks to everyone + who backed the 2025 Flipstarter to support the development of CashScript. +

+ + View the full 2025 Flipstarter → + +
+
+
+
+ {supporters2025.slice(0, 3).map((supporter) => ( + + ))} +
+
+ {supporters2025.slice(3, 7).map((supporter) => ( + + ))} +
+
+ {supporters2025.slice(7).map((supporter) => ( + + ))} +
+
+
+
+
+ ); +} + +export default Supporters; From 5303f9949e34736a879accde853d5f2e400e538d Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Thu, 28 May 2026 10:46:20 +0200 Subject: [PATCH 3/3] Ignore supporters page for spellcheck --- .cspell.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cspell.json b/.cspell.json index bf2ebb0a..45a20d26 100644 --- a/.cspell.json +++ b/.cspell.json @@ -63,6 +63,7 @@ "eval", "fallback", "firefox", + "flipstarter", "forkid", "fromaltstack", "gitattributes", @@ -299,6 +300,7 @@ "**/grammar/**", // Do not spellcheck vendor code "**/node_modules/**", + "**/supporters.tsx", ], "ignoreRegExpList": [ "bitcoincash:.*",