diff --git a/frontend/custom-xxi-config.json b/frontend/custom-xxi-config.json new file mode 100644 index 000000000..6d3135aa0 --- /dev/null +++ b/frontend/custom-xxi-config.json @@ -0,0 +1,48 @@ +{ + "theme": "wiz", + "enterprise": "xxi", + "branding": { + "name": "xxi", + "title": "Twenty One", + "site_id": 23, + "header_img": "/resources/xxi/xxilogo.png", + "footer_img": "/resources/xxi/xxilogo.png" + }, + "dashboard": { + "widgets": [ + { + "component": "fees", + "mobileOrder": 4 + }, + { + "component": "walletBalance", + "mobileOrder": 1, + "props": { + "wallet": "xxi" + } + }, + { + "component": "goggles", + "mobileOrder": 5 + }, + { + "component": "wallet", + "mobileOrder": 2, + "props": { + "wallet": "xxi", + "period": "all" + } + }, + { + "component": "blocks" + }, + { + "component": "walletTransactions", + "mobileOrder": 3, + "props": { + "wallet": "xxi" + } + } + ] + } +} \ No newline at end of file diff --git a/frontend/src/index.mempool.xxi.html b/frontend/src/index.mempool.xxi.html new file mode 100644 index 000000000..7163e7804 --- /dev/null +++ b/frontend/src/index.mempool.xxi.html @@ -0,0 +1,45 @@ + + + + + + Twenty One + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/resources/xxi/favicons/android-chrome-192x192.png b/frontend/src/resources/xxi/favicons/android-chrome-192x192.png new file mode 100644 index 000000000..c435b91da Binary files /dev/null and b/frontend/src/resources/xxi/favicons/android-chrome-192x192.png differ diff --git a/frontend/src/resources/xxi/favicons/android-chrome-512x512.png b/frontend/src/resources/xxi/favicons/android-chrome-512x512.png new file mode 100644 index 000000000..8421218be Binary files /dev/null and b/frontend/src/resources/xxi/favicons/android-chrome-512x512.png differ diff --git a/frontend/src/resources/xxi/favicons/apple-touch-icon.png b/frontend/src/resources/xxi/favicons/apple-touch-icon.png new file mode 100644 index 000000000..7b4c8a622 Binary files /dev/null and b/frontend/src/resources/xxi/favicons/apple-touch-icon.png differ diff --git a/frontend/src/resources/xxi/favicons/favicon-16x16.png b/frontend/src/resources/xxi/favicons/favicon-16x16.png new file mode 100644 index 000000000..63d8ccf1a Binary files /dev/null and b/frontend/src/resources/xxi/favicons/favicon-16x16.png differ diff --git a/frontend/src/resources/xxi/favicons/favicon-32x32.png b/frontend/src/resources/xxi/favicons/favicon-32x32.png new file mode 100644 index 000000000..bc275639c Binary files /dev/null and b/frontend/src/resources/xxi/favicons/favicon-32x32.png differ diff --git a/frontend/src/resources/xxi/favicons/favicon.ico b/frontend/src/resources/xxi/favicons/favicon.ico new file mode 100644 index 000000000..b7ea1f5cd Binary files /dev/null and b/frontend/src/resources/xxi/favicons/favicon.ico differ diff --git a/frontend/src/resources/xxi/favicons/site.webmanifest b/frontend/src/resources/xxi/favicons/site.webmanifest new file mode 100644 index 000000000..45dc8a206 --- /dev/null +++ b/frontend/src/resources/xxi/favicons/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/frontend/src/resources/xxi/xxi-preview.jpg b/frontend/src/resources/xxi/xxi-preview.jpg new file mode 100644 index 000000000..ce1d822cf Binary files /dev/null and b/frontend/src/resources/xxi/xxi-preview.jpg differ diff --git a/frontend/src/resources/xxi/xxilogo.png b/frontend/src/resources/xxi/xxilogo.png new file mode 100644 index 000000000..a6a594150 Binary files /dev/null and b/frontend/src/resources/xxi/xxilogo.png differ diff --git a/production/mempool-build-all b/production/mempool-build-all index 204da4f92..3c566d4ef 100755 --- a/production/mempool-build-all +++ b/production/mempool-build-all @@ -131,7 +131,7 @@ export NVM_DIR="${HOME}/.nvm" source "${NVM_DIR}/nvm.sh" # what to look for -frontends=(mainnet liquid onbtc bitb meta river strategy) +frontends=(mainnet liquid onbtc bitb meta river strategy xxi) backends=(mainnet testnet testnet4 signet liquid liquidtestnet onbtc bitb) frontend_repos=() backend_repos=() diff --git a/production/mempool-frontend-config.xxi.json b/production/mempool-frontend-config.xxi.json new file mode 100644 index 000000000..2aa4645a1 --- /dev/null +++ b/production/mempool-frontend-config.xxi.json @@ -0,0 +1,19 @@ +{ + "OFFICIAL_MEMPOOL_SPACE": true, + "TESTNET_ENABLED": true, + "TESTNET4_ENABLED": true, + "LIQUID_ENABLED": true, + "LIQUID_TESTNET_ENABLED": true, + "BISQ_ENABLED": true, + "BISQ_SEPARATE_BACKEND": true, + "SIGNET_ENABLED": true, + "MEMPOOL_WEBSITE_URL": "https://mempool.space", + "LIQUID_WEBSITE_URL": "https://liquid.network", + "BISQ_WEBSITE_URL": "https://bisq.markets", + "ITEMS_PER_PAGE": 25, + "LIGHTNING": true, + "ACCELERATOR": true, + "PUBLIC_ACCELERATIONS": true, + "AUDIT": true, + "CUSTOMIZATION": "custom-xxi-config.json" +} diff --git a/production/mempool-start-all b/production/mempool-start-all index 3d7f425ab..a108c783c 100755 --- a/production/mempool-start-all +++ b/production/mempool-start-all @@ -16,7 +16,7 @@ screen -dmS x startx sleep 3 # start unfurlers for each frontend -for site in mainnet liquid onbtc bitb meta river strategy;do +for site in mainnet liquid onbtc bitb meta river strategy xxi;do cd "$HOME/${site}/unfurler" && \ echo "starting mempool unfurler: ${site}" && \ screen -dmS "unfurler-${site}" sh -c 'while true;do npm run unfurler;sleep 2;done' diff --git a/production/unfurler-config.xxi.json b/production/unfurler-config.xxi.json new file mode 100644 index 000000000..4112ec47d --- /dev/null +++ b/production/unfurler-config.xxi.json @@ -0,0 +1,17 @@ +{ + "SERVER": { + "HOST": "https://xxi.tk7.mempool.space", + "HTTP_PORT": 8009 + }, + "MEMPOOL": { + "HTTP_HOST": "http://127.0.0.1", + "HTTP_PORT": 89, + "NETWORK": "xxi" + }, + "PUPPETEER": { + "CLUSTER_SIZE": 2, + "EXEC_PATH": "/usr/local/bin/chrome", + "MAX_PAGE_AGE": 86400, + "RENDER_TIMEOUT": 3000 + } +} diff --git a/unfurler/src/routes.ts b/unfurler/src/routes.ts index 76d104d63..3e10bf954 100644 --- a/unfurler/src/routes.ts +++ b/unfurler/src/routes.ts @@ -377,6 +377,28 @@ export const networks = { routes: routes.lightning.routes, } } + }, + xxi: { + networkName: 'XXI', + title: 'Twenty One | The Institutional Standard for Bitcoin', + description: 'The Institutional Standard for Bitcoin', + fallbackImg: '/resources/xxi/xxi-preview.png', + routes: { // only dynamic routes supported + block: routes.block, + address: routes.address, + wallet: routes.wallet, + tx: routes.tx, + mining: { + title: "Mining", + routes: { + pool: routes.mining.routes.pool, + } + }, + lightning: { + title: "Lightning", + routes: routes.lightning.routes, + } + } } };