From bfaed2951fa3fd837e8f7fe8fc1b099983e7820f Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Mon, 2 Feb 2026 18:49:59 +0100 Subject: [PATCH 01/36] Separate content, leveraging `navbar` - Add new navbars 'Home', 'Build for Karma', and 'Tools'. - Move "TUTORIALS" category content to 'Build for Karma' navbar - Move "TOOLS" category content to 'Tools' navbar - Move rest to 'Home' navbar Signed-off-by: yjkellyjoo --- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 4 +- .../deploying-contracts/using-se2.md | 2 +- docs/build-for-karma/index.md | 0 .../running-an-rpc.md | 2 +- .../general-info/add-status-network.md | 0 .../general-info/bridge/bridging-testnet.md | 0 .../contract-addresses/pre-deposit.md | 4 +- .../contract-addresses/testnet-contracts.md | 0 .../general-info/contract-addresses/tokens.md | 0 .../general-info/gasless-transactions.md | 0 .../general-info/network-details.md | 2 +- docs/{ => home}/index.md | 10 +- docs/{ => home}/introduction/quick-start.md | 10 +- docs/{ => home}/other/official-links.md | 2 +- docs/{ => home}/tokenomics/economic-model.md | 0 .../tokenomics/karmic-tokenomics.md | 0 docs/{ => home}/tokenomics/pre-deposits.md | 10 +- docs/{ => home}/tokenomics/public-funding.md | 0 docs/{ => home}/tokenomics/snt-staking.md | 0 docs/tools/bridge.md | 4 +- docs/tools/index.md | 0 docs/tools/rpc.md | 2 +- docusaurus.config.ts | 15 ++ sidebars.ts | 146 ++++++++++-------- 26 files changed, 122 insertions(+), 95 deletions(-) rename docs/{tutorials => build-for-karma}/deploying-contracts/using-foundry.md (98%) rename docs/{tutorials => build-for-karma}/deploying-contracts/using-hardhat.md (98%) rename docs/{tutorials => build-for-karma}/deploying-contracts/using-remix.md (95%) rename docs/{tutorials => build-for-karma}/deploying-contracts/using-se2.md (97%) create mode 100644 docs/build-for-karma/index.md rename docs/{tutorials => build-for-karma}/running-an-rpc.md (98%) rename docs/{ => home}/general-info/add-status-network.md (100%) rename docs/{ => home}/general-info/bridge/bridging-testnet.md (100%) rename docs/{ => home}/general-info/contract-addresses/pre-deposit.md (95%) rename docs/{ => home}/general-info/contract-addresses/testnet-contracts.md (100%) rename docs/{ => home}/general-info/contract-addresses/tokens.md (100%) rename docs/{ => home}/general-info/gasless-transactions.md (100%) rename docs/{ => home}/general-info/network-details.md (96%) rename docs/{ => home}/index.md (85%) rename docs/{ => home}/introduction/quick-start.md (89%) rename docs/{ => home}/other/official-links.md (96%) rename docs/{ => home}/tokenomics/economic-model.md (100%) rename docs/{ => home}/tokenomics/karmic-tokenomics.md (100%) rename docs/{ => home}/tokenomics/pre-deposits.md (92%) rename docs/{ => home}/tokenomics/public-funding.md (100%) rename docs/{ => home}/tokenomics/snt-staking.md (100%) create mode 100644 docs/tools/index.md diff --git a/docs/tutorials/deploying-contracts/using-foundry.md b/docs/build-for-karma/deploying-contracts/using-foundry.md similarity index 98% rename from docs/tutorials/deploying-contracts/using-foundry.md rename to docs/build-for-karma/deploying-contracts/using-foundry.md index 526d03d..bac9fd3 100644 --- a/docs/tutorials/deploying-contracts/using-foundry.md +++ b/docs/build-for-karma/deploying-contracts/using-foundry.md @@ -207,7 +207,7 @@ forge test If you encounter any issues: - Join our [Telegram Community](https://t.me/statusl2) -- View our [Network Details](/general-info/network-details) +- View our [Network Details](/home/general-info/network-details) ## Additional Resources diff --git a/docs/tutorials/deploying-contracts/using-hardhat.md b/docs/build-for-karma/deploying-contracts/using-hardhat.md similarity index 98% rename from docs/tutorials/deploying-contracts/using-hardhat.md rename to docs/build-for-karma/deploying-contracts/using-hardhat.md index b75a042..360bfb8 100644 --- a/docs/tutorials/deploying-contracts/using-hardhat.md +++ b/docs/build-for-karma/deploying-contracts/using-hardhat.md @@ -169,4 +169,4 @@ npx hardhat run scripts/interact.ts --network statusTestnet If you encounter any issues: - Join our [Telegram Community](https://t.me/statusl2) -- View our [Network Details](/general-info/network-details) \ No newline at end of file +- View our [Network Details](/home/general-info/network-details) \ No newline at end of file diff --git a/docs/tutorials/deploying-contracts/using-remix.md b/docs/build-for-karma/deploying-contracts/using-remix.md similarity index 95% rename from docs/tutorials/deploying-contracts/using-remix.md rename to docs/build-for-karma/deploying-contracts/using-remix.md index 2ec9c27..5a55f6b 100644 --- a/docs/tutorials/deploying-contracts/using-remix.md +++ b/docs/build-for-karma/deploying-contracts/using-remix.md @@ -16,7 +16,7 @@ Before you begin, ensure you have: - **MetaMask**: Install the [MetaMask](https://metamask.io) browser extension - **Testnet ETH**: You'll need Status Network testnet ETH - Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets) -- **Network Configuration**: Add Status Network testnet to MetaMask following our [Add Network guide](/general-info/add-status-network) +- **Network Configuration**: Add Status Network testnet to MetaMask following our [Add Network guide](/home/general-info/add-status-network) ## Steps @@ -97,7 +97,7 @@ Once deployed, you'll see your contract under "Deployed Contracts": If you encounter any issues: - Join our [Telegram Community](https://t.me/statusl2) -- View our [Network Details](/general-info/network-details) +- View our [Network Details](/home/general-info/network-details) ## Additional Resources diff --git a/docs/tutorials/deploying-contracts/using-se2.md b/docs/build-for-karma/deploying-contracts/using-se2.md similarity index 97% rename from docs/tutorials/deploying-contracts/using-se2.md rename to docs/build-for-karma/deploying-contracts/using-se2.md index e1819fe..b601552 100644 --- a/docs/tutorials/deploying-contracts/using-se2.md +++ b/docs/build-for-karma/deploying-contracts/using-se2.md @@ -58,4 +58,4 @@ The [Status Network Scaffold-ETH 2 extension](https://github.com/status-im/statu For detailed configuration options, troubleshooting, and advanced usage: - Check the [extension README](https://github.com/status-im/status-network-scaffold-extension) for comprehensive documentation - Join our [Telegram Community](https://t.me/statusl2) and ask for support -- View our [Network Details](/general-info/network-details) +- View our [Network Details](/home/general-info/network-details) diff --git a/docs/build-for-karma/index.md b/docs/build-for-karma/index.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/tutorials/running-an-rpc.md b/docs/build-for-karma/running-an-rpc.md similarity index 98% rename from docs/tutorials/running-an-rpc.md rename to docs/build-for-karma/running-an-rpc.md index 5ff15e0..761221c 100644 --- a/docs/tutorials/running-an-rpc.md +++ b/docs/build-for-karma/running-an-rpc.md @@ -210,7 +210,7 @@ To optimize your RPC node performance: If you encounter any issues: - Check the [official README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md) for the latest updates -- Review our [Network Details](/general-info/network-details) and docs in general +- Review our [Network Details](/home/general-info/network-details) and docs in general - Join our [Telegram Community](https://t.me/statusl2) for support ## Additional Resources diff --git a/docs/general-info/add-status-network.md b/docs/home/general-info/add-status-network.md similarity index 100% rename from docs/general-info/add-status-network.md rename to docs/home/general-info/add-status-network.md diff --git a/docs/general-info/bridge/bridging-testnet.md b/docs/home/general-info/bridge/bridging-testnet.md similarity index 100% rename from docs/general-info/bridge/bridging-testnet.md rename to docs/home/general-info/bridge/bridging-testnet.md diff --git a/docs/general-info/contract-addresses/pre-deposit.md b/docs/home/general-info/contract-addresses/pre-deposit.md similarity index 95% rename from docs/general-info/contract-addresses/pre-deposit.md rename to docs/home/general-info/contract-addresses/pre-deposit.md index 80e0050..65625f7 100644 --- a/docs/general-info/contract-addresses/pre-deposit.md +++ b/docs/home/general-info/contract-addresses/pre-deposit.md @@ -1,11 +1,9 @@ --- -title: Pre-Deposit Campaign Contracts +title: Pre-Deposit Vault Contracts description: List of Status Network pre-deposit campaign vault addresses. keywords: [Status Network, Pre-deposit, Campaign, Vaults] --- -# Pre-Deposit Vault Contracts - In collaboration with [Aragon](https://www.aragon.org/), we're running our pre-deposit campaign for Status Network users. This page lists all the important contract addresses of the campaign. diff --git a/docs/general-info/contract-addresses/testnet-contracts.md b/docs/home/general-info/contract-addresses/testnet-contracts.md similarity index 100% rename from docs/general-info/contract-addresses/testnet-contracts.md rename to docs/home/general-info/contract-addresses/testnet-contracts.md diff --git a/docs/general-info/contract-addresses/tokens.md b/docs/home/general-info/contract-addresses/tokens.md similarity index 100% rename from docs/general-info/contract-addresses/tokens.md rename to docs/home/general-info/contract-addresses/tokens.md diff --git a/docs/general-info/gasless-transactions.md b/docs/home/general-info/gasless-transactions.md similarity index 100% rename from docs/general-info/gasless-transactions.md rename to docs/home/general-info/gasless-transactions.md diff --git a/docs/general-info/network-details.md b/docs/home/general-info/network-details.md similarity index 96% rename from docs/general-info/network-details.md rename to docs/home/general-info/network-details.md index 9537987..a4a77ad 100644 --- a/docs/general-info/network-details.md +++ b/docs/home/general-info/network-details.md @@ -33,4 +33,4 @@ These are the official network details for the Status Network testnet. You can u - Connect dApps to the network - Verify smart contracts -For instructions on adding the network to your wallet, see our [Add Status Network guide](./add-status-network.md). +For instructions on adding the network to your wallet, see our [Add Status Network guide](/home/general-info/add-status-network). diff --git a/docs/index.md b/docs/home/index.md similarity index 85% rename from docs/index.md rename to docs/home/index.md index 833d81c..e5cf16e 100644 --- a/docs/index.md +++ b/docs/home/index.md @@ -41,16 +41,16 @@ Status Network is natively integrated with Status Wallet, Keycard, Waku and Code Wants to skip the explanation part and go straight to building? Here's how to get started: -1. [Add Status Network to Your Wallet](/general-info/add-status-network) +1. [Add Status Network to Your Wallet](/home/general-info/add-status-network) 2. [Get Testnet ETH](/tools/testnet-faucets) -3. [Bridge Assets](/general-info/bridge/bridging-testnet) -4. [Deploy Your First Contract](/tutorials/deploying-contracts/using-remix) +3. [Bridge Assets](/home/general-info/bridge/bridging-testnet) +4. [Deploy Your First Contract](/build-for-karma/deploying-contracts/using-remix) ## Support & Resources Connect with our community and access the resources you need: - Join our [Telegram Builder's Community](https://t.me/statusl2) -- View [Network Details](/general-info/network-details) -- Browse [Contract Addresses](/general-info/contract-addresses/testnet-contracts) +- View [Network Details](/home/general-info/network-details) +- Browse [Contract Addresses](/home/general-info/contract-addresses/testnet-contracts) Ready to build something amazing? Start your journey on the free network today! \ No newline at end of file diff --git a/docs/introduction/quick-start.md b/docs/home/introduction/quick-start.md similarity index 89% rename from docs/introduction/quick-start.md rename to docs/home/introduction/quick-start.md index 2f61755..1072656 100644 --- a/docs/introduction/quick-start.md +++ b/docs/home/introduction/quick-start.md @@ -16,7 +16,7 @@ Before getting started: 1. **Add Status Network Testnet to MetaMask**: - Follow the [Add Status Network guide](/general-info/add-status-network) for step-by-step instructions on how to add the Status Network testnet to MetaMask. + Follow the [Add Status Network guide](/home/general-info/add-status-network) for step-by-step instructions on how to add the Status Network testnet to MetaMask. 2. **Get Test ETH**: @@ -108,8 +108,8 @@ contract SimpleStorage { - **Get Support**: - Join our [Telegram Community](https://t.me/statusl2) for assistance - - Check our [Network Details](/general-info/network-details) for more information - - Learn about [bridging tokens](/general-info/bridge/bridging-testnet) to Status Network + - Check our [Network Details](/home/general-info/network-details) for more information + - Learn about [bridging tokens](/home/general-info/bridge/bridging-testnet) to Status Network ## Summary @@ -120,5 +120,5 @@ You've successfully: - Interacted with your deployed contract by storing and retrieving a number For more advanced development, check out our guides for deploying with: -- [Hardhat](/tutorials/deploying-contracts/using-hardhat) -- [Foundry](/tutorials/deploying-contracts/using-foundry) \ No newline at end of file +- [Hardhat](/build-for-karma/deploying-contracts/using-hardhat) +- [Foundry](/build-for-karma/deploying-contracts/using-foundry) \ No newline at end of file diff --git a/docs/other/official-links.md b/docs/home/other/official-links.md similarity index 96% rename from docs/other/official-links.md rename to docs/home/other/official-links.md index eb3fbb9..13ba7dc 100644 --- a/docs/other/official-links.md +++ b/docs/home/other/official-links.md @@ -43,4 +43,4 @@ This page contains all the official links for the Status Network ecosystem. | Telegram Community | [t.me/statusl2](https://t.me/statusl2) | | X/twitter | [x.com/statusL2](https://x.com/statusL2) | -For detailed information about adding the network to your wallet, see our [Add Network guide](/general-info/add-status-network). +For detailed information about adding the network to your wallet, see our [Add Network guide](/home/general-info/add-status-network). diff --git a/docs/tokenomics/economic-model.md b/docs/home/tokenomics/economic-model.md similarity index 100% rename from docs/tokenomics/economic-model.md rename to docs/home/tokenomics/economic-model.md diff --git a/docs/tokenomics/karmic-tokenomics.md b/docs/home/tokenomics/karmic-tokenomics.md similarity index 100% rename from docs/tokenomics/karmic-tokenomics.md rename to docs/home/tokenomics/karmic-tokenomics.md diff --git a/docs/tokenomics/pre-deposits.md b/docs/home/tokenomics/pre-deposits.md similarity index 92% rename from docs/tokenomics/pre-deposits.md rename to docs/home/tokenomics/pre-deposits.md index b34e478..95aaeab 100644 --- a/docs/tokenomics/pre-deposits.md +++ b/docs/home/tokenomics/pre-deposits.md @@ -34,7 +34,7 @@ Deposited ETH is staked via [Lido](https://lido.fi/) to earn staking yield. A po ### Deployed contracts -See [Pre-Deposit Vault Contracts](../general-info/contract-addresses/pre-deposit) for a full list of addresses and networks. +See [Pre-Deposit Vault Contracts](/home/general-info/contract-addresses/pre-deposit) for a full list of addresses and networks. ## Generic Protocol Vault (GUSD) @@ -78,7 +78,7 @@ For a full overview of the Generic Protocol structure (GUSD tokenomics, bridging Pre-depositors earn: -- **Karma**: non-transferable governance token; grants gasless throughput and voting power (details in [Karmic Tokenomics](./karmic-tokenomics)). +- **Karma**: non-transferable governance token; grants gasless throughput and voting power (details in [Karmic Tokenomics](/home/tokenomics/karmic-tokenomics)). - **Liquid incentives**: 15M SNT and 20M LINEA tokens distributed across vaults. - **Generic protocol points** for stablecoin depositors: Generic Protocol points to be used when Generic Protocol launches on Status Network Mainnet. - **Native app points**: to be confirmed as natives apps unveil their tokenomics. @@ -114,8 +114,8 @@ This documentation is for informational purposes and does not constitute financi ## Further reading -- [Pre-Deposit Vault Contracts](../general-info/contract-addresses/pre-deposit) — deployed addresses information -- [Karmic Tokenomics](./karmic-tokenomics) — how Karma is earned and used -- [Economic Model](./economic-model) — Status Network's sustainable revenue model +- [Pre-Deposit Vault Contracts](/home/general-info/contract-addresses/pre-deposit) — deployed addresses information +- [Karmic Tokenomics](/home/tokenomics/karmic-tokenomics) — how Karma is earned and used +- [Economic Model](/home/tokenomics/economic-model) — Status Network's sustainable revenue model - [Aragon Documentation](https://docs.aragon.org/) - [Generic Protocol Documentation](https://docs.generic.money/) diff --git a/docs/tokenomics/public-funding.md b/docs/home/tokenomics/public-funding.md similarity index 100% rename from docs/tokenomics/public-funding.md rename to docs/home/tokenomics/public-funding.md diff --git a/docs/tokenomics/snt-staking.md b/docs/home/tokenomics/snt-staking.md similarity index 100% rename from docs/tokenomics/snt-staking.md rename to docs/home/tokenomics/snt-staking.md diff --git a/docs/tools/bridge.md b/docs/tools/bridge.md index 24001ba..1f379e8 100644 --- a/docs/tools/bridge.md +++ b/docs/tools/bridge.md @@ -36,7 +36,7 @@ For the most up-to-date list of supported tokens and their contract addresses, p ## Using the Bridge -For detailed instructions on how to use the bridge, including step-by-step guides and important security considerations, please refer to our [Bridging Guide](../general-info/bridge/bridging-testnet.md). +For detailed instructions on how to use the bridge, including step-by-step guides and important security considerations, please refer to our [Bridging Guide](/home/general-info/bridge/bridging-testnet). ## Monitoring Bridge Transactions @@ -47,5 +47,5 @@ You can monitor your bridge transactions using: ## Support If you encounter any issues while using the bridge: -- Check our [Bridging Guide](../general-info/bridge/bridging-testnet.md) for common solutions +- Check our [Bridging Guide](/home/general-info/bridge/bridging-testnet) for common solutions - Join our [Telegram Community](https://t.me/statusl2) for assistance diff --git a/docs/tools/index.md b/docs/tools/index.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/tools/rpc.md b/docs/tools/rpc.md index 8d56459..caa074b 100644 --- a/docs/tools/rpc.md +++ b/docs/tools/rpc.md @@ -19,7 +19,7 @@ https://public.sepolia.rpc.status.network ## Using the RPC ### Adding to MetaMask -For instructions on adding Status Network to your wallet using this RPC, see our [Add Network guide](/general-info/add-status-network). +For instructions on adding Status Network to your wallet using this RPC, see our [Add Network guide](/home/general-info/add-status-network).
diff --git a/docusaurus.config.ts b/docusaurus.config.ts index e9ac9a9..dcff5b9 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -67,6 +67,21 @@ const config: Config = { src: 'img/sn_logo.svg', }, items: [ + { + label: 'Home', + to: '/', + activeBasePath: 'home', + }, + { + label: 'Build for Karma', + to: '/build-for-karma', + activeBasePath: 'build-for-karma', + }, + { + label: 'Tools', + to: '/tools', + activeBasePath: 'tools', + }, { type: 'localeDropdown', position: 'right', diff --git a/sidebars.ts b/sidebars.ts index 715c3fa..1fb1789 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -1,7 +1,7 @@ import type { SidebarsConfig } from '@docusaurus/plugin-content-docs'; const sidebars: SidebarsConfig = { - tutorialSidebar: [ + homeSidebar: [ { type: 'category', label: 'INTRODUCTION', @@ -9,12 +9,12 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'index', + id: 'home/index', label: '🌴 Home', }, { type: 'doc', - id: 'introduction/quick-start', + id: 'home/introduction/quick-start', label: '⚡ Quick Start', }, ], @@ -26,27 +26,27 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'tokenomics/economic-model', + id: 'home/tokenomics/economic-model', label: '🤝 Economic Model', }, { type: 'doc', - id: 'tokenomics/public-funding', + id: 'home/tokenomics/public-funding', label: '💰 Public Funding', }, { type: 'doc', - id: 'tokenomics/karmic-tokenomics', + id: 'home/tokenomics/karmic-tokenomics', label: '🐉 Karmic Tokenomics', }, { type: 'doc', - id: 'tokenomics/snt-staking', + id: 'home/tokenomics/snt-staking', label: '💎 SNT Staking', }, { type: 'doc', - id: 'tokenomics/pre-deposits', + id: 'home/tokenomics/pre-deposits', label: '💰 Pre-Deposits', }, ], @@ -58,17 +58,17 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'general-info/network-details', + id: 'home/general-info/network-details', label: '🌐 Network Details', }, { type: 'doc', - id: 'general-info/gasless-transactions', + id: 'home/general-info/gasless-transactions', label: '⛽ Gasless Transactions', }, { type: 'doc', - id: 'general-info/add-status-network', + id: 'home/general-info/add-status-network', label: '➕ Add Status Network', }, { @@ -78,17 +78,17 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'general-info/contract-addresses/tokens', + id: 'home/general-info/contract-addresses/tokens', label: '🪙 Tokens', }, { type: 'doc', - id: 'general-info/contract-addresses/testnet-contracts', + id: 'home/general-info/contract-addresses/testnet-contracts', label: '🧪 Testnet Contracts', }, { type: 'doc', - id: 'general-info/contract-addresses/pre-deposit', + id: 'home/general-info/contract-addresses/pre-deposit', label: '💰 Pre-Deposit Vault Contracts', }, ], @@ -100,18 +100,83 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'general-info/bridge/bridging-testnet', + id: 'home/general-info/bridge/bridging-testnet', label: '🧪 Bridging Testnet', }, ], }, ], }, + { + type: 'category', + label: 'OTHER DOCS', + collapsed: false, + items: [ + { + type: 'doc', + id: 'home/other/official-links', + label: '🔗 Official Links', + }, + ], + }, + ], + buildForKarmaSidebar: [ + { + type: 'category', + label: 'BUILD FOR KARMA', + collapsed: false, + items: [ + { + type: 'doc', + id: 'build-for-karma/index', + label: '🛠 Build for Karma', + }, + { + type: 'category', + label: '🚀 Deploying a Smart Contract', + collapsed: false, + items: [ + { + type: 'doc', + id: 'build-for-karma/deploying-contracts/using-hardhat', + label: '🎩 Using Hardhat', + }, + { + type: 'doc', + id: 'build-for-karma/deploying-contracts/using-foundry', + label: '⚒️ Using Foundry', + }, + { + type: 'doc', + id: 'build-for-karma/deploying-contracts/using-remix', + label: '🎛️ Using Remix', + }, + { + type: 'doc', + id: 'build-for-karma/deploying-contracts/using-se2', + label: '🏗 Using Scaffold-ETH 2', + }, + ], + }, + { + type: 'doc', + id: 'build-for-karma/running-an-rpc', + label: '🌐 Running an RPC node', + }, + ], + }, + ], + toolsSidebar: [ { type: 'category', label: 'TOOLS', collapsed: false, items: [ + { + type: 'doc', + id: 'tools/index', + label: '🛠 Tools', + }, { type: 'doc', id: 'tools/rpc', @@ -134,57 +199,6 @@ const sidebars: SidebarsConfig = { }, ], }, - { - type: 'category', - label: 'TUTORIALS', - collapsed: false, - items: [ - { - type: 'category', - label: '🚀 Deploying a Smart Contract', - collapsed: false, - items: [ - { - type: 'doc', - id: 'tutorials/deploying-contracts/using-hardhat', - label: '🎩 Using Hardhat', - }, - { - type: 'doc', - id: 'tutorials/deploying-contracts/using-foundry', - label: '⚒️ Using Foundry', - }, - { - type: 'doc', - id: 'tutorials/deploying-contracts/using-remix', - label: '🎛️ Using Remix', - }, - { - type: 'doc', - id: 'tutorials/deploying-contracts/using-se2', - label: '🏗 Using Scaffold-ETH 2', - }, - ], - }, - { - type: 'doc', - id: 'tutorials/running-an-rpc', - label: '🌐 Running an RPC node', - }, - ], - }, - { - type: 'category', - label: 'OTHER DOCS', - collapsed: false, - items: [ - { - type: 'doc', - id: 'other/official-links', - label: '🔗 Official Links', - }, - ], - }, ], }; From af7b0952845471021caa1cbc7bfb8d504cea614b Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Mon, 2 Feb 2026 18:55:46 +0100 Subject: [PATCH 02/36] Apply new structure to translated pages Signed-off-by: yjkellyjoo --- .../current.json | 148 +++++++++--------- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 4 +- .../deploying-contracts/using-se2.md | 2 +- .../running-an-rpc.md | 17 +- .../general-info/add-status-network.md | 0 .../general-info/bridge/bridging-testnet.md | 0 .../contract-addresses/pre-deposit.md | 4 +- .../contract-addresses/testnet-contracts.md | 0 .../general-info/contract-addresses/tokens.md | 0 .../general-info/gasless-transactions.md | 2 +- .../general-info/network-details.md | 2 +- .../current/{ => home}/index.md | 10 +- .../{ => home}/introduction/quick-start.md | 10 +- .../{ => home}/other/official-links.md | 2 +- .../{ => home}/tokenomics/economic-model.md | 1 - .../tokenomics/karmic-tokenomics.md | 2 +- .../{ => home}/tokenomics/pre-deposits.md | 14 +- .../{ => home}/tokenomics/public-funding.md | 2 +- .../{ => home}/tokenomics/snt-staking.md | 2 +- .../current/tools/bridge.md | 4 +- .../current/tools/rpc.md | 54 ++++++- i18n/ja/docusaurus-theme-classic/navbar.json | 16 +- .../current.json | 148 +++++++++--------- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 4 +- .../deploying-contracts/using-se2.md | 2 +- .../running-an-rpc.md | 2 +- .../general-info/add-status-network.md | 0 .../general-info/bridge/bridging-testnet.md | 0 .../contract-addresses/pre-deposit.md | 0 .../contract-addresses/testnet-contracts.md | 0 .../general-info/contract-addresses/tokens.md | 0 .../general-info/gasless-transactions.md | 0 .../general-info/network-details.md | 2 +- .../current/{ => home}/index.md | 10 +- .../{ => home}/introduction/quick-start.md | 10 +- .../{ => home}/other/official-links.md | 2 +- .../{ => home}/tokenomics/economic-model.md | 0 .../tokenomics/karmic-tokenomics.md | 0 .../{ => home}/tokenomics/pre-deposits.md | 10 +- .../{ => home}/tokenomics/public-funding.md | 0 .../{ => home}/tokenomics/snt-staking.md | 0 .../current/tools/bridge.md | 4 +- .../current/tools/rpc.md | 2 +- i18n/ko/docusaurus-theme-classic/navbar.json | 16 +- .../current.json | 148 +++++++++--------- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 4 +- .../deploying-contracts/using-se2.md | 2 +- .../running-an-rpc.md | 16 +- .../general-info/add-status-network.md | 0 .../general-info/bridge/bridging-testnet.md | 0 .../contract-addresses/pre-deposit.md | 4 +- .../contract-addresses/testnet-contracts.md | 0 .../general-info/contract-addresses/tokens.md | 0 .../general-info/gasless-transactions.md | 2 +- .../general-info/network-details.md | 2 +- .../current/{ => home}/index.md | 10 +- .../{ => home}/introduction/quick-start.md | 10 +- .../{ => home}/other/official-links.md | 2 +- .../{ => home}/tokenomics/economic-model.md | 1 - .../tokenomics/karmic-tokenomics.md | 2 +- .../{ => home}/tokenomics/pre-deposits.md | 14 +- .../{ => home}/tokenomics/public-funding.md | 2 +- .../{ => home}/tokenomics/snt-staking.md | 2 +- .../current/tools/bridge.md | 4 +- .../current/tools/rpc.md | 2 +- i18n/zh/docusaurus-theme-classic/navbar.json | 18 ++- 72 files changed, 411 insertions(+), 354 deletions(-) rename i18n/ja/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-foundry.md (98%) rename i18n/ja/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-hardhat.md (98%) rename i18n/ja/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-remix.md (95%) rename i18n/ja/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-se2.md (97%) rename i18n/ja/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/running-an-rpc.md (97%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/general-info/add-status-network.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/general-info/bridge/bridging-testnet.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/pre-deposit.md (99%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/testnet-contracts.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/tokens.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/general-info/gasless-transactions.md (99%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/general-info/network-details.md (91%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/index.md (87%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/introduction/quick-start.md (91%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/other/official-links.md (92%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/economic-model.md (99%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/karmic-tokenomics.md (99%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/pre-deposits.md (93%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/public-funding.md (97%) rename i18n/ja/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/snt-staking.md (99%) rename i18n/ko/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-foundry.md (98%) rename i18n/ko/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-hardhat.md (98%) rename i18n/ko/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-remix.md (93%) rename i18n/ko/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-se2.md (96%) rename i18n/ko/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/running-an-rpc.md (98%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/general-info/add-status-network.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/general-info/bridge/bridging-testnet.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/pre-deposit.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/testnet-contracts.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/tokens.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/general-info/gasless-transactions.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/general-info/network-details.md (93%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/index.md (86%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/introduction/quick-start.md (89%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/other/official-links.md (93%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/economic-model.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/karmic-tokenomics.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/pre-deposits.md (94%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/public-funding.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/snt-staking.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-foundry.md (98%) rename i18n/zh/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-hardhat.md (98%) rename i18n/zh/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-remix.md (93%) rename i18n/zh/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/deploying-contracts/using-se2.md (96%) rename i18n/zh/docusaurus-plugin-content-docs/current/{tutorials => build-for-karma}/running-an-rpc.md (97%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/general-info/add-status-network.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/general-info/bridge/bridging-testnet.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/pre-deposit.md (98%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/testnet-contracts.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/general-info/contract-addresses/tokens.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/general-info/gasless-transactions.md (99%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/general-info/network-details.md (93%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/index.md (84%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/introduction/quick-start.md (89%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/other/official-links.md (95%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/economic-model.md (99%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/karmic-tokenomics.md (99%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/pre-deposits.md (92%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/public-funding.md (99%) rename i18n/zh/docusaurus-plugin-content-docs/current/{ => home}/tokenomics/snt-staking.md (98%) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json index a08623d..1da806c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -3,148 +3,144 @@ "message": "Next", "description": "The label for version current" }, - "sidebar.tutorialSidebar.category.INTRODUCTION": { + "sidebar.homeSidebar.category.INTRODUCTION": { "message": "はじめに", - "description": "The label for category INTRODUCTION in sidebar tutorialSidebar" + "description": "The label for category INTRODUCTION in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.TOKENOMICS": { + "sidebar.homeSidebar.category.TOKENOMICS": { "message": "トークノミクス", - "description": "The label for category TOKENOMICS in sidebar tutorialSidebar" + "description": "The label for category TOKENOMICS in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.GENERAL INFO": { + "sidebar.homeSidebar.category.GENERAL INFO": { "message": "一般情報", - "description": "The label for category GENERAL INFO in sidebar tutorialSidebar" + "description": "The label for category GENERAL INFO in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.🏡 Contract Addresses": { + "sidebar.homeSidebar.category.🏡 Contract Addresses": { "message": "🏡 コントラクトアドレス", - "description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar" + "description": "The label for category 🏡 Contract Addresses in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.🌉 Bridge": { + "sidebar.homeSidebar.category.🌉 Bridge": { "message": "🌉 ブリッジ", - "description": "The label for category 🌉 Bridge in sidebar tutorialSidebar" + "description": "The label for category 🌉 Bridge in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.TOOLS": { + "sidebar.toolsSidebar.category.TOOLS": { "message": "ツール", - "description": "The label for category TOOLS in sidebar tutorialSidebar" + "description": "The label for category TOOLS in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.category.TUTORIALS": { - "message": "チュートリアル", - "description": "The label for category TUTORIALS in sidebar tutorialSidebar" + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "開発する", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.category.🚀 Deploying a Smart Contract": { + "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { "message": "🚀 スマートコントラクトのデプロイ", - "description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar" + "description": "The label for category 🚀 Deploying a Smart Contract in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.category.OTHER DOCS": { + "sidebar.homeSidebar.category.OTHER DOCS": { "message": "その他のドキュメント", - "description": "The label for category OTHER DOCS in sidebar tutorialSidebar" + "description": "The label for category OTHER DOCS in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🏠 Home": { - "message": "🏠 ホーム", - "description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar, linking to the doc index" + "sidebar.homeSidebar.doc.🌴 Home": { + "message": "🌴 ホーム", + "description": "The label for the doc item 🌴 Home in sidebar homeSidebar, linking to the doc index" }, - "sidebar.tutorialSidebar.doc.⚡ Quick Start": { + "sidebar.homeSidebar.doc.⚡ Quick Start": { "message": "⚡ クイックスタート", - "description": "The label for the doc item ⚡ Quick Start in sidebar tutorialSidebar" + "description": "The label for the doc item ⚡ Quick Start in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💎 SNT Token": { + "sidebar.homeSidebar.doc.💎 SNT Token": { "message": "💎 SNT Token", - "description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token" + "description": "The label for the doc item 💎 SNT Token in sidebar homeSidebar, linking to the doc tokenomics/snt-token" }, - "sidebar.tutorialSidebar.doc.💠 Karma Token": { + "sidebar.homeSidebar.doc.💠 Karma Token": { "message": "💠 Karma Token", - "description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token" + "description": "The label for the doc item 💠 Karma Token in sidebar homeSidebar, linking to the doc tokenomics/karma-token" }, - "sidebar.tutorialSidebar.doc.🌐 Network Details": { + "sidebar.homeSidebar.doc.🌐 Network Details": { "message": "🌐 ネットワーク詳細", - "description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar" + "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.➕ Add Status Network": { + "sidebar.homeSidebar.doc.➕ Add Status Network": { "message": "➕ Status ネットワークの追加", - "description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar" + "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Tokens": { + "sidebar.homeSidebar.doc.💰 Tokens": { "message": "💰 トークン", - "description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Tokens in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": { + "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { "message": "🧪 テストネットコントラクト", - "description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar" + "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": { + "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { "message": "🧪 テストネットブリッジ", - "description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar" + "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🔌 RPC": { + "sidebar.toolsSidebar.doc.🔌 RPC": { "message": "🔌 RPC", - "description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar" + "description": "The label for the doc item 🔌 RPC in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🌉 Bridge": { + "sidebar.toolsSidebar.doc.🌉 Bridge": { "message": "🌉 ブリッジ", - "description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar" + "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": { + "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { "message": "🚰 テストネットフォーセット", - "description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar" + "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🔎 Block Explorers": { + "sidebar.toolsSidebar.doc.🔎 Block Explorers": { "message": "🔎 ブロックエクスプローラー", - "description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar" + "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🎩 Using Hardhat": { + "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 Hardhatの使用", - "description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar" + "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.⚒️ Using Foundry": { + "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { "message": "⚒️ Foundryの使用", - "description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar" + "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🎛️ Using Remix": { + "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { "message": "🎛️ Remixの使用", - "description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar" + "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🏗 Using Scaffold-ETH 2": { + "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { "message": "🏗 Scaffold-ETH 2 使用", - "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar tutorialSidebar" + "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🔗 Official Links": { + "sidebar.homeSidebar.doc.🔗 Official Links": { "message": "🔗 公式リンク", - "description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar" + "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🌴 Home": { - "message": "🌴 Home", - "description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index" - }, - "sidebar.tutorialSidebar.doc.🤝 Economic Model": { + "sidebar.homeSidebar.doc.🤝 Economic Model": { "message": "🤝 経済モデル", - "description": "The label for the doc item 🤝 Economic Model in sidebar tutorialSidebar" + "description": "The label for the doc item 🤝 Economic Model in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Public Funding": { + "sidebar.homeSidebar.doc.💰 Public Funding": { "message": "💰 公募資金", - "description": "The label for the doc item 💰 Public Funding in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Public Funding in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🐉 Karmic Tokenomics": { + "sidebar.homeSidebar.doc.🐉 Karmic Tokenomics": { "message": "🐉 カルミックトークノミクス", - "description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar tutorialSidebar" + "description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💎 SNT Staking": { + "sidebar.homeSidebar.doc.💎 SNT Staking": { "message": "💎 SNTステーキング", - "description": "The label for the doc item 💎 SNT Staking in sidebar tutorialSidebar" + "description": "The label for the doc item 💎 SNT Staking in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Pre-Deposits": { + "sidebar.homeSidebar.doc.💰 Pre-Deposits": { "message": "💰 事前預入", - "description": "The label for the doc item 💰 Pre-Deposits in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Pre-Deposits in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🪙 Tokens": { + "sidebar.homeSidebar.doc.🪙 Tokens": { "message": "🪙 トークン", - "description": "The label for the doc item 🪙 Tokens in sidebar tutorialSidebar" + "description": "The label for the doc item 🪙 Tokens in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Pre-Deposit Vault Contracts": { + "sidebar.homeSidebar.doc.💰 Pre-Deposit Vault Contracts": { "message": "💰 プリ・デポジット金庫コントラクト", - "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🌐 Running an RPC node": { + "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { "message": "🌐 RPCノードの運用", - "description": "The label for the doc item 🌐 Running an RPC node in sidebar tutorialSidebar" + "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" } } diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md similarity index 98% rename from i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md rename to i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index 60e3d18..3918081 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -200,7 +200,7 @@ forge test 問題が発生した場合: - [Telegramコミュニティ](https://t.me/statusl2)に参加 -- [ネットワーク詳細](/general-info/network-details)を参照 +- [ネットワーク詳細](/home/general-info/network-details)を参照 ## 追加リソース diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md similarity index 98% rename from i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md rename to i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index d69f45f..aaf3bb9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -158,4 +158,4 @@ npx hardhat run scripts/interact.ts --network statusTestnet 問題が発生した場合: - [Telegramコミュニティ](https://t.me/statusl2)に参加 -- [ネットワーク詳細](/general-info/network-details)を参照 +- [ネットワーク詳細](/home/general-info/network-details)を参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md similarity index 95% rename from i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md rename to i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index 2da05d1..a3387d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -10,7 +10,7 @@ - **MetaMask**: [MetaMask](https://metamask.io)ブラウザ拡張機能をインストール - **テストネットETH**: Status NetworkテストネットのETHが必要です - Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます -- **ネットワーク設定**: [ネットワーク追加ガイド](/general-info/add-status-network)に従ってMetaMaskにStatus Networkテストネットを追加 +- **ネットワーク設定**: [ネットワーク追加ガイド](/home/general-info/add-status-network)に従ってMetaMaskにStatus Networkテストネットを追加 ## 手順 @@ -91,7 +91,7 @@ contract HelloWorld { 問題が発生した場合: - [Telegramコミュニティ](https://t.me/statusl2)に参加 -- [ネットワーク詳細](/general-info/network-details)を参照 +- [ネットワーク詳細](/home/general-info/network-details)を参照 ## 追加リソース diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md similarity index 97% rename from i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md rename to i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index 5c34ddd..e16c345 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -58,4 +58,4 @@ keywords: [Scaffold-ETH 2, スマートコントラクトデプロイ, Status Ne 詳細な設定オプション、トラブルシューティング、高度な使用方法については: - 包括的なドキュメントについては[拡張機能README](https://github.com/status-im/status-network-scaffold-extension)を確認 - [Telegramコミュニティ](https://t.me/statusl2)に参加してサポートを求める -- [ネットワーク詳細](/general-info/network-details)を表示 +- [ネットワーク詳細](/home/general-info/network-details)を表示 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md similarity index 97% rename from i18n/ja/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md rename to i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md index e8a5ebe..1b26435 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md @@ -40,7 +40,6 @@ curl -X POST \ ``` ### ヘルスと同期の検証 - 包括的なノードヘルスチェックの場合: ```bash @@ -87,7 +86,6 @@ ws://localhost:8446 # Geth {"jsonrpc":"2.0","method":"eth_unsubscribe","params":["0x..."],"id":1} ``` - ## 高度な機能 ### バッチリクエスト @@ -107,9 +105,9 @@ ws://localhost:8446 # Geth | `eth_getLogs` (大きな範囲) | 200msから数秒 | 制限された範囲とブルームフィルタを使用 | | `eth_estimateGas` | 200msから数秒 | 負荷が高い場合や複雑なコントラクトの場合は遅くなる可能性あり | -:::tip パフォーマンスのヒント +::::tip パフォーマンスのヒント 本番環境では、数千程度の読み取りRPSから始めて、特定のワークロードとハードウェアテストに基づいて水平スケーリングしてください。 -::: +:::: ## トラブルシューティング @@ -176,9 +174,9 @@ netstat -tulpn | grep :8445 - 成長率:中程度、ネットワーク活動に依存 - 推奨:余裕を持たせるため2 TB Gen4 NVMe -:::warning 成長を計画する +::::warning 成長を計画する 継続的な運用を確保するため、常に現在の要件を超える追加ストレージ容量を確保してください。 -::: +:::: ## セキュリティに関する考慮事項 @@ -191,9 +189,9 @@ netstat -tulpn | grep :8445 5. **バックアップ**: ノード設定を定期的にバックアップ(データは必要に応じて再同期可能) 6. **レート制限**: 複数のユーザーに公開する場合はレート制限を実装 -:::caution 本番環境デプロイ +::::caution 本番環境デプロイ 本番環境では、レート制限のため公開RPCエンドポイントに依存しないでください。独自のプライベートRPCノードを運用することで、より良い信頼性とパフォーマンスが得られます。 -::: +:::: ## パフォーマンス最適化 @@ -210,7 +208,7 @@ RPCノードのパフォーマンスを最適化するには: 問題が発生した場合: - 最新の更新については[公式README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)を確認 -- [ネットワーク詳細](/general-info/network-details)およびドキュメント全般を確認 +- [ネットワーク詳細](/home/general-info/network-details)およびドキュメント全般を確認 - サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加 ## 追加リソース @@ -218,4 +216,3 @@ RPCノードのパフォーマンスを最適化するには: - [Status Network RPCツールリポジトリ](https://github.com/status-im/status-l2-rpc-tools) - セットアップガイドとスクリプトを含む公式リポジトリ - [Status Networkドキュメント](https://docs.status.network/) - 公式ドキュメント - [Status Networkブロックエクスプローラー](https://sepoliascan.status.network) - Sepoliaテストネットエクスプローラー - diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/add-status-network.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/general-info/add-status-network.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/bridge/bridging-testnet.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/general-info/bridge/bridging-testnet.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/contract-addresses/pre-deposit.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md similarity index 99% rename from i18n/ja/docusaurus-plugin-content-docs/current/general-info/contract-addresses/pre-deposit.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md index 018f92d..fe88390 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/contract-addresses/pre-deposit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md @@ -9,9 +9,9 @@ keywords: [Status Network, プリ・デポジット, キャンペーン, ボー [Aragon](https://www.aragon.org/)と協力して、Status Networkユーザー向けのプリ・デポジットキャンペーンを実施しています。 このページでは、キャンペーンのすべての重要なコントラクトアドレスを一覧表示します。 -:::note +::::note ボールトのトークンに応じて、EthereumメインネットまたはLineaメインネットにデプロイされます -::: +:::: ## ボールト - **SNT Vault** diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/contract-addresses/testnet-contracts.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/general-info/contract-addresses/testnet-contracts.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/contract-addresses/tokens.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/general-info/contract-addresses/tokens.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/gasless-transactions.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md similarity index 99% rename from i18n/ja/docusaurus-plugin-content-docs/current/general-info/gasless-transactions.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md index 57190ad..cb454c6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/gasless-transactions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md @@ -139,4 +139,4 @@ linea_estimateGasメソッドは拒否リストのユーザーを考慮するよ - ユーザーの拒否リストステータスをチェックします - 必要に応じてプレミアムガス倍率を追加します -- ユーザーに透明性と正確なガス推定を提供します \ No newline at end of file +- ユーザーに透明性と正確なガス推定を提供します diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/network-details.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/network-details.md similarity index 91% rename from i18n/ja/docusaurus-plugin-content-docs/current/general-info/network-details.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/network-details.md index 525dcbe..5d197f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/general-info/network-details.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/network-details.md @@ -18,4 +18,4 @@ - ネットワークへのdAppsの接続 - スマートコントラクトの検証 -ウォレットへのネットワークの追加方法については、[Status Network追加ガイド](./add-status-network.md)をご参照ください。 +ウォレットへのネットワークの追加方法については、[Status Network追加ガイド](/home/general-info/add-status-network)をご参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/index.md similarity index 87% rename from i18n/ja/docusaurus-plugin-content-docs/current/index.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/index.md index 914a10a..123528c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/index.md @@ -41,16 +41,16 @@ Status NetworkはStatus Wallet、Keycard、Waku、Codexなど、[IFT](https://fr 説明部分をスキップして直接開発を始めたいですか?以下が始め方です: -1. [Status NetworkをウォレットへAdd](/general-info/add-status-network) +1. [Status NetworkをウォレットへAdd](/home/general-info/add-status-network) 2. [テストネットETHを入手](/tools/testnet-faucets) -3. [アセットをブリッジ](/general-info/bridge/bridging-testnet) -4. [最初のコントラクトをデプロイ](/tutorials/deploying-contracts/using-remix) +3. [アセットをブリッジ](/home/general-info/bridge/bridging-testnet) +4. [最初のコントラクトをデプロイ](/build-for-karma/deploying-contracts/using-remix) ## サポート&リソース コミュニティに参加し、必要なリソースにアクセスしましょう: - [Telegramビルダーズコミュニティ](https://t.me/statusl2)に参加 -- [ネットワーク詳細](/general-info/network-details)を確認 -- [コントラクトアドレス](/general-info/contract-addresses/testnet-contracts)を閲覧 +- [ネットワーク詳細](/home/general-info/network-details)を確認 +- [コントラクトアドレス](/home/general-info/contract-addresses/testnet-contracts)を閲覧 素晴らしいものを作る準備はできていますか?今すぐフリーネットワークでの旅を始めましょう! diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/introduction/quick-start.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md similarity index 91% rename from i18n/ja/docusaurus-plugin-content-docs/current/introduction/quick-start.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md index d2065c3..664c915 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/introduction/quick-start.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md @@ -10,7 +10,7 @@ 1. **Status NetworkテストネットをMetaMaskに追加**: - MetaMaskにStatus Networkテストネットを追加する方法については、[Status Network追加ガイド](/general-info/add-status-network)の手順に従ってください。 + MetaMaskにStatus Networkテストネットを追加する方法については、[Status Network追加ガイド](/home/general-info/add-status-network)の手順に従ってください。 2. **テストETHを入手**: @@ -102,8 +102,8 @@ contract SimpleStorage { - **サポートを受ける**: - サポートが必要な場合は[Telegramコミュニティ](https://t.me/statusl2)に参加 - - 詳細については[ネットワークの詳細](/general-info/network-details)をチェック - - Status Networkへの[トークンのブリッジ](/general-info/bridge/bridging-testnet)について学ぶ + - 詳細については[ネットワークの詳細](/home/general-info/network-details)をチェック + - Status Networkへの[トークンのブリッジ](/home/general-info/bridge/bridging-testnet)について学ぶ ## まとめ @@ -114,5 +114,5 @@ contract SimpleStorage { - 数値の保存と取得によってデプロイしたコントラクトと対話 より高度な開発については、以下を使用したデプロイのガイドをチェックしてください: -- [Hardhat](/tutorials/deploying-contracts/using-hardhat) -- [Foundry](/tutorials/deploying-contracts/using-foundry) +- [Hardhat](/build-for-karma/deploying-contracts/using-hardhat) +- [Foundry](/build-for-karma/deploying-contracts/using-foundry) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/other/official-links.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/other/official-links.md similarity index 92% rename from i18n/ja/docusaurus-plugin-content-docs/current/other/official-links.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/other/official-links.md index a8a8b42..aa4ace2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/other/official-links.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/other/official-links.md @@ -22,4 +22,4 @@ - **Telegramコミュニティ**: [t.me/statusl2](https://t.me/statusl2) - **X/twitter**: [x.com/statusL2](https://x.com/statusL2) -ウォレットへのネットワークの追加方法については、[ネットワーク追加ガイド](/general-info/add-status-network)をご参照ください。 +ウォレットへのネットワークの追加方法については、[ネットワーク追加ガイド](/home/general-info/add-status-network)をご参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/economic-model.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md similarity index 99% rename from i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/economic-model.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md index ad848ec..d62f985 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/economic-model.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md @@ -15,4 +15,3 @@ - **将来のネイティブアプリ**: ネットワークは後に、レンディングマーケット、NFTマーケットプレイス、トークンローンチパッドなどの追加の収益源を導入し、それぞれが生成された手数料の一部をL2の運営に還元します。 このモデルにより、Status Networkは無料取引を提供しながら、経済的な持続可能性を確保します。TVLとそれに関連するネイティブ収益、および取引量を活用することで、Status Networkはユーザー、流動性提供者、開発者間のインセンティブを調整し、インフレ的なトークン発行に依存しない自己持続的なエコシステムを作り出します。 - diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/karmic-tokenomics.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md similarity index 99% rename from i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/karmic-tokenomics.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md index 2845adb..993f0af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/karmic-tokenomics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md @@ -44,4 +44,4 @@ 4. より高いネイティブ収益と手数料が、ユーザーが追加の利回り生成資産をブリッジすることでより多くのTVLを引き付けます。 -TVLと採用が成長するにつれて、資金調達の機会も増加し、ネットワークの持続可能性を強化します。 \ No newline at end of file +TVLと採用が成長するにつれて、資金調達の機会も増加し、ネットワークの持続可能性を強化します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md similarity index 93% rename from i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md index 162be59..414172c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md @@ -34,7 +34,7 @@ SNT、LINEA、ETHボールトは、[Aragon](https://aragon.org/)がStatus Networ ### デプロイ済みコントラクト -アドレスとネットワークの完全なリストは、[事前預入ボールトコントラクト](../general-info/contract-addresses/pre-deposit)を参照してください。 +アドレスとネットワークの完全なリストは、[事前預入ボールトコントラクト](/home/general-info/contract-addresses/pre-deposit)を参照してください。 ## Generic Protocol ボールト (GUSD) @@ -50,9 +50,9 @@ GUSDボールトは、[Steakhouse Financial](https://steakhouse.financial/)と[M 生成された利回りの一部は、メインネットローンチ時にStatus Networkのネイティブファンディングプールに充当されます。 -:::note +::::note GUSDボールトは受領トークンを発行**しません**。預入記録はGeneric Protocolのコントラクトに記録されます。[Hub](https://hub.status.network/pre-deposits)でウォレットを接続するか、オンチェーンで直接確認できます。 -::: +:::: ### DepositorHelper コントラクト @@ -78,7 +78,7 @@ Generic Protocolの構造(GUSDトークノミクス、ブリッジングイン 事前預入者は以下を獲得します: -- **Karma**:譲渡不可のガバナンストークン;ガスレススループットと投票権を付与(詳細は[Karmicトークノミクス](./karmic-tokenomics)を参照)。 +- **Karma**:譲渡不可のガバナンストークン;ガスレススループットと投票権を付与(詳細は[Karmicトークノミクス](/home/tokenomics/karmic-tokenomics)を参照)。 - **流動性インセンティブ**:ボールト全体に1,500万SNTと2,000万LINEAトークンを配布。 - **ステーブルコイン預入者向けGeneric Protocolポイント**:Generic ProtocolがStatus Networkメインネットにローンチした際に使用可能なポイント。 - **ネイティブアプリポイント**:ネイティブアプリがトークノミクスを公開次第確定予定。 @@ -114,8 +114,8 @@ Generic Protocolの構造(GUSDトークノミクス、ブリッジングイン ## 関連資料 -- [事前預入ボールトコントラクト](../general-info/contract-addresses/pre-deposit) — デプロイ済みアドレス情報 -- [Karmicトークノミクス](./karmic-tokenomics) — Karmaの獲得方法と使用方法 -- [経済モデル](./economic-model) — Status Networkの持続可能な収益モデル +- [事前預入ボールトコントラクト](/home/general-info/contract-addresses/pre-deposit) — デプロイ済みアドレス情報 +- [Karmicトークノミクス](/home/tokenomics/karmic-tokenomics) — Karmaの獲得方法と使用方法 +- [経済モデル](/home/tokenomics/economic-model) — Status Networkの持続可能な収益モデル - [Aragonドキュメント](https://docs.aragon.org/) - [Generic Protocolドキュメント](https://docs.generic.money/) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/public-funding.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md similarity index 97% rename from i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/public-funding.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md index ec72d9a..a5a1112 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/public-funding.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md @@ -18,4 +18,4 @@ Status Networkの最も重要なコンポーネントの1つは、ネットワ - **ビルダーとネットワークの成長の連携**: ネットワークの利用と採用に積極的に貢献する開発者は、カルマの形でより多くの投票力を受け取り、自分たちに投票することができ、価値のあるアプリケーションを作成するインセンティブを強化します。 -このメカニズムにより、ビルダーは継続的で非搾取的な資本源を確保でき、成功するアプリケーションの作成に集中することができます。 \ No newline at end of file +このメカニズムにより、ビルダーは継続的で非搾取的な資本源を確保でき、成功するアプリケーションの作成に集中することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/snt-staking.md b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md similarity index 99% rename from i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/snt-staking.md rename to i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md index c773f75..d8b3b0e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tokenomics/snt-staking.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md @@ -28,4 +28,4 @@ Status NetworkテストネットでのSNTステーキング契約の展開が近 - **カルマの獲得**: ステーカーはカルマを蓄積し、これによりガバナンス力とガスレス取引へのアクセスが付与されます。 - **より高い無料取引枠**: より多くのカルマを持つユーザーは、より大きなガスレス取引制限を享受できます。 - **強化されたガバナンスの影響力**: カルマを蓄積することで、SNTステーカーは公的資金の配分、流動性インセンティブ付与、ネットワークポリシーの決定において重要な役割を果たすことができます。 -- **より高い評価**: SNTをステーキングすることで、保有者はエコシステムとの連携を示し、カルマの形で評価スコアを示すことができます。エコシステム内のアプリは、高い評価を持つユーザーを引き付ける強いインセンティブを持っています。 \ No newline at end of file +- **より高い評価**: SNTをステーキングすることで、保有者はエコシステムとの連携を示し、カルマの形で評価スコアを示すことができます。エコシステム内のアプリは、高い評価を持つユーザーを引き付ける強いインセンティブを持っています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md index 9817d9d..6faa0b6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -30,7 +30,7 @@ Status Networkテストネットブリッジを使用すると、Sepolia(レ ## ブリッジの使用 -ブリッジの使用方法の詳細な手順や重要なセキュリティ上の考慮事項については、[ブリッジングガイド](../general-info/bridge/bridging-testnet.md)をご参照ください。 +ブリッジの使用方法の詳細な手順や重要なセキュリティ上の考慮事項については、[ブリッジングガイド](/home/general-info/bridge/bridging-testnet)をご参照ください。 ## ブリッジトランザクションの監視 @@ -41,5 +41,5 @@ Status Networkテストネットブリッジを使用すると、Sepolia(レ ## サポート ブリッジ使用中に問題が発生した場合: -- 一般的な解決策については[ブリッジングガイド](../general-info/bridge/bridging-testnet.md)をチェック +- 一般的な解決策については[ブリッジングガイド](/home/general-info/bridge/bridging-testnet)をチェック - サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md index 40ac813..a39fe25 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md @@ -11,7 +11,59 @@ https://public.sepolia.rpc.status.network ## RPCの使用 ### MetaMaskへの追加 -このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](../general-info/add-status-network.md)をご参照ください。 +このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](/home/general-info/add-status-network)をご参照ください。 + +### Web3ライブラリの設定 + +```javascript +// Web3.js +const web3 = new Web3('https://public.sepolia.rpc.status.network'); + +// Ethers.js v5 +const provider = new ethers.providers.JsonRpcProvider('https://public.sepolia.rpc.status.network'); +``` + +## 利用可能なメソッド + +RPCエンドポイントは、以下を含む標準的なEthereum JSON-RPCメソッドをサポートしています: + +- `eth_blockNumber`: 最新のブロック番号を取得 +- `eth_getBalance`: アカウント残高を取得 +- `eth_sendRawTransaction`: 署名済みトランザクションを送信 +- `eth_call`: トランザクションを作成せずにコールを実行 +- `eth_getLogs`: イベントログを取得 +- `eth_getTransactionByHash`: トランザクションの詳細を取得 +- `eth_getBlockByNumber`: ブロック情報を取得 + +サポートされているRPCメソッドの完全なリストと詳細な仕様については、Status NetworkがLinea技術をベースにしているため、[Linea APIリファレンス](https://docs.linea.build/api/reference)を参照してください。 + +## レート制限 + +公開RPCエンドポイントには、公平な使用を確保するためのレート制限があります: +- IPあたり1秒間に10リクエスト +- IPあたり1日100,000リクエスト + +より高い制限が必要な場合は、Telegramでお問い合わせください。 + +## サポート + +RPCエンドポイントに問題が発生した場合: +- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加 +- アプリケーションにフォールバックRPC戦略の実装を検討 +# RPCエンドポイント + +Status Networkは、ネットワークとの対話を可能にする公開RPC(Remote Procedure Call)エンドポイントを提供しています。 + +## 公開RPC URL + +``` +https://public.sepolia.rpc.status.network +``` + +## RPCの使用 + +### MetaMaskへの追加 +このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](/home/general-info/add-status-network)をご参照ください。 ### Web3ライブラリの設定 diff --git a/i18n/ja/docusaurus-theme-classic/navbar.json b/i18n/ja/docusaurus-theme-classic/navbar.json index 8064df5..e23819f 100644 --- a/i18n/ja/docusaurus-theme-classic/navbar.json +++ b/i18n/ja/docusaurus-theme-classic/navbar.json @@ -4,11 +4,19 @@ "description": "The title in the navbar" }, "logo.alt": { - "message": "Status Network Logo", + "message": "Status Network ロゴ", "description": "The alt text of navbar logo" }, - "item.label.Hub": { - "message": "Hub", - "description": "Navbar item with label Hub" + "item.label.Home": { + "message": "ホーム", + "description": "Navbar item with label Home" + }, + "item.label.Build for Karma": { + "message": "Karma でビルド", + "description": "Navbar item with label Build for Karma" + }, + "item.label.Tools": { + "message": "ツール", + "description": "Navbar item with label Tools" } } diff --git a/i18n/ko/docusaurus-plugin-content-docs/current.json b/i18n/ko/docusaurus-plugin-content-docs/current.json index 5fb0834..5f1869a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current.json +++ b/i18n/ko/docusaurus-plugin-content-docs/current.json @@ -3,148 +3,144 @@ "message": "Next", "description": "The label for version current" }, - "sidebar.tutorialSidebar.category.INTRODUCTION": { + "sidebar.homeSidebar.category.INTRODUCTION": { "message": "소개", - "description": "The label for category INTRODUCTION in sidebar tutorialSidebar" + "description": "The label for category INTRODUCTION in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.TOKENOMICS": { + "sidebar.homeSidebar.category.TOKENOMICS": { "message": "토크노믹스", - "description": "The label for category TOKENOMICS in sidebar tutorialSidebar" + "description": "The label for category TOKENOMICS in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.GENERAL INFO": { + "sidebar.homeSidebar.category.GENERAL INFO": { "message": "일반 정보", - "description": "The label for category GENERAL INFO in sidebar tutorialSidebar" + "description": "The label for category GENERAL INFO in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.🏡 Contract Addresses": { + "sidebar.homeSidebar.category.🏡 Contract Addresses": { "message": "🏡 컨트랙트 주소", - "description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar" + "description": "The label for category 🏡 Contract Addresses in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.🌉 Bridge": { + "sidebar.homeSidebar.category.🌉 Bridge": { "message": "🌉 브릿지", - "description": "The label for category 🌉 Bridge in sidebar tutorialSidebar" + "description": "The label for category 🌉 Bridge in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.TOOLS": { + "sidebar.toolsSidebar.category.TOOLS": { "message": "도구", - "description": "The label for category TOOLS in sidebar tutorialSidebar" + "description": "The label for category TOOLS in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.category.TUTORIALS": { - "message": "튜토리얼", - "description": "The label for category TUTORIALS in sidebar tutorialSidebar" + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "개발하기", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.category.🚀 Deploying a Smart Contract": { + "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { "message": "🚀 스마트 컨트랙트 배포", - "description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar" + "description": "The label for category 🚀 Deploying a Smart Contract in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.category.OTHER DOCS": { + "sidebar.homeSidebar.category.OTHER DOCS": { "message": "기타 문서", - "description": "The label for category OTHER DOCS in sidebar tutorialSidebar" + "description": "The label for category OTHER DOCS in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🏠 Home": { - "message": "🏠 홈", - "description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar" + "sidebar.homeSidebar.doc.🌴 Home": { + "message": "🌴 홈", + "description": "The label for the doc item 🌴 Home in sidebar homeSidebar, linking to the doc index" }, - "sidebar.tutorialSidebar.doc.⚡ Quick Start": { + "sidebar.homeSidebar.doc.⚡ Quick Start": { "message": "⚡ 빠른 시작", - "description": "The label for the doc item ⚡ Quick Start in sidebar tutorialSidebar" + "description": "The label for the doc item ⚡ Quick Start in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💎 SNT Token": { + "sidebar.homeSidebar.doc.💎 SNT Token": { "message": "💎 SNT Token", - "description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token" + "description": "The label for the doc item 💎 SNT Token in sidebar homeSidebar, linking to the doc tokenomics/snt-token" }, - "sidebar.tutorialSidebar.doc.💠 Karma Token": { + "sidebar.homeSidebar.doc.💠 Karma Token": { "message": "💠 Karma Token", - "description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token" + "description": "The label for the doc item 💠 Karma Token in sidebar homeSidebar, linking to the doc tokenomics/karma-token" }, - "sidebar.tutorialSidebar.doc.🌐 Network Details": { + "sidebar.homeSidebar.doc.🌐 Network Details": { "message": "🌐 네트워크 세부정보", - "description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar" + "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.➕ Add Status Network": { + "sidebar.homeSidebar.doc.➕ Add Status Network": { "message": "➕ Status 네트워크 추가", - "description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar" + "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Tokens": { + "sidebar.homeSidebar.doc.💰 Tokens": { "message": "💰 토큰", - "description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Tokens in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": { + "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { "message": "🧪 테스트넷 컨트랙트", - "description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar" + "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": { + "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { "message": "🧪 테스트넷 브릿징", - "description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar" + "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🔌 RPC": { + "sidebar.toolsSidebar.doc.🔌 RPC": { "message": "🔌 RPC", - "description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar" + "description": "The label for the doc item 🔌 RPC in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🌉 Bridge": { + "sidebar.toolsSidebar.doc.🌉 Bridge": { "message": "🌉 브릿지", - "description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar" + "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": { + "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { "message": "🚰 테스트넷 파우셋", - "description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar" + "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🔎 Block Explorers": { + "sidebar.toolsSidebar.doc.🔎 Block Explorers": { "message": "🔎 블록 익스플로러", - "description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar" + "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🎩 Using Hardhat": { + "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 Hardhat 사용하기", - "description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar" + "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.⚒️ Using Foundry": { + "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { "message": "⚒️ Foundry 사용하기", - "description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar" + "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🎛️ Using Remix": { + "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { "message": "🎛️ Remix 사용하기", - "description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar" + "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🏗 Using Scaffold-ETH 2": { + "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { "message": "🏗 Scaffold-ETH 2 사용하기", - "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar tutorialSidebar" + "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🔗 Official Links": { + "sidebar.homeSidebar.doc.🔗 Official Links": { "message": "🔗 공식 링크", - "description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar" + "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🌴 Home": { - "message": "🌴 Home", - "description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index" - }, - "sidebar.tutorialSidebar.doc.🤝 Economic Model": { + "sidebar.homeSidebar.doc.🤝 Economic Model": { "message": "🤝 경제 모델", - "description": "The label for the doc item 🤝 Economic Model in sidebar tutorialSidebar" + "description": "The label for the doc item 🤝 Economic Model in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Public Funding": { + "sidebar.homeSidebar.doc.💰 Public Funding": { "message": "💰 공공 자금", - "description": "The label for the doc item 💰 Public Funding in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Public Funding in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🐉 Karmic Tokenomics": { + "sidebar.homeSidebar.doc.🐉 Karmic Tokenomics": { "message": "🐉 카르마 토크노믹스", - "description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar tutorialSidebar" + "description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💎 SNT Staking": { + "sidebar.homeSidebar.doc.💎 SNT Staking": { "message": "💎 SNT 스테이킹", - "description": "The label for the doc item 💎 SNT Staking in sidebar tutorialSidebar" + "description": "The label for the doc item 💎 SNT Staking in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Pre-Deposits": { + "sidebar.homeSidebar.doc.💰 Pre-Deposits": { "message": "💰 사전예치", - "description": "The label for the doc item 💰 Pre-Deposits in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Pre-Deposits in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🪙 Tokens": { + "sidebar.homeSidebar.doc.🪙 Tokens": { "message": "🪙 토큰", - "description": "The label for the doc item 🪙 Tokens in sidebar tutorialSidebar" + "description": "The label for the doc item 🪙 Tokens in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Pre-Deposit Vault Contracts": { + "sidebar.homeSidebar.doc.💰 Pre-Deposit Vault Contracts": { "message": "💰 사전예치 금고 컨트랙트", - "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🌐 Running an RPC node": { + "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { "message": "🌐 RPC 노드 운영하기", - "description": "The label for the doc item 🌐 Running an RPC node in sidebar tutorialSidebar" + "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" } } diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md similarity index 98% rename from i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md rename to i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index 5e9def2..4915a79 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -200,7 +200,7 @@ forge test 문제가 발생한 경우: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 -- [네트워크 세부정보](/general-info/network-details) 참조 +- [네트워크 세부정보](/home/general-info/network-details) 참조 ## 추가 리소스 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md similarity index 98% rename from i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md rename to i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index 1d62c33..ec01e76 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -158,4 +158,4 @@ npx hardhat run scripts/interact.ts --network statusTestnet 문제가 발생한 경우: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 -- [네트워크 세부정보](/general-info/network-details) 참조 +- [네트워크 세부정보](/home/general-info/network-details) 참조 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md similarity index 93% rename from i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md rename to i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index 71e238b..28cd444 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -10,7 +10,7 @@ - **MetaMask**: [MetaMask](https://metamask.io) 브라우저 확장 프로그램 설치 - **테스트넷 ETH**: Status Network 테스트넷 ETH가 필요합니다 - Status Network 테스트넷 ETH는 [파우셋](/tools/testnet-faucets)에서 받을 수 있습니다 -- **네트워크 구성**: [네트워크 추가 가이드](/general-info/add-status-network)에 따라 MetaMask에 Status Network 테스트넷 추가 +- **네트워크 구성**: [네트워크 추가 가이드](/home/general-info/add-status-network)에 따라 MetaMask에 Status Network 테스트넷 추가 ## 단계 @@ -91,7 +91,7 @@ contract HelloWorld { 문제가 발생한 경우: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 -- [네트워크 세부정보](/general-info/network-details) 참조 +- [네트워크 세부정보](/home/general-info/network-details) 참조 ## 추가 리소스 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md similarity index 96% rename from i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md rename to i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index 416d97c..43c93d3 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -58,4 +58,4 @@ keywords: [Scaffold-ETH 2, 스마트 컨트랙트 배포, Status Network 개발, 자세한 구성 옵션, 문제 해결 및 사용법에 대해서는: - 포괄적인 문서는 [확장 README](https://github.com/status-im/status-network-scaffold-extension)를 확인하세요 - [Telegram 커뮤니티](https://t.me/statusl2)에 참여하여 지원을 요청하세요 -- [네트워크 세부사항](/general-info/network-details)을 확인하세요 +- [네트워크 세부사항](/home/general-info/network-details)을 확인하세요 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md similarity index 98% rename from i18n/ko/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md rename to i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md index 2636e2c..df40624 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md @@ -210,7 +210,7 @@ RPC 노드 성능을 최적화하려면: 문제가 발생하면: - 최신 업데이트는 [공식 README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md) 확인 -- [네트워크 세부정보](/general-info/network-details) 및 전반적인 문서 검토 +- [네트워크 세부정보](/home/general-info/network-details) 및 전반적인 문서 검토 - [Telegram 커뮤니티](https://t.me/statusl2) 에서 지원 요청 ## 추가 리소스 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/general-info/add-status-network.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/general-info/add-status-network.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/general-info/bridge/bridging-testnet.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/general-info/bridge/bridging-testnet.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/general-info/contract-addresses/pre-deposit.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/general-info/contract-addresses/pre-deposit.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/general-info/contract-addresses/testnet-contracts.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/general-info/contract-addresses/testnet-contracts.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/general-info/contract-addresses/tokens.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/general-info/contract-addresses/tokens.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/general-info/gasless-transactions.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/general-info/gasless-transactions.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/general-info/network-details.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/network-details.md similarity index 93% rename from i18n/ko/docusaurus-plugin-content-docs/current/general-info/network-details.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/network-details.md index f4bfcb0..3dd1b9c 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/general-info/network-details.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/network-details.md @@ -18,4 +18,4 @@ - 네트워크에 dApp 연결 - 스마트 컨트랙트 검증 -지갑에 네트워크를 추가하는 방법은 [Status Network 추가 가이드](./add-status-network.md)를 참조하세요. +지갑에 네트워크를 추가하는 방법은 [Status Network 추가 가이드](/home/general-info/add-status-network)를 참조하세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/index.md similarity index 86% rename from i18n/ko/docusaurus-plugin-content-docs/current/index.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/index.md index b820443..75c8564 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/home/index.md @@ -41,16 +41,16 @@ Status Network는 Status Wallet, Keycard, Waku, Codex 등 [IFT](https://free.tec 설명 부분을 건너뛰고 바로 구축을 시작하고 싶으신가요? 시작하는 방법은 다음과 같습니다: -1. [Status Network를 지갑에 추가](/general-info/add-status-network) +1. [Status Network를 지갑에 추가](/home/general-info/add-status-network) 2. [테스트넷 ETH 받기](/tools/testnet-faucets) -3. [자산 브리징하기](/general-info/bridge/bridging-testnet) -4. [첫 번째 컨트랙트 배포하기](/tutorials/deploying-contracts/using-remix) +3. [자산 브리징하기](/home/general-info/bridge/bridging-testnet) +4. [첫 번째 컨트랙트 배포하기](/build-for-karma/deploying-contracts/using-remix) ## 지원 및 리소스 커뮤니티에 참여하고 필요한 리소스에 접근하세요: - [텔레그램 빌더 커뮤니티](https://t.me/statusl2)에 참여 -- [네트워크 세부정보](/general-info/network-details) 확인 -- [컨트랙트 주소](/general-info/contract-addresses/testnet-contracts) 탐색 +- [네트워크 세부정보](/home/general-info/network-details) 확인 +- [컨트랙트 주소](/home/general-info/contract-addresses/testnet-contracts) 탐색 멋진 것을 만들 준비가 되셨나요? 지금 바로 무료 네트워크에서 여정을 시작하세요! diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/introduction/quick-start.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md similarity index 89% rename from i18n/ko/docusaurus-plugin-content-docs/current/introduction/quick-start.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md index 0de7ccb..b899cef 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/introduction/quick-start.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md @@ -10,7 +10,7 @@ 1. **Status Network 테스트넷을 MetaMask에 추가**: - [Status Network 추가 가이드](/general-info/add-status-network)의 단계별 지침에 따라 Status Network 테스트넷을 MetaMask에 추가하세요. + [Status Network 추가 가이드](/home/general-info/add-status-network)의 단계별 지침에 따라 Status Network 테스트넷을 MetaMask에 추가하세요. 2. **테스트 ETH 받기**: @@ -102,8 +102,8 @@ contract SimpleStorage { - **지원 받기**: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여하여 도움을 받으세요 - - [네트워크 세부정보](/general-info/network-details)에서 자세한 정보를 확인하세요 - - Status Network로의 [토큰 브리징](/general-info/bridge/bridging-testnet)에 대해 알아보세요 + - [네트워크 세부정보](/home/general-info/network-details)에서 자세한 정보를 확인하세요 + - Status Network로의 [토큰 브리징](/home/general-info/bridge/bridging-testnet)에 대해 알아보세요 ## 요약 @@ -114,5 +114,5 @@ contract SimpleStorage { - 숫자 저장 및 조회를 통해 배포된 컨트랙트와 상호작용 더 고급 개발을 위해 다음 도구를 사용한 배포 가이드를 확인하세요: -- [Hardhat](/tutorials/deploying-contracts/using-hardhat) -- [Foundry](/tutorials/deploying-contracts/using-foundry) +- [Hardhat](/build-for-karma/deploying-contracts/using-hardhat) +- [Foundry](/build-for-karma/deploying-contracts/using-foundry) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/other/official-links.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/other/official-links.md similarity index 93% rename from i18n/ko/docusaurus-plugin-content-docs/current/other/official-links.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/other/official-links.md index 6f27386..10ea15f 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/other/official-links.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/home/other/official-links.md @@ -22,4 +22,4 @@ - **텔레그램 커뮤니티**: [t.me/statusl2](https://t.me/statusl2) - **X/트위터**: [x.com/statusL2](https://x.com/statusL2) -지갑에 네트워크를 추가하는 방법에 대해서는 [네트워크 추가 가이드](/general-info/add-status-network)를 참조하세요. +지갑에 네트워크를 추가하는 방법에 대해서는 [네트워크 추가 가이드](/home/general-info/add-status-network)를 참조하세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/economic-model.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/economic-model.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/karmic-tokenomics.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/karmic-tokenomics.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md similarity index 94% rename from i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md index 2c80814..26011f2 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md @@ -34,7 +34,7 @@ SNT, LINEA, ETH 금고는 [Aragon](https://aragon.org/)이 Status Network를 위 ### 배포된 컨트랙트 -주소 및 네트워크 목록 상세는 [사전예치 금고 컨트랙트](../general-info/contract-addresses/pre-deposit)를 참조하세요. +주소 및 네트워크 목록 상세는 [사전예치 금고 컨트랙트](/home/general-info/contract-addresses/pre-deposit)를 참조하세요. ## Generic Protocol 금고 (GUSD) @@ -78,7 +78,7 @@ Generic Protocol 구조(GUSD 토크노믹스, 브릿징 인프라 등)에 대한 사전 예치자는 다음의 보상을 받게 됩니다: -- **Karma**: 양도 불가능한 거버넌스 토큰; 가스리스 처리량과 투표권 부여 (자세한 내용은 [카르마 토크노믹스](./karmic-tokenomics) 참조). +- **Karma**: 양도 불가능한 거버넌스 토큰; 가스리스 처리량과 투표권 부여 (자세한 내용은 [카르마 토크노믹스](/home/tokenomics/karmic-tokenomics) 참조). - **유동성 인센티브**: 모든 금고에 걸쳐 1,500만 SNT와 2,000만 LINEA 토큰 배포. - 스테이블코인 예치자를 위한 **Generic Protocol 포인트**: Generic Protocol이 Status Network 메인넷에 출시될 때 사용할 수 있는 포인트. - **네이티브 앱 포인트**: 네이티브 앱들이 토크노믹스를 공개하면 확정 예정. @@ -114,8 +114,8 @@ Generic Protocol 구조(GUSD 토크노믹스, 브릿징 인프라 등)에 대한 ## 추가 정보 -- [사전예치 금고 컨트랙트](../general-info/contract-addresses/pre-deposit) — 배포된 주소 정보 -- [카르마 토크노믹스](./karmic-tokenomics) — Karma 획득 및 사용 방법 -- [경제 모델](./economic-model) — Status Network의 지속 가능한 수익 모델 +- [사전예치 금고 컨트랙트](/home/general-info/contract-addresses/pre-deposit) — 배포된 주소 정보 +- [카르마 토크노믹스](/home/tokenomics/karmic-tokenomics) — Karma 획득 및 사용 방법 +- [경제 모델](/home/tokenomics/economic-model) — Status Network의 지속 가능한 수익 모델 - [Aragon 문서](https://docs.aragon.org/) - [Generic Protocol 문서](https://docs.generic.money/) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/public-funding.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/public-funding.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/snt-staking.md b/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/tokenomics/snt-staking.md rename to i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md index e6c1c5e..5f8b232 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -30,7 +30,7 @@ Status Network 테스트넷 브리지를 사용하면 Sepolia (레이어 1)와 S ## 브리지 사용하기 -단계별 가이드와 중요한 보안 고려사항을 포함한 브리지 사용 방법에 대한 자세한 내용은 [브리징 가이드](../general-info/bridge/bridging-testnet.md)를 참조하세요. +단계별 가이드와 중요한 보안 고려사항을 포함한 브리지 사용 방법에 대한 자세한 내용은 [브리징 가이드](/home/general-info/bridge/bridging-testnet)를 참조하세요. ## 브리지 트랜잭션 모니터링 @@ -41,5 +41,5 @@ Status Network 테스트넷 브리지를 사용하면 Sepolia (레이어 1)와 S ## 지원 브리지 사용 중 문제가 발생한 경우: -- 일반적인 해결책은 [브리징 가이드](../general-info/bridge/bridging-testnet.md) 확인 +- 일반적인 해결책은 [브리징 가이드](/home/general-info/bridge/bridging-testnet) 확인 - 도움이 필요하면 [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md index 64d4302..d23de68 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md @@ -11,7 +11,7 @@ https://public.sepolia.rpc.status.network ## RPC 사용하기 ### MetaMask에 추가하기 -이 RPC를 사용하여 Status Network를 지갑에 추가하는 방법은 [네트워크 추가 가이드](../general-info/add-status-network.md)를 참조하세요. +이 RPC를 사용하여 Status Network를 지갑에 추가하는 방법은 [네트워크 추가 가이드](/home/general-info/add-status-network)를 참조하세요. ### Web3 라이브러리 설정 diff --git a/i18n/ko/docusaurus-theme-classic/navbar.json b/i18n/ko/docusaurus-theme-classic/navbar.json index 8064df5..ceac93b 100644 --- a/i18n/ko/docusaurus-theme-classic/navbar.json +++ b/i18n/ko/docusaurus-theme-classic/navbar.json @@ -4,11 +4,19 @@ "description": "The title in the navbar" }, "logo.alt": { - "message": "Status Network Logo", + "message": "Status Network 로고", "description": "The alt text of navbar logo" }, - "item.label.Hub": { - "message": "Hub", - "description": "Navbar item with label Hub" + "item.label.Home": { + "message": "홈", + "description": "Navbar item with label Home" + }, + "item.label.Build for Karma": { + "message": "카르마를 위해 개발하기", + "description": "Navbar item with label Build for Karma" + }, + "item.label.Tools": { + "message": "도구", + "description": "Navbar item with label Tools" } } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current.json b/i18n/zh/docusaurus-plugin-content-docs/current.json index de2445a..704c934 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current.json +++ b/i18n/zh/docusaurus-plugin-content-docs/current.json @@ -3,148 +3,144 @@ "message": "Next", "description": "The label for version current" }, - "sidebar.tutorialSidebar.category.INTRODUCTION": { + "sidebar.homeSidebar.category.INTRODUCTION": { "message": "简介", - "description": "The label for category INTRODUCTION in sidebar tutorialSidebar" + "description": "The label for category INTRODUCTION in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.TOKENOMICS": { + "sidebar.homeSidebar.category.TOKENOMICS": { "message": "代币经济学", - "description": "The label for category TOKENOMICS in sidebar tutorialSidebar" + "description": "The label for category TOKENOMICS in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.GENERAL INFO": { + "sidebar.homeSidebar.category.GENERAL INFO": { "message": "基本信息", - "description": "The label for category GENERAL INFO in sidebar tutorialSidebar" + "description": "The label for category GENERAL INFO in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.🏡 Contract Addresses": { + "sidebar.homeSidebar.category.🏡 Contract Addresses": { "message": "🏡 合约地址", - "description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar" + "description": "The label for category 🏡 Contract Addresses in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.🌉 Bridge": { + "sidebar.homeSidebar.category.🌉 Bridge": { "message": "🌉 跨链桥", - "description": "The label for category 🌉 Bridge in sidebar tutorialSidebar" + "description": "The label for category 🌉 Bridge in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.category.TOOLS": { + "sidebar.toolsSidebar.category.TOOLS": { "message": "工具", - "description": "The label for category TOOLS in sidebar tutorialSidebar" + "description": "The label for category TOOLS in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.category.TUTORIALS": { - "message": "教程", - "description": "The label for category TUTORIALS in sidebar tutorialSidebar" + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "开发", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.category.🚀 Deploying a Smart Contract": { + "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { "message": "🚀 部署智能合约", - "description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar" + "description": "The label for category 🚀 Deploying a Smart Contract in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.category.OTHER DOCS": { + "sidebar.homeSidebar.category.OTHER DOCS": { "message": "其他文档", - "description": "The label for category OTHER DOCS in sidebar tutorialSidebar" + "description": "The label for category OTHER DOCS in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🏠 Home": { - "message": "🏠 首页", - "description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar, linking to the doc index" + "sidebar.homeSidebar.doc.🌴 Home": { + "message": "🌴 首页", + "description": "The label for the doc item 🌴 Home in sidebar homeSidebar, linking to the doc index" }, - "sidebar.tutorialSidebar.doc.⚡ Quick Start": { + "sidebar.homeSidebar.doc.⚡ Quick Start": { "message": "⚡ 快速开始", - "description": "The label for the doc item ⚡ Quick Start in sidebar tutorialSidebar, linking to the doc introduction/quick-start" + "description": "The label for the doc item ⚡ Quick Start in sidebar homeSidebar, linking to the doc introduction/quick-start" }, - "sidebar.tutorialSidebar.doc.💎 SNT Token": { + "sidebar.homeSidebar.doc.💎 SNT Token": { "message": "💎 SNT Token", - "description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token" + "description": "The label for the doc item 💎 SNT Token in sidebar homeSidebar, linking to the doc tokenomics/snt-token" }, - "sidebar.tutorialSidebar.doc.💠 Karma Token": { + "sidebar.homeSidebar.doc.💠 Karma Token": { "message": "💠 Karma Token", - "description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token" + "description": "The label for the doc item 💠 Karma Token in sidebar homeSidebar, linking to the doc tokenomics/karma-token" }, - "sidebar.tutorialSidebar.doc.🌐 Network Details": { + "sidebar.homeSidebar.doc.🌐 Network Details": { "message": "🌐 网络详情", - "description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar" + "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.➕ Add Status Network": { + "sidebar.homeSidebar.doc.➕ Add Status Network": { "message": "➕ 添加 Status 网络", - "description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar" + "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Tokens": { + "sidebar.homeSidebar.doc.💰 Tokens": { "message": "💰 代币", - "description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Tokens in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": { + "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { "message": "🧪 测试网合约", - "description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar" + "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": { + "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { "message": "🧪 测试网跨链", - "description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar" + "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🔌 RPC": { + "sidebar.toolsSidebar.doc.🔌 RPC": { "message": "🔌 RPC", - "description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar" + "description": "The label for the doc item 🔌 RPC in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🌉 Bridge": { + "sidebar.toolsSidebar.doc.🌉 Bridge": { "message": "🌉 跨链桥", - "description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar" + "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": { + "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { "message": "🚰 测试网水龙头", - "description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar" + "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🔎 Block Explorers": { + "sidebar.toolsSidebar.doc.🔎 Block Explorers": { "message": "🔎 区块浏览器", - "description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar" + "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" }, - "sidebar.tutorialSidebar.doc.🎩 Using Hardhat": { + "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 使用 Hardhat", - "description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar" + "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.⚒️ Using Foundry": { + "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { "message": "⚒️ 使用 Foundry", - "description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar" + "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🎛️ Using Remix": { + "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { "message": "🎛️ 使用 Remix", - "description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar" + "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🏗 Using Scaffold-ETH 2": { + "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { "message": "🏗 Scaffold-ETH 2 使用", - "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar tutorialSidebar" + "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" }, - "sidebar.tutorialSidebar.doc.🔗 Official Links": { + "sidebar.homeSidebar.doc.🔗 Official Links": { "message": "🔗 官方链接", - "description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar" + "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🌴 Home": { - "message": "🌴 Home", - "description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index" - }, - "sidebar.tutorialSidebar.doc.🤝 Economic Model": { + "sidebar.homeSidebar.doc.🤝 Economic Model": { "message": "🤝 经济模型", - "description": "The label for the doc item 🤝 Economic Model in sidebar tutorialSidebar" + "description": "The label for the doc item 🤝 Economic Model in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Public Funding": { + "sidebar.homeSidebar.doc.💰 Public Funding": { "message": "💰 公共资金", - "description": "The label for the doc item 💰 Public Funding in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Public Funding in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🐉 Karmic Tokenomics": { + "sidebar.homeSidebar.doc.🐉 Karmic Tokenomics": { "message": "🐉 因果代币经济学", - "description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar tutorialSidebar" + "description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💎 SNT Staking": { + "sidebar.homeSidebar.doc.💎 SNT Staking": { "message": "💎 SNT 质押", - "description": "The label for the doc item 💎 SNT Staking in sidebar tutorialSidebar" + "description": "The label for the doc item 💎 SNT Staking in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Pre-Deposits": { + "sidebar.homeSidebar.doc.💰 Pre-Deposits": { "message": "💰 预存款", - "description": "The label for the doc item 💰 Pre-Deposits in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Pre-Deposits in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🪙 Tokens": { + "sidebar.homeSidebar.doc.🪙 Tokens": { "message": "🪙 代币", - "description": "The label for the doc item 🪙 Tokens in sidebar tutorialSidebar" + "description": "The label for the doc item 🪙 Tokens in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.💰 Pre-Deposit Vault Contracts": { + "sidebar.homeSidebar.doc.💰 Pre-Deposit Vault Contracts": { "message": "💰 预存金库合同", - "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar tutorialSidebar" + "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, - "sidebar.tutorialSidebar.doc.🌐 Running an RPC node": { + "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { "message": "🌐 运行RPC节点", - "description": "The label for the doc item 🌐 Running an RPC node in sidebar tutorialSidebar" + "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" } } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md similarity index 98% rename from i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md rename to i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index 865cd34..4177075 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -200,7 +200,7 @@ forge test 如果遇到问题: - 加入我们的 [Telegram 社区](https://t.me/statusl2) -- 查看[网络详情](/general-info/network-details) +- 查看[网络详情](/home/general-info/network-details) ## 其他资源 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md similarity index 98% rename from i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md rename to i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index 4086f9b..5f47f73 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -158,4 +158,4 @@ npx hardhat run scripts/interact.ts --network statusTestnet 如果遇到问题: - 加入我们的 [Telegram 社区](https://t.me/statusl2) -- 查看[网络详情](/general-info/network-details) +- 查看[网络详情](/home/general-info/network-details) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md similarity index 93% rename from i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md rename to i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index 1944613..7cc513e 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -10,7 +10,7 @@ - **MetaMask**: 安装 [MetaMask](https://metamask.io) 浏览器扩展 - **测试网 ETH**: 您需要 Status Network 测试网 ETH - 从我们的[水龙头](/tools/testnet-faucets)获取 Status Network 测试网 ETH -- **网络配置**: 按照我们的[添加网络指南](/general-info/add-status-network)将 Status Network 测试网添加到 MetaMask +- **网络配置**: 按照我们的[添加网络指南](/home/general-info/add-status-network)将 Status Network 测试网添加到 MetaMask ## 步骤 @@ -91,7 +91,7 @@ contract HelloWorld { 如果遇到问题: - 加入我们的 [Telegram 社区](https://t.me/statusl2) -- 查看[网络详情](/general-info/network-details) +- 查看[网络详情](/home/general-info/network-details) ## 其他资源 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md similarity index 96% rename from i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md rename to i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index 5ada969..952c50c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-se2.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -58,4 +58,4 @@ keywords: [Scaffold-ETH 2, 智能合约部署, Status Network开发, Foundry, Ha 有关详细配置选项、故障排除和高级用法: - 查看[扩展README](https://github.com/status-im/status-network-scaffold-extension)获取全面文档 - 加入我们的[Telegram社区](https://t.me/statusl2)寻求支持 -- 查看我们的[网络详情](/general-info/network-details) +- 查看我们的[网络详情](/home/general-info/network-details) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md similarity index 97% rename from i18n/zh/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md rename to i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md index 7e24607..a33614c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tutorials/running-an-rpc.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md @@ -87,7 +87,6 @@ ws://localhost:8446 # Geth {"jsonrpc":"2.0","method":"eth_unsubscribe","params":["0x..."],"id":1} ``` - ## 高级功能 ### 批量请求 @@ -107,9 +106,9 @@ ws://localhost:8446 # Geth | `eth_getLogs`(大范围) | 200毫秒至几秒 | 使用有界范围和布隆过滤器 | | `eth_estimateGas` | 200毫秒至几秒 | 在负载下或使用复杂合约时可能较慢 | -:::tip 性能提示 +::::tip 性能提示 对于生产使用,从低数千读取RPS开始,并根据您的特定工作负载和硬件测试进行水平扩展。 -::: +:::: ## 故障排除 @@ -176,9 +175,9 @@ netstat -tulpn | grep :8445 - 增长率:中等,取决于网络活动 - 建议:2 TB Gen4 NVMe以留有余地 -:::warning 规划增长 +::::warning 规划增长 始终提供超出当前需求的额外存储容量以确保持续运行。 -::: +:::: ## 安全考虑 @@ -191,9 +190,9 @@ netstat -tulpn | grep :8445 5. **备份**: 定期备份节点配置(数据可在需要时重新同步) 6. **速率限制**: 如果暴露给多个用户,实施速率限制 -:::caution 生产部署 +::::caution 生产部署 对于生产使用,由于速率限制,避免依赖公共RPC端点。运行自己的私有RPC节点可提供更好的可靠性和性能。 -::: +:::: ## 性能优化 @@ -210,7 +209,7 @@ netstat -tulpn | grep :8445 如果遇到任何问题: - 查看[官方README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)获取最新更新 -- 查看我们的[网络详情](/general-info/network-details)和文档 +- 查看我们的[网络详情](/home/general-info/network-details)和文档 - 加入我们的[Telegram社区](https://t.me/statusl2)寻求支持 ## 其他资源 @@ -218,4 +217,3 @@ netstat -tulpn | grep :8445 - [Status Network RPC Tools仓库](https://github.com/status-im/status-l2-rpc-tools) - 包含设置指南和脚本的官方仓库 - [Status Network文档](https://docs.status.network/) - 官方文档 - [Status Network区块浏览器](https://sepoliascan.status.network) - Sepolia测试网浏览器 - diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/add-status-network.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/general-info/add-status-network.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/bridge/bridging-testnet.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/general-info/bridge/bridging-testnet.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/contract-addresses/pre-deposit.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md similarity index 98% rename from i18n/zh/docusaurus-plugin-content-docs/current/general-info/contract-addresses/pre-deposit.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md index a6b1013..28ad301 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/contract-addresses/pre-deposit.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md @@ -9,9 +9,9 @@ keywords: [Status Network, 预存, 活动, 金库] 我们与[Aragon](https://www.aragon.org/)合作,为Status Network用户开展预存活动。 本页面列出了活动的所有重要合约地址。 -:::note +::::note 根据金库的代币类型,它将部署在Ethereum主网或Linea主网上 -::: +:::: ## 金库 - **SNT Vault** diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/contract-addresses/testnet-contracts.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/general-info/contract-addresses/testnet-contracts.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/contract-addresses/tokens.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/general-info/contract-addresses/tokens.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/gasless-transactions.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md similarity index 99% rename from i18n/zh/docusaurus-plugin-content-docs/current/general-info/gasless-transactions.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md index 40ac3d3..630f6b2 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/gasless-transactions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md @@ -139,4 +139,4 @@ linea_estimateGas方法被定制以考虑拒绝列表上的用户: - 检查用户的拒绝列表状态 - 根据需要添加高级Gas倍数 -- 为用户提供透明度和准确的Gas估算 \ No newline at end of file +- 为用户提供透明度和准确的Gas估算 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/network-details.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/network-details.md similarity index 93% rename from i18n/zh/docusaurus-plugin-content-docs/current/general-info/network-details.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/network-details.md index 2686d16..9bdd724 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/general-info/network-details.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/network-details.md @@ -18,4 +18,4 @@ - 将 dApp 连接到网络 - 验证智能合约 -关于如何将网络添加到您的钱包,请参阅我们的 [Status Network 添加指南](./add-status-network.md)。 +关于如何将网络添加到您的钱包,请参阅我们的 [Status Network 添加指南](/home/general-info/add-status-network)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/index.md similarity index 84% rename from i18n/zh/docusaurus-plugin-content-docs/current/index.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/index.md index 2b85bbe..30ac35f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/index.md @@ -41,16 +41,16 @@ Status Network 原生集成了 Status Wallet、Keycard、Waku 和 Codex,这些 想跳过解释部分直接开始构建吗?以下是开始的方法: -1. [将 Status Network 添加到您的钱包](/general-info/add-status-network) +1. [将 Status Network 添加到您的钱包](/home/general-info/add-status-network) 2. [获取测试网 ETH](/tools/testnet-faucets) -3. [跨链资产](/general-info/bridge/bridging-testnet) -4. [部署您的第一个合约](/tutorials/deploying-contracts/using-remix) +3. [跨链资产](/home/general-info/bridge/bridging-testnet) +4. [部署您的第一个合约](/build-for-karma/deploying-contracts/using-remix) ## 支持与资源 加入我们的社区并访问所需资源: - 加入我们的 [Telegram 开发者社区](https://t.me/statusl2) -- 查看[网络详情](/general-info/network-details) -- 浏览[合约地址](/general-info/contract-addresses/testnet-contracts) +- 查看[网络详情](/home/general-info/network-details) +- 浏览[合约地址](/home/general-info/contract-addresses/testnet-contracts) 准备好构建令人惊叹的应用了吗?今天就开始您在免费网络上的旅程! diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/introduction/quick-start.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md similarity index 89% rename from i18n/zh/docusaurus-plugin-content-docs/current/introduction/quick-start.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md index 5164bc3..fbf369a 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/introduction/quick-start.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md @@ -10,7 +10,7 @@ 1. **将 Status Network 测试网添加到 MetaMask**: - 按照 [Status Network 添加指南](/general-info/add-status-network) 的步骤说明将 Status Network 测试网添加到 MetaMask。 + 按照 [Status Network 添加指南](/home/general-info/add-status-network) 的步骤说明将 Status Network 测试网添加到 MetaMask。 2. **获取测试 ETH**: @@ -102,8 +102,8 @@ contract SimpleStorage { - **获取支持**: - 加入我们的 [Telegram 社区](https://t.me/statusl2) 获取帮助 - - 查看我们的 [网络详情](/general-info/network-details) 了解更多信息 - - 了解如何 [跨链代币](/general-info/bridge/bridging-testnet) 到 Status Network + - 查看我们的 [网络详情](/home/general-info/network-details) 了解更多信息 + - 了解如何 [跨链代币](/home/general-info/bridge/bridging-testnet) 到 Status Network ## 总结 @@ -114,5 +114,5 @@ contract SimpleStorage { - 通过存储和检索数字与您部署的合约进行交互 对于更高级的开发,请查看我们使用以下工具的部署指南: -- [Hardhat](/tutorials/deploying-contracts/using-hardhat) -- [Foundry](/tutorials/deploying-contracts/using-foundry) +- [Hardhat](/build-for-karma/deploying-contracts/using-hardhat) +- [Foundry](/build-for-karma/deploying-contracts/using-foundry) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/other/official-links.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/other/official-links.md similarity index 95% rename from i18n/zh/docusaurus-plugin-content-docs/current/other/official-links.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/other/official-links.md index d9762f4..b43854e 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/other/official-links.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/other/official-links.md @@ -22,4 +22,4 @@ - **Telegram 社区**: [t.me/statusl2](https://t.me/statusl2) - **X/推特**: [x.com/statusL2](https://x.com/statusL2) -关于如何将网络添加到您的钱包,请参阅我们的[添加网络指南](/general-info/add-status-network)。 +关于如何将网络添加到您的钱包,请参阅我们的[添加网络指南](/home/general-info/add-status-network)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/economic-model.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md similarity index 99% rename from i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/economic-model.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md index 2734084..a8c162b 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/economic-model.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md @@ -15,4 +15,3 @@ - **未来的原生应用**:网络将在后期引入其他收入来源,如借贷市场、NFT市场和代币发射台,每个应用都将产生的费用的一定比例回馈到L2运营中。 这个模型确保了Status Network在提供免费交易的同时保持经济可持续性。通过利用TVL及其相关的原生收益以及交易量,Status Network在用户、流动性提供者和开发者之间建立激励机制的平衡,创建一个不依赖通胀型代币发行的自我持续生态系统。 - diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/karmic-tokenomics.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md similarity index 99% rename from i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/karmic-tokenomics.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md index 840fe32..7c22d50 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/karmic-tokenomics.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md @@ -44,4 +44,4 @@ 4. 更高的原生收益和费用吸引更多 TVL,因为用户跨链额外的收益型资产。 -随着 TVL 和采用率的增长,资金机会也随之增加,加强网络的可持续性。 \ No newline at end of file +随着 TVL 和采用率的增长,资金机会也随之增加,加强网络的可持续性。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md similarity index 92% rename from i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md index 8274653..5145904 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/pre-deposits.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md @@ -34,7 +34,7 @@ SNT、LINEA 和 ETH 金库是 [Aragon](https://aragon.org/) 专门为 Status Net ### 已部署合约 -完整的地址和网络列表请参阅[预存款金库合约](../general-info/contract-addresses/pre-deposit)。 +完整的地址和网络列表请参阅[预存款金库合约](/home/general-info/contract-addresses/pre-deposit)。 ## Generic Protocol 金库 (GUSD) @@ -50,9 +50,9 @@ GUSD 金库通过 [Steakhouse Financial](https://steakhouse.financial/) 和 [Mor 产生的部分收益将在主网启动时注入 Status Network 的原生资金池。 -:::note +::::note GUSD 金库**不**发行收据代币。您的存款记录在 Generic Protocol 的合约中;您可以在 [Hub](https://hub.status.network/pre-deposits) 连接钱包或直接在链上验证您的仓位。 -::: +:::: ### DepositorHelper 合约 @@ -78,7 +78,7 @@ Status Network 预存款通过 DepositorHelper 与 Generic Protocol 交互: 预存款者可获得: -- **Karma**:不可转让的治理代币;授予免 Gas 吞吐量和投票权(详见 [Karmic 代币经济学](./karmic-tokenomics))。 +- **Karma**:不可转让的治理代币;授予免 Gas 吞吐量和投票权(详见 [Karmic 代币经济学](/home/tokenomics/karmic-tokenomics))。 - **流动性激励**:在所有金库中分配 1500 万 SNT 和 2000 万 LINEA 代币。 - **稳定币存款者的 Generic Protocol 积分**:Generic Protocol 在 Status Network 主网启动时可使用的积分。 - **原生应用积分**:待原生应用公布其代币经济学后确认。 @@ -114,8 +114,8 @@ Status Network 预存款通过 DepositorHelper 与 Generic Protocol 交互: ## 延伸阅读 -- [预存款金库合约](../general-info/contract-addresses/pre-deposit) — 已部署地址信息 -- [Karmic 代币经济学](./karmic-tokenomics) — Karma 的获取和使用方式 -- [经济模型](./economic-model) — Status Network 的可持续收入模型 +- [预存款金库合约](/home/general-info/contract-addresses/pre-deposit) — 已部署地址信息 +- [Karmic 代币经济学](/home/tokenomics/karmic-tokenomics) — Karma 的获取和使用方式 +- [经济模型](/home/tokenomics/economic-model) — Status Network 的可持续收入模型 - [Aragon 文档](https://docs.aragon.org/) - [Generic Protocol 文档](https://docs.generic.money/) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/public-funding.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md similarity index 99% rename from i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/public-funding.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md index a408b15..741ddf9 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/public-funding.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md @@ -18,4 +18,4 @@ Status Network 最关键的组成部分之一是应用程序资金池,旨在 - **建设者与网络增长保持一致**: 积极为网络使用和采用做出贡献的开发者将以因果值的形式获得更多投票权,使他们能够为自己投票,并强化创建有价值应用程序的激励。 -这种机制为建设者提供了持续的、非剥削性的资本来源,使他们能够专注于创建成功的应用程序。 \ No newline at end of file +这种机制为建设者提供了持续的、非剥削性的资本来源,使他们能够专注于创建成功的应用程序。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/snt-staking.md b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md similarity index 98% rename from i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/snt-staking.md rename to i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md index 4d30bc5..b636e8f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tokenomics/snt-staking.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md @@ -28,4 +28,4 @@ Status Network Token (SNT) 于2017年6月推出,作为 Status 生态系统的 - **赚取因果值**:质押者累积因果值,这赋予治理权力和无 gas 交易访问权。 - **更高的免费交易配额**:拥有更多因果值的用户享有更大的无 gas 交易限额。 - **增强的治理影响力**:随着因果值的累积,SNT 质押者可以在公共资金分配、流动性激励和网络政策决策中发挥关键作用。 -- **更高的声誉**:通过质押他们的 SNT,持有者可以表明与生态系统的一致性,并以因果值的形式展示声誉分数。生态系统中的应用程序有强烈的动机来吸引具有高声誉的用户。 \ No newline at end of file +- **更高的声誉**:通过质押他们的 SNT,持有者可以表明与生态系统的一致性,并以因果值的形式展示声誉分数。生态系统中的应用程序有强烈的动机来吸引具有高声誉的用户。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md index ad09c7e..c07deac 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -30,7 +30,7 @@ Status Network 测试网跨链桥允许用户在 Sepolia(第一层)和 Statu ## 使用跨链桥 -关于如何使用跨链桥的详细说明,包括分步指南和重要的安全考虑事项,请参考我们的[跨链指南](../general-info/bridge/bridging-testnet.md)。 +关于如何使用跨链桥的详细说明,包括分步指南和重要的安全考虑事项,请参考我们的[跨链指南](/home/general-info/bridge/bridging-testnet)。 ## 监控跨链交易 @@ -41,5 +41,5 @@ Status Network 测试网跨链桥允许用户在 Sepolia(第一层)和 Statu ## 支持 如果您在使用跨链桥时遇到任何问题: -- 查看[跨链指南](../general-info/bridge/bridging-testnet.md)了解常见解决方案 +- 查看[跨链指南](/home/general-info/bridge/bridging-testnet)了解常见解决方案 - 加入我们的 [Telegram 社区](https://t.me/statusl2)获取帮助 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md index 906f8a4..7ef842c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md @@ -11,7 +11,7 @@ https://public.sepolia.rpc.status.network ## 使用 RPC ### 添加到 MetaMask -有关使用此 RPC 将 Status Network 添加到您钱包的说明,请参阅我们的[添加网络指南](../general-info/add-status-network.md)。 +有关使用此 RPC 将 Status Network 添加到您钱包的说明,请参阅我们的[添加网络指南](/home/general-info/add-status-network)。 ### Web3 库配置 diff --git a/i18n/zh/docusaurus-theme-classic/navbar.json b/i18n/zh/docusaurus-theme-classic/navbar.json index 8064df5..9a00fdd 100644 --- a/i18n/zh/docusaurus-theme-classic/navbar.json +++ b/i18n/zh/docusaurus-theme-classic/navbar.json @@ -1,14 +1,22 @@ { "title": { - "message": "Status Network Docs", + "message": "Status Network 文档", "description": "The title in the navbar" }, "logo.alt": { - "message": "Status Network Logo", + "message": "Status Network 标志", "description": "The alt text of navbar logo" }, - "item.label.Hub": { - "message": "Hub", - "description": "Navbar item with label Hub" + "item.label.Home": { + "message": "首页", + "description": "Navbar item with label Home" + }, + "item.label.Build for Karma": { + "message": "为 Karma 构建", + "description": "Navbar item with label Build for Karma" + }, + "item.label.Tools": { + "message": "工具", + "description": "Navbar item with label Tools" } } From 96c62f7a93e4f7d78c499e450ef0b59ca73cb2a8 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Mon, 2 Feb 2026 19:40:28 +0100 Subject: [PATCH 03/36] Update navbar label 'Home' to 'Overview' - Changed the label from 'Home' to 'Overview' in the main configuration. - Updated translations for the navbar item in Japanese, Korean, and Chinese. Signed-off-by: yjkellyjoo --- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 4 +-- .../deploying-contracts/using-se2.md | 2 +- docs/build-for-karma/running-an-rpc.md | 2 +- .../general-info/add-status-network.md | 0 .../general-info/bridge/bridging-testnet.md | 0 .../contract-addresses/pre-deposit.md | 0 .../contract-addresses/testnet-contracts.md | 0 .../general-info/contract-addresses/tokens.md | 0 .../general-info/gasless-transactions.md | 0 .../general-info/network-details.md | 2 +- docs/{home => overview}/index.md | 8 ++--- .../introduction/quick-start.md | 6 ++-- .../other/official-links.md | 2 +- .../tokenomics/economic-model.md | 0 .../tokenomics/karmic-tokenomics.md | 0 .../tokenomics/pre-deposits.md | 10 +++---- .../tokenomics/public-funding.md | 0 .../tokenomics/snt-staking.md | 0 docs/tools/bridge.md | 4 +-- docs/tools/rpc.md | 2 +- docusaurus.config.ts | 4 +-- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 4 +-- .../deploying-contracts/using-se2.md | 2 +- .../current/build-for-karma/running-an-rpc.md | 2 +- .../general-info/add-status-network.md | 0 .../general-info/bridge/bridging-testnet.md | 0 .../contract-addresses/pre-deposit.md | 0 .../contract-addresses/testnet-contracts.md | 0 .../general-info/contract-addresses/tokens.md | 0 .../general-info/gasless-transactions.md | 0 .../general-info/network-details.md | 2 +- .../current/{home => overview}/index.md | 8 ++--- .../introduction/quick-start.md | 6 ++-- .../other/official-links.md | 2 +- .../tokenomics/economic-model.md | 0 .../tokenomics/karmic-tokenomics.md | 0 .../tokenomics/pre-deposits.md | 10 +++---- .../tokenomics/public-funding.md | 0 .../tokenomics/snt-staking.md | 0 .../current/tools/bridge.md | 4 +-- .../current/tools/rpc.md | 4 +-- i18n/ja/docusaurus-theme-classic/navbar.json | 6 ++-- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 4 +-- .../deploying-contracts/using-se2.md | 2 +- .../current/build-for-karma/running-an-rpc.md | 2 +- .../general-info/add-status-network.md | 0 .../general-info/bridge/bridging-testnet.md | 0 .../contract-addresses/pre-deposit.md | 0 .../contract-addresses/testnet-contracts.md | 0 .../general-info/contract-addresses/tokens.md | 0 .../general-info/gasless-transactions.md | 0 .../general-info/network-details.md | 2 +- .../current/{home => overview}/index.md | 8 ++--- .../introduction/quick-start.md | 6 ++-- .../other/official-links.md | 2 +- .../tokenomics/economic-model.md | 0 .../tokenomics/karmic-tokenomics.md | 0 .../tokenomics/pre-deposits.md | 10 +++---- .../tokenomics/public-funding.md | 0 .../tokenomics/snt-staking.md | 0 .../current/tools/bridge.md | 4 +-- .../current/tools/rpc.md | 2 +- i18n/ko/docusaurus-theme-classic/navbar.json | 6 ++-- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 4 +-- .../deploying-contracts/using-se2.md | 2 +- .../current/build-for-karma/running-an-rpc.md | 2 +- .../general-info/add-status-network.md | 0 .../general-info/bridge/bridging-testnet.md | 0 .../contract-addresses/pre-deposit.md | 0 .../contract-addresses/testnet-contracts.md | 0 .../general-info/contract-addresses/tokens.md | 0 .../general-info/gasless-transactions.md | 0 .../general-info/network-details.md | 2 +- .../current/{home => overview}/index.md | 8 ++--- .../introduction/quick-start.md | 6 ++-- .../other/official-links.md | 2 +- .../tokenomics/economic-model.md | 0 .../tokenomics/karmic-tokenomics.md | 0 .../tokenomics/pre-deposits.md | 10 +++---- .../tokenomics/public-funding.md | 0 .../tokenomics/snt-staking.md | 0 .../current/tools/bridge.md | 4 +-- .../current/tools/rpc.md | 2 +- i18n/zh/docusaurus-theme-classic/navbar.json | 6 ++-- sidebars.ts | 30 +++++++++---------- 93 files changed, 119 insertions(+), 119 deletions(-) rename docs/{home => overview}/general-info/add-status-network.md (100%) rename docs/{home => overview}/general-info/bridge/bridging-testnet.md (100%) rename docs/{home => overview}/general-info/contract-addresses/pre-deposit.md (100%) rename docs/{home => overview}/general-info/contract-addresses/testnet-contracts.md (100%) rename docs/{home => overview}/general-info/contract-addresses/tokens.md (100%) rename docs/{home => overview}/general-info/gasless-transactions.md (100%) rename docs/{home => overview}/general-info/network-details.md (96%) rename docs/{home => overview}/index.md (88%) rename docs/{home => overview}/introduction/quick-start.md (92%) rename docs/{home => overview}/other/official-links.md (96%) rename docs/{home => overview}/tokenomics/economic-model.md (100%) rename docs/{home => overview}/tokenomics/karmic-tokenomics.md (100%) rename docs/{home => overview}/tokenomics/pre-deposits.md (92%) rename docs/{home => overview}/tokenomics/public-funding.md (100%) rename docs/{home => overview}/tokenomics/snt-staking.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/general-info/add-status-network.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/general-info/bridge/bridging-testnet.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/pre-deposit.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/testnet-contracts.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/tokens.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/general-info/gasless-transactions.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/general-info/network-details.md (91%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/index.md (89%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/introduction/quick-start.md (93%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/other/official-links.md (92%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/economic-model.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/karmic-tokenomics.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/pre-deposits.md (93%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/public-funding.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/snt-staking.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/general-info/add-status-network.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/general-info/bridge/bridging-testnet.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/pre-deposit.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/testnet-contracts.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/tokens.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/general-info/gasless-transactions.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/general-info/network-details.md (92%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/index.md (89%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/introduction/quick-start.md (92%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/other/official-links.md (93%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/economic-model.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/karmic-tokenomics.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/pre-deposits.md (94%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/public-funding.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/snt-staking.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/general-info/add-status-network.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/general-info/bridge/bridging-testnet.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/pre-deposit.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/testnet-contracts.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/general-info/contract-addresses/tokens.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/general-info/gasless-transactions.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/general-info/network-details.md (92%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/index.md (87%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/introduction/quick-start.md (91%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/other/official-links.md (94%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/economic-model.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/karmic-tokenomics.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/pre-deposits.md (93%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/public-funding.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{home => overview}/tokenomics/snt-staking.md (100%) diff --git a/docs/build-for-karma/deploying-contracts/using-foundry.md b/docs/build-for-karma/deploying-contracts/using-foundry.md index bac9fd3..619f554 100644 --- a/docs/build-for-karma/deploying-contracts/using-foundry.md +++ b/docs/build-for-karma/deploying-contracts/using-foundry.md @@ -207,7 +207,7 @@ forge test If you encounter any issues: - Join our [Telegram Community](https://t.me/statusl2) -- View our [Network Details](/home/general-info/network-details) +- View our [Network Details](/overview/general-info/network-details) ## Additional Resources diff --git a/docs/build-for-karma/deploying-contracts/using-hardhat.md b/docs/build-for-karma/deploying-contracts/using-hardhat.md index 360bfb8..bd578e0 100644 --- a/docs/build-for-karma/deploying-contracts/using-hardhat.md +++ b/docs/build-for-karma/deploying-contracts/using-hardhat.md @@ -169,4 +169,4 @@ npx hardhat run scripts/interact.ts --network statusTestnet If you encounter any issues: - Join our [Telegram Community](https://t.me/statusl2) -- View our [Network Details](/home/general-info/network-details) \ No newline at end of file +- View our [Network Details](/overview/general-info/network-details) \ No newline at end of file diff --git a/docs/build-for-karma/deploying-contracts/using-remix.md b/docs/build-for-karma/deploying-contracts/using-remix.md index 5a55f6b..651bf16 100644 --- a/docs/build-for-karma/deploying-contracts/using-remix.md +++ b/docs/build-for-karma/deploying-contracts/using-remix.md @@ -16,7 +16,7 @@ Before you begin, ensure you have: - **MetaMask**: Install the [MetaMask](https://metamask.io) browser extension - **Testnet ETH**: You'll need Status Network testnet ETH - Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets) -- **Network Configuration**: Add Status Network testnet to MetaMask following our [Add Network guide](/home/general-info/add-status-network) +- **Network Configuration**: Add Status Network testnet to MetaMask following our [Add Network guide](/overview/general-info/add-status-network) ## Steps @@ -97,7 +97,7 @@ Once deployed, you'll see your contract under "Deployed Contracts": If you encounter any issues: - Join our [Telegram Community](https://t.me/statusl2) -- View our [Network Details](/home/general-info/network-details) +- View our [Network Details](/overview/general-info/network-details) ## Additional Resources diff --git a/docs/build-for-karma/deploying-contracts/using-se2.md b/docs/build-for-karma/deploying-contracts/using-se2.md index b601552..406bdb3 100644 --- a/docs/build-for-karma/deploying-contracts/using-se2.md +++ b/docs/build-for-karma/deploying-contracts/using-se2.md @@ -58,4 +58,4 @@ The [Status Network Scaffold-ETH 2 extension](https://github.com/status-im/statu For detailed configuration options, troubleshooting, and advanced usage: - Check the [extension README](https://github.com/status-im/status-network-scaffold-extension) for comprehensive documentation - Join our [Telegram Community](https://t.me/statusl2) and ask for support -- View our [Network Details](/home/general-info/network-details) +- View our [Network Details](/overview/general-info/network-details) diff --git a/docs/build-for-karma/running-an-rpc.md b/docs/build-for-karma/running-an-rpc.md index 761221c..fff6983 100644 --- a/docs/build-for-karma/running-an-rpc.md +++ b/docs/build-for-karma/running-an-rpc.md @@ -210,7 +210,7 @@ To optimize your RPC node performance: If you encounter any issues: - Check the [official README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md) for the latest updates -- Review our [Network Details](/home/general-info/network-details) and docs in general +- Review our [Network Details](/overview/general-info/network-details) and docs in general - Join our [Telegram Community](https://t.me/statusl2) for support ## Additional Resources diff --git a/docs/home/general-info/add-status-network.md b/docs/overview/general-info/add-status-network.md similarity index 100% rename from docs/home/general-info/add-status-network.md rename to docs/overview/general-info/add-status-network.md diff --git a/docs/home/general-info/bridge/bridging-testnet.md b/docs/overview/general-info/bridge/bridging-testnet.md similarity index 100% rename from docs/home/general-info/bridge/bridging-testnet.md rename to docs/overview/general-info/bridge/bridging-testnet.md diff --git a/docs/home/general-info/contract-addresses/pre-deposit.md b/docs/overview/general-info/contract-addresses/pre-deposit.md similarity index 100% rename from docs/home/general-info/contract-addresses/pre-deposit.md rename to docs/overview/general-info/contract-addresses/pre-deposit.md diff --git a/docs/home/general-info/contract-addresses/testnet-contracts.md b/docs/overview/general-info/contract-addresses/testnet-contracts.md similarity index 100% rename from docs/home/general-info/contract-addresses/testnet-contracts.md rename to docs/overview/general-info/contract-addresses/testnet-contracts.md diff --git a/docs/home/general-info/contract-addresses/tokens.md b/docs/overview/general-info/contract-addresses/tokens.md similarity index 100% rename from docs/home/general-info/contract-addresses/tokens.md rename to docs/overview/general-info/contract-addresses/tokens.md diff --git a/docs/home/general-info/gasless-transactions.md b/docs/overview/general-info/gasless-transactions.md similarity index 100% rename from docs/home/general-info/gasless-transactions.md rename to docs/overview/general-info/gasless-transactions.md diff --git a/docs/home/general-info/network-details.md b/docs/overview/general-info/network-details.md similarity index 96% rename from docs/home/general-info/network-details.md rename to docs/overview/general-info/network-details.md index a4a77ad..42288b6 100644 --- a/docs/home/general-info/network-details.md +++ b/docs/overview/general-info/network-details.md @@ -33,4 +33,4 @@ These are the official network details for the Status Network testnet. You can u - Connect dApps to the network - Verify smart contracts -For instructions on adding the network to your wallet, see our [Add Status Network guide](/home/general-info/add-status-network). +For instructions on adding the network to your wallet, see our [Add Status Network guide](/overview/general-info/add-status-network). diff --git a/docs/home/index.md b/docs/overview/index.md similarity index 88% rename from docs/home/index.md rename to docs/overview/index.md index e5cf16e..759a425 100644 --- a/docs/home/index.md +++ b/docs/overview/index.md @@ -41,16 +41,16 @@ Status Network is natively integrated with Status Wallet, Keycard, Waku and Code Wants to skip the explanation part and go straight to building? Here's how to get started: -1. [Add Status Network to Your Wallet](/home/general-info/add-status-network) +1. [Add Status Network to Your Wallet](/overview/general-info/add-status-network) 2. [Get Testnet ETH](/tools/testnet-faucets) -3. [Bridge Assets](/home/general-info/bridge/bridging-testnet) +3. [Bridge Assets](/overview/general-info/bridge/bridging-testnet) 4. [Deploy Your First Contract](/build-for-karma/deploying-contracts/using-remix) ## Support & Resources Connect with our community and access the resources you need: - Join our [Telegram Builder's Community](https://t.me/statusl2) -- View [Network Details](/home/general-info/network-details) -- Browse [Contract Addresses](/home/general-info/contract-addresses/testnet-contracts) +- View [Network Details](/overview/general-info/network-details) +- Browse [Contract Addresses](/overview/general-info/contract-addresses/testnet-contracts) Ready to build something amazing? Start your journey on the free network today! \ No newline at end of file diff --git a/docs/home/introduction/quick-start.md b/docs/overview/introduction/quick-start.md similarity index 92% rename from docs/home/introduction/quick-start.md rename to docs/overview/introduction/quick-start.md index 1072656..e48e46c 100644 --- a/docs/home/introduction/quick-start.md +++ b/docs/overview/introduction/quick-start.md @@ -16,7 +16,7 @@ Before getting started: 1. **Add Status Network Testnet to MetaMask**: - Follow the [Add Status Network guide](/home/general-info/add-status-network) for step-by-step instructions on how to add the Status Network testnet to MetaMask. + Follow the [Add Status Network guide](/overview/general-info/add-status-network) for step-by-step instructions on how to add the Status Network testnet to MetaMask. 2. **Get Test ETH**: @@ -108,8 +108,8 @@ contract SimpleStorage { - **Get Support**: - Join our [Telegram Community](https://t.me/statusl2) for assistance - - Check our [Network Details](/home/general-info/network-details) for more information - - Learn about [bridging tokens](/home/general-info/bridge/bridging-testnet) to Status Network + - Check our [Network Details](/overview/general-info/network-details) for more information + - Learn about [bridging tokens](/overview/general-info/bridge/bridging-testnet) to Status Network ## Summary diff --git a/docs/home/other/official-links.md b/docs/overview/other/official-links.md similarity index 96% rename from docs/home/other/official-links.md rename to docs/overview/other/official-links.md index 13ba7dc..83429f2 100644 --- a/docs/home/other/official-links.md +++ b/docs/overview/other/official-links.md @@ -43,4 +43,4 @@ This page contains all the official links for the Status Network ecosystem. | Telegram Community | [t.me/statusl2](https://t.me/statusl2) | | X/twitter | [x.com/statusL2](https://x.com/statusL2) | -For detailed information about adding the network to your wallet, see our [Add Network guide](/home/general-info/add-status-network). +For detailed information about adding the network to your wallet, see our [Add Network guide](/overview/general-info/add-status-network). diff --git a/docs/home/tokenomics/economic-model.md b/docs/overview/tokenomics/economic-model.md similarity index 100% rename from docs/home/tokenomics/economic-model.md rename to docs/overview/tokenomics/economic-model.md diff --git a/docs/home/tokenomics/karmic-tokenomics.md b/docs/overview/tokenomics/karmic-tokenomics.md similarity index 100% rename from docs/home/tokenomics/karmic-tokenomics.md rename to docs/overview/tokenomics/karmic-tokenomics.md diff --git a/docs/home/tokenomics/pre-deposits.md b/docs/overview/tokenomics/pre-deposits.md similarity index 92% rename from docs/home/tokenomics/pre-deposits.md rename to docs/overview/tokenomics/pre-deposits.md index 95aaeab..370aea2 100644 --- a/docs/home/tokenomics/pre-deposits.md +++ b/docs/overview/tokenomics/pre-deposits.md @@ -34,7 +34,7 @@ Deposited ETH is staked via [Lido](https://lido.fi/) to earn staking yield. A po ### Deployed contracts -See [Pre-Deposit Vault Contracts](/home/general-info/contract-addresses/pre-deposit) for a full list of addresses and networks. +See [Pre-Deposit Vault Contracts](/overview/general-info/contract-addresses/pre-deposit) for a full list of addresses and networks. ## Generic Protocol Vault (GUSD) @@ -78,7 +78,7 @@ For a full overview of the Generic Protocol structure (GUSD tokenomics, bridging Pre-depositors earn: -- **Karma**: non-transferable governance token; grants gasless throughput and voting power (details in [Karmic Tokenomics](/home/tokenomics/karmic-tokenomics)). +- **Karma**: non-transferable governance token; grants gasless throughput and voting power (details in [Karmic Tokenomics](/overview/tokenomics/karmic-tokenomics)). - **Liquid incentives**: 15M SNT and 20M LINEA tokens distributed across vaults. - **Generic protocol points** for stablecoin depositors: Generic Protocol points to be used when Generic Protocol launches on Status Network Mainnet. - **Native app points**: to be confirmed as natives apps unveil their tokenomics. @@ -114,8 +114,8 @@ This documentation is for informational purposes and does not constitute financi ## Further reading -- [Pre-Deposit Vault Contracts](/home/general-info/contract-addresses/pre-deposit) — deployed addresses information -- [Karmic Tokenomics](/home/tokenomics/karmic-tokenomics) — how Karma is earned and used -- [Economic Model](/home/tokenomics/economic-model) — Status Network's sustainable revenue model +- [Pre-Deposit Vault Contracts](/overview/general-info/contract-addresses/pre-deposit) — deployed addresses information +- [Karmic Tokenomics](/overview/tokenomics/karmic-tokenomics) — how Karma is earned and used +- [Economic Model](/overview/tokenomics/economic-model) — Status Network's sustainable revenue model - [Aragon Documentation](https://docs.aragon.org/) - [Generic Protocol Documentation](https://docs.generic.money/) diff --git a/docs/home/tokenomics/public-funding.md b/docs/overview/tokenomics/public-funding.md similarity index 100% rename from docs/home/tokenomics/public-funding.md rename to docs/overview/tokenomics/public-funding.md diff --git a/docs/home/tokenomics/snt-staking.md b/docs/overview/tokenomics/snt-staking.md similarity index 100% rename from docs/home/tokenomics/snt-staking.md rename to docs/overview/tokenomics/snt-staking.md diff --git a/docs/tools/bridge.md b/docs/tools/bridge.md index 1f379e8..294318d 100644 --- a/docs/tools/bridge.md +++ b/docs/tools/bridge.md @@ -36,7 +36,7 @@ For the most up-to-date list of supported tokens and their contract addresses, p ## Using the Bridge -For detailed instructions on how to use the bridge, including step-by-step guides and important security considerations, please refer to our [Bridging Guide](/home/general-info/bridge/bridging-testnet). +For detailed instructions on how to use the bridge, including step-by-step guides and important security considerations, please refer to our [Bridging Guide](/overview/general-info/bridge/bridging-testnet). ## Monitoring Bridge Transactions @@ -47,5 +47,5 @@ You can monitor your bridge transactions using: ## Support If you encounter any issues while using the bridge: -- Check our [Bridging Guide](/home/general-info/bridge/bridging-testnet) for common solutions +- Check our [Bridging Guide](/overview/general-info/bridge/bridging-testnet) for common solutions - Join our [Telegram Community](https://t.me/statusl2) for assistance diff --git a/docs/tools/rpc.md b/docs/tools/rpc.md index caa074b..d1a9bb7 100644 --- a/docs/tools/rpc.md +++ b/docs/tools/rpc.md @@ -19,7 +19,7 @@ https://public.sepolia.rpc.status.network ## Using the RPC ### Adding to MetaMask -For instructions on adding Status Network to your wallet using this RPC, see our [Add Network guide](/home/general-info/add-status-network). +For instructions on adding Status Network to your wallet using this RPC, see our [Add Network guide](/overview/general-info/add-status-network).
diff --git a/docusaurus.config.ts b/docusaurus.config.ts index dcff5b9..13199e3 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -68,9 +68,9 @@ const config: Config = { }, items: [ { - label: 'Home', + label: 'Overview', to: '/', - activeBasePath: 'home', + activeBasePath: 'overview', }, { label: 'Build for Karma', diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index 3918081..6ef7f46 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -200,7 +200,7 @@ forge test 問題が発生した場合: - [Telegramコミュニティ](https://t.me/statusl2)に参加 -- [ネットワーク詳細](/home/general-info/network-details)を参照 +- [ネットワーク詳細](/overview/general-info/network-details)を参照 ## 追加リソース diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index aaf3bb9..6b69233 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -158,4 +158,4 @@ npx hardhat run scripts/interact.ts --network statusTestnet 問題が発生した場合: - [Telegramコミュニティ](https://t.me/statusl2)に参加 -- [ネットワーク詳細](/home/general-info/network-details)を参照 +- [ネットワーク詳細](/overview/general-info/network-details)を参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index a3387d6..cf9715c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -10,7 +10,7 @@ - **MetaMask**: [MetaMask](https://metamask.io)ブラウザ拡張機能をインストール - **テストネットETH**: Status NetworkテストネットのETHが必要です - Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます -- **ネットワーク設定**: [ネットワーク追加ガイド](/home/general-info/add-status-network)に従ってMetaMaskにStatus Networkテストネットを追加 +- **ネットワーク設定**: [ネットワーク追加ガイド](/overview/general-info/add-status-network)に従ってMetaMaskにStatus Networkテストネットを追加 ## 手順 @@ -91,7 +91,7 @@ contract HelloWorld { 問題が発生した場合: - [Telegramコミュニティ](https://t.me/statusl2)に参加 -- [ネットワーク詳細](/home/general-info/network-details)を参照 +- [ネットワーク詳細](/overview/general-info/network-details)を参照 ## 追加リソース diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index e16c345..96de2aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -58,4 +58,4 @@ keywords: [Scaffold-ETH 2, スマートコントラクトデプロイ, Status Ne 詳細な設定オプション、トラブルシューティング、高度な使用方法については: - 包括的なドキュメントについては[拡張機能README](https://github.com/status-im/status-network-scaffold-extension)を確認 - [Telegramコミュニティ](https://t.me/statusl2)に参加してサポートを求める -- [ネットワーク詳細](/home/general-info/network-details)を表示 +- [ネットワーク詳細](/overview/general-info/network-details)を表示 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md index 1b26435..3ca9aba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md @@ -208,7 +208,7 @@ RPCノードのパフォーマンスを最適化するには: 問題が発生した場合: - 最新の更新については[公式README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)を確認 -- [ネットワーク詳細](/home/general-info/network-details)およびドキュメント全般を確認 +- [ネットワーク詳細](/overview/general-info/network-details)およびドキュメント全般を確認 - サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加 ## 追加リソース diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/add-status-network.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/add-status-network.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/pre-deposit.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/pre-deposit.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/network-details.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md similarity index 91% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/network-details.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md index 5d197f1..30eb598 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/home/general-info/network-details.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md @@ -18,4 +18,4 @@ - ネットワークへのdAppsの接続 - スマートコントラクトの検証 -ウォレットへのネットワークの追加方法については、[Status Network追加ガイド](/home/general-info/add-status-network)をご参照ください。 +ウォレットへのネットワークの追加方法については、[Status Network追加ガイド](/overview/general-info/add-status-network)をご参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md similarity index 89% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/index.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md index 123528c..65a1fb2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/home/index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md @@ -41,16 +41,16 @@ Status NetworkはStatus Wallet、Keycard、Waku、Codexなど、[IFT](https://fr 説明部分をスキップして直接開発を始めたいですか?以下が始め方です: -1. [Status NetworkをウォレットへAdd](/home/general-info/add-status-network) +1. [Status NetworkをウォレットへAdd](/overview/general-info/add-status-network) 2. [テストネットETHを入手](/tools/testnet-faucets) -3. [アセットをブリッジ](/home/general-info/bridge/bridging-testnet) +3. [アセットをブリッジ](/overview/general-info/bridge/bridging-testnet) 4. [最初のコントラクトをデプロイ](/build-for-karma/deploying-contracts/using-remix) ## サポート&リソース コミュニティに参加し、必要なリソースにアクセスしましょう: - [Telegramビルダーズコミュニティ](https://t.me/statusl2)に参加 -- [ネットワーク詳細](/home/general-info/network-details)を確認 -- [コントラクトアドレス](/home/general-info/contract-addresses/testnet-contracts)を閲覧 +- [ネットワーク詳細](/overview/general-info/network-details)を確認 +- [コントラクトアドレス](/overview/general-info/contract-addresses/testnet-contracts)を閲覧 素晴らしいものを作る準備はできていますか?今すぐフリーネットワークでの旅を始めましょう! diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md similarity index 93% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md index 664c915..f403ba2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md @@ -10,7 +10,7 @@ 1. **Status NetworkテストネットをMetaMaskに追加**: - MetaMaskにStatus Networkテストネットを追加する方法については、[Status Network追加ガイド](/home/general-info/add-status-network)の手順に従ってください。 + MetaMaskにStatus Networkテストネットを追加する方法については、[Status Network追加ガイド](/overview/general-info/add-status-network)の手順に従ってください。 2. **テストETHを入手**: @@ -102,8 +102,8 @@ contract SimpleStorage { - **サポートを受ける**: - サポートが必要な場合は[Telegramコミュニティ](https://t.me/statusl2)に参加 - - 詳細については[ネットワークの詳細](/home/general-info/network-details)をチェック - - Status Networkへの[トークンのブリッジ](/home/general-info/bridge/bridging-testnet)について学ぶ + - 詳細については[ネットワークの詳細](/overview/general-info/network-details)をチェック + - Status Networkへの[トークンのブリッジ](/overview/general-info/bridge/bridging-testnet)について学ぶ ## まとめ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/other/official-links.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/other/official-links.md similarity index 92% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/other/official-links.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/other/official-links.md index aa4ace2..ea780e8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/home/other/official-links.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/other/official-links.md @@ -22,4 +22,4 @@ - **Telegramコミュニティ**: [t.me/statusl2](https://t.me/statusl2) - **X/twitter**: [x.com/statusL2](https://x.com/statusL2) -ウォレットへのネットワークの追加方法については、[ネットワーク追加ガイド](/home/general-info/add-status-network)をご参照ください。 +ウォレットへのネットワークの追加方法については、[ネットワーク追加ガイド](/overview/general-info/add-status-network)をご参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md similarity index 93% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md index 414172c..5569c05 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md @@ -34,7 +34,7 @@ SNT、LINEA、ETHボールトは、[Aragon](https://aragon.org/)がStatus Networ ### デプロイ済みコントラクト -アドレスとネットワークの完全なリストは、[事前預入ボールトコントラクト](/home/general-info/contract-addresses/pre-deposit)を参照してください。 +アドレスとネットワークの完全なリストは、[事前預入ボールトコントラクト](/overview/general-info/contract-addresses/pre-deposit)を参照してください。 ## Generic Protocol ボールト (GUSD) @@ -78,7 +78,7 @@ Generic Protocolの構造(GUSDトークノミクス、ブリッジングイン 事前預入者は以下を獲得します: -- **Karma**:譲渡不可のガバナンストークン;ガスレススループットと投票権を付与(詳細は[Karmicトークノミクス](/home/tokenomics/karmic-tokenomics)を参照)。 +- **Karma**:譲渡不可のガバナンストークン;ガスレススループットと投票権を付与(詳細は[Karmicトークノミクス](/overview/tokenomics/karmic-tokenomics)を参照)。 - **流動性インセンティブ**:ボールト全体に1,500万SNTと2,000万LINEAトークンを配布。 - **ステーブルコイン預入者向けGeneric Protocolポイント**:Generic ProtocolがStatus Networkメインネットにローンチした際に使用可能なポイント。 - **ネイティブアプリポイント**:ネイティブアプリがトークノミクスを公開次第確定予定。 @@ -114,8 +114,8 @@ Generic Protocolの構造(GUSDトークノミクス、ブリッジングイン ## 関連資料 -- [事前預入ボールトコントラクト](/home/general-info/contract-addresses/pre-deposit) — デプロイ済みアドレス情報 -- [Karmicトークノミクス](/home/tokenomics/karmic-tokenomics) — Karmaの獲得方法と使用方法 -- [経済モデル](/home/tokenomics/economic-model) — Status Networkの持続可能な収益モデル +- [事前預入ボールトコントラクト](/overview/general-info/contract-addresses/pre-deposit) — デプロイ済みアドレス情報 +- [Karmicトークノミクス](/overview/tokenomics/karmic-tokenomics) — Karmaの獲得方法と使用方法 +- [経済モデル](/overview/tokenomics/economic-model) — Status Networkの持続可能な収益モデル - [Aragonドキュメント](https://docs.aragon.org/) - [Generic Protocolドキュメント](https://docs.generic.money/) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/snt-staking.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md rename to i18n/ja/docusaurus-plugin-content-docs/current/overview/tokenomics/snt-staking.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md index 6faa0b6..8b46103 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -30,7 +30,7 @@ Status Networkテストネットブリッジを使用すると、Sepolia(レ ## ブリッジの使用 -ブリッジの使用方法の詳細な手順や重要なセキュリティ上の考慮事項については、[ブリッジングガイド](/home/general-info/bridge/bridging-testnet)をご参照ください。 +ブリッジの使用方法の詳細な手順や重要なセキュリティ上の考慮事項については、[ブリッジングガイド](/overview/general-info/bridge/bridging-testnet)をご参照ください。 ## ブリッジトランザクションの監視 @@ -41,5 +41,5 @@ Status Networkテストネットブリッジを使用すると、Sepolia(レ ## サポート ブリッジ使用中に問題が発生した場合: -- 一般的な解決策については[ブリッジングガイド](/home/general-info/bridge/bridging-testnet)をチェック +- 一般的な解決策については[ブリッジングガイド](/overview/general-info/bridge/bridging-testnet)をチェック - サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md index a39fe25..6b5e4c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md @@ -11,7 +11,7 @@ https://public.sepolia.rpc.status.network ## RPCの使用 ### MetaMaskへの追加 -このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](/home/general-info/add-status-network)をご参照ください。 +このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](/overview/general-info/add-status-network)をご参照ください。 ### Web3ライブラリの設定 @@ -63,7 +63,7 @@ https://public.sepolia.rpc.status.network ## RPCの使用 ### MetaMaskへの追加 -このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](/home/general-info/add-status-network)をご参照ください。 +このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](/overview/general-info/add-status-network)をご参照ください。 ### Web3ライブラリの設定 diff --git a/i18n/ja/docusaurus-theme-classic/navbar.json b/i18n/ja/docusaurus-theme-classic/navbar.json index e23819f..94ba252 100644 --- a/i18n/ja/docusaurus-theme-classic/navbar.json +++ b/i18n/ja/docusaurus-theme-classic/navbar.json @@ -7,9 +7,9 @@ "message": "Status Network ロゴ", "description": "The alt text of navbar logo" }, - "item.label.Home": { - "message": "ホーム", - "description": "Navbar item with label Home" + "item.label.Overview": { + "message": "概要", + "description": "Navbar item with label Overview" }, "item.label.Build for Karma": { "message": "Karma でビルド", diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index 4915a79..eefba4e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -200,7 +200,7 @@ forge test 문제가 발생한 경우: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 -- [네트워크 세부정보](/home/general-info/network-details) 참조 +- [네트워크 세부정보](/overview/general-info/network-details) 참조 ## 추가 리소스 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index ec01e76..0c53c7d 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -158,4 +158,4 @@ npx hardhat run scripts/interact.ts --network statusTestnet 문제가 발생한 경우: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 -- [네트워크 세부정보](/home/general-info/network-details) 참조 +- [네트워크 세부정보](/overview/general-info/network-details) 참조 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index 28cd444..3296c45 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -10,7 +10,7 @@ - **MetaMask**: [MetaMask](https://metamask.io) 브라우저 확장 프로그램 설치 - **테스트넷 ETH**: Status Network 테스트넷 ETH가 필요합니다 - Status Network 테스트넷 ETH는 [파우셋](/tools/testnet-faucets)에서 받을 수 있습니다 -- **네트워크 구성**: [네트워크 추가 가이드](/home/general-info/add-status-network)에 따라 MetaMask에 Status Network 테스트넷 추가 +- **네트워크 구성**: [네트워크 추가 가이드](/overview/general-info/add-status-network)에 따라 MetaMask에 Status Network 테스트넷 추가 ## 단계 @@ -91,7 +91,7 @@ contract HelloWorld { 문제가 발생한 경우: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 -- [네트워크 세부정보](/home/general-info/network-details) 참조 +- [네트워크 세부정보](/overview/general-info/network-details) 참조 ## 추가 리소스 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index 43c93d3..af64e7e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -58,4 +58,4 @@ keywords: [Scaffold-ETH 2, 스마트 컨트랙트 배포, Status Network 개발, 자세한 구성 옵션, 문제 해결 및 사용법에 대해서는: - 포괄적인 문서는 [확장 README](https://github.com/status-im/status-network-scaffold-extension)를 확인하세요 - [Telegram 커뮤니티](https://t.me/statusl2)에 참여하여 지원을 요청하세요 -- [네트워크 세부사항](/home/general-info/network-details)을 확인하세요 +- [네트워크 세부사항](/overview/general-info/network-details)을 확인하세요 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md index df40624..7a06583 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md @@ -210,7 +210,7 @@ RPC 노드 성능을 최적화하려면: 문제가 발생하면: - 최신 업데이트는 [공식 README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md) 확인 -- [네트워크 세부정보](/home/general-info/network-details) 및 전반적인 문서 검토 +- [네트워크 세부정보](/overview/general-info/network-details) 및 전반적인 문서 검토 - [Telegram 커뮤니티](https://t.me/statusl2) 에서 지원 요청 ## 추가 리소스 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/add-status-network.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/add-status-network.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/pre-deposit.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/pre-deposit.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/network-details.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md similarity index 92% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/network-details.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md index 3dd1b9c..948c799 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/home/general-info/network-details.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md @@ -18,4 +18,4 @@ - 네트워크에 dApp 연결 - 스마트 컨트랙트 검증 -지갑에 네트워크를 추가하는 방법은 [Status Network 추가 가이드](/home/general-info/add-status-network)를 참조하세요. +지갑에 네트워크를 추가하는 방법은 [Status Network 추가 가이드](/overview/general-info/add-status-network)를 참조하세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md similarity index 89% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/index.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md index 75c8564..20f77bc 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/home/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md @@ -41,16 +41,16 @@ Status Network는 Status Wallet, Keycard, Waku, Codex 등 [IFT](https://free.tec 설명 부분을 건너뛰고 바로 구축을 시작하고 싶으신가요? 시작하는 방법은 다음과 같습니다: -1. [Status Network를 지갑에 추가](/home/general-info/add-status-network) +1. [Status Network를 지갑에 추가](/overview/general-info/add-status-network) 2. [테스트넷 ETH 받기](/tools/testnet-faucets) -3. [자산 브리징하기](/home/general-info/bridge/bridging-testnet) +3. [자산 브리징하기](/overview/general-info/bridge/bridging-testnet) 4. [첫 번째 컨트랙트 배포하기](/build-for-karma/deploying-contracts/using-remix) ## 지원 및 리소스 커뮤니티에 참여하고 필요한 리소스에 접근하세요: - [텔레그램 빌더 커뮤니티](https://t.me/statusl2)에 참여 -- [네트워크 세부정보](/home/general-info/network-details) 확인 -- [컨트랙트 주소](/home/general-info/contract-addresses/testnet-contracts) 탐색 +- [네트워크 세부정보](/overview/general-info/network-details) 확인 +- [컨트랙트 주소](/overview/general-info/contract-addresses/testnet-contracts) 탐색 멋진 것을 만들 준비가 되셨나요? 지금 바로 무료 네트워크에서 여정을 시작하세요! diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md similarity index 92% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md index b899cef..0134bd6 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md @@ -10,7 +10,7 @@ 1. **Status Network 테스트넷을 MetaMask에 추가**: - [Status Network 추가 가이드](/home/general-info/add-status-network)의 단계별 지침에 따라 Status Network 테스트넷을 MetaMask에 추가하세요. + [Status Network 추가 가이드](/overview/general-info/add-status-network)의 단계별 지침에 따라 Status Network 테스트넷을 MetaMask에 추가하세요. 2. **테스트 ETH 받기**: @@ -102,8 +102,8 @@ contract SimpleStorage { - **지원 받기**: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여하여 도움을 받으세요 - - [네트워크 세부정보](/home/general-info/network-details)에서 자세한 정보를 확인하세요 - - Status Network로의 [토큰 브리징](/home/general-info/bridge/bridging-testnet)에 대해 알아보세요 + - [네트워크 세부정보](/overview/general-info/network-details)에서 자세한 정보를 확인하세요 + - Status Network로의 [토큰 브리징](/overview/general-info/bridge/bridging-testnet)에 대해 알아보세요 ## 요약 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/other/official-links.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/other/official-links.md similarity index 93% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/other/official-links.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/other/official-links.md index 10ea15f..eb4fc8f 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/home/other/official-links.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/other/official-links.md @@ -22,4 +22,4 @@ - **텔레그램 커뮤니티**: [t.me/statusl2](https://t.me/statusl2) - **X/트위터**: [x.com/statusL2](https://x.com/statusL2) -지갑에 네트워크를 추가하는 방법에 대해서는 [네트워크 추가 가이드](/home/general-info/add-status-network)를 참조하세요. +지갑에 네트워크를 추가하는 방법에 대해서는 [네트워크 추가 가이드](/overview/general-info/add-status-network)를 참조하세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md similarity index 94% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md index 26011f2..5356bad 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md @@ -34,7 +34,7 @@ SNT, LINEA, ETH 금고는 [Aragon](https://aragon.org/)이 Status Network를 위 ### 배포된 컨트랙트 -주소 및 네트워크 목록 상세는 [사전예치 금고 컨트랙트](/home/general-info/contract-addresses/pre-deposit)를 참조하세요. +주소 및 네트워크 목록 상세는 [사전예치 금고 컨트랙트](/overview/general-info/contract-addresses/pre-deposit)를 참조하세요. ## Generic Protocol 금고 (GUSD) @@ -78,7 +78,7 @@ Generic Protocol 구조(GUSD 토크노믹스, 브릿징 인프라 등)에 대한 사전 예치자는 다음의 보상을 받게 됩니다: -- **Karma**: 양도 불가능한 거버넌스 토큰; 가스리스 처리량과 투표권 부여 (자세한 내용은 [카르마 토크노믹스](/home/tokenomics/karmic-tokenomics) 참조). +- **Karma**: 양도 불가능한 거버넌스 토큰; 가스리스 처리량과 투표권 부여 (자세한 내용은 [카르마 토크노믹스](/overview/tokenomics/karmic-tokenomics) 참조). - **유동성 인센티브**: 모든 금고에 걸쳐 1,500만 SNT와 2,000만 LINEA 토큰 배포. - 스테이블코인 예치자를 위한 **Generic Protocol 포인트**: Generic Protocol이 Status Network 메인넷에 출시될 때 사용할 수 있는 포인트. - **네이티브 앱 포인트**: 네이티브 앱들이 토크노믹스를 공개하면 확정 예정. @@ -114,8 +114,8 @@ Generic Protocol 구조(GUSD 토크노믹스, 브릿징 인프라 등)에 대한 ## 추가 정보 -- [사전예치 금고 컨트랙트](/home/general-info/contract-addresses/pre-deposit) — 배포된 주소 정보 -- [카르마 토크노믹스](/home/tokenomics/karmic-tokenomics) — Karma 획득 및 사용 방법 -- [경제 모델](/home/tokenomics/economic-model) — Status Network의 지속 가능한 수익 모델 +- [사전예치 금고 컨트랙트](/overview/general-info/contract-addresses/pre-deposit) — 배포된 주소 정보 +- [카르마 토크노믹스](/overview/tokenomics/karmic-tokenomics) — Karma 획득 및 사용 방법 +- [경제 모델](/overview/tokenomics/economic-model) — Status Network의 지속 가능한 수익 모델 - [Aragon 문서](https://docs.aragon.org/) - [Generic Protocol 문서](https://docs.generic.money/) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/snt-staking.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md rename to i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/snt-staking.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md index 5f8b232..c32aa14 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -30,7 +30,7 @@ Status Network 테스트넷 브리지를 사용하면 Sepolia (레이어 1)와 S ## 브리지 사용하기 -단계별 가이드와 중요한 보안 고려사항을 포함한 브리지 사용 방법에 대한 자세한 내용은 [브리징 가이드](/home/general-info/bridge/bridging-testnet)를 참조하세요. +단계별 가이드와 중요한 보안 고려사항을 포함한 브리지 사용 방법에 대한 자세한 내용은 [브리징 가이드](/overview/general-info/bridge/bridging-testnet)를 참조하세요. ## 브리지 트랜잭션 모니터링 @@ -41,5 +41,5 @@ Status Network 테스트넷 브리지를 사용하면 Sepolia (레이어 1)와 S ## 지원 브리지 사용 중 문제가 발생한 경우: -- 일반적인 해결책은 [브리징 가이드](/home/general-info/bridge/bridging-testnet) 확인 +- 일반적인 해결책은 [브리징 가이드](/overview/general-info/bridge/bridging-testnet) 확인 - 도움이 필요하면 [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md index d23de68..a56bf80 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md @@ -11,7 +11,7 @@ https://public.sepolia.rpc.status.network ## RPC 사용하기 ### MetaMask에 추가하기 -이 RPC를 사용하여 Status Network를 지갑에 추가하는 방법은 [네트워크 추가 가이드](/home/general-info/add-status-network)를 참조하세요. +이 RPC를 사용하여 Status Network를 지갑에 추가하는 방법은 [네트워크 추가 가이드](/overview/general-info/add-status-network)를 참조하세요. ### Web3 라이브러리 설정 diff --git a/i18n/ko/docusaurus-theme-classic/navbar.json b/i18n/ko/docusaurus-theme-classic/navbar.json index ceac93b..70e0132 100644 --- a/i18n/ko/docusaurus-theme-classic/navbar.json +++ b/i18n/ko/docusaurus-theme-classic/navbar.json @@ -7,9 +7,9 @@ "message": "Status Network 로고", "description": "The alt text of navbar logo" }, - "item.label.Home": { - "message": "홈", - "description": "Navbar item with label Home" + "item.label.Overview": { + "message": "개요", + "description": "Navbar item with label Overview" }, "item.label.Build for Karma": { "message": "카르마를 위해 개발하기", diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index 4177075..9233fe8 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -200,7 +200,7 @@ forge test 如果遇到问题: - 加入我们的 [Telegram 社区](https://t.me/statusl2) -- 查看[网络详情](/home/general-info/network-details) +- 查看[网络详情](/overview/general-info/network-details) ## 其他资源 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index 5f47f73..78da808 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -158,4 +158,4 @@ npx hardhat run scripts/interact.ts --network statusTestnet 如果遇到问题: - 加入我们的 [Telegram 社区](https://t.me/statusl2) -- 查看[网络详情](/home/general-info/network-details) +- 查看[网络详情](/overview/general-info/network-details) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index 7cc513e..ba68368 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -10,7 +10,7 @@ - **MetaMask**: 安装 [MetaMask](https://metamask.io) 浏览器扩展 - **测试网 ETH**: 您需要 Status Network 测试网 ETH - 从我们的[水龙头](/tools/testnet-faucets)获取 Status Network 测试网 ETH -- **网络配置**: 按照我们的[添加网络指南](/home/general-info/add-status-network)将 Status Network 测试网添加到 MetaMask +- **网络配置**: 按照我们的[添加网络指南](/overview/general-info/add-status-network)将 Status Network 测试网添加到 MetaMask ## 步骤 @@ -91,7 +91,7 @@ contract HelloWorld { 如果遇到问题: - 加入我们的 [Telegram 社区](https://t.me/statusl2) -- 查看[网络详情](/home/general-info/network-details) +- 查看[网络详情](/overview/general-info/network-details) ## 其他资源 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index 952c50c..940e677 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -58,4 +58,4 @@ keywords: [Scaffold-ETH 2, 智能合约部署, Status Network开发, Foundry, Ha 有关详细配置选项、故障排除和高级用法: - 查看[扩展README](https://github.com/status-im/status-network-scaffold-extension)获取全面文档 - 加入我们的[Telegram社区](https://t.me/statusl2)寻求支持 -- 查看我们的[网络详情](/home/general-info/network-details) +- 查看我们的[网络详情](/overview/general-info/network-details) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md index a33614c..11086f0 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md @@ -209,7 +209,7 @@ netstat -tulpn | grep :8445 如果遇到任何问题: - 查看[官方README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)获取最新更新 -- 查看我们的[网络详情](/home/general-info/network-details)和文档 +- 查看我们的[网络详情](/overview/general-info/network-details)和文档 - 加入我们的[Telegram社区](https://t.me/statusl2)寻求支持 ## 其他资源 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/add-status-network.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/add-status-network.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/add-status-network.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/bridge/bridging-testnet.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/pre-deposit.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/pre-deposit.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/pre-deposit.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/testnet-contracts.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/contract-addresses/tokens.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/gasless-transactions.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/network-details.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md similarity index 92% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/network-details.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md index 9bdd724..8ba4c10 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/home/general-info/network-details.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md @@ -18,4 +18,4 @@ - 将 dApp 连接到网络 - 验证智能合约 -关于如何将网络添加到您的钱包,请参阅我们的 [Status Network 添加指南](/home/general-info/add-status-network)。 +关于如何将网络添加到您的钱包,请参阅我们的 [Status Network 添加指南](/overview/general-info/add-status-network)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md similarity index 87% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/index.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md index 30ac35f..4019266 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/home/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md @@ -41,16 +41,16 @@ Status Network 原生集成了 Status Wallet、Keycard、Waku 和 Codex,这些 想跳过解释部分直接开始构建吗?以下是开始的方法: -1. [将 Status Network 添加到您的钱包](/home/general-info/add-status-network) +1. [将 Status Network 添加到您的钱包](/overview/general-info/add-status-network) 2. [获取测试网 ETH](/tools/testnet-faucets) -3. [跨链资产](/home/general-info/bridge/bridging-testnet) +3. [跨链资产](/overview/general-info/bridge/bridging-testnet) 4. [部署您的第一个合约](/build-for-karma/deploying-contracts/using-remix) ## 支持与资源 加入我们的社区并访问所需资源: - 加入我们的 [Telegram 开发者社区](https://t.me/statusl2) -- 查看[网络详情](/home/general-info/network-details) -- 浏览[合约地址](/home/general-info/contract-addresses/testnet-contracts) +- 查看[网络详情](/overview/general-info/network-details) +- 浏览[合约地址](/overview/general-info/contract-addresses/testnet-contracts) 准备好构建令人惊叹的应用了吗?今天就开始您在免费网络上的旅程! diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md similarity index 91% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md index fbf369a..6e9beeb 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/home/introduction/quick-start.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md @@ -10,7 +10,7 @@ 1. **将 Status Network 测试网添加到 MetaMask**: - 按照 [Status Network 添加指南](/home/general-info/add-status-network) 的步骤说明将 Status Network 测试网添加到 MetaMask。 + 按照 [Status Network 添加指南](/overview/general-info/add-status-network) 的步骤说明将 Status Network 测试网添加到 MetaMask。 2. **获取测试 ETH**: @@ -102,8 +102,8 @@ contract SimpleStorage { - **获取支持**: - 加入我们的 [Telegram 社区](https://t.me/statusl2) 获取帮助 - - 查看我们的 [网络详情](/home/general-info/network-details) 了解更多信息 - - 了解如何 [跨链代币](/home/general-info/bridge/bridging-testnet) 到 Status Network + - 查看我们的 [网络详情](/overview/general-info/network-details) 了解更多信息 + - 了解如何 [跨链代币](/overview/general-info/bridge/bridging-testnet) 到 Status Network ## 总结 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/other/official-links.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/other/official-links.md similarity index 94% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/other/official-links.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/other/official-links.md index b43854e..b793395 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/home/other/official-links.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/other/official-links.md @@ -22,4 +22,4 @@ - **Telegram 社区**: [t.me/statusl2](https://t.me/statusl2) - **X/推特**: [x.com/statusL2](https://x.com/statusL2) -关于如何将网络添加到您的钱包,请参阅我们的[添加网络指南](/home/general-info/add-status-network)。 +关于如何将网络添加到您的钱包,请参阅我们的[添加网络指南](/overview/general-info/add-status-network)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/economic-model.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/karmic-tokenomics.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md similarity index 93% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md index 5145904..2f04748 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/pre-deposits.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/pre-deposits.md @@ -34,7 +34,7 @@ SNT、LINEA 和 ETH 金库是 [Aragon](https://aragon.org/) 专门为 Status Net ### 已部署合约 -完整的地址和网络列表请参阅[预存款金库合约](/home/general-info/contract-addresses/pre-deposit)。 +完整的地址和网络列表请参阅[预存款金库合约](/overview/general-info/contract-addresses/pre-deposit)。 ## Generic Protocol 金库 (GUSD) @@ -78,7 +78,7 @@ Status Network 预存款通过 DepositorHelper 与 Generic Protocol 交互: 预存款者可获得: -- **Karma**:不可转让的治理代币;授予免 Gas 吞吐量和投票权(详见 [Karmic 代币经济学](/home/tokenomics/karmic-tokenomics))。 +- **Karma**:不可转让的治理代币;授予免 Gas 吞吐量和投票权(详见 [Karmic 代币经济学](/overview/tokenomics/karmic-tokenomics))。 - **流动性激励**:在所有金库中分配 1500 万 SNT 和 2000 万 LINEA 代币。 - **稳定币存款者的 Generic Protocol 积分**:Generic Protocol 在 Status Network 主网启动时可使用的积分。 - **原生应用积分**:待原生应用公布其代币经济学后确认。 @@ -114,8 +114,8 @@ Status Network 预存款通过 DepositorHelper 与 Generic Protocol 交互: ## 延伸阅读 -- [预存款金库合约](/home/general-info/contract-addresses/pre-deposit) — 已部署地址信息 -- [Karmic 代币经济学](/home/tokenomics/karmic-tokenomics) — Karma 的获取和使用方式 -- [经济模型](/home/tokenomics/economic-model) — Status Network 的可持续收入模型 +- [预存款金库合约](/overview/general-info/contract-addresses/pre-deposit) — 已部署地址信息 +- [Karmic 代币经济学](/overview/tokenomics/karmic-tokenomics) — Karma 的获取和使用方式 +- [经济模型](/overview/tokenomics/economic-model) — Status Network 的可持续收入模型 - [Aragon 文档](https://docs.aragon.org/) - [Generic Protocol 文档](https://docs.generic.money/) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/public-funding.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/snt-staking.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/home/tokenomics/snt-staking.md rename to i18n/zh/docusaurus-plugin-content-docs/current/overview/tokenomics/snt-staking.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md index c07deac..8397b38 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -30,7 +30,7 @@ Status Network 测试网跨链桥允许用户在 Sepolia(第一层)和 Statu ## 使用跨链桥 -关于如何使用跨链桥的详细说明,包括分步指南和重要的安全考虑事项,请参考我们的[跨链指南](/home/general-info/bridge/bridging-testnet)。 +关于如何使用跨链桥的详细说明,包括分步指南和重要的安全考虑事项,请参考我们的[跨链指南](/overview/general-info/bridge/bridging-testnet)。 ## 监控跨链交易 @@ -41,5 +41,5 @@ Status Network 测试网跨链桥允许用户在 Sepolia(第一层)和 Statu ## 支持 如果您在使用跨链桥时遇到任何问题: -- 查看[跨链指南](/home/general-info/bridge/bridging-testnet)了解常见解决方案 +- 查看[跨链指南](/overview/general-info/bridge/bridging-testnet)了解常见解决方案 - 加入我们的 [Telegram 社区](https://t.me/statusl2)获取帮助 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md index 7ef842c..4bef2d5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md @@ -11,7 +11,7 @@ https://public.sepolia.rpc.status.network ## 使用 RPC ### 添加到 MetaMask -有关使用此 RPC 将 Status Network 添加到您钱包的说明,请参阅我们的[添加网络指南](/home/general-info/add-status-network)。 +有关使用此 RPC 将 Status Network 添加到您钱包的说明,请参阅我们的[添加网络指南](/overview/general-info/add-status-network)。 ### Web3 库配置 diff --git a/i18n/zh/docusaurus-theme-classic/navbar.json b/i18n/zh/docusaurus-theme-classic/navbar.json index 9a00fdd..4c9e615 100644 --- a/i18n/zh/docusaurus-theme-classic/navbar.json +++ b/i18n/zh/docusaurus-theme-classic/navbar.json @@ -7,9 +7,9 @@ "message": "Status Network 标志", "description": "The alt text of navbar logo" }, - "item.label.Home": { - "message": "首页", - "description": "Navbar item with label Home" + "item.label.Overview": { + "message": "概览", + "description": "Navbar item with label Overview" }, "item.label.Build for Karma": { "message": "为 Karma 构建", diff --git a/sidebars.ts b/sidebars.ts index 1fb1789..5c50210 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -9,12 +9,12 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'home/index', + id: 'overview/index', label: '🌴 Home', }, { type: 'doc', - id: 'home/introduction/quick-start', + id: 'overview/introduction/quick-start', label: '⚡ Quick Start', }, ], @@ -26,27 +26,27 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'home/tokenomics/economic-model', + id: 'overview/tokenomics/economic-model', label: '🤝 Economic Model', }, { type: 'doc', - id: 'home/tokenomics/public-funding', + id: 'overview/tokenomics/public-funding', label: '💰 Public Funding', }, { type: 'doc', - id: 'home/tokenomics/karmic-tokenomics', + id: 'overview/tokenomics/karmic-tokenomics', label: '🐉 Karmic Tokenomics', }, { type: 'doc', - id: 'home/tokenomics/snt-staking', + id: 'overview/tokenomics/snt-staking', label: '💎 SNT Staking', }, { type: 'doc', - id: 'home/tokenomics/pre-deposits', + id: 'overview/tokenomics/pre-deposits', label: '💰 Pre-Deposits', }, ], @@ -58,17 +58,17 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'home/general-info/network-details', + id: 'overview/general-info/network-details', label: '🌐 Network Details', }, { type: 'doc', - id: 'home/general-info/gasless-transactions', + id: 'overview/general-info/gasless-transactions', label: '⛽ Gasless Transactions', }, { type: 'doc', - id: 'home/general-info/add-status-network', + id: 'overview/general-info/add-status-network', label: '➕ Add Status Network', }, { @@ -78,17 +78,17 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'home/general-info/contract-addresses/tokens', + id: 'overview/general-info/contract-addresses/tokens', label: '🪙 Tokens', }, { type: 'doc', - id: 'home/general-info/contract-addresses/testnet-contracts', + id: 'overview/general-info/contract-addresses/testnet-contracts', label: '🧪 Testnet Contracts', }, { type: 'doc', - id: 'home/general-info/contract-addresses/pre-deposit', + id: 'overview/general-info/contract-addresses/pre-deposit', label: '💰 Pre-Deposit Vault Contracts', }, ], @@ -100,7 +100,7 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'home/general-info/bridge/bridging-testnet', + id: 'overview/general-info/bridge/bridging-testnet', label: '🧪 Bridging Testnet', }, ], @@ -114,7 +114,7 @@ const sidebars: SidebarsConfig = { items: [ { type: 'doc', - id: 'home/other/official-links', + id: 'overview/other/official-links', label: '🔗 Official Links', }, ], From 471ff50730780eb61af07787b03ea91e34947c98 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Tue, 3 Feb 2026 16:29:25 +0100 Subject: [PATCH 04/36] Add client redirects for updated tutorial and overview paths - Implemented redirects for old tutorial paths to the new 'Build for Karma' structure. - Added redirects for rest of the general information pages to the new overview paths. - Updated Docusaurus dependencies to version 3.9.0. Signed-off-by: yjkellyjoo --- docusaurus.config.ts | 87 +- package.json | 13 +- yarn.lock | 2437 +++++++++++++++++++++++++++--------------- 3 files changed, 1640 insertions(+), 897 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 13199e3..92658d7 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -205,7 +205,92 @@ const config: Config = { scriptSrc: 'https://umami.bi.status.im/script.js', dataDomains: 'docs.status.network', }, - ] + ], + [ + '@docusaurus/plugin-client-redirects', + { + redirects: [ + // Old tutorials paths to build-for-karma + { + from: '/tutorials/deploying-contracts/using-se2', + to: '/build-for-karma/deploying-contracts/using-se2', + }, + { + from: '/tutorials/deploying-contracts/using-remix', + to: '/build-for-karma/deploying-contracts/using-remix', + }, + { + from: '/tutorials/deploying-contracts/using-hardhat', + to: '/build-for-karma/deploying-contracts/using-hardhat', + }, + { + from: '/tutorials/deploying-contracts/using-foundry', + to: '/build-for-karma/deploying-contracts/using-foundry', + }, + { + from: '/tutorials/running-an-rpc', + to: '/build-for-karma/running-an-rpc', + }, + // Old root-level paths to overview + { + from: '/introduction/quick-start', + to: '/overview/introduction/quick-start', + }, + { + from: '/general-info/add-status-network', + to: '/overview/general-info/add-status-network', + }, + { + from: '/general-info/network-details', + to: '/overview/general-info/network-details', + }, + { + from: '/general-info/gasless-transactions', + to: '/overview/general-info/gasless-transactions', + }, + { + from: '/general-info/bridge/bridging-testnet', + to: '/overview/general-info/bridge/bridging-testnet', + }, + { + from: '/general-info/contract-addresses/tokens', + to: '/overview/general-info/contract-addresses/tokens', + }, + { + from: '/general-info/contract-addresses/testnet-contracts', + to: '/overview/general-info/contract-addresses/testnet-contracts', + }, + { + from: '/general-info/contract-addresses/pre-deposit', + to: '/overview/general-info/contract-addresses/pre-deposit', + }, + { + from: '/tokenomics/economic-model', + to: '/overview/tokenomics/economic-model', + }, + { + from: '/tokenomics/public-funding', + to: '/overview/tokenomics/public-funding', + }, + { + from: '/tokenomics/karmic-tokenomics', + to: '/overview/tokenomics/karmic-tokenomics', + }, + { + from: '/tokenomics/snt-staking', + to: '/overview/tokenomics/snt-staking', + }, + { + from: '/tokenomics/pre-deposits', + to: '/overview/tokenomics/pre-deposits', + }, + { + from: '/other/official-links', + to: '/overview/other/official-links', + }, + ], + }, + ], ] } satisfies Config; diff --git a/package.json b/package.json index 396e711..a1bbd13 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,10 @@ }, "dependencies": { "@acid-info/docusaurus-umami": "^1.0.2", - "@docusaurus/core": "^3.8.0", - "@docusaurus/preset-classic": "^3.8.0", - "@docusaurus/theme-mermaid": "^3.8.0", + "@docusaurus/core": "^3.9.0", + "@docusaurus/plugin-client-redirects": "^3.9.0", + "@docusaurus/preset-classic": "^3.9.0", + "@docusaurus/theme-mermaid": "^3.9.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "prism-react-renderer": "^2.3.0", @@ -26,9 +27,9 @@ "react-dom": "^18.0.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.8.0", - "@docusaurus/tsconfig": "^3.8.0", - "@docusaurus/types": "^3.8.0", + "@docusaurus/module-type-aliases": "^3.9.0", + "@docusaurus/tsconfig": "^3.9.0", + "@docusaurus/types": "^3.9.0", "typescript": "~5.5.2" }, "browserslist": { diff --git a/yarn.lock b/yarn.lock index 415883d..56809e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,153 +7,136 @@ resolved "https://registry.yarnpkg.com/@acid-info/docusaurus-umami/-/docusaurus-umami-1.0.2.tgz#0bbfce9e159e351d19ae19292303add35a7ee1b9" integrity sha512-irSTnx1drVlcerzU5xsDpJPuzKDRowIJGqPFeZP1edTqiu6R5RIWN09AqG3XxuRfsj6UY7/orR0Ug6ntML7Liw== -"@algolia/autocomplete-core@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz#83374c47dc72482aa45d6b953e89377047f0dcdc" - integrity sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ== +"@algolia/abtesting@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.13.0.tgz#88bbf09c5846fbe9a213461ea8bfdcf756c060dd" + integrity sha512-Zrqam12iorp3FjiKMXSTpedGYznZ3hTEOAr2oCxI8tbF8bS1kQHClyDYNq/eV0ewMNLyFkgZVWjaS+8spsOYiQ== dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.17.9" - "@algolia/autocomplete-shared" "1.17.9" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/autocomplete-plugin-algolia-insights@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz#74c86024d09d09e8bfa3dd90b844b77d9f9947b6" - integrity sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ== +"@algolia/client-abtesting@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.47.0.tgz#0d64f45844dcf18cebe9d1dae183052ec3d3f6cb" + integrity sha512-aOpsdlgS9xTEvz47+nXmw8m0NtUiQbvGWNuSEb7fA46iPL5FxOmOUZkh8PREBJpZ0/H8fclSc7BMJCVr+Dn72w== dependencies: - "@algolia/autocomplete-shared" "1.17.9" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/autocomplete-preset-algolia@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz#911f3250544eb8ea4096fcfb268f156b085321b5" - integrity sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ== +"@algolia/client-analytics@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.47.0.tgz#239ce66964a766316ec2e3a6a1773dfa89f13203" + integrity sha512-EcF4w7IvIk1sowrO7Pdy4Ako7x/S8+nuCgdk6En+u5jsaNQM4rTT09zjBPA+WQphXkA2mLrsMwge96rf6i7Mow== dependencies: - "@algolia/autocomplete-shared" "1.17.9" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/autocomplete-shared@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz#5f38868f7cb1d54b014b17a10fc4f7e79d427fa8" - integrity sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ== +"@algolia/client-common@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.47.0.tgz#de05deb8c058e9f125eea51de317ab1406247642" + integrity sha512-Wzg5Me2FqgRDj0lFuPWFK05UOWccSMsIBL2YqmTmaOzxVlLZ+oUqvKbsUSOE5ud8Fo1JU7JyiLmEXBtgDKzTwg== -"@algolia/client-abtesting@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.25.0.tgz#012204f1614e1a71366fb1e117c8f195186ff081" - integrity sha512-1pfQulNUYNf1Tk/svbfjfkLBS36zsuph6m+B6gDkPEivFmso/XnRgwDvjAx80WNtiHnmeNjIXdF7Gos8+OLHqQ== +"@algolia/client-insights@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.47.0.tgz#9adbc82f6bfa896266559843fc74eddaaf9bff15" + integrity sha512-Ci+cn/FDIsDxSKMRBEiyKrqybblbk8xugo6ujDN1GSTv9RIZxwxqZYuHfdLnLEwLlX7GB8pqVyqrUSlRnR+sJA== dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/client-analytics@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.25.0.tgz#eba015bfafb3dbb82712c9160a00717a5974ff71" - integrity sha512-AFbG6VDJX/o2vDd9hqncj1B6B4Tulk61mY0pzTtzKClyTDlNP0xaUiEKhl6E7KO9I/x0FJF5tDCm0Hn6v5x18A== +"@algolia/client-personalization@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.47.0.tgz#f45bca61625458a2c26d0f241bbc249f47aa0fe1" + integrity sha512-gsLnHPZmWcX0T3IigkDL2imCNtsQ7dR5xfnwiFsb+uTHCuYQt+IwSNjsd8tok6HLGLzZrliSaXtB5mfGBtYZvQ== dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/client-common@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.25.0.tgz#2def8947efe849266057d92f67d1b8d83de0c005" - integrity sha512-il1zS/+Rc6la6RaCdSZ2YbJnkQC6W1wiBO8+SH+DE6CPMWBU6iDVzH0sCKSAtMWl9WBxoN6MhNjGBnCv9Yy2bA== - -"@algolia/client-insights@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.25.0.tgz#b87df8614b96c4cc9c9aa7765cce07fa70864fa8" - integrity sha512-blbjrUH1siZNfyCGeq0iLQu00w3a4fBXm0WRIM0V8alcAPo7rWjLbMJMrfBtzL9X5ic6wgxVpDADXduGtdrnkw== +"@algolia/client-query-suggestions@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.47.0.tgz#20af440297524956aff483dccef7222c57366f04" + integrity sha512-PDOw0s8WSlR2fWFjPQldEpmm/gAoUgLigvC3k/jCSi/DzigdGX6RdC0Gh1RR1P8Cbk5KOWYDuL3TNzdYwkfDyA== dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/client-personalization@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.25.0.tgz#74b041f0e7d91e1009c131c8d716c34e4d45c30f" - integrity sha512-aywoEuu1NxChBcHZ1pWaat0Plw7A8jDMwjgRJ00Mcl7wGlwuPt5dJ/LTNcg3McsEUbs2MBNmw0ignXBw9Tbgow== +"@algolia/client-search@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.47.0.tgz#b74b948adbd2908cb70a73a17e8a23d7e5ae439c" + integrity sha512-b5hlU69CuhnS2Rqgsz7uSW0t4VqrLMLTPbUpEl0QVz56rsSwr1Sugyogrjb493sWDA+XU1FU5m9eB8uH7MoI0g== dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" - -"@algolia/client-query-suggestions@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.25.0.tgz#e92d935d9e2994f790d43c64d3518d81070a3888" - integrity sha512-a/W2z6XWKjKjIW1QQQV8PTTj1TXtaKx79uR3NGBdBdGvVdt24KzGAaN7sCr5oP8DW4D3cJt44wp2OY/fZcPAVA== - dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" - -"@algolia/client-search@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.25.0.tgz#dc38ca1015f2f4c9f5053a4517f96fb28a2117f8" - integrity sha512-9rUYcMIBOrCtYiLX49djyzxqdK9Dya/6Z/8sebPn94BekT+KLOpaZCuc6s0Fpfq7nx5J6YY5LIVFQrtioK9u0g== - dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" "@algolia/events@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== -"@algolia/ingestion@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.25.0.tgz#4d13c56dda0a05c7bacb0e3ef5866292dfd86ed5" - integrity sha512-jJeH/Hk+k17Vkokf02lkfYE4A+EJX+UgnMhTLR/Mb+d1ya5WhE+po8p5a/Nxb6lo9OLCRl6w3Hmk1TX1e9gVbQ== +"@algolia/ingestion@1.47.0": + version "1.47.0" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.47.0.tgz#47ffeba5120a4b186a81a2adb1ffda2902c6f3f1" + integrity sha512-WvwwXp5+LqIGISK3zHRApLT1xkuEk320/EGeD7uYy+K8WwDd5OjXnhjuXRhYr1685KnkvWkq1rQ/ihCJjOfHpQ== dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/monitoring@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.25.0.tgz#d59360cfe556338519d05a9d8107147e9dbcb020" - integrity sha512-Ls3i1AehJ0C6xaHe7kK9vPmzImOn5zBg7Kzj8tRYIcmCWVyuuFwCIsbuIIz/qzUf1FPSWmw0TZrGeTumk2fqXg== +"@algolia/monitoring@1.47.0": + version "1.47.0" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.47.0.tgz#3ea90f176495a1130887b0780d91ff91fd42b9f9" + integrity sha512-j2EUFKAlzM0TE4GRfkDE3IDfkVeJdcbBANWzK16Tb3RHz87WuDfQ9oeEW6XiRE1/bEkq2xf4MvZesvSeQrZRDA== dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/recommend@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.25.0.tgz#b96f12c85aa74a0326982c7801fcd4a610b420f4" - integrity sha512-79sMdHpiRLXVxSjgw7Pt4R1aNUHxFLHiaTDnN2MQjHwJ1+o3wSseb55T9VXU4kqy3m7TUme3pyRhLk5ip/S4Mw== +"@algolia/recommend@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.47.0.tgz#71a759cdbe67e27f2299ab87d3c8aa4392001a88" + integrity sha512-+kTSE4aQ1ARj2feXyN+DMq0CIDHJwZw1kpxIunedkmpWUg8k3TzFwWsMCzJVkF2nu1UcFbl7xsIURz3Q3XwOXA== dependencies: - "@algolia/client-common" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" + "@algolia/client-common" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" -"@algolia/requester-browser-xhr@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.25.0.tgz#c194fa5f49206b9343e6646c41bfbca2a3f2ac54" - integrity sha512-JLaF23p1SOPBmfEqozUAgKHQrGl3z/Z5RHbggBu6s07QqXXcazEsub5VLonCxGVqTv6a61AAPr8J1G5HgGGjEw== +"@algolia/requester-browser-xhr@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.47.0.tgz#0e76a8e3db0b09235178cb47c9de0a198db7b52d" + integrity sha512-Ja+zPoeSA2SDowPwCNRbm5Q2mzDvVV8oqxCQ4m6SNmbKmPlCfe30zPfrt9ho3kBHnsg37pGucwOedRIOIklCHw== dependencies: - "@algolia/client-common" "5.25.0" + "@algolia/client-common" "5.47.0" -"@algolia/requester-fetch@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.25.0.tgz#231a2d0da2397d141f80b8f28e2cb6e3d219d38d" - integrity sha512-rtzXwqzFi1edkOF6sXxq+HhmRKDy7tz84u0o5t1fXwz0cwx+cjpmxu/6OQKTdOJFS92JUYHsG51Iunie7xbqfQ== +"@algolia/requester-fetch@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.47.0.tgz#de68b44bef30d03919be249a6ff30e82975494a9" + integrity sha512-N6nOvLbaR4Ge+oVm7T4W/ea1PqcSbsHR4O58FJ31XtZjFPtOyxmnhgCmGCzP9hsJI6+x0yxJjkW5BMK/XI8OvA== dependencies: - "@algolia/client-common" "5.25.0" + "@algolia/client-common" "5.47.0" -"@algolia/requester-node-http@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.25.0.tgz#0ce13c550890de21c558b04381535d2d245a3725" - integrity sha512-ZO0UKvDyEFvyeJQX0gmZDQEvhLZ2X10K+ps6hViMo1HgE2V8em00SwNsQ+7E/52a+YiBkVWX61pJJJE44juDMQ== +"@algolia/requester-node-http@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.47.0.tgz#b8e46c1e80b74d9146dec7b0219131198951198a" + integrity sha512-z1oyLq5/UVkohVXNDEY70mJbT/sv/t6HYtCvCwNrOri6pxBJDomP9R83KOlwcat+xqBQEdJHjbrPh36f1avmZA== dependencies: - "@algolia/client-common" "5.25.0" + "@algolia/client-common" "5.47.0" "@ampproject/remapping@^2.2.0": version "2.3.0" @@ -1958,22 +1941,22 @@ resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz#43f962bebead0052a9fed1a2deeb11f85efcbc72" integrity sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A== -"@csstools/color-helpers@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.2.tgz#82592c9a7c2b83c293d9161894e2a6471feb97b8" - integrity sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA== +"@csstools/color-helpers@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz#106c54c808cabfd1ab4c602d8505ee584c2996ef" + integrity sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA== "@csstools/css-calc@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== -"@csstools/css-color-parser@^3.0.10": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz#79fc68864dd43c3b6782d2b3828bc0fa9d085c10" - integrity sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg== +"@csstools/css-color-parser@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz#4e386af3a99dd36c46fef013cfe4c1c341eed6f0" + integrity sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA== dependencies: - "@csstools/color-helpers" "^5.0.2" + "@csstools/color-helpers" "^5.1.0" "@csstools/css-calc" "^2.1.4" "@csstools/css-parser-algorithms@^3.0.5": @@ -1991,55 +1974,88 @@ resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz#7aec77bcb89c2da80ef207e73f474ef9e1b3cdf1" integrity sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ== -"@csstools/postcss-cascade-layers@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz#9640313e64b5e39133de7e38a5aa7f40dc259597" - integrity sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ== +"@csstools/postcss-alpha-function@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz#7989605711de7831bc7cd75b94c9b5bac9c3728e" + integrity sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-cascade-layers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz#dd2c70db3867b88975f2922da3bfbae7d7a2cae7" + integrity sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg== dependencies: "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" -"@csstools/postcss-color-function@^4.0.10": - version "4.0.10" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.10.tgz#11ad43a66ef2cc794ab826a07df8b5fa9fb47a3a" - integrity sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ== +"@csstools/postcss-color-function-display-p3-linear@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz#3017ff5e1f65307d6083e58e93d76724fb1ebf9f" + integrity sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-color-mix-function@^3.0.10": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.10.tgz#8c9d0ccfae5c45a9870dd84807ea2995c7a3a514" - integrity sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q== +"@csstools/postcss-color-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz#a7c85a98c77b522a194a1bbb00dd207f40c7a771" + integrity sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-color-mix-variadic-function-arguments@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.0.tgz#0b29cb9b4630d7ed68549db265662d41554a17ed" - integrity sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ== +"@csstools/postcss-color-mix-function@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz#2f1ee9f8208077af069545c9bd79bb9733382c2a" + integrity sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-content-alt-text@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.6.tgz#548862226eac54bab0ee5f1bf3a9981393ab204b" - integrity sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ== +"@csstools/postcss-color-mix-variadic-function-arguments@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz#b4012b62a4eaa24d694172bb7137f9d2319cb8f2" + integrity sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-content-alt-text@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz#1d52da1762893c32999ff76839e48d6ec7c7a4cb" + integrity sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q== dependencies: "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-contrast-color-function@^2.0.12": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz#ca46986d095c60f208d9e3f24704d199c9172637" + integrity sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-exponential-functions@^2.0.9": @@ -2059,43 +2075,43 @@ "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-gamut-mapping@^2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.10.tgz#f518d941231d721dbecf5b41e3c441885ff2f28b" - integrity sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg== +"@csstools/postcss-gamut-mapping@^2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz#be0e34c9f0142852cccfc02b917511f0d677db8b" + integrity sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" -"@csstools/postcss-gradients-interpolation-method@^5.0.10": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.10.tgz#3146da352c31142a721fdba062ac3a6d11dbbec3" - integrity sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw== +"@csstools/postcss-gradients-interpolation-method@^5.0.12": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz#0955cce4d97203b861bf66742bbec611b2f3661c" + integrity sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-hwb-function@^4.0.10": - version "4.0.10" - resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.10.tgz#f93f3c457e6440ac37ef9b908feb5d901b417d50" - integrity sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ== +"@csstools/postcss-hwb-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz#07f7ecb08c50e094673bd20eaf7757db0162beee" + integrity sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-ic-unit@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.2.tgz#7561e09db65fac8304ceeab9dd3e5c6e43414587" - integrity sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA== +"@csstools/postcss-ic-unit@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz#2ee2da0690db7edfbc469279711b9e69495659d2" + integrity sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg== dependencies: - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" @@ -2104,22 +2120,22 @@ resolved "https://registry.yarnpkg.com/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz#c385bd9d8ad31ad159edd7992069e97ceea4d09a" integrity sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg== -"@csstools/postcss-is-pseudo-class@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz#12041448fedf01090dd4626022c28b7f7623f58e" - integrity sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ== +"@csstools/postcss-is-pseudo-class@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz#d34e850bcad4013c2ed7abe948bfa0448aa8eb74" + integrity sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ== dependencies: "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" -"@csstools/postcss-light-dark-function@^2.0.9": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.9.tgz#9fb080188907539734a9d5311d2a1cb82531ef38" - integrity sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ== +"@csstools/postcss-light-dark-function@^2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz#0df448aab9a33cb9a085264ff1f396fb80c4437d" + integrity sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA== dependencies: "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-logical-float-and-clear@^3.0.0": @@ -2179,31 +2195,44 @@ "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-normalize-display-values@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz#ecdde2daf4e192e5da0c6fd933b6d8aff32f2a36" - integrity sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q== +"@csstools/postcss-normalize-display-values@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#3738ecadb38cd6521c9565635d61aa4bf5457d27" + integrity sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA== dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-oklab-function@^4.0.10": - version "4.0.10" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.10.tgz#d4c23c51dd0be45e6dedde22432d7d0003710780" - integrity sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg== +"@csstools/postcss-oklab-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz#416640ef10227eea1375b47b72d141495950971d" + integrity sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-progressive-custom-properties@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.1.0.tgz#70c8d41b577f4023633b7e3791604e0b7f3775bc" - integrity sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA== +"@csstools/postcss-position-area-property@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz#41f0cbc737a81a42890d5ec035fa26a45f4f4ad4" + integrity sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q== + +"@csstools/postcss-progressive-custom-properties@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz#c39780b9ff0d554efb842b6bd75276aa6f1705db" + integrity sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw== dependencies: postcss-value-parser "^4.2.0" +"@csstools/postcss-property-rule-prelude-list@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz#700b7aa41228c02281bda074ae778f36a09da188" + integrity sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-random-function@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz#3191f32fe72936e361dadf7dbfb55a0209e2691e" @@ -2213,15 +2242,15 @@ "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" -"@csstools/postcss-relative-color-syntax@^3.0.10": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.10.tgz#daa840583969461e1e06b12e9c591e52a790ec86" - integrity sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g== +"@csstools/postcss-relative-color-syntax@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz#ced792450102441f7c160e1d106f33e4b44181f8" + integrity sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-scope-pseudo-class@^4.0.1": @@ -2249,12 +2278,27 @@ "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" -"@csstools/postcss-text-decoration-shorthand@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz#a3bcf80492e6dda36477538ab8e8943908c9f80a" - integrity sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA== +"@csstools/postcss-syntax-descriptor-syntax-production@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz#98590e372e547cdae60aef47cfee11f3881307dd" + integrity sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow== dependencies: - "@csstools/color-helpers" "^5.0.2" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-system-ui-font-family@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz#bd65b79078debf6f67b318dc9b71a8f9fa16f8c8" + integrity sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-text-decoration-shorthand@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz#fae1b70f07d1b7beb4c841c86d69e41ecc6f743c" + integrity sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA== + dependencies: + "@csstools/color-helpers" "^5.1.0" postcss-value-parser "^4.2.0" "@csstools/postcss-trigonometric-functions@^4.0.9": @@ -2271,10 +2315,10 @@ resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz#7caa981a34196d06a737754864baf77d64de4bba" integrity sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA== -"@csstools/selector-resolve-nested@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz#704a9b637975680e025e069a4c58b3beb3e2752a" - integrity sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ== +"@csstools/selector-resolve-nested@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz#848c6f44cb65e3733e478319b9342b7aa436fac7" + integrity sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g== "@csstools/selector-specificity@^5.0.0": version "5.0.0" @@ -2291,25 +2335,28 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@docsearch/css@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.9.0.tgz#3bc29c96bf024350d73b0cfb7c2a7b71bf251cd5" - integrity sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA== +"@docsearch/core@4.5.3": + version "4.5.3" + resolved "https://registry.yarnpkg.com/@docsearch/core/-/core-4.5.3.tgz#b64b7855348882ba4789e6a28a51764abb1ff9a1" + integrity sha512-x/P5+HVzv9ALtbuJIfpkF8Eyc5RE8YCsFcOgLrrtWa9Ui+53ggZA5seIAanCRORbS4+m982lu7rZmebSiuMIcw== -"@docsearch/react@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.9.0.tgz#d0842b700c3ee26696786f3c8ae9f10c1a3f0db3" - integrity sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ== +"@docsearch/css@4.5.3": + version "4.5.3" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-4.5.3.tgz#359930bc8435976c574655adc9bb0574d8887a70" + integrity sha512-kUpHaxn0AgI3LQfyzTYkNUuaFY4uEz/Ym9/N/FvyDE+PzSgZsCyDH9jE49B6N6f1eLCm9Yp64J9wENd6vypdxA== + +"@docsearch/react@^3.9.0 || ^4.1.0": + version "4.5.3" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-4.5.3.tgz#84b3bff8ca1fa7870499b1c9d28bd2b65786c18e" + integrity sha512-Hm3Lg/FD9HXV57WshhWOHOprbcObF5ptLzcjA5zdgJDzYOMwEN+AvY8heQ5YMTWyC6kW2d+Qk25AVlHnDWMSvA== dependencies: - "@algolia/autocomplete-core" "1.17.9" - "@algolia/autocomplete-preset-algolia" "1.17.9" - "@docsearch/css" "3.9.0" - algoliasearch "^5.14.2" + "@docsearch/core" "4.5.3" + "@docsearch/css" "4.5.3" -"@docusaurus/babel@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.8.0.tgz#2f390cc4e588a96ec496d87921e44890899738a6" - integrity sha512-9EJwSgS6TgB8IzGk1L8XddJLhZod8fXT4ULYMx6SKqyCBqCFpVCEjR/hNXXhnmtVM2irDuzYoVLGWv7srG/VOA== +"@docusaurus/babel@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.9.2.tgz#f956c638baeccf2040e482c71a742bc7e35fdb22" + integrity sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA== dependencies: "@babel/core" "^7.25.9" "@babel/generator" "^7.25.9" @@ -2321,54 +2368,54 @@ "@babel/runtime" "^7.25.9" "@babel/runtime-corejs3" "^7.25.9" "@babel/traverse" "^7.25.9" - "@docusaurus/logger" "3.8.0" - "@docusaurus/utils" "3.8.0" + "@docusaurus/logger" "3.9.2" + "@docusaurus/utils" "3.9.2" babel-plugin-dynamic-import-node "^2.3.3" fs-extra "^11.1.1" tslib "^2.6.0" -"@docusaurus/bundler@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.8.0.tgz#386f54dca594d81bac6b617c71822e0808d6e2f6" - integrity sha512-Rq4Z/MSeAHjVzBLirLeMcjLIAQy92pF1OI+2rmt18fSlMARfTGLWRE8Vb+ljQPTOSfJxwDYSzsK6i7XloD2rNA== +"@docusaurus/bundler@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.9.2.tgz#0ca82cda4acf13a493e3f66061aea351e9d356cf" + integrity sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA== dependencies: "@babel/core" "^7.25.9" - "@docusaurus/babel" "3.8.0" - "@docusaurus/cssnano-preset" "3.8.0" - "@docusaurus/logger" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils" "3.8.0" + "@docusaurus/babel" "3.9.2" + "@docusaurus/cssnano-preset" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" babel-loader "^9.2.1" - clean-css "^5.3.2" + clean-css "^5.3.3" copy-webpack-plugin "^11.0.0" - css-loader "^6.8.1" + css-loader "^6.11.0" css-minimizer-webpack-plugin "^5.0.1" cssnano "^6.1.2" file-loader "^6.2.0" html-minifier-terser "^7.2.0" - mini-css-extract-plugin "^2.9.1" + mini-css-extract-plugin "^2.9.2" null-loader "^4.0.1" - postcss "^8.4.26" - postcss-loader "^7.3.3" - postcss-preset-env "^10.1.0" + postcss "^8.5.4" + postcss-loader "^7.3.4" + postcss-preset-env "^10.2.1" terser-webpack-plugin "^5.3.9" tslib "^2.6.0" url-loader "^4.1.1" webpack "^5.95.0" webpackbar "^6.0.1" -"@docusaurus/core@3.8.0", "@docusaurus/core@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.8.0.tgz#79d5e1084415c8834a8a5cb87162ca13f52fe147" - integrity sha512-c7u6zFELmSGPEP9WSubhVDjgnpiHgDqMh1qVdCB7rTflh4Jx0msTYmMiO91Ez0KtHj4sIsDsASnjwfJ2IZp3Vw== +"@docusaurus/core@3.9.2", "@docusaurus/core@^3.9.0": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.9.2.tgz#cc970f29b85a8926d63c84f8cffdcda43ed266ff" + integrity sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw== dependencies: - "@docusaurus/babel" "3.8.0" - "@docusaurus/bundler" "3.8.0" - "@docusaurus/logger" "3.8.0" - "@docusaurus/mdx-loader" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-common" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/babel" "3.9.2" + "@docusaurus/bundler" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" boxen "^6.2.1" chalk "^4.1.2" chokidar "^3.5.3" @@ -2402,35 +2449,35 @@ update-notifier "^6.0.2" webpack "^5.95.0" webpack-bundle-analyzer "^4.10.2" - webpack-dev-server "^4.15.2" + webpack-dev-server "^5.2.2" webpack-merge "^6.0.1" -"@docusaurus/cssnano-preset@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.0.tgz#a70f19e2995be2299f5ef9c3da3e5d4d5c14bff2" - integrity sha512-UJ4hAS2T0R4WNy+phwVff2Q0L5+RXW9cwlH6AEphHR5qw3m/yacfWcSK7ort2pMMbDn8uGrD38BTm4oLkuuNoQ== +"@docusaurus/cssnano-preset@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.9.2.tgz#523aab65349db3c51a77f2489048d28527759428" + integrity sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ== dependencies: cssnano-preset-advanced "^6.1.2" - postcss "^8.4.38" + postcss "^8.5.4" postcss-sort-media-queries "^5.2.0" tslib "^2.6.0" -"@docusaurus/logger@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.8.0.tgz#c1abbb084a8058dc0047d57070fb9cd0241a679d" - integrity sha512-7eEMaFIam5Q+v8XwGqF/n0ZoCld4hV4eCCgQkfcN9Mq5inoZa6PHHW9Wu6lmgzoK5Kx3keEeABcO2SxwraoPDQ== +"@docusaurus/logger@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.9.2.tgz#6ec6364b90f5a618a438cc9fd01ac7376869f92a" + integrity sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA== dependencies: chalk "^4.1.2" tslib "^2.6.0" -"@docusaurus/mdx-loader@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.8.0.tgz#2b225cd2b1159cc49b10b1cac63a927a8368274b" - integrity sha512-mDPSzssRnpjSdCGuv7z2EIAnPS1MHuZGTaRLwPn4oQwszu4afjWZ/60sfKjTnjBjI8Vl4OgJl2vMmfmiNDX4Ng== +"@docusaurus/mdx-loader@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.9.2.tgz#78d238de6c6203fa811cc2a7e90b9b79e111408c" + integrity sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ== dependencies: - "@docusaurus/logger" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/logger" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@mdx-js/mdx" "^3.0.0" "@slorber/remark-comment" "^1.0.0" escape-html "^1.0.3" @@ -2453,12 +2500,12 @@ vfile "^6.0.1" webpack "^5.88.1" -"@docusaurus/module-type-aliases@3.8.0", "@docusaurus/module-type-aliases@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.0.tgz#e487052c372538c5dcf2200999e13f328fa5ffaa" - integrity sha512-/uMb4Ipt5J/QnD13MpnoC/A4EYAe6DKNWqTWLlGrqsPJwJv73vSwkA25xnYunwfqWk0FlUQfGv/Swdh5eCCg7g== +"@docusaurus/module-type-aliases@3.9.2", "@docusaurus/module-type-aliases@^3.9.0": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.9.2.tgz#993c7cb0114363dea5ef6855e989b3ad4b843a34" + integrity sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew== dependencies: - "@docusaurus/types" "3.8.0" + "@docusaurus/types" "3.9.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -2466,19 +2513,34 @@ react-helmet-async "npm:@slorber/react-helmet-async@1.3.0" react-loadable "npm:@docusaurus/react-loadable@6.0.0" -"@docusaurus/plugin-content-blog@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.0.tgz#0c200b1fb821e09e9e975c45255e5ddfab06c392" - integrity sha512-0SlOTd9R55WEr1GgIXu+hhTT0hzARYx3zIScA5IzpdekZQesI/hKEa5LPHBd415fLkWMjdD59TaW/3qQKpJ0Lg== +"@docusaurus/plugin-client-redirects@^3.9.0": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.9.2.tgz#9c27025c72aeeedeb783a94720163911567da0e8" + integrity sha512-lUgMArI9vyOYMzLRBUILcg9vcPTCyyI2aiuXq/4npcMVqOr6GfmwtmBYWSbNMlIUM0147smm4WhpXD0KFboffw== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/logger" "3.8.0" - "@docusaurus/mdx-loader" "3.8.0" - "@docusaurus/theme-common" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-common" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" + eta "^2.2.0" + fs-extra "^11.1.1" + lodash "^4.17.21" + tslib "^2.6.0" + +"@docusaurus/plugin-content-blog@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.9.2.tgz#d5ce51eb7757bdab0515e2dd26a793ed4e119df9" + integrity sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ== + dependencies: + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" cheerio "1.0.0-rc.12" feed "^4.2.2" fs-extra "^11.1.1" @@ -2490,20 +2552,20 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-docs@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.0.tgz#6aedb1261da1f0c8c2fa11cfaa6df4577a9b7826" - integrity sha512-fRDMFLbUN6eVRXcjP8s3Y7HpAt9pzPYh1F/7KKXOCxvJhjjCtbon4VJW0WndEPInVz4t8QUXn5QZkU2tGVCE2g== +"@docusaurus/plugin-content-docs@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz#cd8f2d1c06e53c3fa3d24bdfcb48d237bf2d6b2e" + integrity sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/logger" "3.8.0" - "@docusaurus/mdx-loader" "3.8.0" - "@docusaurus/module-type-aliases" "3.8.0" - "@docusaurus/theme-common" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-common" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/module-type-aliases" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@types/react-router-config" "^5.0.7" combine-promises "^1.1.0" fs-extra "^11.1.1" @@ -2514,148 +2576,148 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-pages@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.0.tgz#2db5f990872684c621665d0d0d8d9b5831fd2999" - integrity sha512-39EDx2y1GA0Pxfion5tQZLNJxL4gq6susd1xzetVBjVIQtwpCdyloOfQBAgX0FylqQxfJrYqL0DIUuq7rd7uBw== +"@docusaurus/plugin-content-pages@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.9.2.tgz#22db6c88ade91cec0a9e87a00b8089898051b08d" + integrity sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/mdx-loader" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" fs-extra "^11.1.1" tslib "^2.6.0" webpack "^5.88.1" -"@docusaurus/plugin-css-cascade-layers@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.0.tgz#a0741ae32917a88ce7ce76b6f472495fa4bf576d" - integrity sha512-/VBTNymPIxQB8oA3ZQ4GFFRYdH4ZxDRRBECxyjRyv486mfUPXfcdk+im4S5mKWa6EK2JzBz95IH/Wu0qQgJ5yQ== +"@docusaurus/plugin-css-cascade-layers@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.9.2.tgz#358c85f63f1c6a11f611f1b8889d9435c11b22f8" + integrity sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" tslib "^2.6.0" -"@docusaurus/plugin-debug@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.8.0.tgz#297c159ae99924e60042426d2ad6ee0d5e9126b3" - integrity sha512-teonJvJsDB9o2OnG6ifbhblg/PXzZvpUKHFgD8dOL1UJ58u0lk8o0ZOkvaYEBa9nDgqzoWrRk9w+e3qaG2mOhQ== +"@docusaurus/plugin-debug@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.9.2.tgz#b5df4db115583f5404a252dbf66f379ff933e53c" + integrity sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" fs-extra "^11.1.1" react-json-view-lite "^2.3.0" tslib "^2.6.0" -"@docusaurus/plugin-google-analytics@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.0.tgz#fb97097af331beb13553a384081dc83607539b31" - integrity sha512-aKKa7Q8+3xRSRESipNvlFgNp3FNPELKhuo48Cg/svQbGNwidSHbZT03JqbW4cBaQnyyVchO1ttk+kJ5VC9Gx0w== +"@docusaurus/plugin-google-analytics@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.9.2.tgz#857fe075fdeccdf6959e62954d9efe39769fa247" + integrity sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" tslib "^2.6.0" -"@docusaurus/plugin-google-gtag@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.0.tgz#b5a60006c28ac582859a469fb92e53d383b0a055" - integrity sha512-ugQYMGF4BjbAW/JIBtVcp+9eZEgT9HRdvdcDudl5rywNPBA0lct+lXMG3r17s02rrhInMpjMahN3Yc9Cb3H5/g== +"@docusaurus/plugin-google-gtag@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.9.2.tgz#df75b1a90ae9266b0471909ba0265f46d5dcae62" + integrity sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@types/gtag.js" "^0.0.12" tslib "^2.6.0" -"@docusaurus/plugin-google-tag-manager@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.0.tgz#612aa63e161fb273bf7db2591034c0142951727d" - integrity sha512-9juRWxbwZD3SV02Jd9QB6yeN7eu+7T4zB0bvJLcVQwi+am51wAxn2CwbdL0YCCX+9OfiXbADE8D8Q65Hbopu/w== +"@docusaurus/plugin-google-tag-manager@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.9.2.tgz#d1a3cf935acb7d31b84685e92d70a1d342946677" + integrity sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" tslib "^2.6.0" -"@docusaurus/plugin-sitemap@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.0.tgz#a39e3b5aa2f059aba0052ed11a6b4fbf78ac0dad" - integrity sha512-fGpOIyJvNiuAb90nSJ2Gfy/hUOaDu6826e5w5UxPmbpCIc7KlBHNAZ5g4L4ZuHhc4hdfq4mzVBsQSnne+8Ze1g== +"@docusaurus/plugin-sitemap@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.9.2.tgz#e1d9f7012942562cc0c6543d3cb2cdc4ae713dc4" + integrity sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/logger" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-common" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" fs-extra "^11.1.1" sitemap "^7.1.1" tslib "^2.6.0" -"@docusaurus/plugin-svgr@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.0.tgz#6d2d43f14b32b4bb2dd8dc87a70c6e78754c1e85" - integrity sha512-kEDyry+4OMz6BWLG/lEqrNsL/w818bywK70N1gytViw4m9iAmoxCUT7Ri9Dgs7xUdzCHJ3OujolEmD88Wy44OA== +"@docusaurus/plugin-svgr@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.9.2.tgz#62857ed79d97c0150d25f7e7380fdee65671163a" + integrity sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@svgr/core" "8.1.0" "@svgr/webpack" "^8.1.0" tslib "^2.6.0" webpack "^5.88.1" -"@docusaurus/preset-classic@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.8.0.tgz#ac8bc17e3b7b443d8a24f2f1da0c0be396950fef" - integrity sha512-qOu6tQDOWv+rpTlKu+eJATCJVGnABpRCPuqf7LbEaQ1mNY//N/P8cHQwkpAU+aweQfarcZ0XfwCqRHJfjeSV/g== +"@docusaurus/preset-classic@^3.9.0": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.9.2.tgz#85cc4f91baf177f8146c9ce896dfa1f0fd377050" + integrity sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/plugin-content-blog" "3.8.0" - "@docusaurus/plugin-content-docs" "3.8.0" - "@docusaurus/plugin-content-pages" "3.8.0" - "@docusaurus/plugin-css-cascade-layers" "3.8.0" - "@docusaurus/plugin-debug" "3.8.0" - "@docusaurus/plugin-google-analytics" "3.8.0" - "@docusaurus/plugin-google-gtag" "3.8.0" - "@docusaurus/plugin-google-tag-manager" "3.8.0" - "@docusaurus/plugin-sitemap" "3.8.0" - "@docusaurus/plugin-svgr" "3.8.0" - "@docusaurus/theme-classic" "3.8.0" - "@docusaurus/theme-common" "3.8.0" - "@docusaurus/theme-search-algolia" "3.8.0" - "@docusaurus/types" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/plugin-content-blog" "3.9.2" + "@docusaurus/plugin-content-docs" "3.9.2" + "@docusaurus/plugin-content-pages" "3.9.2" + "@docusaurus/plugin-css-cascade-layers" "3.9.2" + "@docusaurus/plugin-debug" "3.9.2" + "@docusaurus/plugin-google-analytics" "3.9.2" + "@docusaurus/plugin-google-gtag" "3.9.2" + "@docusaurus/plugin-google-tag-manager" "3.9.2" + "@docusaurus/plugin-sitemap" "3.9.2" + "@docusaurus/plugin-svgr" "3.9.2" + "@docusaurus/theme-classic" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/theme-search-algolia" "3.9.2" + "@docusaurus/types" "3.9.2" -"@docusaurus/theme-classic@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.8.0.tgz#6d44fb801b86a7c7af01cda0325af1a3300b3ac2" - integrity sha512-nQWFiD5ZjoT76OaELt2n33P3WVuuCz8Dt5KFRP2fCBo2r9JCLsp2GJjZpnaG24LZ5/arRjv4VqWKgpK0/YLt7g== +"@docusaurus/theme-classic@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.9.2.tgz#6e514f99a0ff42b80afcf42d5e5d042618311ce0" + integrity sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/logger" "3.8.0" - "@docusaurus/mdx-loader" "3.8.0" - "@docusaurus/module-type-aliases" "3.8.0" - "@docusaurus/plugin-content-blog" "3.8.0" - "@docusaurus/plugin-content-docs" "3.8.0" - "@docusaurus/plugin-content-pages" "3.8.0" - "@docusaurus/theme-common" "3.8.0" - "@docusaurus/theme-translations" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-common" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/module-type-aliases" "3.9.2" + "@docusaurus/plugin-content-blog" "3.9.2" + "@docusaurus/plugin-content-docs" "3.9.2" + "@docusaurus/plugin-content-pages" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/theme-translations" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" "@mdx-js/react" "^3.0.0" clsx "^2.0.0" - copy-text-to-clipboard "^3.2.0" infima "0.2.0-alpha.45" lodash "^4.17.21" nprogress "^0.2.0" - postcss "^8.4.26" + postcss "^8.5.4" prism-react-renderer "^2.3.0" prismjs "^1.29.0" react-router-dom "^5.3.4" @@ -2663,15 +2725,15 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-common@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.8.0.tgz#102c385c3d1d3b7a6b52d1911c7e88c38d9a977e" - integrity sha512-YqV2vAWpXGLA+A3PMLrOMtqgTHJLDcT+1Caa6RF7N4/IWgrevy5diY8oIHFkXR/eybjcrFFjUPrHif8gSGs3Tw== +"@docusaurus/theme-common@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.9.2.tgz#487172c6fef9815c2746ef62a71e4f5b326f9ba5" + integrity sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag== dependencies: - "@docusaurus/mdx-loader" "3.8.0" - "@docusaurus/module-type-aliases" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-common" "3.8.0" + "@docusaurus/mdx-loader" "3.9.2" + "@docusaurus/module-type-aliases" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -2681,34 +2743,34 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-mermaid@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.8.0.tgz#f0720ec89fd386870f30978ba984b1b126ca92a5" - integrity sha512-ou0NJM37p4xrVuFaZp8qFe5Z/qBq9LuyRTP4KKRa0u2J3zC4f3saBJDgc56FyvvN1OsmU0189KGEPUjTr6hFxg== +"@docusaurus/theme-mermaid@^3.9.0": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.9.2.tgz#f065e4b4b319560ddd8c3be65ce9dd19ce1d5cc8" + integrity sha512-5vhShRDq/ntLzdInsQkTdoKWSzw8d1jB17sNPYhA/KvYYFXfuVEGHLM6nrf8MFbV8TruAHDG21Fn3W4lO8GaDw== dependencies: - "@docusaurus/core" "3.8.0" - "@docusaurus/module-type-aliases" "3.8.0" - "@docusaurus/theme-common" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/module-type-aliases" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" mermaid ">=11.6.0" tslib "^2.6.0" -"@docusaurus/theme-search-algolia@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.0.tgz#21c2f18e07a73d13ca3b44fcf0ae9aac33bef60f" - integrity sha512-GBZ5UOcPgiu6nUw153+0+PNWvFKweSnvKIL6Rp04H9olKb475jfKjAwCCtju5D2xs5qXHvCMvzWOg5o9f6DtuQ== +"@docusaurus/theme-search-algolia@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.2.tgz#420fd5b27fc1673b48151fdc9fe7167ba135ed50" + integrity sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw== dependencies: - "@docsearch/react" "^3.9.0" - "@docusaurus/core" "3.8.0" - "@docusaurus/logger" "3.8.0" - "@docusaurus/plugin-content-docs" "3.8.0" - "@docusaurus/theme-common" "3.8.0" - "@docusaurus/theme-translations" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-validation" "3.8.0" - algoliasearch "^5.17.1" - algoliasearch-helper "^3.22.6" + "@docsearch/react" "^3.9.0 || ^4.1.0" + "@docusaurus/core" "3.9.2" + "@docusaurus/logger" "3.9.2" + "@docusaurus/plugin-content-docs" "3.9.2" + "@docusaurus/theme-common" "3.9.2" + "@docusaurus/theme-translations" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-validation" "3.9.2" + algoliasearch "^5.37.0" + algoliasearch-helper "^3.26.0" clsx "^2.0.0" eta "^2.2.0" fs-extra "^11.1.1" @@ -2716,26 +2778,27 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-translations@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.8.0.tgz#deb64dccab74361624c3cb352a4949a7ac868c74" - integrity sha512-1DTy/snHicgkCkryWq54fZvsAglTdjTx4qjOXgqnXJ+DIty1B+aPQrAVUu8LiM+6BiILfmNxYsxhKTj+BS3PZg== +"@docusaurus/theme-translations@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.9.2.tgz#238cd69c2da92d612be3d3b4f95944c1d0f1e041" + integrity sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA== dependencies: fs-extra "^11.1.1" tslib "^2.6.0" -"@docusaurus/tsconfig@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.8.0.tgz#ea7ee0917e1562cf0a6e95e049c42f1f61351f32" - integrity sha512-utLl48nNjSYBoq47RKukZ9fPLEX3nJWThzrujb0ndQQ1jc/gh4RhTRaAqItH9nImnsgGKmLMnyoMBpfGmoop+w== +"@docusaurus/tsconfig@^3.9.0": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.9.2.tgz#7f440e0ae665b841e1d487749037f26a0275f9c1" + integrity sha512-j6/Fp4Rlpxsc632cnRnl5HpOWeb6ZKssDj6/XzzAzVGXXfm9Eptx3rxCC+fDzySn9fHTS+CWJjPineCR1bB5WQ== -"@docusaurus/types@3.8.0", "@docusaurus/types@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.8.0.tgz#f6cd31c4e3e392e0270b8137d7fe4365ea7a022e" - integrity sha512-RDEClpwNxZq02c+JlaKLWoS13qwWhjcNsi2wG1UpzmEnuti/z1Wx4SGpqbUqRPNSd8QWWePR8Cb7DvG0VN/TtA== +"@docusaurus/types@3.9.2", "@docusaurus/types@^3.9.0": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.9.2.tgz#e482cf18faea0d1fa5ce0e3f1e28e0f32d2593eb" + integrity sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q== dependencies: "@mdx-js/mdx" "^3.0.0" "@types/history" "^4.7.11" + "@types/mdast" "^4.0.2" "@types/react" "*" commander "^5.1.0" joi "^17.9.2" @@ -2744,36 +2807,36 @@ webpack "^5.95.0" webpack-merge "^5.9.0" -"@docusaurus/utils-common@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.8.0.tgz#2b1a6b1ec4a7fac62f1898d523d42f8cc4a8258f" - integrity sha512-3TGF+wVTGgQ3pAc9+5jVchES4uXUAhAt9pwv7uws4mVOxL4alvU3ue/EZ+R4XuGk94pDy7CNXjRXpPjlfZXQfw== +"@docusaurus/utils-common@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.9.2.tgz#e89bfcf43d66359f43df45293fcdf22814847460" + integrity sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw== dependencies: - "@docusaurus/types" "3.8.0" + "@docusaurus/types" "3.9.2" tslib "^2.6.0" -"@docusaurus/utils-validation@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.8.0.tgz#aa02e9d998e20998fbcaacd94873878bc3b9a4cd" - integrity sha512-MrnEbkigr54HkdFeg8e4FKc4EF+E9dlVwsY3XQZsNkbv3MKZnbHQ5LsNJDIKDROFe8PBf5C4qCAg5TPBpsjrjg== +"@docusaurus/utils-validation@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.9.2.tgz#04aec285604790806e2fc5aa90aa950dc7ba75ae" + integrity sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A== dependencies: - "@docusaurus/logger" "3.8.0" - "@docusaurus/utils" "3.8.0" - "@docusaurus/utils-common" "3.8.0" + "@docusaurus/logger" "3.9.2" + "@docusaurus/utils" "3.9.2" + "@docusaurus/utils-common" "3.9.2" fs-extra "^11.2.0" joi "^17.9.2" js-yaml "^4.1.0" lodash "^4.17.21" tslib "^2.6.0" -"@docusaurus/utils@3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.8.0.tgz#92bad89d2a11f5f246196af153093b12cd79f9ac" - integrity sha512-2wvtG28ALCN/A1WCSLxPASFBFzXCnP0YKCAFIPcvEb6imNu1wg7ni/Svcp71b3Z2FaOFFIv4Hq+j4gD7gA0yfQ== +"@docusaurus/utils@3.9.2": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.9.2.tgz#ffab7922631c7e0febcb54e6d499f648bf8a89eb" + integrity sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ== dependencies: - "@docusaurus/logger" "3.8.0" - "@docusaurus/types" "3.8.0" - "@docusaurus/utils-common" "3.8.0" + "@docusaurus/logger" "3.9.2" + "@docusaurus/types" "3.9.2" + "@docusaurus/utils-common" "3.9.2" escape-string-regexp "^4.0.0" execa "5.1.1" file-loader "^6.2.0" @@ -2883,6 +2946,166 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jsonjoy.com/base64@17.65.0": + version "17.65.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-17.65.0.tgz#ba3b023c69ab311e5b706289414a44ee46117824" + integrity sha512-Xrh7Fm/M0QAYpekSgmskdZYnFdSGnsxJ/tHaolA4bNwWdG9i65S8m83Meh7FOxyJyQAdo4d4J97NOomBLEfkDQ== + +"@jsonjoy.com/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" + integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== + +"@jsonjoy.com/buffers@17.65.0", "@jsonjoy.com/buffers@^17.65.0": + version "17.65.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-17.65.0.tgz#d6890737d9cbc49c17e2c5d1a2d796c57205152c" + integrity sha512-eBrIXd0/Ld3p9lpDDlMaMn6IEfWqtHMD+z61u0JrIiPzsV1r7m6xDZFRxJyvIFTEO+SWdYF9EiQbXZGd8BzPfA== + +"@jsonjoy.com/buffers@^1.0.0", "@jsonjoy.com/buffers@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz#8d99c7f67eaf724d3428dfd9826c6455266a5c83" + integrity sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA== + +"@jsonjoy.com/codegen@17.65.0": + version "17.65.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-17.65.0.tgz#531524f37fd3e1d1189de18fef346e998eee8952" + integrity sha512-7MXcRYe7n3BG+fo3jicvjB0+6ypl2Y/bQp79Sp7KeSiiCgLqw4Oled6chVv07/xLVTdo3qa1CD0VCCnPaw+RGA== + +"@jsonjoy.com/codegen@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz#5c23f796c47675f166d23b948cdb889184b93207" + integrity sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g== + +"@jsonjoy.com/fs-core@4.56.10": + version "4.56.10" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-core/-/fs-core-4.56.10.tgz#320728b4b7bef63abb60e7630351623899237411" + integrity sha512-PyAEA/3cnHhsGcdY+AmIU+ZPqTuZkDhCXQ2wkXypdLitSpd6d5Ivxhnq4wa2ETRWFVJGabYynBWxIijOswSmOw== + dependencies: + "@jsonjoy.com/fs-node-builtins" "4.56.10" + "@jsonjoy.com/fs-node-utils" "4.56.10" + thingies "^2.5.0" + +"@jsonjoy.com/fs-fsa@4.56.10": + version "4.56.10" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-fsa/-/fs-fsa-4.56.10.tgz#02bac88c4968ddf2effbd7452861aaed60ba3557" + integrity sha512-/FVK63ysNzTPOnCCcPoPHt77TOmachdMS422txM4KhxddLdbW1fIbFMYH0AM0ow/YchCyS5gqEjKLNyv71j/5Q== + dependencies: + "@jsonjoy.com/fs-core" "4.56.10" + "@jsonjoy.com/fs-node-builtins" "4.56.10" + "@jsonjoy.com/fs-node-utils" "4.56.10" + thingies "^2.5.0" + +"@jsonjoy.com/fs-node-builtins@4.56.10": + version "4.56.10" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.56.10.tgz#a32a5bcb093f8b34a99aa8957e993a52ec316662" + integrity sha512-uUnKz8R0YJyKq5jXpZtkGV9U0pJDt8hmYcLRrPjROheIfjMXsz82kXMgAA/qNg0wrZ1Kv+hrg7azqEZx6XZCVw== + +"@jsonjoy.com/fs-node-to-fsa@4.56.10": + version "4.56.10" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.56.10.tgz#33fc503e50d283ac5fc510e3accced7fccecf2f4" + integrity sha512-oH+O6Y4lhn9NyG6aEoFwIBNKZeYy66toP5LJcDOMBgL99BKQMUf/zWJspdRhMdn/3hbzQsZ8EHHsuekbFLGUWw== + dependencies: + "@jsonjoy.com/fs-fsa" "4.56.10" + "@jsonjoy.com/fs-node-builtins" "4.56.10" + "@jsonjoy.com/fs-node-utils" "4.56.10" + +"@jsonjoy.com/fs-node-utils@4.56.10": + version "4.56.10" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.56.10.tgz#788e95052aa99744f6e8e55b5098afc203df2b9e" + integrity sha512-8EuPBgVI2aDPwFdaNQeNpHsyqPi3rr+85tMNG/lHvQLiVjzoZsvxA//Xd8aB567LUhy4QS03ptT+unkD/DIsNg== + dependencies: + "@jsonjoy.com/fs-node-builtins" "4.56.10" + +"@jsonjoy.com/fs-node@4.56.10": + version "4.56.10" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node/-/fs-node-4.56.10.tgz#70b18bfaf14544a9820d2016e913dde12c6de991" + integrity sha512-7R4Gv3tkUdW3dXfXiOkqxkElxKNVdd8BDOWC0/dbERd0pXpPY+s2s1Mino+aTvkGrFPiY+mmVxA7zhskm4Ue4Q== + dependencies: + "@jsonjoy.com/fs-core" "4.56.10" + "@jsonjoy.com/fs-node-builtins" "4.56.10" + "@jsonjoy.com/fs-node-utils" "4.56.10" + "@jsonjoy.com/fs-print" "4.56.10" + "@jsonjoy.com/fs-snapshot" "4.56.10" + glob-to-regex.js "^1.0.0" + thingies "^2.5.0" + +"@jsonjoy.com/fs-print@4.56.10": + version "4.56.10" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-print/-/fs-print-4.56.10.tgz#7c181b9aefcc1b268be0e6233bff26310c355335" + integrity sha512-JW4fp5mAYepzFsSGrQ48ep8FXxpg4niFWHdF78wDrFGof7F3tKDJln72QFDEn/27M1yHd4v7sKHHVPh78aWcEw== + dependencies: + "@jsonjoy.com/fs-node-utils" "4.56.10" + tree-dump "^1.1.0" + +"@jsonjoy.com/fs-snapshot@4.56.10": + version "4.56.10" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.56.10.tgz#05aadd2c0eaa855b13d6cb17d29b7c8cee239c8c" + integrity sha512-DkR6l5fj7+qj0+fVKm/OOXMGfDFCGXLfyHkORH3DF8hxkpDgIHbhf/DwncBMs2igu/ST7OEkexn1gIqoU6Y+9g== + dependencies: + "@jsonjoy.com/buffers" "^17.65.0" + "@jsonjoy.com/fs-node-utils" "4.56.10" + "@jsonjoy.com/json-pack" "^17.65.0" + "@jsonjoy.com/util" "^17.65.0" + +"@jsonjoy.com/json-pack@^1.11.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz#93f8dd57fe3a3a92132b33d1eb182dcd9e7629fa" + integrity sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg== + dependencies: + "@jsonjoy.com/base64" "^1.1.2" + "@jsonjoy.com/buffers" "^1.2.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/json-pointer" "^1.0.2" + "@jsonjoy.com/util" "^1.9.0" + hyperdyperid "^1.2.0" + thingies "^2.5.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/json-pack@^17.65.0": + version "17.65.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-17.65.0.tgz#4ea06dd0aee1c29954bd978c4f107401dbf713fb" + integrity sha512-e0SG/6qUCnVhHa0rjDJHgnXnbsacooHVqQHxspjvlYQSkHm+66wkHw6Gql+3u/WxI/b1VsOdUi0M+fOtkgKGdQ== + dependencies: + "@jsonjoy.com/base64" "17.65.0" + "@jsonjoy.com/buffers" "17.65.0" + "@jsonjoy.com/codegen" "17.65.0" + "@jsonjoy.com/json-pointer" "17.65.0" + "@jsonjoy.com/util" "17.65.0" + hyperdyperid "^1.2.0" + thingies "^2.5.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/json-pointer@17.65.0": + version "17.65.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-17.65.0.tgz#4bad42d86c9ee0ad1758c082b065bd5e16f8dc36" + integrity sha512-uhTe+XhlIZpWOxgPcnO+iSCDgKKBpwkDVTyYiXX9VayGV8HSFVJM67M6pUE71zdnXF1W0Da21AvnhlmdwYPpow== + dependencies: + "@jsonjoy.com/util" "17.65.0" + +"@jsonjoy.com/json-pointer@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz#049cb530ac24e84cba08590c5e36b431c4843408" + integrity sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg== + dependencies: + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/util" "^1.9.0" + +"@jsonjoy.com/util@17.65.0", "@jsonjoy.com/util@^17.65.0": + version "17.65.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-17.65.0.tgz#b27832bdf7aeaf4a36f9cb8721cb4ffb086f06a1" + integrity sha512-cWiEHZccQORf96q2y6zU3wDeIVPeidmGqd9cNKJRYoVHTV0S1eHPy5JTbHpMnGfDvtvujQwQozOqgO9ABu6h0w== + dependencies: + "@jsonjoy.com/buffers" "17.65.0" + "@jsonjoy.com/codegen" "17.65.0" + +"@jsonjoy.com/util@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.9.0.tgz#7ee95586aed0a766b746cd8d8363e336c3c47c46" + integrity sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ== + dependencies: + "@jsonjoy.com/buffers" "^1.0.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.5" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" @@ -2932,6 +3155,11 @@ dependencies: langium "3.3.1" +"@noble/hashes@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -2953,6 +3181,129 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@peculiar/asn1-cms@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-cms/-/asn1-cms-2.6.0.tgz#88267055c460ca806651f916315a934c1b1ac994" + integrity sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA== + dependencies: + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + "@peculiar/asn1-x509-attr" "^2.6.0" + asn1js "^3.0.6" + tslib "^2.8.1" + +"@peculiar/asn1-csr@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-csr/-/asn1-csr-2.6.0.tgz#a7eff845b0020720070a12f38f26effb9fdab158" + integrity sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ== + dependencies: + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + asn1js "^3.0.6" + tslib "^2.8.1" + +"@peculiar/asn1-ecc@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.6.0.tgz#4846d39712a1a2b4786c2d6ea27b19a6dcc05ef5" + integrity sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw== + dependencies: + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + asn1js "^3.0.6" + tslib "^2.8.1" + +"@peculiar/asn1-pfx@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pfx/-/asn1-pfx-2.6.0.tgz#4c8ed3050cdd5b3e63ec4192bf8f646d9e06e3f5" + integrity sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ== + dependencies: + "@peculiar/asn1-cms" "^2.6.0" + "@peculiar/asn1-pkcs8" "^2.6.0" + "@peculiar/asn1-rsa" "^2.6.0" + "@peculiar/asn1-schema" "^2.6.0" + asn1js "^3.0.6" + tslib "^2.8.1" + +"@peculiar/asn1-pkcs8@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.0.tgz#c426caf81cb49935c553b591e0273b4b44d1696f" + integrity sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA== + dependencies: + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + asn1js "^3.0.6" + tslib "^2.8.1" + +"@peculiar/asn1-pkcs9@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.0.tgz#96b57122228a0e2e30e81118cd3baa570c13a51d" + integrity sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw== + dependencies: + "@peculiar/asn1-cms" "^2.6.0" + "@peculiar/asn1-pfx" "^2.6.0" + "@peculiar/asn1-pkcs8" "^2.6.0" + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + "@peculiar/asn1-x509-attr" "^2.6.0" + asn1js "^3.0.6" + tslib "^2.8.1" + +"@peculiar/asn1-rsa@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.6.0.tgz#49d905ab67ae8aa54e996734f37a391bb7958747" + integrity sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w== + dependencies: + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + asn1js "^3.0.6" + tslib "^2.8.1" + +"@peculiar/asn1-schema@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz#0dca1601d5b0fed2a72fed7a5f1d0d7dbe3a6f82" + integrity sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg== + dependencies: + asn1js "^3.0.6" + pvtsutils "^1.3.6" + tslib "^2.8.1" + +"@peculiar/asn1-x509-attr@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.0.tgz#057cb0c3c600a259c9f40582ee5fd7f0114c5be6" + integrity sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA== + dependencies: + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + asn1js "^3.0.6" + tslib "^2.8.1" + +"@peculiar/asn1-x509@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.6.0.tgz#9aa0784b455ca34095fdc91a5cc52869e21528dd" + integrity sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA== + dependencies: + "@peculiar/asn1-schema" "^2.6.0" + asn1js "^3.0.6" + pvtsutils "^1.3.6" + tslib "^2.8.1" + +"@peculiar/x509@^1.14.2": + version "1.14.3" + resolved "https://registry.yarnpkg.com/@peculiar/x509/-/x509-1.14.3.tgz#2c44c2b89474346afec38a0c2803ec4fb8ce959e" + integrity sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA== + dependencies: + "@peculiar/asn1-cms" "^2.6.0" + "@peculiar/asn1-csr" "^2.6.0" + "@peculiar/asn1-ecc" "^2.6.0" + "@peculiar/asn1-pkcs9" "^2.6.0" + "@peculiar/asn1-rsa" "^2.6.0" + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + pvtsutils "^1.3.6" + reflect-metadata "^0.2.2" + tslib "^2.8.1" + tsyringe "^4.10.0" + "@pnpm/config.env-replace@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" @@ -3153,14 +3504,14 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.9": +"@types/bonjour@^3.5.13": version "3.5.13" resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" -"@types/connect-history-api-fallback@^1.3.5": +"@types/connect-history-api-fallback@^1.5.4": version "1.5.4" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== @@ -3435,6 +3786,16 @@ "@types/range-parser" "*" "@types/send" "*" +"@types/express-serve-static-core@^4.17.21": + version "4.19.8" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz#99b960322a4d576b239a640ab52ef191989b036f" + integrity sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + "@types/express-serve-static-core@^4.17.33": version "4.19.6" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" @@ -3455,15 +3816,15 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@^4.17.13": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== +"@types/express@^4.17.25": + version "4.17.25" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b" + integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" - "@types/serve-static" "*" + "@types/serve-static" "^1" "@types/geojson@*": version "7946.0.16" @@ -3555,13 +3916,6 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== - dependencies: - "@types/node" "*" - "@types/node@*": version "22.7.9" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.9.tgz#2bf2797b5e84702d8262ea2cf843c3c3c880d0e9" @@ -3628,10 +3982,10 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== "@types/sax@^1.2.1": version "1.2.7" @@ -3648,14 +4002,22 @@ "@types/mime" "^1" "@types/node" "*" -"@types/serve-index@^1.9.1": +"@types/send@<1": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" + integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.4": version "1.9.4" resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" -"@types/serve-static@*", "@types/serve-static@^1.13.10": +"@types/serve-static@*": version "1.15.7" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== @@ -3664,7 +4026,16 @@ "@types/node" "*" "@types/send" "*" -"@types/sockjs@^0.3.33": +"@types/serve-static@^1", "@types/serve-static@^1.15.5": + version "1.15.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" + integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "<1" + +"@types/sockjs@^0.3.36": version "0.3.36" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== @@ -3686,10 +4057,10 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== -"@types/ws@^8.5.5": - version "8.5.12" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" - integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== +"@types/ws@^8.5.10": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== dependencies: "@types/node" "*" @@ -3962,7 +4333,7 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: +accepts@~1.3.4, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -4049,31 +4420,32 @@ ajv@^8.0.0, ajv@^8.9.0: json-schema-traverse "^1.0.0" require-from-string "^2.0.2" -algoliasearch-helper@^3.22.6: - version "3.25.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.25.0.tgz#15cc79ad7909db66b8bb5a5a9c38b40e3941fa2f" - integrity sha512-vQoK43U6HXA9/euCqLjvyNdM4G2Fiu/VFp4ae0Gau9sZeIKBPvUPnXfLYAe65Bg7PFuw03coeu5K6lTPSXRObw== +algoliasearch-helper@^3.26.0: + version "3.27.0" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.27.0.tgz#987c18b715ed0ecb303711feaa14335e5b8516e1" + integrity sha512-eNYchRerbsvk2doHOMfdS1/B6Tm70oGtu8mzQlrNzbCeQ8p1MjCW8t/BL6iZ5PD+cL5NNMgTMyMnmiXZ1sgmNw== dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^5.14.2, algoliasearch@^5.17.1: - version "5.25.0" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.25.0.tgz#7337b097deadeca0e6e985c0f8724abea189994f" - integrity sha512-n73BVorL4HIwKlfJKb4SEzAYkR3Buwfwbh+MYxg2mloFph2fFGV58E90QTzdbfzWrLn4HE5Czx/WTjI8fcHaMg== +algoliasearch@^5.37.0: + version "5.47.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.47.0.tgz#ed95e008bf37806d320419f7f9ad329dc893c6fc" + integrity sha512-AGtz2U7zOV4DlsuYV84tLp2tBbA7RPtLA44jbVH4TTpDcc1dIWmULjHSsunlhscbzDydnjuFlNhflR3nV4VJaQ== dependencies: - "@algolia/client-abtesting" "5.25.0" - "@algolia/client-analytics" "5.25.0" - "@algolia/client-common" "5.25.0" - "@algolia/client-insights" "5.25.0" - "@algolia/client-personalization" "5.25.0" - "@algolia/client-query-suggestions" "5.25.0" - "@algolia/client-search" "5.25.0" - "@algolia/ingestion" "1.25.0" - "@algolia/monitoring" "1.25.0" - "@algolia/recommend" "5.25.0" - "@algolia/requester-browser-xhr" "5.25.0" - "@algolia/requester-fetch" "5.25.0" - "@algolia/requester-node-http" "5.25.0" + "@algolia/abtesting" "1.13.0" + "@algolia/client-abtesting" "5.47.0" + "@algolia/client-analytics" "5.47.0" + "@algolia/client-common" "5.47.0" + "@algolia/client-insights" "5.47.0" + "@algolia/client-personalization" "5.47.0" + "@algolia/client-query-suggestions" "5.47.0" + "@algolia/client-search" "5.47.0" + "@algolia/ingestion" "1.47.0" + "@algolia/monitoring" "1.47.0" + "@algolia/recommend" "5.47.0" + "@algolia/requester-browser-xhr" "5.47.0" + "@algolia/requester-fetch" "5.47.0" + "@algolia/requester-node-http" "5.47.0" ansi-align@^3.0.1: version "3.0.1" @@ -4158,6 +4530,15 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +asn1js@^3.0.6: + version "3.0.7" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.7.tgz#15f1f2f59e60f80d5b43ef14047a294a969f824f" + integrity sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ== + dependencies: + pvtsutils "^1.3.6" + pvutils "^1.1.3" + tslib "^2.8.1" + astring@^1.8.0: version "1.9.0" resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" @@ -4175,15 +4556,14 @@ autoprefixer@^10.4.19: picocolors "^1.0.1" postcss-value-parser "^4.2.0" -autoprefixer@^10.4.21: - version "10.4.21" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" - integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== +autoprefixer@^10.4.23: + version "10.4.24" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.24.tgz#2c29595f3abd820a79976a609d0bf40eecf212fb" + integrity sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw== dependencies: - browserslist "^4.24.4" - caniuse-lite "^1.0.30001702" - fraction.js "^4.3.7" - normalize-range "^0.1.2" + browserslist "^4.28.1" + caniuse-lite "^1.0.30001766" + fraction.js "^5.3.4" picocolors "^1.1.1" postcss-value-parser "^4.2.0" @@ -4244,6 +4624,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +baseline-browser-mapping@^2.9.0: + version "2.9.19" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz#3e508c43c46d961eb4d7d2e5b8d1dd0f9ee4f488" + integrity sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg== + batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -4259,28 +4644,28 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== +body-parser@~1.20.3: + version "1.20.4" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f" + integrity sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA== dependencies: - bytes "3.1.2" + bytes "~3.1.2" content-type "~1.0.5" debug "2.6.9" depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" + destroy "~1.2.0" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + on-finished "~2.4.1" + qs "~6.14.0" + raw-body "~2.5.3" type-is "~1.6.18" - unpipe "1.0.0" + unpipe "~1.0.0" -bonjour-service@^1.0.11: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" - integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== +bonjour-service@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== dependencies: fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -4343,7 +4728,7 @@ browserslist@^4.0.0, browserslist@^4.21.10, browserslist@^4.23.0, browserslist@^ node-releases "^2.0.18" update-browserslist-db "^1.1.1" -browserslist@^4.24.4, browserslist@^4.24.5: +browserslist@^4.24.4: version "4.24.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.5.tgz#aa0f5b8560fe81fde84c6dcb38f759bafba0e11b" integrity sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw== @@ -4353,21 +4738,44 @@ browserslist@^4.24.4, browserslist@^4.24.5: node-releases "^2.0.19" update-browserslist-db "^1.1.3" +browserslist@^4.28.1: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== + dependencies: + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" + node-releases "^2.0.27" + update-browserslist-db "^1.2.0" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + dependencies: + run-applescript "^7.0.0" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== -bytes@3.1.2: +bytes@3.1.2, bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +bytestreamjs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bytestreamjs/-/bytestreamjs-2.0.1.tgz#a32947c7ce389a6fa11a09a9a563d0a45889535e" + integrity sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ== + cacheable-lookup@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" @@ -4386,7 +4794,15 @@ cacheable-request@^10.2.8: normalize-url "^8.0.0" responselike "^3.0.0" -call-bind@^1.0.5, call-bind@^1.0.7: +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== @@ -4397,6 +4813,14 @@ call-bind@^1.0.5, call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" +call-bound@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -4430,11 +4854,16 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001716: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669, caniuse-lite@^1.0.30001716: version "1.0.30001743" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001743.tgz" integrity sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw== +caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001766: + version "1.0.30001767" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001767.tgz#0279c498e862efb067938bba0a0aabafe8d0b730" + integrity sha512-34+zUAMhSH+r+9eKmYG+k2Rpt8XttfE4yXAjoZvkAPs15xcYQhyBYdalJ65BzivAvGRMViEjy6oKr/S91loekQ== + ccount@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" @@ -4531,7 +4960,7 @@ chevrotain@~11.0.3: "@chevrotain/utils" "11.0.3" lodash-es "4.17.21" -chokidar@^3.5.3: +chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -4556,7 +4985,7 @@ ci-info@^3.2.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== -clean-css@^5.2.2, clean-css@^5.3.2, clean-css@~5.3.2: +clean-css@^5.2.2, clean-css@^5.3.3, clean-css@~5.3.2: version "5.3.3" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== @@ -4675,24 +5104,24 @@ common-path-prefix@^3.0.0: resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== -compressible@~2.0.16: +compressible@~2.0.18: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== +compression@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" + integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" + bytes "3.1.2" + compressible "~2.0.18" debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" + negotiator "~0.6.4" + on-headers "~1.1.0" + safe-buffer "5.2.1" vary "~1.1.2" concat-map@0.0.1: @@ -4744,7 +5173,7 @@ content-disposition@0.5.2: resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== -content-disposition@0.5.4: +content-disposition@~0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -4761,20 +5190,15 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +cookie-signature@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== - -copy-text-to-clipboard@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz#0202b2d9bdae30a49a53f898626dcc3b49ad960b" - integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q== +cookie@~0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== copy-webpack-plugin@^11.0.0: version "11.0.0" @@ -4869,16 +5293,16 @@ css-declaration-sorter@^7.2.0: resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== -css-has-pseudo@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz#fb42e8de7371f2896961e1f6308f13c2c7019b72" - integrity sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ== +css-has-pseudo@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz#a5ee2daf5f70a2032f3cefdf1e36e7f52a243873" + integrity sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA== dependencies: "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" postcss-value-parser "^4.2.0" -css-loader@^6.8.1: +css-loader@^6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== @@ -4952,10 +5376,10 @@ css-what@^6.0.1, css-what@^6.1.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -cssdb@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.3.0.tgz#940becad497b8509ad822a28fb0cfe54c969ccfe" - integrity sha512-c7bmItIg38DgGjSwDPZOYF/2o0QU/sSgkWOMyl8votOfgFuyiFKWPesmCGEsrGLxEA9uL540cp8LdaGEjUGsZQ== +cssdb@^8.6.0: + version "8.7.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.7.1.tgz#f296bbedc39ace9edf0ed8fbbec57c3e117747cd" + integrity sha512-+F6LKx48RrdGOtE4DT5jz7Uo+VeyKXpK797FAevIkzjV8bMHz6xTO5F7gNDcRCHmPgD5jj2g6QCsY9zmVrh38A== cssesc@^3.0.0: version "3.0.0" @@ -5389,12 +5813,18 @@ deepmerge@^4.3.1: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== +default-browser-id@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.1.tgz#f7a7ccb8f5104bf8e0f71ba3b1ccfa5eafdb21e8" + integrity sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q== + +default-browser@^5.2.1: + version "5.5.0" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.5.0.tgz#2792e886f2422894545947cc80e1a444496c5976" + integrity sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw== dependencies: - execa "^5.0.0" + bundle-name "^4.1.0" + default-browser-id "^5.0.0" defer-to-connect@^2.0.1: version "2.0.1" @@ -5415,6 +5845,11 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -5431,7 +5866,7 @@ delaunator@5: dependencies: robust-predicates "^3.0.2" -depd@2.0.0: +depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -5446,7 +5881,7 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -destroy@1.2.0: +destroy@1.2.0, destroy@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== @@ -5569,6 +6004,15 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -5589,6 +6033,11 @@ electron-to-chromium@^1.5.149: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.159.tgz#b909c4a5dbd00674f18419199f71c945a199effe" integrity sha512-CEvHptWAMV5p6GJ0Lq8aheyvVbfzVrv5mmidu1D3pidoVNkB3tTBsTMVtPJ+rzRK5oV229mCLz9Zj/hNvU8GBA== +electron-to-chromium@^1.5.263: + version "1.5.286" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz#142be1ab5e1cd5044954db0e5898f60a4960384e" + integrity sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A== + electron-to-chromium@^1.5.41: version "1.5.45" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.45.tgz#fa592ce6a88b44d23acbc7453a2feab98996e6c9" @@ -5619,11 +6068,6 @@ emoticon@^4.0.1: resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.1.0.tgz#d5a156868ee173095627a33de3f1e914c3dde79e" integrity sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - encodeurl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" @@ -5661,6 +6105,11 @@ es-define-property@^1.0.0: dependencies: get-intrinsic "^1.2.4" +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" @@ -5671,6 +6120,13 @@ es-module-lexer@^1.2.1: resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + esast-util-from-estree@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz#8d1cfb51ad534d2f159dc250e604f3478a79f1ad" @@ -5845,7 +6301,7 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@5.1.1, execa@^5.0.0: +execa@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -5860,39 +6316,39 @@ execa@5.1.1, execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -express@^4.17.3: - version "4.21.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281" - integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ== +express@^4.22.1: + version "4.22.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.22.1.tgz#1de23a09745a4fffdb39247b344bb5eaff382069" + integrity sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" + body-parser "~1.20.3" + content-disposition "~0.5.4" content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" + cookie "~0.7.1" + cookie-signature "~1.0.6" debug "2.6.9" depd "2.0.0" encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" + finalhandler "~1.3.1" + fresh "~0.5.2" + http-errors "~2.0.0" merge-descriptors "1.0.3" methods "~1.1.2" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.10" + path-to-regexp "~0.1.12" proxy-addr "~2.0.7" - qs "6.13.0" + qs "~6.14.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" + send "~0.19.0" + serve-static "~1.16.2" setprototypeof "1.2.0" - statuses "2.0.1" + statuses "~2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -5990,17 +6446,17 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== +finalhandler@~1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" + integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== dependencies: debug "2.6.9" encodeurl "~2.0.0" escape-html "~1.0.3" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - statuses "2.0.1" + statuses "~2.0.2" unpipe "~1.0.0" find-cache-dir@^4.0.0: @@ -6049,7 +6505,12 @@ fraction.js@^4.3.7: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== -fresh@0.5.2: +fraction.js@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-5.3.4.tgz#8c0fcc6a9908262df4ed197427bdeef563e0699a" + integrity sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ== + +fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== @@ -6063,16 +6524,6 @@ fs-extra@^11.1.1, fs-extra@^11.2.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-monkey@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" - integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -6099,11 +6550,35 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: has-symbols "^1.0.3" hasown "^2.0.0" +get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -6128,23 +6603,16 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" +glob-to-regex.js@^1.0.0, glob-to-regex.js@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz#2b323728271d133830850e32311f40766c5f6413" + integrity sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ== + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-dirs@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" @@ -6192,6 +6660,11 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + got@^12.1.0: version "12.6.1" resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" @@ -6273,6 +6746,11 @@ has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + has-yarn@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" @@ -6433,11 +6911,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^2.3.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" - integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== - html-escaper@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -6520,17 +6993,6 @@ http-deceiver@^1.2.7: resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -6541,15 +7003,26 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" +http-errors@~2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== + dependencies: + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== -http-proxy-middleware@^2.0.3: - version "2.0.7" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6" - integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== +http-proxy-middleware@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" @@ -6579,12 +7052,10 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" +hyperdyperid@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" + integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== iconv-lite@0.6: version "0.6.3" @@ -6593,6 +7064,13 @@ iconv-lite@0.6: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +iconv-lite@~0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" @@ -6636,24 +7114,16 @@ infima@0.2.0-alpha.45: resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.45.tgz#542aab5a249274d81679631b492973dd2c1e7466" integrity sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw== -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== +inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -6696,10 +7166,10 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== +ipaddr.js@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.3.0.tgz#71dce70e1398122208996d1c22f2ba46a24b1abc" + integrity sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg== is-alphabetical@^2.0.0: version "2.0.1" @@ -6750,6 +7220,11 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + is-extendable@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -6777,6 +7252,13 @@ is-hexadecimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + is-installed-globally@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -6785,6 +7267,11 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" +is-network-error@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.3.0.tgz#2ce62cbca444abd506f8a900f39d20b898d37512" + integrity sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw== + is-npm@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" @@ -6849,6 +7336,13 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + is-yarn-global@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" @@ -7032,13 +7526,13 @@ latest-version@^7.0.0: dependencies: package-json "^8.1.0" -launch-editor@^2.6.0: - version "2.9.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047" - integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w== +launch-editor@^2.6.1: + version "2.12.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.12.0.tgz#cc740f4e0263a6b62ead2485f9896e545321f817" + integrity sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg== dependencies: - picocolors "^1.0.0" - shell-quote "^1.8.1" + picocolors "^1.1.1" + shell-quote "^1.8.3" layout-base@^1.0.0: version "1.0.2" @@ -7173,6 +7667,11 @@ marked@^15.0.7: resolved "https://registry.yarnpkg.com/marked/-/marked-15.0.12.tgz#30722c7346e12d0a2d0207ab9b0c4f0102d86c4e" integrity sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA== +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + mdast-util-directive@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz#3fb1764e705bbdf0afb0d3f889e4404c3e82561f" @@ -7404,12 +7903,25 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== +memfs@^4.43.1: + version "4.56.10" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.56.10.tgz#eaf2f6556db10f91f1e9ad9f1274fd988c646202" + integrity sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w== dependencies: - fs-monkey "^1.0.4" + "@jsonjoy.com/fs-core" "4.56.10" + "@jsonjoy.com/fs-fsa" "4.56.10" + "@jsonjoy.com/fs-node" "4.56.10" + "@jsonjoy.com/fs-node-builtins" "4.56.10" + "@jsonjoy.com/fs-node-to-fsa" "4.56.10" + "@jsonjoy.com/fs-node-utils" "4.56.10" + "@jsonjoy.com/fs-print" "4.56.10" + "@jsonjoy.com/fs-snapshot" "4.56.10" + "@jsonjoy.com/json-pack" "^1.11.0" + "@jsonjoy.com/util" "^1.9.0" + glob-to-regex.js "^1.0.1" + thingies "^2.5.0" + tree-dump "^1.0.3" + tslib "^2.0.0" merge-descriptors@1.0.3: version "1.0.3" @@ -7893,6 +8405,11 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== +mime-db@^1.54.0: + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + mime-db@~1.33.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" @@ -7905,13 +8422,20 @@ mime-types@2.1.18: dependencies: mime-db "~1.33.0" -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" +mime-types@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab" + integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== + dependencies: + mime-db "^1.54.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -7932,10 +8456,10 @@ mimic-response@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== -mini-css-extract-plugin@^2.9.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" - integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== +mini-css-extract-plugin@^2.9.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz#d801a1f388f8fac7333c01b7c15c9222c811def4" + integrity sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g== dependencies: schema-utils "^4.0.0" tapable "^2.2.1" @@ -7945,7 +8469,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.1.2, minimatch@^3.1.1: +minimatch@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -7990,6 +8514,11 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== + nanoid@^3.3.7: version "3.3.8" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" @@ -8000,6 +8529,11 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" @@ -8023,7 +8557,7 @@ node-emoji@^2.1.0: emojilib "^2.4.0" skin-tone "^2.0.0" -node-forge@^1, node-forge@^1.3.2: +node-forge@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.2.tgz#d0d2659a26eef778bf84d73e7f55c08144ee7750" integrity sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw== @@ -8038,6 +8572,11 @@ node-releases@^2.0.19: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== +node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -8085,10 +8624,10 @@ object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-keys@^1.1.1: version "1.1.1" @@ -8110,24 +8649,17 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1: +on-finished@^2.4.1, on-finished@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" +on-headers@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" + integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== onetime@^5.1.2: version "5.1.2" @@ -8136,7 +8668,17 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^8.0.9, open@^8.4.0: +open@^10.0.3: + version "10.2.0" + resolved "https://registry.yarnpkg.com/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c" + integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== + dependencies: + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + wsl-utils "^0.1.0" + +open@^8.4.0: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== @@ -8189,12 +8731,13 @@ p-queue@^6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== +p-retry@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" + integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== dependencies: - "@types/retry" "0.12.0" + "@types/retry" "0.12.2" + is-network-error "^1.0.0" retry "^0.13.1" p-timeout@^3.2.0: @@ -8301,11 +8844,6 @@ path-exists@^5.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - path-is-inside@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" @@ -8321,11 +8859,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" - integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== - path-to-regexp@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.3.0.tgz#f7f31d32e8518c2660862b644414b6d5c63a611b" @@ -8338,6 +8871,11 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +path-to-regexp@~0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -8383,6 +8921,18 @@ pkg-types@^2.0.1: exsolve "^1.0.1" pathe "^2.0.3" +pkijs@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/pkijs/-/pkijs-3.3.3.tgz#b3f04d7b2eaacb05c81675f882be374e591626ec" + integrity sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw== + dependencies: + "@noble/hashes" "1.4.0" + asn1js "^3.0.6" + bytestreamjs "^2.0.1" + pvtsutils "^1.3.6" + pvutils "^1.1.3" + tslib "^2.8.1" + points-on-curve@0.2.0, points-on-curve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1" @@ -8418,15 +8968,15 @@ postcss-clamp@^4.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-color-functional-notation@^7.0.10: - version "7.0.10" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.10.tgz#f1e9c3e4371889dcdfeabfa8515464fd8338cedc" - integrity sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA== +postcss-color-functional-notation@^7.0.12: + version "7.0.12" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz#9a3df2296889e629fde18b873bb1f50a4ecf4b83" + integrity sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-color-hex-alpha@^10.0.0: @@ -8473,10 +9023,10 @@ postcss-custom-media@^11.0.6: "@csstools/css-tokenizer" "^3.0.4" "@csstools/media-query-list-parser" "^4.0.3" -postcss-custom-properties@^14.0.5: - version "14.0.5" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-14.0.5.tgz#a180444de695f6e11ee2390be93ff6537663e86c" - integrity sha512-UWf/vhMapZatv+zOuqlfLmYXeOhhHLh8U8HAKGI2VJ00xLRYoAJh4xv8iX6FB6+TLXeDnm0DBLMi00E0hodbQw== +postcss-custom-properties@^14.0.6: + version "14.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz#1af73a650bf115ba052cf915287c9982825fc90e" + integrity sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ== dependencies: "@csstools/cascade-layer-name-parser" "^2.0.5" "@csstools/css-parser-algorithms" "^3.0.5" @@ -8528,12 +9078,12 @@ postcss-discard-unused@^6.0.5: dependencies: postcss-selector-parser "^6.0.16" -postcss-double-position-gradients@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.2.tgz#185f8eab2db9cf4e34be69b5706c905895bb52ae" - integrity sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q== +postcss-double-position-gradients@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz#b482d08b5ced092b393eb297d07976ab482d4cad" + integrity sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g== dependencies: - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" @@ -8569,18 +9119,18 @@ postcss-image-set-function@^7.0.0: "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -postcss-lab-function@^7.0.10: - version "7.0.10" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.10.tgz#0537bd7245b935fc133298c8896bcbd160540cae" - integrity sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ== +postcss-lab-function@^7.0.12: + version "7.0.12" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz#eb555ac542607730eb0a87555074e4a5c6eef6e4" + integrity sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w== dependencies: - "@csstools/css-color-parser" "^3.0.10" + "@csstools/css-color-parser" "^3.1.0" "@csstools/css-parser-algorithms" "^3.0.5" "@csstools/css-tokenizer" "^3.0.4" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" "@csstools/utilities" "^2.0.0" -postcss-loader@^7.3.3: +postcss-loader@^7.3.4: version "7.3.4" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== @@ -8682,12 +9232,12 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nesting@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.1.tgz#c405796d7245a3e4c267a9956cacfe9670b5d43e" - integrity sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ== +postcss-nesting@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.2.tgz#fde0d4df772b76d03b52eccc84372e8d1ca1402e" + integrity sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ== dependencies: - "@csstools/selector-resolve-nested" "^3.0.0" + "@csstools/selector-resolve-nested" "^3.1.0" "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" @@ -8785,25 +9335,28 @@ postcss-place@^10.0.0: dependencies: postcss-value-parser "^4.2.0" -postcss-preset-env@^10.1.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.2.0.tgz#ea95a6fc70efb1a26f81e5cf0ccdb321a3439b6e" - integrity sha512-cl13sPBbSqo1Q7Ryb19oT5NZO5IHFolRbIMdgDq4f9w1MHYiL6uZS7uSsjXJ1KzRIcX5BMjEeyxmAevVXENa3Q== +postcss-preset-env@^10.2.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz#df30cfc54e90af2dcff5f94104e6f272359c9f65" + integrity sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g== dependencies: - "@csstools/postcss-cascade-layers" "^5.0.1" - "@csstools/postcss-color-function" "^4.0.10" - "@csstools/postcss-color-mix-function" "^3.0.10" - "@csstools/postcss-color-mix-variadic-function-arguments" "^1.0.0" - "@csstools/postcss-content-alt-text" "^2.0.6" + "@csstools/postcss-alpha-function" "^1.0.1" + "@csstools/postcss-cascade-layers" "^5.0.2" + "@csstools/postcss-color-function" "^4.0.12" + "@csstools/postcss-color-function-display-p3-linear" "^1.0.1" + "@csstools/postcss-color-mix-function" "^3.0.12" + "@csstools/postcss-color-mix-variadic-function-arguments" "^1.0.2" + "@csstools/postcss-content-alt-text" "^2.0.8" + "@csstools/postcss-contrast-color-function" "^2.0.12" "@csstools/postcss-exponential-functions" "^2.0.9" "@csstools/postcss-font-format-keywords" "^4.0.0" - "@csstools/postcss-gamut-mapping" "^2.0.10" - "@csstools/postcss-gradients-interpolation-method" "^5.0.10" - "@csstools/postcss-hwb-function" "^4.0.10" - "@csstools/postcss-ic-unit" "^4.0.2" + "@csstools/postcss-gamut-mapping" "^2.0.11" + "@csstools/postcss-gradients-interpolation-method" "^5.0.12" + "@csstools/postcss-hwb-function" "^4.0.12" + "@csstools/postcss-ic-unit" "^4.0.4" "@csstools/postcss-initial" "^2.0.1" - "@csstools/postcss-is-pseudo-class" "^5.0.1" - "@csstools/postcss-light-dark-function" "^2.0.9" + "@csstools/postcss-is-pseudo-class" "^5.0.3" + "@csstools/postcss-light-dark-function" "^2.0.11" "@csstools/postcss-logical-float-and-clear" "^3.0.0" "@csstools/postcss-logical-overflow" "^2.0.0" "@csstools/postcss-logical-overscroll-behavior" "^2.0.0" @@ -8812,41 +9365,45 @@ postcss-preset-env@^10.1.0: "@csstools/postcss-media-minmax" "^2.0.9" "@csstools/postcss-media-queries-aspect-ratio-number-values" "^3.0.5" "@csstools/postcss-nested-calc" "^4.0.0" - "@csstools/postcss-normalize-display-values" "^4.0.0" - "@csstools/postcss-oklab-function" "^4.0.10" - "@csstools/postcss-progressive-custom-properties" "^4.1.0" + "@csstools/postcss-normalize-display-values" "^4.0.1" + "@csstools/postcss-oklab-function" "^4.0.12" + "@csstools/postcss-position-area-property" "^1.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/postcss-property-rule-prelude-list" "^1.0.0" "@csstools/postcss-random-function" "^2.0.1" - "@csstools/postcss-relative-color-syntax" "^3.0.10" + "@csstools/postcss-relative-color-syntax" "^3.0.12" "@csstools/postcss-scope-pseudo-class" "^4.0.1" "@csstools/postcss-sign-functions" "^1.1.4" "@csstools/postcss-stepped-value-functions" "^4.0.9" - "@csstools/postcss-text-decoration-shorthand" "^4.0.2" + "@csstools/postcss-syntax-descriptor-syntax-production" "^1.0.1" + "@csstools/postcss-system-ui-font-family" "^1.0.0" + "@csstools/postcss-text-decoration-shorthand" "^4.0.3" "@csstools/postcss-trigonometric-functions" "^4.0.9" "@csstools/postcss-unset-value" "^4.0.0" - autoprefixer "^10.4.21" - browserslist "^4.24.5" + autoprefixer "^10.4.23" + browserslist "^4.28.1" css-blank-pseudo "^7.0.1" - css-has-pseudo "^7.0.2" + css-has-pseudo "^7.0.3" css-prefers-color-scheme "^10.0.0" - cssdb "^8.3.0" + cssdb "^8.6.0" postcss-attribute-case-insensitive "^7.0.1" postcss-clamp "^4.1.0" - postcss-color-functional-notation "^7.0.10" + postcss-color-functional-notation "^7.0.12" postcss-color-hex-alpha "^10.0.0" postcss-color-rebeccapurple "^10.0.0" postcss-custom-media "^11.0.6" - postcss-custom-properties "^14.0.5" + postcss-custom-properties "^14.0.6" postcss-custom-selectors "^8.0.5" postcss-dir-pseudo-class "^9.0.1" - postcss-double-position-gradients "^6.0.2" + postcss-double-position-gradients "^6.0.4" postcss-focus-visible "^10.0.1" postcss-focus-within "^9.0.1" postcss-font-variant "^5.0.0" postcss-gap-properties "^6.0.0" postcss-image-set-function "^7.0.0" - postcss-lab-function "^7.0.10" + postcss-lab-function "^7.0.12" postcss-logical "^8.1.0" - postcss-nesting "^13.0.1" + postcss-nesting "^13.0.2" postcss-opacity-percentage "^3.0.0" postcss-overflow-shorthand "^6.0.0" postcss-page-break "^3.0.4" @@ -8944,7 +9501,7 @@ postcss-zindex@^6.0.2: resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-6.0.2.tgz#e498304b83a8b165755f53db40e2ea65a99b56e1" integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== -postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38: +postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.33: version "8.4.47" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== @@ -8953,6 +9510,15 @@ postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4 picocolors "^1.1.0" source-map-js "^1.2.1" +postcss@^8.5.4: + version "8.5.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== + dependencies: + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" + pretty-error@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" @@ -9031,12 +9597,24 @@ pupa@^3.1.0: dependencies: escape-goat "^4.0.0" -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== +pvtsutils@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" + integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== dependencies: - side-channel "^1.0.6" + tslib "^2.8.1" + +pvutils@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" + integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== + +qs@~6.14.0: + version "6.14.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" + integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== + dependencies: + side-channel "^1.1.0" quansync@^0.2.8: version "0.2.10" @@ -9070,15 +9648,15 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@~2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" rc@1.2.8: version "1.2.8" @@ -9249,6 +9827,11 @@ recma-stringify@^1.0.0: unified "^11.0.0" vfile "^6.0.0" +reflect-metadata@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== + regenerate-unicode-properties@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" @@ -9506,13 +10089,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - robust-predicates@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" @@ -9538,6 +10114,11 @@ rtlcss@^4.1.0: postcss "^8.4.21" strip-json-comments "^3.1.1" +run-applescript@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.1.0.tgz#2e9e54c4664ec3106c5b5630e249d3d6595c4911" + integrity sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -9550,16 +10131,16 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -9601,6 +10182,16 @@ schema-utils@^4.0.0, schema-utils@^4.0.1: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" +schema-utils@^4.2.0: + version "4.3.3" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" + integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + schema-utils@^4.3.0, schema-utils@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" @@ -9624,13 +10215,13 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^2.1.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== +selfsigned@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-5.5.0.tgz#4c9ab7c7c9f35f18fb6a9882c253eb0e6bd6557b" + integrity sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew== dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" + "@peculiar/x509" "^1.14.2" + pkijs "^3.3.3" semver-diff@^4.0.0: version "4.0.0" @@ -9649,24 +10240,24 @@ semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== +send@~0.19.0, send@~0.19.1: + version "0.19.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29" + integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== dependencies: debug "2.6.9" depd "2.0.0" destroy "1.2.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" + fresh "~0.5.2" + http-errors "~2.0.1" mime "1.6.0" ms "2.1.3" - on-finished "2.4.1" + on-finished "~2.4.1" range-parser "~1.2.1" - statuses "2.0.1" + statuses "~2.0.2" serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: version "6.0.2" @@ -9701,15 +10292,15 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== +serve-static@~1.16.2: + version "1.16.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" + integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== dependencies: encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.19.0" + send "~0.19.1" set-function-length@^1.2.1: version "1.2.2" @@ -9728,7 +10319,7 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.2.0: +setprototypeof@1.2.0, setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== @@ -9757,20 +10348,50 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== +shell-quote@^1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== -side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== dependencies: - call-bind "^1.0.7" es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" @@ -9901,16 +10522,16 @@ srcset@^4.0.0: resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +statuses@~2.0.1, statuses@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + std-env@^3.7.0: version "3.9.0" resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1" @@ -10117,6 +10738,11 @@ terser@^5.31.1: commander "^2.20.0" source-map-support "~0.5.20" +thingies@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.5.0.tgz#5f7b882c933b85989f8466b528a6247a6881e04f" + integrity sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw== + thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -10149,7 +10775,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: +toidentifier@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== @@ -10159,6 +10785,11 @@ totalist@^3.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== +tree-dump@^1.0.3, tree-dump@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.1.0.tgz#ab29129169dc46004414f5a9d4a3c6e89f13e8a4" + integrity sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA== + trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" @@ -10174,11 +10805,28 @@ ts-dedent@^2.2.0: resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== +tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tslib@^2.0.3, tslib@^2.6.0: version "2.8.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.0.tgz#d124c86c3c05a40a91e6fdea4021bd31d377971b" integrity sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA== +tsyringe@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/tsyringe/-/tsyringe-4.10.0.tgz#d0c95815d584464214060285eaaadd94aa03299c" + integrity sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw== + dependencies: + tslib "^1.9.3" + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -10322,7 +10970,7 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -10343,6 +10991,14 @@ update-browserslist-db@^1.1.3: escalade "^3.2.0" picocolors "^1.1.1" +update-browserslist-db@^1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + update-notifier@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" @@ -10516,52 +11172,51 @@ webpack-bundle-analyzer@^4.10.2: sirv "^2.0.3" ws "^7.3.1" -webpack-dev-middleware@^5.3.4: - version "5.3.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" - integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== +webpack-dev-middleware@^7.4.2: + version "7.4.5" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz#d4e8720aa29cb03bc158084a94edb4594e3b7ac0" + integrity sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA== dependencies: colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" + memfs "^4.43.1" + mime-types "^3.0.1" + on-finished "^2.4.1" range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.15.2: - version "4.15.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" - integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== +webpack-dev-server@^5.2.2: + version "5.2.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz#7f36a78be7ac88833fd87757edee31469a9e47d3" + integrity sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ== dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.25" + "@types/express-serve-static-core" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" + bonjour-service "^1.2.1" + chokidar "^3.6.0" colorette "^2.0.10" - compression "^1.7.4" + compression "^1.8.1" connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" + express "^4.22.1" graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" + http-proxy-middleware "^2.0.9" + ipaddr.js "^2.1.0" + launch-editor "^2.6.1" + open "^10.0.3" + p-retry "^6.2.0" + schema-utils "^4.2.0" + selfsigned "^5.5.0" serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^5.3.4" - ws "^8.13.0" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" webpack-merge@^5.9.0: version "5.10.0" @@ -10710,11 +11365,6 @@ wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: string-width "^5.0.1" strip-ansi "^7.0.1" -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -10730,10 +11380,17 @@ ws@^7.3.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== -ws@^8.13.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== +ws@^8.18.0: + version "8.19.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" + integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== + +wsl-utils@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/wsl-utils/-/wsl-utils-0.1.0.tgz#8783d4df671d4d50365be2ee4c71917a0557baab" + integrity sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw== + dependencies: + is-wsl "^3.1.0" xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: version "5.1.0" From 96568692cd23eebf7b181fc709c892a8b5c3275d Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 15:36:09 +0100 Subject: [PATCH 05/36] Update .gitignore Signed-off-by: yjkellyjoo --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 3ced74e..5f39356 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,8 @@ yarn-debug.log* yarn-error.log* .idea +.vscode + +# AI configuration files +.omc +.sisyphus From ebfe756e2b22f4a7b13e29c240a78681542f00b7 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 6 Feb 2026 17:44:47 +0100 Subject: [PATCH 06/36] Add KaTeX support for mathematical notation Signed-off-by: yjkellyjoo --- docusaurus.config.ts | 4 ++ package.json | 5 +- src/css/custom.css | 2 + yarn.lock | 156 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 166 insertions(+), 1 deletion(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 92658d7..87cdda0 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -1,5 +1,7 @@ import type * as Preset from '@docusaurus/preset-classic'; import type { Config } from '@docusaurus/types'; +import remarkMath from 'remark-math'; +import rehypeKatex from 'rehype-katex'; const config: Config = { title: 'Status Network Documentation', @@ -42,6 +44,8 @@ const config: Config = { editUrl: 'https://github.com/status-im/docs.status.network/tree/develop', routeBasePath: '/', showLastUpdateTime: true, + remarkPlugins: [remarkMath], + rehypePlugins: [rehypeKatex], }, blog: false, pages: false, diff --git a/package.json b/package.json index a1bbd13..42e644c 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,12 @@ "@docusaurus/theme-mermaid": "^3.9.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", + "katex": "^0.16.28", "prism-react-renderer": "^2.3.0", "react": "^18.0.0", - "react-dom": "^18.0.0" + "react-dom": "^18.0.0", + "rehype-katex": "^7.0.1", + "remark-math": "^6.0.0" }, "devDependencies": { "@docusaurus/module-type-aliases": "^3.9.0", diff --git a/src/css/custom.css b/src/css/custom.css index fd7ac4b..91832c2 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -1,3 +1,5 @@ +@import url('katex/dist/katex.min.css'); + @font-face { font-family: 'Inter'; font-style: normal; diff --git a/yarn.lock b/yarn.lock index 56809e5..1783791 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3894,6 +3894,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== +"@types/katex@^0.16.0": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.16.8.tgz#80bf3e0814d09a846412a0b0f140946b79c36c3e" + integrity sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg== + "@types/mdast@^4.0.0", "@types/mdast@^4.0.2": version "4.0.4" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" @@ -6763,6 +6768,37 @@ hasown@^2.0.0, hasown@^2.0.2: dependencies: function-bind "^1.1.2" +hast-util-from-dom@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz#c3c92fbd8d4e1c1625edeb3a773952b9e4ad64a8" + integrity sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q== + dependencies: + "@types/hast" "^3.0.0" + hastscript "^9.0.0" + web-namespaces "^2.0.0" + +hast-util-from-html-isomorphic@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz#b31baee386a899a2472326a3c5692f29f86d1d3c" + integrity sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw== + dependencies: + "@types/hast" "^3.0.0" + hast-util-from-dom "^5.0.0" + hast-util-from-html "^2.0.0" + unist-util-remove-position "^5.0.0" + +hast-util-from-html@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz#485c74785358beb80c4ba6346299311ac4c49c82" + integrity sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw== + dependencies: + "@types/hast" "^3.0.0" + devlop "^1.1.0" + hast-util-from-parse5 "^8.0.0" + parse5 "^7.0.0" + vfile "^6.0.0" + vfile-message "^4.0.0" + hast-util-from-parse5@^8.0.0: version "8.0.1" resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz#654a5676a41211e14ee80d1b1758c399a0327651" @@ -6777,6 +6813,13 @@ hast-util-from-parse5@^8.0.0: vfile-location "^5.0.0" web-namespaces "^2.0.0" +hast-util-is-element@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz#6e31a6532c217e5b533848c7e52c9d9369ca0932" + integrity sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g== + dependencies: + "@types/hast" "^3.0.0" + hast-util-parse-selector@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" @@ -6859,6 +6902,16 @@ hast-util-to-parse5@^8.0.0: web-namespaces "^2.0.0" zwitch "^2.0.0" +hast-util-to-text@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz#57b676931e71bf9cb852453678495b3080bfae3e" + integrity sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + hast-util-is-element "^3.0.0" + unist-util-find-after "^5.0.0" + hast-util-whitespace@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" @@ -6877,6 +6930,17 @@ hastscript@^8.0.0: property-information "^6.0.0" space-separated-tokens "^2.0.0" +hastscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-9.0.1.tgz#dbc84bef6051d40084342c229c451cd9dc567dff" + integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -7474,6 +7538,13 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +katex@^0.16.0, katex@^0.16.28: + version "0.16.28" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.28.tgz#64068425b5a29b41b136aae0d51cbb2c71d64c39" + integrity sha512-YHzO7721WbmAL6Ov1uzN/l5mY5WWWhJBSW+jq4tkfZfsxmo1hu6frS0EOswvjBUnWE6NtjEs48SFn5CQESRLZg== + dependencies: + commander "^8.3.0" + katex@^0.16.9: version "0.16.22" resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.22.tgz#d2b3d66464b1e6d69e6463b28a86ced5a02c5ccd" @@ -7791,6 +7862,19 @@ mdast-util-gfm@^3.0.0: mdast-util-gfm-task-list-item "^2.0.0" mdast-util-to-markdown "^2.0.0" +mdast-util-math@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-math/-/mdast-util-math-3.0.0.tgz#8d79dd3baf8ab8ac781f62b8853768190b9a00b0" + integrity sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + longest-streak "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.1.0" + unist-util-remove-position "^5.0.0" + mdast-util-mdx-expression@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz#43f0abac9adc756e2086f63822a38c8d3c3a5096" @@ -7881,6 +7965,21 @@ mdast-util-to-markdown@^2.0.0: unist-util-visit "^5.0.0" zwitch "^2.0.0" +mdast-util-to-markdown@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz#f910ffe60897f04bb4b7e7ee434486f76288361b" + integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + mdast-util-to-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" @@ -8093,6 +8192,19 @@ micromark-extension-gfm@^3.0.0: micromark-util-combine-extensions "^2.0.0" micromark-util-types "^2.0.0" +micromark-extension-math@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz#c42ee3b1dd5a9a03584e83dd8f08e3de510212c1" + integrity sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg== + dependencies: + "@types/katex" "^0.16.0" + devlop "^1.0.0" + katex "^0.16.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + micromark-extension-mdx-expression@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz#1407b9ce69916cf5e03a196ad9586889df25302a" @@ -9572,6 +9684,11 @@ property-information@^6.0.0: resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== +property-information@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" + integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -9913,6 +10030,19 @@ regjsparser@^0.12.0: dependencies: jsesc "~3.0.2" +rehype-katex@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/rehype-katex/-/rehype-katex-7.0.1.tgz#832e6d7af2744a228981d1b0fe89483a9e7c93a1" + integrity sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA== + dependencies: + "@types/hast" "^3.0.0" + "@types/katex" "^0.16.0" + hast-util-from-html-isomorphic "^2.0.0" + hast-util-to-text "^4.0.0" + katex "^0.16.0" + unist-util-visit-parents "^6.0.0" + vfile "^6.0.0" + rehype-raw@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-7.0.0.tgz#59d7348fd5dbef3807bbaa1d443efd2dd85ecee4" @@ -9979,6 +10109,16 @@ remark-gfm@^4.0.0: remark-stringify "^11.0.0" unified "^11.0.0" +remark-math@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-6.0.0.tgz#0acdf74675f1c195fea6efffa78582f7ed7fc0d7" + integrity sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-math "^3.0.0" + micromark-extension-math "^3.0.0" + unified "^11.0.0" + remark-mdx@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.0.tgz#f979be729ecb35318fa48e2135c1169607a78343" @@ -10920,6 +11060,14 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" +unist-util-find-after@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz#3fccc1b086b56f34c8b798e1ff90b5c54468e896" + integrity sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-is@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" @@ -10941,6 +11089,14 @@ unist-util-position@^5.0.0: dependencies: "@types/unist" "^3.0.0" +unist-util-remove-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz#fea68a25658409c9460408bc6b4991b965b52163" + integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== + dependencies: + "@types/unist" "^3.0.0" + unist-util-visit "^5.0.0" + unist-util-stringify-position@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" From fa945ebae1d93cd9ac6b3d6ca1ae46627d051142 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 6 Feb 2026 17:47:40 +0100 Subject: [PATCH 07/36] Update Docusaurus configs and sidebar structure for RPC docs - Introduced a new 'RPC' category in the sidebar, moving 'Running an RPC node' to this category. - Added a new 'DEPLOYING CONTRACTS' category in the sidebar with relevant documentation. - Modified redirect path for the 'Running an RPC' tutorial to reflect new structure. Signed-off-by: yjkellyjoo --- docs/build-for-karma/{ => rpc}/running-an-rpc.md | 5 ++--- docs/overview/tokenomics/karmic-tokenomics.md | 5 +---- docusaurus.config.ts | 2 +- sidebars.ts | 11 +++++++++-- 4 files changed, 13 insertions(+), 10 deletions(-) rename docs/build-for-karma/{ => rpc}/running-an-rpc.md (99%) diff --git a/docs/build-for-karma/running-an-rpc.md b/docs/build-for-karma/rpc/running-an-rpc.md similarity index 99% rename from docs/build-for-karma/running-an-rpc.md rename to docs/build-for-karma/rpc/running-an-rpc.md index fff6983..a2cf44c 100644 --- a/docs/build-for-karma/running-an-rpc.md +++ b/docs/build-for-karma/rpc/running-an-rpc.md @@ -4,8 +4,6 @@ description: Complete guide to setting up and running your own RPC node for Stat keywords: [RPC node, Status Network RPC, blockchain node, WebSocket, wss, self-hosted RPC, network infrastructure, Status L2 RPC tools] --- -# Running Your Own RPC Node - This tutorial will guide you through the process of setting up and running your own Remote Procedure Call (RPC) node for Status Network. By running your own RPC node, you can gain greater control over your interactions with the Status Network, enhance privacy, and reduce reliance on third-party services. ## Getting Started @@ -13,6 +11,7 @@ This tutorial will guide you through the process of setting up and running your The [Status Network RPC Tools repository](https://github.com/status-im/status-l2-rpc-tools) provides all the necessary tooling, genesis files, and setup scripts to run your own RPC node. ### Complete Setup Guide + For detailed setup instructions, prerequisites, system requirements, and step-by-step guidance, please refer to the [**official README**](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md) in the repository. ## Node Options @@ -25,6 +24,7 @@ The setup script provides two node implementations to choose from: You can run either one or both simultaneously depending on your needs. ## Verifying Your Node + In the examples below, replace `` with `8545` if using Besu, or `8445` if using Geth. ### Basic Verification @@ -87,7 +87,6 @@ ws://localhost:8446 # Geth {"jsonrpc":"2.0","method":"eth_unsubscribe","params":["0x..."],"id":1} ``` - ## Advanced Features ### Batch Requests diff --git a/docs/overview/tokenomics/karmic-tokenomics.md b/docs/overview/tokenomics/karmic-tokenomics.md index 9c85fcc..a951390 100644 --- a/docs/overview/tokenomics/karmic-tokenomics.md +++ b/docs/overview/tokenomics/karmic-tokenomics.md @@ -4,8 +4,6 @@ description: Explore Status Network's Karma system, a non-transferable governanc keywords: [Karma token, Karmic tokenomics, Status Network governance, non-transferable token, governance power, staking rewards, contribution rewards] --- -# Karmic Tokenomics - In some Eastern traditions, Karma represents the principle that one's past actions shape their future state. Similarly, on Status Network, every positive action and contribution accumulates Karma, granting greater influence over the network's funding and incentives. Karma ($KARMA) is a non-transferable governance token that rewards staking, bridging, providing liquidity, and building. The more a user or an app contributes to the L2 in liquidity or activity, the more voting power they earn over funding allocations, liquidity incentives, and network roadmap and parameters. ## How Karma is Earned @@ -40,7 +38,6 @@ The initialization parameters of Karma minting allocations will be announced soo - **Liquid Grants for Votes**: In the future, apps, protocols, and liquidity providers will be able to offer liquid grants to Karma holders as voting incentives. - ## Flywheel Effect 1. Users bridge yield-bearing assets, earning Karma and increasing funding for apps and liquidity providers. @@ -51,4 +48,4 @@ The initialization parameters of Karma minting allocations will be announced soo 4. Higher native yield and fees attract more TVL as users bridge additional yield-bearing assets. -As TVL and adoption grow, so do funding opportunities, reinforcing network sustainability. \ No newline at end of file +As TVL and adoption grow, so do funding opportunities, reinforcing network sustainability. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 87cdda0..c2de18f 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -233,7 +233,7 @@ const config: Config = { }, { from: '/tutorials/running-an-rpc', - to: '/build-for-karma/running-an-rpc', + to: '/build-for-karma/rpc/running-an-rpc', }, // Old root-level paths to overview { diff --git a/sidebars.ts b/sidebars.ts index 5c50210..f1c3c3e 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -131,9 +131,11 @@ const sidebars: SidebarsConfig = { id: 'build-for-karma/index', label: '🛠 Build for Karma', }, + ], + }, { type: 'category', - label: '🚀 Deploying a Smart Contract', + label: 'DEPLOYING CONTRACTS', collapsed: false, items: [ { @@ -158,9 +160,14 @@ const sidebars: SidebarsConfig = { }, ], }, + { + type: 'category', + label: 'RPC', + collapsed: false, + items: [ { type: 'doc', - id: 'build-for-karma/running-an-rpc', + id: 'build-for-karma/rpc/running-an-rpc', label: '🌐 Running an RPC node', }, ], From e523e3bc5f28e5de19926d2c25e88b1fe0e383a2 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 6 Feb 2026 17:48:45 +0100 Subject: [PATCH 08/36] Add JSON-RPC doc including `linea_estimateGas` explanation - Added a new documentation file for the JSON-RPC API, detailing its usage and the customized `linea_estimateGas` method for gasless transactions. - Improved the 'Gasless Transactions' documentation to reference the new JSON-RPC API details. Signed-off-by: yjkellyjoo --- docs/build-for-karma/rpc/json-rpc.md | 313 ++++++++++++++++++ .../general-info/gasless-transactions.md | 7 +- sidebars.ts | 55 +-- 3 files changed, 346 insertions(+), 29 deletions(-) create mode 100644 docs/build-for-karma/rpc/json-rpc.md diff --git a/docs/build-for-karma/rpc/json-rpc.md b/docs/build-for-karma/rpc/json-rpc.md new file mode 100644 index 0000000..5c1e2c3 --- /dev/null +++ b/docs/build-for-karma/rpc/json-rpc.md @@ -0,0 +1,313 @@ +--- +title: JSON-RPC API +description: Status Network JSON-RPC API notes for builders, including the Karma-aware linea_estimateGas method. +keywords: + [ + Status Network, + JSON-RPC, + Linea, + EIP-1559, + eth_estimateGas, + linea_estimateGas, + Karma, + gasless, + ] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Status Network is based on Linea zkEVM, meaning **most JSON-RPC methods behave exactly like a standard EVM node**. +For the canonical list of supported methods and their standard semantics, refer to the [Linea JSON-RPC API reference](https://docs.linea.build/api/reference). + +## The important difference: `linea_estimateGas` + +Status Network customizes `linea_estimateGas` to make gas estimation incorporate our **Karma** system. +Status Network requires a fundamentally different approach to gas estimation than other EVM chains (including Linea) due to its gaslessness. +This is why we’ve customized how `linea_estimateGas` works and builders **must use `linea_estimateGas` instead of `eth_estimateGas`** when estimating fees for end-user transactions on Status Network. + +:::info +For a detailed explanation of Karma and its impact on gas fees and transaction privileges, see the [Karmic Tokenomics](../../overview/tokenomics/karmic-tokenomics) page. + +For the technical details of how our gasless system is implemented and enforced, refer to the [Gasless Transactions](../../overview/general-info/gasless-transactions) documentation. +::: + +### Status Network changes to `linea_estimateGas` + +Status Network extends `linea_estimateGas` with Karma-aware behavior so the estimate can depend on the sender address `from`'s Karma balance. + +Concretely, Status Network’s `linea_estimateGas`: + +- **Applies deny-list premium estimation**: if the sender is on the deny list, the node computes a normal estimate and then applies a premium multiplier to the gas estimation. +- **Returns gasless estimates for eligible users**: if the sender has available Karma quota, the method returns a “gasless” estimate (zero fee fields). +- **Falls back to standard estimation**: if the sender has no quota available or is not eligible for gasless estimation (or the Karma service is unavailable), the method returns a standard Linea gas estimate. + +The above logic lives in our modified `LineaEstimateGas` implementation open-sourced around [this section in the Status Network monorepo](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218). + +### `linea_estimateGas` vs `eth_estimateGas` + +In addition to Status Network’s Karma-aware behavior, `linea_estimateGas` differs from `eth_estimateGas` in the same way it does on Linea. +See [Linea’s reference](https://docs.linea.build/api/reference/linea-estimategas) for details on the differences. + +If you keep using `eth_estimateGas` on Status Network, common failure modes include: + +- Your app may display and request fees for a user who should be gasless. +- Your app may underestimate cost for a user who is temporarily forced into premium pricing, resulting in reverted transactions. + +## `linea_estimateGas` request/response shape + +### Request + +`linea_estimateGas` takes the **same primary transaction call object** you pass to `eth_estimateGas`. + +:::important +**Always include `from`.** Without it, the node can’t apply Karma/quota/deny-list logic. +::: + +### Response + +Unlike `eth_estimateGas` which returns a single hex quantity value of `gasLimit`, `linea_estimateGas` returns an object including: + +- `gasLimit`: hex quantity (estimated gas limit to use) +- `baseFeePerGas`: hex quantity (base fee for the next block) +- `priorityFeePerGas`: hex quantity (suggested priority fee) + + + + + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": "0x5208" +} +``` + + + + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "gasLimit": "0x5208", + "baseFeePerGas": "0x3b9aca00", + "priorityFeePerGas": "0x59682f00" + } +} +``` + + + + + +## Migration guide from EIP-1559 estimation flow to Status Network's gas estimation flow + +This section shows how to migrate from the common “EIP‑1559 via `eth_` methods” flow to Status Network’s Karma-aware flow. + +### Before: common EIP-1559 estimation flow on EVM chains using `eth_` namespaces + +On many EVM chains, a typical EIP-1559 estimation flow looks like: + +1. **Estimate gas limit** via `eth_estimateGas` +2. **Fetch `maxPriorityFeePerGas`** via `eth_maxPriorityFeePerGas` and/or `eth_feeHistory` +3. **Fetch `baseFeePerGas`** via `eth_getBlockByNumber` +4. Build an EIP-1559 transaction using: + - `gas` + - `maxPriorityFeePerGas` + - `maxFeePerGas`, often $2 \cdot \mathrm{baseFeePerGas} + \mathrm{maxPriorityFeePerGas}$ + + + + + +```bash +# 1) Gas limit (EVM execution) +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"eth_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_RPC_URL + +# 2) Fetch suggested tip amount +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":2,"method":"eth_maxPriorityFeePerGas","params":[]}' \ + https://YOUR_RPC_URL + +# 3) Fetch base fee +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":3,"method":"eth_getBlockByNumber","params":["pending",false]}' \ + https://YOUR_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const gas = await provider.estimateGas(call); +const maxPriorityFeePerGas = await provider.send('eth_maxPriorityFeePerGas', []); +const pendingBlock = await provider.getBlock('pending'); + +const baseFeePerGas = pendingBlock?.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + BigInt(maxPriorityFeePerGas); + +console.log({ + gas: `0x${gas.toString(16)}`, + maxPriorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_RPC_URL'), +}); + +const call = { + account: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const gas = await client.estimateGas(call); +const maxPriorityFeePerGas = await client.getMaxPriorityFeePerGas(); +const pendingBlock = await client.getBlock({ blockTag: 'pending' }); + +const baseFeePerGas = pendingBlock.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + maxPriorityFeePerGas; + +console.log({ + gas, + maxPriorityFeePerGas, + maxFeePerGas, +}); +``` + + + + + +### After: Status Network gas estimation flow using `linea_estimateGas` + +On Status Network, you should **replace the above multiple RPC calls with a single call** to `linea_estimateGas`, because the correct estimate depends on Karma: + +- accounts may be eligible for **gasless** transactions +- deny-listed accounts may need to pay a **premium gas fee** +- everyone else should see **standard EIP-1559-like fee suggestions** + + + + + +```bash +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"linea_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_STATUS_NETWORK_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_STATUS_NETWORK_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await provider.send( + 'linea_estimateGas', + [call], +); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_STATUS_NETWORK_RPC_URL'), +}); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await client.request({ + method: 'linea_estimateGas', + params: [call], +}); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + + +:::tip Tooling integration +Many Ethereum libraries default to `eth_estimateGas` internally (for example, `provider.estimateGas(...)`). On Status Network, keep using those libraries for standard `eth_` methods, but **fetch estimates via `linea_estimateGas` explicitly** wherever you display fees or prefill EIP-1559 transaction fields for users. +::: diff --git a/docs/overview/general-info/gasless-transactions.md b/docs/overview/general-info/gasless-transactions.md index cc82652..13fe385 100644 --- a/docs/overview/general-info/gasless-transactions.md +++ b/docs/overview/general-info/gasless-transactions.md @@ -5,14 +5,11 @@ description: Learn how Status Network implements gasless transactions using RLN keywords: [Status Network, Gasless Transactions, Linea, RLN, Rate Limiting Nullifier, Karma, Zero-Knowledge Proofs, ZKP, Soulbound Tokens, Blockchain, Layer 2, L2, Spam Prevention] --- -# Gasless Transactions in Status Network - - Status Network aims to introduce gasless transactions at scale. The key component of this gasless approach is Vac's [Rate Limiting Nullifier](https://vac.dev/rln), which permits transaction rate limitation without the need for traditional gas fees. The document describes the architecture and integration elements needed to safely enable gasless transactions. The implementation code for these gasless transactions is available in the [Status Network monorepo](https://github.com/status-im/status-network-monorepo?tab=readme-ov-file#architecture-components). -### RLN +## RLN [RLN](https://vac.dev/rln) is a zero-knowledge system designed to prevent spam without compromising user privacy unless a violation occurs. It replaces traditional gas fees with cryptographic rate limits enforced via ZKPs and Shamir's Secret Sharing. @@ -141,3 +138,5 @@ The linea_estimateGas method is customised to account for users on the Deny List - Checks user's Deny List status - Adds premium gas multipliers if needed - Provides transparency and accurate gas estimations to the users + +For further explanation on why it is important to use `linea_estimateGas` instead of `eth_estimateGas` to make gasless transactions on Status Network, refer to the [JSON-RPC docs](../../build-for-karma/rpc/json-rpc.md). diff --git a/sidebars.ts b/sidebars.ts index f1c3c3e..9a4c01c 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -133,38 +133,43 @@ const sidebars: SidebarsConfig = { }, ], }, - { - type: 'category', + { + type: 'category', label: 'DEPLOYING CONTRACTS', - collapsed: false, - items: [ - { - type: 'doc', - id: 'build-for-karma/deploying-contracts/using-hardhat', - label: '🎩 Using Hardhat', - }, - { - type: 'doc', - id: 'build-for-karma/deploying-contracts/using-foundry', - label: '⚒️ Using Foundry', - }, - { - type: 'doc', - id: 'build-for-karma/deploying-contracts/using-remix', - label: '🎛️ Using Remix', - }, - { - type: 'doc', - id: 'build-for-karma/deploying-contracts/using-se2', - label: '🏗 Using Scaffold-ETH 2', - }, - ], + collapsed: false, + items: [ + { + type: 'doc', + id: 'build-for-karma/deploying-contracts/using-hardhat', + label: '🎩 Using Hardhat', }, + { + type: 'doc', + id: 'build-for-karma/deploying-contracts/using-foundry', + label: '⚒️ Using Foundry', + }, + { + type: 'doc', + id: 'build-for-karma/deploying-contracts/using-remix', + label: '🎛️ Using Remix', + }, + { + type: 'doc', + id: 'build-for-karma/deploying-contracts/using-se2', + label: '🏗 Using Scaffold-ETH 2', + }, + ], + }, { type: 'category', label: 'RPC', collapsed: false, items: [ + { + type: 'doc', + id: 'build-for-karma/rpc/json-rpc', + label: '🔌 JSON-RPC API', + }, { type: 'doc', id: 'build-for-karma/rpc/running-an-rpc', From e55de58346c3d8b44eb4ec4bf06ac2985907260e Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Tue, 10 Feb 2026 19:33:42 +0100 Subject: [PATCH 09/36] Fix wrong statement on standard fee estimation Signed-off-by: yjkellyjoo --- docs/build-for-karma/rpc/json-rpc.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/build-for-karma/rpc/json-rpc.md b/docs/build-for-karma/rpc/json-rpc.md index 5c1e2c3..bf7532f 100644 --- a/docs/build-for-karma/rpc/json-rpc.md +++ b/docs/build-for-karma/rpc/json-rpc.md @@ -40,7 +40,6 @@ Concretely, Status Network’s `linea_estimateGas`: - **Applies deny-list premium estimation**: if the sender is on the deny list, the node computes a normal estimate and then applies a premium multiplier to the gas estimation. - **Returns gasless estimates for eligible users**: if the sender has available Karma quota, the method returns a “gasless” estimate (zero fee fields). -- **Falls back to standard estimation**: if the sender has no quota available or is not eligible for gasless estimation (or the Karma service is unavailable), the method returns a standard Linea gas estimate. The above logic lives in our modified `LineaEstimateGas` implementation open-sourced around [this section in the Status Network monorepo](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218). @@ -220,7 +219,6 @@ On Status Network, you should **replace the above multiple RPC calls with a sing - accounts may be eligible for **gasless** transactions - deny-listed accounts may need to pay a **premium gas fee** -- everyone else should see **standard EIP-1559-like fee suggestions** From 283a4ae3b58232a07364d56473f02e47b546b35d Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Mon, 16 Feb 2026 19:26:29 +0100 Subject: [PATCH 10/36] Fix misleading expressions regarding `eth_estimateGas` Signed-off-by: yjkellyjoo --- docs/build-for-karma/rpc/json-rpc.md | 94 +++++++++++++++++++--------- 1 file changed, 65 insertions(+), 29 deletions(-) diff --git a/docs/build-for-karma/rpc/json-rpc.md b/docs/build-for-karma/rpc/json-rpc.md index bf7532f..5d3468c 100644 --- a/docs/build-for-karma/rpc/json-rpc.md +++ b/docs/build-for-karma/rpc/json-rpc.md @@ -20,11 +20,14 @@ import TabItem from '@theme/TabItem'; Status Network is based on Linea zkEVM, meaning **most JSON-RPC methods behave exactly like a standard EVM node**. For the canonical list of supported methods and their standard semantics, refer to the [Linea JSON-RPC API reference](https://docs.linea.build/api/reference). -## The important difference: `linea_estimateGas` +## The important difference: Karma-aware fee estimation -Status Network customizes `linea_estimateGas` to make gas estimation incorporate our **Karma** system. -Status Network requires a fundamentally different approach to gas estimation than other EVM chains (including Linea) due to its gaslessness. -This is why we’ve customized how `linea_estimateGas` works and builders **must use `linea_estimateGas` instead of `eth_estimateGas`** when estimating fees for end-user transactions on Status Network. +On Linea, [`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas) is already the recommended way to estimate gas. +It returns `gasLimit`, `baseFeePerGas`, and `priorityFeePerGas` in a **single call**, where the fee fields account for compressed transaction size, layer-1 verification costs, and the L1/L2 gas-price ratio - factors that `eth_estimateGas` and other `eth_` namespace methods do not capture. + +Status Network extends `linea_estimateGas` further so that the fee fields also incorporate our **Karma** system: fees may be reduced to zero for eligible users, or increased for deny-listed users. + +This is why builders should use `linea_estimateGas` when estimating transaction costs or pre-filling EIP-1559 fee fields for users on Status Network. :::info For a detailed explanation of Karma and its impact on gas fees and transaction privileges, see the [Karmic Tokenomics](../../overview/tokenomics/karmic-tokenomics) page. @@ -34,30 +37,33 @@ For the technical details of how our gasless system is implemented and enforced, ### Status Network changes to `linea_estimateGas` -Status Network extends `linea_estimateGas` with Karma-aware behavior so the estimate can depend on the sender address `from`'s Karma balance. +Status Network extends the base Linea `linea_estimateGas` with Karma-aware behavior so the returned **fee fields** can depend on the sender address `from`'s Karma balance. +The `gasLimit` calculation is unchanged from the base Linea implementation (which itself uses the standard `eth_estimateGas` logic internally). -Concretely, Status Network’s `linea_estimateGas`: +Concretely, Status Network's `linea_estimateGas`: -- **Applies deny-list premium estimation**: if the sender is on the deny list, the node computes a normal estimate and then applies a premium multiplier to the gas estimation. -- **Returns gasless estimates for eligible users**: if the sender has available Karma quota, the method returns a “gasless” estimate (zero fee fields). +- **Applies deny-list premium**: if the sender is on the deny list, the node computes the normal fee estimate and then applies a premium multiplier to the **fee fields**. +- **Returns gasless estimates for eligible users**: if the sender has available Karma quota, the method returns zero `baseFeePerGas` and `priorityFeePerGas`. The above logic lives in our modified `LineaEstimateGas` implementation open-sourced around [this section in the Status Network monorepo](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218). -### `linea_estimateGas` vs `eth_estimateGas` +### Status Network RPC differences -In addition to Status Network’s Karma-aware behavior, `linea_estimateGas` differs from `eth_estimateGas` in the same way it does on Linea. -See [Linea’s reference](https://docs.linea.build/api/reference/linea-estimategas) for details on the differences. +On base Linea, `linea_estimateGas` is already the recommended method because it returns fee fields that account for L1 verification costs and data compression - something `eth_estimateGas` and other `eth_` namespace calls do not provide. +Status Network's fork extends `linea_estimateGas` further to be Karma-aware; all other JSON-RPC methods retain their standard semantics. -If you keep using `eth_estimateGas` on Status Network, common failure modes include: +That means using the traditional fee flow with `eth_` methods (for example `eth_gasPrice`, `eth_maxPriorityFeePerGas`, or `eth_feeHistory`) can lead to **inaccurate** fee suggestions: they miss both Linea's L2-specific pricing and Status Network's Karma adjustments. -- Your app may display and request fees for a user who should be gasless. -- Your app may underestimate cost for a user who is temporarily forced into premium pricing, resulting in reverted transactions. +Use `linea_estimateGas` as the single source of truth for `gasLimit`, `baseFeePerGas`, and `priorityFeePerGas` on Status Network. + +See [Linea's gas-fee guide](https://docs.linea.build/network/how-to/gas-fees) and [Linea's `linea_estimateGas` reference](https://docs.linea.build/api/reference/linea-estimategas) for the base Linea behavior. ## `linea_estimateGas` request/response shape ### Request -`linea_estimateGas` takes the **same primary transaction call object** you pass to `eth_estimateGas`. +`linea_estimateGas` takes the **same transaction call object** as `eth_estimateGas`. +It returns `gasLimit` (using the same EVM execution logic as `eth_estimateGas`) together with fee fields that reflect both Linea's L2-specific pricing and Status Network's Karma rules - all in a single response. :::important **Always include `from`.** Without it, the node can’t apply Karma/quota/deny-list logic. @@ -65,15 +71,36 @@ If you keep using `eth_estimateGas` on Status Network, common failure modes incl ### Response -Unlike `eth_estimateGas` which returns a single hex quantity value of `gasLimit`, `linea_estimateGas` returns an object including: +`linea_estimateGas` returns an object including: -- `gasLimit`: hex quantity (estimated gas limit to use) -- `baseFeePerGas`: hex quantity (base fee for the next block) -- `priorityFeePerGas`: hex quantity (suggested priority fee) +- `gasLimit`: hex quantity - estimated gas units for EVM execution (same calculation as `eth_estimateGas`) +- `baseFeePerGas`: hex quantity - base fee for the next block, accounting for Karma rules on Status Network +- `priorityFeePerGas`: hex quantity - suggested priority fee, accounting for Karma rules on Status Network + +These fee fields may differ significantly from the values returned by `eth_` namespace calls such as `eth_gasPrice`, `eth_maxPriorityFeePerGas`, or `eth_feeHistory`, which are not aware of Linea's L2-specific pricing or Status Network's Karma adjustments. - + + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "gasLimit": "0x5208", + "baseFeePerGas": "0x0", + "priorityFeePerGas": "0x0" + } +} +``` + + + + +Standard EVM flows require multiple separate `eth_` calls to gather gas limit and fee data: + +**eth_estimateGas** ```json { @@ -83,17 +110,26 @@ Unlike `eth_estimateGas` which returns a single hex quantity value of `gasLimit` } ``` - - +**eth_maxPriorityFeePerGas** ```json { "jsonrpc": "2.0", - "id": 1, + "id": 2, + "result": "0x59682f00" +} +``` + +**eth_getBlockByNumber** + +```json +{ + "jsonrpc": "2.0", + "id": 3, "result": { - "gasLimit": "0x5208", + "number": ..., "baseFeePerGas": "0x3b9aca00", - "priorityFeePerGas": "0x59682f00" + ... } } ``` @@ -102,9 +138,9 @@ Unlike `eth_estimateGas` which returns a single hex quantity value of `gasLimit` -## Migration guide from EIP-1559 estimation flow to Status Network's gas estimation flow +## Migration guide: from multiple `eth_` calls to `linea_estimateGas` -This section shows how to migrate from the common “EIP‑1559 via `eth_` methods” flow to Status Network’s Karma-aware flow. +This section shows how to migrate from the common "EIP-1559 via multiple `eth_` calls" flow to a single `linea_estimateGas` call, which provides more accurate L2-specific fee data and Karma-aware pricing on Status Network. ### Before: common EIP-1559 estimation flow on EVM chains using `eth_` namespaces @@ -215,7 +251,7 @@ console.log({ ### After: Status Network gas estimation flow using `linea_estimateGas` -On Status Network, you should **replace the above multiple RPC calls with a single call** to `linea_estimateGas`, because the correct estimate depends on Karma: +On Status Network, you should source fee suggestions from `linea_estimateGas`, because the correct fee recommendation depends on Karma: - accounts may be eligible for **gasless** transactions - deny-listed accounts may need to pay a **premium gas fee** @@ -307,5 +343,5 @@ console.log({ :::tip Tooling integration -Many Ethereum libraries default to `eth_estimateGas` internally (for example, `provider.estimateGas(...)`). On Status Network, keep using those libraries for standard `eth_` methods, but **fetch estimates via `linea_estimateGas` explicitly** wherever you display fees or prefill EIP-1559 transaction fields for users. +Many Ethereum libraries call `eth_estimateGas` internally (for example, `provider.estimateGas(...)`). On Status Network, keep using those libraries for standard `eth_` methods, but **fetch estimates via `linea_estimateGas` explicitly for gas limit and fee fields** wherever you build or display transaction parameters for users. ::: From 583bfb4cc2d216442de8124cbb4761d9f8ae7f2d Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 15:28:59 +0100 Subject: [PATCH 11/36] Update tools documentation and add infrastructure partners page - Rewrite block explorers page with mainnet placeholder and table format - Simplify bridge page by consolidating overview into intro paragraph - Add tools-index landing page with core infrastructure table and quick links - Add heading to testnet faucets page - Add infrastructure partners page with partner categories Co-Authored-By: Claude Opus 4.6 --- docs/tools/block-explorers.md | 44 +++++++++++------------------------ docs/tools/bridge.md | 9 +------ docs/tools/index.md | 33 ++++++++++++++++++++++++++ docs/tools/infrastructure.md | 32 +++++++++++++++++++++++++ docs/tools/testnet-faucets.md | 2 ++ 5 files changed, 82 insertions(+), 38 deletions(-) create mode 100644 docs/tools/infrastructure.md diff --git a/docs/tools/block-explorers.md b/docs/tools/block-explorers.md index f2bec9b..cd73071 100644 --- a/docs/tools/block-explorers.md +++ b/docs/tools/block-explorers.md @@ -1,41 +1,25 @@ --- -title: Status Network Block Explorer -description: Learn how to use the Status Network block explorer to track transactions, verify smart contracts, and monitor network activity. Complete guide to explorer features and contract verification. -keywords: [Status Network explorer, blockchain explorer, smart contract verification, transaction tracking, block explorer, network monitoring] +title: Block Explorers +description: Status Network block explorer for viewing transactions, verifying contracts, and monitoring network activity. +keywords: [block explorer, transaction tracking, smart contract verification] --- -# Status Network Testnet Explorer +# Block Explorers -The Status Network block explorer is available at [sepoliascan.status.network](https://sepoliascan.status.network). +## Status Network Mainnet -### Features -- View transaction details and status -- Track token transfers and balances -- Verify smart contract source code -- Monitor gas prices and network activity -- View and interact with verified smart contracts -- Track token holdings for any address +*Coming soon.* -## Sepolia Explorer (Layer 1) +## Status Network Testnet (Sepolia) -For tracking transactions on Sepolia (Layer 1), use [Sepolia Etherscan](https://sepolia.etherscan.io). +| Explorer | URL | Features | +|----------|-----|----------| +| Sepoliascan | [sepoliascan.status.network](https://sepoliascan.status.network) | Search transactions, verify and interact with smart contracts, track balances | -This is particularly useful for: -- Monitoring bridge transactions from L1 to L2 -- Tracking token deposits and withdrawals -- Verifying L1 contract interactions +For contract verification, visit the [Contract Verification](https://sepoliascan.status.network/contract-verification) page on Sepoliascan. -## Contract Verification +L1 activity on Sepolia can be tracked via [Sepolia Etherscan](https://sepolia.etherscan.io). -To verify your smart contract on Status Network Explorer: +## Status Network Testnet (Hoodi) -1. Navigate to [Contract Verification](https://sepoliascan.status.network/contract-verification) -2. Enter your contract address -3. Upload your source code and provide compilation details -4. Submit for verification - -Once verified, your contract's source code will be publicly visible and users can interact with it directly through the explorer. - -## API Access - -The Status Network Explorer provides API endpoints for developers. Documentation for the API will be available soon. +*Coming soon.* diff --git a/docs/tools/bridge.md b/docs/tools/bridge.md index 294318d..889ac0d 100644 --- a/docs/tools/bridge.md +++ b/docs/tools/bridge.md @@ -6,14 +6,7 @@ keywords: [Status Network bridge, token bridge, cross-chain transfer, L1 L2 brid # Status Network Testnet Bridge -The Status Network Testnet Bridge allows users to transfer tokens between Sepolia (Layer 1) and Status Network testnet (Layer 2). The bridge interface is available at [bridge.status.network](https://bridge.status.network). - -## Overview - -The bridge serves as a crucial infrastructure component that enables: -- Token transfers from Sepolia to Status Network testnet -- Token withdrawals from Status Network testnet to Sepolia -- Message passing between L1 and L2 +The Status Network Testnet Bridge allows users to transfer tokens and pass messages between Sepolia (Layer 1) and Status Network testnet (Layer 2). The bridge interface is available at [bridge.status.network](https://bridge.status.network). ## Bridge Contracts diff --git a/docs/tools/index.md b/docs/tools/index.md index e69de29..fc7f18a 100644 --- a/docs/tools/index.md +++ b/docs/tools/index.md @@ -0,0 +1,33 @@ +--- +id: tools-index +title: Tools & Infrastructure +description: Developer tools, infrastructure services, and integrations available on Status Network — RPC endpoints, bridges, faucets, explorers, and partner integrations. +keywords: [Status Network, developer tools, RPC, bridge, faucet, block explorer, infrastructure] +slug: /tools +sidebar_position: 1 +--- + +A complete reference of developer tools, infrastructure services, and integrations available on Status Network. + +## Core Infrastructure + +Essential services for building and testing on Status Network: + +| Tool | Description | Link | +|---|---|---| +| **RPC Endpoints** | Public JSON-RPC and WebSocket access | [RPC →](/tools/rpc) | +| **Bridge** | Transfer assets between Ethereum Sepolia and Status Network | [Bridge →](/tools/bridge) | +| **Testnet Faucets** | Get testnet assets for development | [Faucets →](/tools/testnet-faucets) | +| **Block Explorers** | Browse transactions, contracts, and network activity | [Explorers →](/tools/block-explorers) | + +## Infrastructure Partners + +Status Network is onboarding infrastructure partners across indexing, oracles, data providers, wallets, security, and more. See the full list of categories and how to use them on the [Infrastructure Partners](/tools/infrastructure) page. + +Want to become a partner? [Apply here](https://statusnetwork.typeform.com/partner). + +## Quick Links + +- [Network Details](/overview/general-info/network-details) — Chain ID, RPC URL, and full network configuration +- [Add Status Network to your wallet](/overview/general-info/add-status-network) +- [Bridging Guide](/overview/general-info/bridge/bridging-testnet) — Step-by-step bridge instructions diff --git a/docs/tools/infrastructure.md b/docs/tools/infrastructure.md new file mode 100644 index 0000000..a8734fd --- /dev/null +++ b/docs/tools/infrastructure.md @@ -0,0 +1,32 @@ +--- +title: Infrastructure Partners +description: Infrastructure partners and third-party integrations available on Status Network — RPC providers, oracles, indexers, account abstraction, dev tooling, and more. +keywords: [Status Network, infrastructure, partners, oracles, indexing, RPC, account abstraction, dev tooling, cross-chain, onramp] +sidebar_position: 6 +--- + +# Infrastructure Partners + +:::note Coming Soon +Status Network is actively onboarding infrastructure partners across the categories below. This page will be updated as integrations go live. +::: + +## Partner Categories + +| Category | Description | +|---|---| +| **RPC Providers** | Dedicated RPC infrastructure for reliable, low-latency node access | +| **Oracles & VRF** | Price feeds, RWA data, VRF for on-chain randomness, DEX data feeds | +| **Safe & Multisig** | Multi-signature wallets for treasury management and governance | +| **Indexers** | Decentralized and centralized indexing for smart contract events and on-chain data | +| **Account Abstraction** | Smart accounts, key management, and seamless user onboarding | +| **Developer Tooling** | SDKs, deployment tools and social login for Status Network | +| **Cross-Chain** | Cross-chain swap and bridging solutions | +| **Onramp Aggregators** | Fiat-to-crypto onramp and offramp solutions | + +## Become a Partner + +If you provide infrastructure services and want to integrate with Status Network: + +- [Apply to become a partner](https://statusnetwork.typeform.com/partner) +- [Join the builder community on Telegram](https://t.me/statusl2) diff --git a/docs/tools/testnet-faucets.md b/docs/tools/testnet-faucets.md index 7e40043..e061cb9 100644 --- a/docs/tools/testnet-faucets.md +++ b/docs/tools/testnet-faucets.md @@ -4,6 +4,8 @@ description: Get testnet ETH or STT for Status Network development. Complete gui keywords: [Status Network faucet, testnet ETH, test tokens, STT, Sepolia faucet, blockchain testing, development tokens] --- +# Testnet Faucets + To get started on Status Network testnet, you may need some testnet ETH or test assets. ## Status Network Testnet ETH Faucet From 01367d05b51c6a97462d4dd34b68ce6923f8c5f1 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 15:29:04 +0100 Subject: [PATCH 12/36] Update toolsSidebar with category link and partners section - Add category link to tools-index for the TOOLS section - Remove standalone Tools doc entry (now handled by category link) - Add PARTNERS category with Infrastructure Partners page Co-Authored-By: Claude Opus 4.6 --- sidebars.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/sidebars.ts b/sidebars.ts index 9a4c01c..785cf99 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -183,12 +183,11 @@ const sidebars: SidebarsConfig = { type: 'category', label: 'TOOLS', collapsed: false, + link: { + type: 'doc', + id: 'tools/tools-index', + }, items: [ - { - type: 'doc', - id: 'tools/index', - label: '🛠 Tools', - }, { type: 'doc', id: 'tools/rpc', @@ -211,6 +210,18 @@ const sidebars: SidebarsConfig = { }, ], }, + { + type: 'category', + label: 'PARTNERS', + collapsed: false, + items: [ + { + type: 'doc', + id: 'tools/infrastructure', + label: '🤝 Infrastructure Partners', + }, + ], + }, ], }; From 99c2a8fe072d9e9047e81693f48d53922e9b3e1e Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 16:08:54 +0100 Subject: [PATCH 13/36] Add i18n tools documentation for zh, ko, ja locales Update translated block-explorers, bridge, and testnet-faucets pages to match new English content. Add translated tools index and infrastructure partners pages for all three locales. Fix Korean text bug in ja testnet-faucets. Co-Authored-By: Claude Opus 4.6 --- .../current.json | 8 +++ .../current/tools/block-explorers.md | 42 ++++++---------- .../current/tools/bridge.md | 25 +++++----- .../current/tools/index.md | 33 +++++++++++++ .../current/tools/infrastructure.md | 32 ++++++++++++ .../current/tools/testnet-faucets.md | 2 +- .../current.json | 8 +++ .../current/tools/block-explorers.md | 42 ++++++---------- .../current/tools/bridge.md | 49 ++++++++++--------- .../current/tools/index.md | 33 +++++++++++++ .../current/tools/infrastructure.md | 30 ++++++++++++ .../current/tools/rpc.md | 2 + .../current.json | 8 +++ .../current/tools/block-explorers.md | 42 ++++++---------- .../current/tools/bridge.md | 17 +++---- .../current/tools/index.md | 33 +++++++++++++ .../current/tools/infrastructure.md | 32 ++++++++++++ .../current/tools/testnet-faucets.md | 2 + 18 files changed, 314 insertions(+), 126 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/tools/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/tools/infrastructure.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/tools/infrastructure.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/tools/index.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/tools/infrastructure.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json index 1da806c..307f687 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -27,6 +27,10 @@ "message": "ツール", "description": "The label for category TOOLS in sidebar toolsSidebar" }, + "sidebar.toolsSidebar.category.PARTNERS": { + "message": "パートナー", + "description": "The label for category PARTNERS in sidebar toolsSidebar" + }, "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { "message": "開発する", "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" @@ -91,6 +95,10 @@ "message": "🔎 ブロックエクスプローラー", "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" }, + "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { + "message": "🤝 インフラパートナー", + "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 Hardhatの使用", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/block-explorers.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/block-explorers.md index 9792965..7203084 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/block-explorers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/block-explorers.md @@ -1,35 +1,25 @@ -# Status Networkテストネットエクスプローラー +--- +title: ブロックエクスプローラー +description: トランザクションの確認、コントラクトの検証、ネットワーク活動のモニタリングのための Status Network ブロックエクスプローラー。 +keywords: [ブロックエクスプローラー, トランザクション追跡, スマートコントラクト検証] +--- -Status Networkブロックエクスプローラーは[sepoliascan.status.network](https://sepoliascan.status.network)で利用できます。 +# ブロックエクスプローラー -### 機能 -- トランザクションの詳細とステータスの確認 -- トークンの転送と残高の追跡 -- スマートコントラクトのソースコード検証 -- ガス価格とネットワークアクティビティの監視 -- 検証済みスマートコントラクトの表示と対話 -- 任意のアドレスのトークン保有状況の追跡 +## Status Network メインネット -## Sepoliaエクスプローラー(レイヤー1) +*近日公開予定。* -Sepolia(レイヤー1)上のトランザクションを追跡するには、[Sepolia Etherscan](https://sepolia.etherscan.io)を使用します。 +## Status Network テストネット (Sepolia) -これは特に以下の用途に便利です: -- L1からL2へのブリッジトランザクションの監視 -- トークンの入出金の追跡 -- L1コントラクトの対話の確認 +| エクスプローラー | URL | 機能 | +|----------|-----|----------| +| Sepoliascan | [sepoliascan.status.network](https://sepoliascan.status.network) | トランザクション検索、スマートコントラクトの検証と対話、残高追跡 | -## コントラクト検証 +コントラクト検証については、Sepoliascan の[コントラクト検証](https://sepoliascan.status.network/contract-verification)ページをご覧ください。 -Status Networkエクスプローラーでスマートコントラクトを検証するには: +Sepolia での L1 活動は [Sepolia Etherscan](https://sepolia.etherscan.io) で追跡できます。 -1. [コントラクト検証](https://sepoliascan.status.network/contract-verification)に移動 -2. コントラクトアドレスを入力 -3. ソースコードをアップロードしコンパイル詳細を提供 -4. 検証のために送信 +## Status Network テストネット (Hoodi) -検証が完了すると、コントラクトのソースコードが公開され、ユーザーはエクスプローラーを通じて直接対話できるようになります。 - -## API アクセス - -Status Networkエクスプローラーは開発者向けにAPIエンドポイントを提供しています。APIのドキュメントは近日公開予定です。 +*近日公開予定。* diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md index 8b46103..0254178 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -1,13 +1,12 @@ -# Status Networkテストネットブリッジ +--- +title: Status Network ブリッジ +description: Sepolia と Status Network テストネット間のトークン転送のための Status Network ブリッジ使用ガイド。 +keywords: [Status Network ブリッジ, トークンブリッジ, クロスチェーン転送, L1 L2 ブリッジ, Sepolia ブリッジ] +--- -Status Networkテストネットブリッジを使用すると、Sepolia(レイヤー1)とStatus Networkテストネット(レイヤー2)間でトークンを転送できます。ブリッジインターフェースは[bridge.status.network](https://bridge.status.network)で利用できます。 +# Status Network テストネットブリッジ -## 概要 - -ブリッジは以下を可能にする重要なインフラストラクチャコンポーネントとして機能します: -- SepoliaからStatus Networkテストネットへのトークン転送 -- Status NetworkテストネットからSepoliaへのトークン引き出し -- L1とL2間のメッセージ受け渡し +Status Network テストネットブリッジを使用すると、Sepolia(レイヤー1)と Status Network テストネット(レイヤー2)間でトークンを転送しメッセージを受け渡しできます。ブリッジインターフェースは [bridge.status.network](https://bridge.status.network) で利用できます。 ## ブリッジコントラクト @@ -19,8 +18,8 @@ Status Networkテストネットブリッジを使用すると、Sepolia(レ ## 機能 -- **トークンブリッジング**: ネットワーク間でERC-20トークンを転送 -- **ETHブリッジング**: SepoliaとStatus Network間でETHをブリッジ +- **トークンブリッジング**: ネットワーク間で ERC-20 トークンを転送 +- **ETH ブリッジング**: Sepolia と Status Network 間で ETH をブリッジ - **トランザクション追跡**: ブリッジトランザクションのステータスを監視 - **ガス見積もり**: ブリッジ前に推定ガスコストを確認 @@ -35,11 +34,11 @@ Status Networkテストネットブリッジを使用すると、Sepolia(レ ## ブリッジトランザクションの監視 以下を使用してブリッジトランザクションを監視できます: -- L2トランザクションには[Status Networkエクスプローラー](https://sepoliascan.status.network) -- L1トランザクションには[Sepolia Etherscan](https://sepolia.etherscan.io) +- L2 トランザクションには [Status Network エクスプローラー](https://sepoliascan.status.network) +- L1 トランザクションには [Sepolia Etherscan](https://sepolia.etherscan.io) ## サポート ブリッジ使用中に問題が発生した場合: - 一般的な解決策については[ブリッジングガイド](/overview/general-info/bridge/bridging-testnet)をチェック -- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加 +- サポートについては [Telegram コミュニティ](https://t.me/statusl2)に参加 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/index.md new file mode 100644 index 0000000..d626031 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/index.md @@ -0,0 +1,33 @@ +--- +id: tools-index +title: ツールとインフラストラクチャ +description: Status Network で利用可能な開発者ツール、インフラサービス、統合 — RPC エンドポイント、ブリッジ、フォーセット、エクスプローラー、パートナー統合。 +keywords: [Status Network, 開発者ツール, RPC, ブリッジ, フォーセット, ブロックエクスプローラー, インフラストラクチャ] +slug: /tools +sidebar_position: 1 +--- + +Status Network で利用可能な開発者ツール、インフラサービス、統合の完全なリファレンスです。 + +## コアインフラストラクチャ + +Status Network でのビルドとテストに必要な基本サービス: + +| ツール | 説明 | リンク | +|---|---|---| +| **RPC エンドポイント** | パブリック JSON-RPC および WebSocket アクセス | [RPC →](/tools/rpc) | +| **ブリッジ** | Ethereum Sepolia と Status Network 間のアセット転送 | [ブリッジ →](/tools/bridge) | +| **テストネットフォーセット** | 開発用テストネットアセットの取得 | [フォーセット →](/tools/testnet-faucets) | +| **ブロックエクスプローラー** | トランザクション、コントラクト、ネットワーク活動の閲覧 | [エクスプローラー →](/tools/block-explorers) | + +## インフラストラクチャパートナー + +Status Network はインデクシング、オラクル、データプロバイダー、ウォレット、セキュリティなどの分野でインフラパートナーをオンボーディングしています。[インフラストラクチャパートナー](/tools/infrastructure)ページで全カテゴリと使用方法をご確認ください。 + +パートナーになりませんか?[こちらから申請](https://statusnetwork.typeform.com/partner)。 + +## クイックリンク + +- [ネットワーク詳細](/overview/general-info/network-details) — Chain ID、RPC URL、完全なネットワーク構成 +- [ウォレットに Status Network を追加](/overview/general-info/add-status-network) +- [ブリッジングガイド](/overview/general-info/bridge/bridging-testnet) — ステップバイステップのブリッジ手順 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/infrastructure.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/infrastructure.md new file mode 100644 index 0000000..1f0ec7f --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/infrastructure.md @@ -0,0 +1,32 @@ +--- +title: インフラストラクチャパートナー +description: Status Network で利用可能なインフラパートナーとサードパーティ統合 — RPC プロバイダー、オラクル、インデクサー、アカウントアブストラクション、開発ツールなど。 +keywords: [Status Network, インフラストラクチャ, パートナー, オラクル, インデクシング, RPC, アカウントアブストラクション, 開発ツール, クロスチェーン, オンランプ] +sidebar_position: 6 +--- + +# インフラストラクチャパートナー + +:::note 近日公開予定 +Status Network は以下のカテゴリのインフラパートナーを積極的にオンボーディングしています。統合が稼働次第、このページを更新します。 +::: + +## パートナーカテゴリ + +| カテゴリ | 説明 | +|---|---| +| **RPC プロバイダー** | 信頼性が高く低レイテンシーなノードアクセスのための専用 RPC インフラ | +| **オラクルと VRF** | 価格フィード、RWA データ、オンチェーンランダム性のための VRF、DEX データフィード | +| **Safe とマルチシグ** | 財務管理とガバナンスのためのマルチシグウォレット | +| **インデクサー** | スマートコントラクトイベントとオンチェーンデータのための分散型・中央集権型インデクシング | +| **アカウントアブストラクション** | スマートアカウント、鍵管理、シームレスなユーザーオンボーディング | +| **開発ツール** | SDK、デプロイツール、Status Network ソーシャルログイン | +| **クロスチェーン** | クロスチェーンスワップとブリッジングソリューション | +| **オンランプアグリゲーター** | 法定通貨から暗号通貨へのオンランプ・オフランプソリューション | + +## パートナーになる + +インフラサービスを提供し、Status Network と統合したい場合: + +- [パートナー申請](https://statusnetwork.typeform.com/partner) +- [Telegram ビルダーコミュニティに参加](https://t.me/statusl2) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md index e34ceeb..126781d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md @@ -35,7 +35,7 @@ Sepolia ETH を入手したら、[Status Network ブリッジ](https://bridge.st ## Status Network STT フォーセット -Status Test Token (STT) は SNT の 테스트넷 에 상당하는 것입니다. Status Network テストネットのエコシステム内でテストアセットとして使用されます。 +Status Test Token (STT) は SNT のテストネット版です。Status Network テストネットのエコシステム内でテストアセットとして使用されます。 ### 詳細 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current.json b/i18n/ko/docusaurus-plugin-content-docs/current.json index 5f1869a..26e8896 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current.json +++ b/i18n/ko/docusaurus-plugin-content-docs/current.json @@ -27,6 +27,10 @@ "message": "도구", "description": "The label for category TOOLS in sidebar toolsSidebar" }, + "sidebar.toolsSidebar.category.PARTNERS": { + "message": "파트너", + "description": "The label for category PARTNERS in sidebar toolsSidebar" + }, "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { "message": "개발하기", "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" @@ -91,6 +95,10 @@ "message": "🔎 블록 익스플로러", "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" }, + "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { + "message": "🤝 인프라 파트너", + "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 Hardhat 사용하기", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/block-explorers.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/block-explorers.md index 26230bb..577416a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/block-explorers.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/block-explorers.md @@ -1,35 +1,23 @@ -# Status Network 테스트넷 탐색기 +--- +title: 블록 익스플로러 +description: 트랜잭션 조회, 컨트랙트 검증, 네트워크 활동 모니터링을 위한 Status Network 블록 익스플로러. +keywords: [블록 익스플로러, 트랜잭션 추적, 스마트 컨트랙트 검증] +--- -Status Network 블록 탐색기는 [sepoliascan.status.network](https://sepoliascan.status.network)에서 이용할 수 있습니다. +## Status Network 메인넷 -### 기능 -- 트랜잭션 세부정보 및 상태 확인 -- 토큰 전송 및 잔액 추적 -- 스마트 컨트랙트 소스 코드 검증 -- 가스 가격 및 네트워크 활동 모니터링 -- 검증된 스마트 컨트랙트 확인 및 상호작용 -- 모든 주소의 토큰 보유 현황 추적 +*출시 예정.* -## Sepolia 탐색기 (레이어 1) +## Status Network 테스트넷 (Sepolia) -Sepolia (레이어 1)의 트랜잭션을 추적하려면 [Sepolia Etherscan](https://sepolia.etherscan.io)을 사용하세요. +| 익스플로러 | URL | 기능 | +|----------|-----|----------| +| Sepoliascan | [sepoliascan.status.network](https://sepoliascan.status.network) | 트랜잭션 검색, 스마트 컨트랙트 검증 및 상호작용, 잔액 추적 등 | -이는 특히 다음과 같은 용도에 유용합니다: -- L1에서 L2로의 브리지 트랜잭션 모니터링 -- 토큰 입출금 추적 -- L1 컨트랙트 상호작용 확인 +컨트랙트 검증은 Sepoliascan의 [컨트랙트 검증](https://sepoliascan.status.network/contract-verification) 페이지를 방문하세요. -## 컨트랙트 검증 +Sepolia의 L1 활동은 [Sepolia Etherscan](https://sepolia.etherscan.io)에서 추적할 수 있습니다. -Status Network 탐색기에서 스마트 컨트랙트를 검증하는 방법: +## Status Network 테스트넷 (Hoodi) -1. [컨트랙트 검증](https://sepoliascan.status.network/contract-verification)으로 이동 -2. 컨트랙트 주소 입력 -3. 소스 코드 업로드 및 컴파일 세부정보 제공 -4. 검증을 위해 제출 - -검증이 완료되면 컨트랙트의 소스 코드가 공개되며, 사용자들은 탐색기를 통해 직접 상호작용할 수 있습니다. - -## API 접근 - -Status Network 탐색기는 개발자를 위한 API 엔드포인트를 제공합니다. API 문서는 곧 제공될 예정입니다. +*출시 예정.* diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md index c32aa14..fe3efc3 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -1,45 +1,46 @@ -# Status Network 테스트넷 브리지 +--- +title: Status Network 브릿지 +description: Sepolia와 Status Network 테스트넷 간 토큰 전송을 위한 Status Network 브릿지 사용 가이드. +keywords: [Status Network 브릿지, 토큰 브릿지, 크로스체인 전송, L1 L2 브릿지, Sepolia 브릿지] +--- -Status Network 테스트넷 브리지를 사용하면 Sepolia (레이어 1)와 Status Network 테스트넷 (레이어 2) 간에 토큰을 전송할 수 있습니다. 브리지 인터페이스는 [bridge.status.network](https://bridge.status.network)에서 이용할 수 있습니다. +# Status Network 테스트넷 브릿지 -## 개요 +Status Network 테스트넷 브릿지를 사용하면 Sepolia (레이어 1)와 Status Network 테스트넷 (레이어 2) 간에 토큰을 전송하고 메시지를 전달할 수 있습니다. 브릿지 인터페이스는 [bridge.status.network](https://bridge.status.network)에서 이용할 수 있습니다. -브리지는 다음을 가능하게 하는 중요한 인프라 구성 요소로 작동합니다: -- Sepolia에서 Status Network 테스트넷으로 토큰 전송 -- Status Network 테스트넷에서 Sepolia로 토큰 인출 -- L1과 L2 사이의 메시지 전달 - -## 브리지 컨트랙트 +## 브릿지 컨트랙트 ### 레이어 1 (Sepolia) -- **토큰 브리지**: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548) +- **토큰 브릿지**: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548) ### 레이어 2 (Status Network) -- **토큰 브리지**: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19) +- **토큰 브릿지**: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19) ## 기능 -- **토큰 브리징**: 네트워크 간 ERC-20 토큰 전송 -- **ETH 브리징**: Sepolia와 Status Network 간 ETH 브리징 -- **트랜잭션 추적**: 브리지 트랜잭션 상태 모니터링 -- **가스 예상**: 브리징 전 예상 가스 비용 확인 +- **토큰 브릿징**: 네트워크 간 ERC-20 토큰 전송 +- **ETH 브릿징**: Sepolia와 Status Network 간 ETH 브릿징 +- **트랜잭션 추적**: 브릿지 트랜잭션 상태 모니터링 +- **가스 예상**: 브릿징 전 예상 가스 비용 확인 -## 지원되는 토큰 +## 지원 토큰 -지원되는 토큰과 해당 컨트랙트 주소의 최신 목록은 [토큰 목록 저장소](https://github.com/status-im/status-network-token-list)를 참조하세요. +지원되는 토큰과 해당 컨트랙트 주소의 최신 목록은 [토큰 목록 레포지토리](https://github.com/status-im/status-network-token-list)를 참조하세요. -## 브리지 사용하기 +## 브릿지 사용하기 -단계별 가이드와 중요한 보안 고려사항을 포함한 브리지 사용 방법에 대한 자세한 내용은 [브리징 가이드](/overview/general-info/bridge/bridging-testnet)를 참조하세요. +단계별 가이드와 중요한 보안 고려사항을 포함한 브릿지 사용 방법에 대한 자세한 내용은 [브릿징 가이드](/overview/general-info/bridge/bridging-testnet)를 참조하세요. -## 브리지 트랜잭션 모니터링 +## 브릿지 트랜잭션 모니터링 + +브릿지 트랜잭션은 다음을 통해 모니터링할 수 있습니다: -브리지 트랜잭션은 다음을 통해 모니터링할 수 있습니다: - L2 트랜잭션은 [Status Network 탐색기](https://sepoliascan.status.network) - L1 트랜잭션은 [Sepolia Etherscan](https://sepolia.etherscan.io) ## 지원 -브리지 사용 중 문제가 발생한 경우: -- 일반적인 해결책은 [브리징 가이드](/overview/general-info/bridge/bridging-testnet) 확인 -- 도움이 필요하면 [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 +브릿지 사용 중 문제가 발생한 경우: + +- 일반적인 해결책은 [브릿징 가이드](/overview/general-info/bridge/bridging-testnet) 확인 +- 도움이 필요하면 [텔레그램 커뮤니티](https://t.me/statusl2)에서 문의하세요 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md new file mode 100644 index 0000000..7706645 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md @@ -0,0 +1,33 @@ +--- +id: tools-index +title: 도구 및 인프라 +description: Status Network에서 사용할 수 있는 개발자 도구, 인프라 서비스, 통합 — RPC 엔드포인트, 브리지, 파우셋, 익스플로러, 파트너 통합. +keywords: [Status Network, 개발자 도구, RPC, 브리지, 파우셋, 블록 익스플로러, 인프라] +slug: /tools +sidebar_position: 1 +--- + +Status Network에서 사용할 수 있는 개발자 도구, 인프라 서비스 및 구현에 대한 종합 레퍼런스입니다. + +## 핵심 인프라 + +Status Network에서 빌드 및 테스트에 필요한 필수 서비스: + +| 도구 | 설명 | 링크 | +|---|---|---| +| **RPC 엔드포인트** | 퍼블릭 JSON-RPC 및 WebSocket 액세스 | [RPC →](/tools/rpc) | +| **브릿지** | Ethereum Sepolia와 Status Network 간 자산 전송 | [브릿지 →](/tools/bridge) | +| **테스트넷 파우셋** | 개발용 테스트넷 자산 받기 | [파우셋 →](/tools/testnet-faucets) | +| **블록 익스플로러** | 트랜잭션, 컨트랙트, 네트워크 활동 탐색기 | [익스플로러 →](/tools/block-explorers) | + +## 인프라 파트너 + +Status Network는 인덱싱, 오라클, 데이터 제공자, 지갑, 보안 등 다양한 분야의 인프라 파트너를 온보딩하고 있습니다. [인프라 파트너](/tools/infrastructure) 페이지에서 전체 카테고리 목록과 사용 방법을 확인하세요. + +파트너가 되고 싶으신가요? [여기서 신청하세요](https://statusnetwork.typeform.com/partner). + +## 빠른 링크 + +- [네트워크 상세 정보](/overview/general-info/network-details) — Chain ID, RPC URL 및 전체 네트워크 구성 +- [지갑에 Status Network 추가하기](/overview/general-info/add-status-network) +- [브릿지 가이드](/overview/general-info/bridge/bridging-testnet) — 단계별 브릿지 안내 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/infrastructure.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/infrastructure.md new file mode 100644 index 0000000..a8fb0a4 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/infrastructure.md @@ -0,0 +1,30 @@ +--- +title: 인프라 파트너 +description: Status Network에서 사용할 수 있는 인프라 파트너 및 서드파티 통합 — RPC 제공자, 오라클, 인덱서, 계정 추상화, 개발 도구 등. +keywords: [Status Network, 인프라, 파트너, 오라클, 인덱싱, RPC, 계정 추상화, 개발 도구, 크로스체인, 온램프] +sidebar_position: 6 +--- + +:::note 출시 예정 +Status Network는 아래 카테고리의 인프라 파트너를 적극적으로 온보딩하고 있습니다. 이 페이지는 온보딩이 완료됨에 따라 업데이트될 예정입니다. +::: + +## 파트너 카테고리 + +| 카테고리 | 설명 | +|---|---| +| **RPC 제공자** | 안정적이고 지연이 적은 노드 액세스를 위한 전용 RPC 인프라 | +| **오라클 및 VRF** | 가격 피드, RWA 데이터, 온체인 랜덤성을 위한 VRF, DEX 데이터 피드 | +| **Safe 및 멀티시그** | 재무 관리 및 거버넌스를 위한 멀티시그 지갑 | +| **인덱서** | 스마트 컨트랙트 이벤트 및 온체인 데이터를 위한 탈중앙화 및 중앙화 인덱싱 | +| **계정 추상화** | 스마트 계정, 키 관리, 원활한 사용자 온보딩 | +| **개발 도구** | SDK, 배포 도구 및 소셜 로그인 | +| **크로스체인** | 크로스체인 스왑 및 브릿징 솔루션 | +| **온램프 어그리게이터** | 법정화폐-암호화폐 온램프 및 오프램프 솔루션 | + +## 파트너 되기 + +인프라 서비스를 제공하며 Status Network와 파트너를 맺고 싶으신 경우 아래 채널을 통해 연락해주세요: + +- [파트너 신청하기](https://statusnetwork.typeform.com/partner) +- [텔레그램 빌더 커뮤니티 참여](https://t.me/statusl2) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md index a56bf80..7af4cdd 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md @@ -40,6 +40,7 @@ RPC 엔드포인트는 다음을 포함한 표준 Ethereum JSON-RPC 메소드를 ## 속도 제한 공개 RPC 엔드포인트는 공정한 사용을 위해 다음과 같은 속도 제한이 있습니다: + - IP당 초당 10개의 요청 - IP당 하루 100,000개의 요청 @@ -48,5 +49,6 @@ RPC 엔드포인트는 다음을 포함한 표준 Ethereum JSON-RPC 메소드를 ## 지원 RPC 엔드포인트에 문제가 발생한 경우: + - 지원을 받으려면 [텔레그램 커뮤니티](https://t.me/statusl2)에 참여 - 애플리케이션에 대체 RPC 전략 구현 고려 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current.json b/i18n/zh/docusaurus-plugin-content-docs/current.json index 704c934..a8aded5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current.json +++ b/i18n/zh/docusaurus-plugin-content-docs/current.json @@ -27,6 +27,10 @@ "message": "工具", "description": "The label for category TOOLS in sidebar toolsSidebar" }, + "sidebar.toolsSidebar.category.PARTNERS": { + "message": "合作伙伴", + "description": "The label for category PARTNERS in sidebar toolsSidebar" + }, "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { "message": "开发", "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" @@ -91,6 +95,10 @@ "message": "🔎 区块浏览器", "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" }, + "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { + "message": "🤝 基础设施合作伙伴", + "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 使用 Hardhat", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/block-explorers.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/block-explorers.md index dc8dbb5..26768b0 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/block-explorers.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/block-explorers.md @@ -1,35 +1,25 @@ -# Status Network 测试网浏览器 +--- +title: 区块浏览器 +description: Status Network 区块浏览器,用于查看交易、验证合约和监控网络活动。 +keywords: [区块浏览器, 交易追踪, 智能合约验证] +--- -Status Network 区块浏览器可在 [sepoliascan.status.network](https://sepoliascan.status.network) 访问。 +# 区块浏览器 -### 功能 -- 查看交易详情和状态 -- 追踪代币转账和余额 -- 验证智能合约源代码 -- 监控 gas 价格和网络活动 -- 查看并与已验证的智能合约交互 -- 追踪任意地址的代币持有情况 +## Status Network 主网 -## Sepolia 浏览器(第一层) +*即将推出。* -要追踪 Sepolia(第一层)上的交易,请使用 [Sepolia Etherscan](https://sepolia.etherscan.io)。 +## Status Network 测试网 (Sepolia) -这对以下情况特别有用: -- 监控从 L1 到 L2 的跨链交易 -- 追踪代币存取 -- 验证 L1 合约交互 +| 浏览器 | URL | 功能 | +|----------|-----|----------| +| Sepoliascan | [sepoliascan.status.network](https://sepoliascan.status.network) | 搜索交易、验证和交互智能合约、追踪余额 | -## 合约验证 +如需合约验证,请访问 Sepoliascan 上的[合约验证](https://sepoliascan.status.network/contract-verification)页面。 -要在 Status Network 浏览器上验证您的智能合约: +Sepolia 上的 L1 活动可通过 [Sepolia Etherscan](https://sepolia.etherscan.io) 追踪。 -1. 访问[合约验证](https://sepoliascan.status.network/contract-verification) -2. 输入您的合约地址 -3. 上传源代码并提供编译详情 -4. 提交验证 +## Status Network 测试网 (Hoodi) -验证完成后,您的合约源代码将公开可见,用户可以通过浏览器直接与之交互。 - -## API 访问 - -Status Network 浏览器为开发者提供 API 端点。API 文档将很快提供。 +*即将推出。* diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md index 8397b38..e6e3a92 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md @@ -1,13 +1,12 @@ +--- +title: Status Network 跨链桥 +description: 使用 Status Network 跨链桥在 Sepolia 和 Status Network 测试网之间转移代币的完整指南。 +keywords: [Status Network 跨链桥, 代币跨链, 跨链转账, L1 L2 跨链桥, Sepolia 跨链桥] +--- + # Status Network 测试网跨链桥 -Status Network 测试网跨链桥允许用户在 Sepolia(第一层)和 Status Network 测试网(第二层)之间转移代币。跨链桥界面可在 [bridge.status.network](https://bridge.status.network) 访问。 - -## 概述 - -跨链桥作为关键基础设施组件,支持以下功能: -- 从 Sepolia 向 Status Network 测试网转移代币 -- 从 Status Network 测试网向 Sepolia 提取代币 -- L1 和 L2 之间的消息传递 +Status Network 测试网跨链桥允许用户在 Sepolia(第一层)和 Status Network 测试网(第二层)之间转移代币和传递消息。跨链桥界面可在 [bridge.status.network](https://bridge.status.network) 访问。 ## 跨链桥合约 @@ -22,7 +21,7 @@ Status Network 测试网跨链桥允许用户在 Sepolia(第一层)和 Statu - **代币跨链**: 在网络间转移 ERC-20 代币 - **ETH 跨链**: 在 Sepolia 和 Status Network 之间跨链 ETH - **交易追踪**: 监控您的跨链交易状态 -- **gas 估算**: 跨链前查看预估 gas 费用 +- **Gas 估算**: 跨链前查看预估 Gas 费用 ## 支持的代币 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/index.md new file mode 100644 index 0000000..8e68c24 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/index.md @@ -0,0 +1,33 @@ +--- +id: tools-index +title: 工具与基础设施 +description: Status Network 上可用的开发者工具、基础设施服务和集成 — RPC 端点、跨链桥、水龙头、浏览器和合作伙伴集成。 +keywords: [Status Network, 开发者工具, RPC, 跨链桥, 水龙头, 区块浏览器, 基础设施] +slug: /tools +sidebar_position: 1 +--- + +Status Network 上可用的开发者工具、基础设施服务和集成的完整参考。 + +## 核心基础设施 + +在 Status Network 上构建和测试所需的基本服务: + +| 工具 | 描述 | 链接 | +|---|---|---| +| **RPC 端点** | 公共 JSON-RPC 和 WebSocket 访问 | [RPC →](/tools/rpc) | +| **跨链桥** | 在 Ethereum Sepolia 和 Status Network 之间转移资产 | [跨链桥 →](/tools/bridge) | +| **测试网水龙头** | 获取用于开发的测试网资产 | [水龙头 →](/tools/testnet-faucets) | +| **区块浏览器** | 浏览交易、合约和网络活动 | [浏览器 →](/tools/block-explorers) | + +## 基础设施合作伙伴 + +Status Network 正在引入涵盖索引、预言机、数据提供商、钱包、安全等领域的基础设施合作伙伴。在[基础设施合作伙伴](/tools/infrastructure)页面查看完整的类别列表和使用方法。 + +想成为合作伙伴?[在此申请](https://statusnetwork.typeform.com/partner)。 + +## 快速链接 + +- [网络详情](/overview/general-info/network-details) — Chain ID、RPC URL 和完整的网络配置 +- [将 Status Network 添加到您的钱包](/overview/general-info/add-status-network) +- [跨链指南](/overview/general-info/bridge/bridging-testnet) — 分步跨链说明 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/infrastructure.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/infrastructure.md new file mode 100644 index 0000000..911ff79 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/infrastructure.md @@ -0,0 +1,32 @@ +--- +title: 基础设施合作伙伴 +description: Status Network 上可用的基础设施合作伙伴和第三方集成 — RPC 提供商、预言机、索引器、账户抽象、开发工具等。 +keywords: [Status Network, 基础设施, 合作伙伴, 预言机, 索引, RPC, 账户抽象, 开发工具, 跨链, 入金] +sidebar_position: 6 +--- + +# 基础设施合作伙伴 + +:::note 即将推出 +Status Network 正在积极引入以下类别的基础设施合作伙伴。此页面将随着集成上线而更新。 +::: + +## 合作伙伴类别 + +| 类别 | 描述 | +|---|---| +| **RPC 提供商** | 专用 RPC 基础设施,提供可靠、低延迟的节点访问 | +| **预言机和 VRF** | 价格信息、RWA 数据、链上随机数 VRF、DEX 数据源 | +| **Safe 和多签** | 用于资金管理和治理的多签钱包 | +| **索引器** | 去中心化和中心化索引,用于智能合约事件和链上数据 | +| **账户抽象** | 智能账户、密钥管理和无缝用户入门 | +| **开发工具** | SDK、部署工具和 Status Network 社交登录 | +| **跨链** | 跨链交换和桥接解决方案 | +| **入金聚合器** | 法币到加密货币的入金和出金解决方案 | + +## 成为合作伙伴 + +如果您提供基础设施服务并希望与 Status Network 集成: + +- [申请成为合作伙伴](https://statusnetwork.typeform.com/partner) +- [加入 Telegram 开发者社区](https://t.me/statusl2) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md index 48de5fd..c5e61f0 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md @@ -4,6 +4,8 @@ description: 获取用于 Status Network 开发的测试网 ETH 或 STT。通过 keywords: [Status Network 水龙头, 测试网 ETH, 测试代币, STT, Sepolia 水龙头, 区块链测试, 开发代币] --- +# 测试网水龙头 + 要开始在 Status Network 测试网上进行开发,您可能需要一些测试网 ETH 或测试资产。 ## Status Network 测试网 ETH 水龙头 From 3e1a6fd75825c04243fab8e1474aeedc388337f4 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 17:52:15 +0100 Subject: [PATCH 14/36] Update Korean translations for "bridge" terminology Signed-off-by: yjkellyjoo --- .../general-info/bridge/bridging-testnet.md | 20 +++++++++---------- .../contract-addresses/testnet-contracts.md | 12 +++++------ .../general-info/contract-addresses/tokens.md | 4 ++-- .../general-info/gasless-transactions.md | 2 +- .../overview/general-info/network-details.md | 2 +- .../current/overview/index.md | 2 +- .../overview/introduction/quick-start.md | 6 +++--- .../current/overview/other/official-links.md | 2 +- .../overview/tokenomics/economic-model.md | 2 +- .../overview/tokenomics/karmic-tokenomics.md | 8 ++++---- .../overview/tokenomics/public-funding.md | 2 +- .../current/tools/index.md | 4 ++-- .../current/tools/testnet-faucets.md | 4 ++-- 13 files changed, 35 insertions(+), 35 deletions(-) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md index 68dd63d..7ab4f01 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/bridge/bridging-testnet.md @@ -1,28 +1,28 @@ -# Status Network 테스트넷으로 브리징하기 +# Status Network 테스트넷으로 브릿지하기 -Status Network 브리지를 사용하면 Sepolia와 Status Network 테스트넷 간에 토큰을 전송할 수 있습니다. 브리지는 [bridge.status.network](https://bridge.status.network)에 배포되어 있습니다. +Status Network 브릿지를 사용하면 Sepolia와 Status Network 테스트넷 간에 토큰을 전송할 수 있습니다. 브릿지는 [bridge.status.network](https://bridge.status.network)에 배포되어 있습니다. ## 사전 준비사항 - MetaMask 또는 다른 Web3 지갑이 설치되어 있어야 함 - Sepolia 네트워크에 테스트넷 ETH 보유 -- Sepolia 네트워크에 브리징하고자 하는 토큰 보유 +- Sepolia 네트워크에 브릿지하고자 하는 토큰 보유 -## 브리징 과정 +## 브릿지 과정 1. [bridge.status.network](https://bridge.status.network) 방문 2. 우측 상단의 "지갑 연결" 버튼을 클릭하여 지갑 연결 -3. 드롭다운 메뉴에서 브리징할 토큰 선택 +3. 드롭다운 메뉴에서 브릿지할 토큰 선택 -4. 브리징할 금액 입력 +4. 브릿지할 금액 입력 -5. "브리지" 버튼을 클릭하고 지갑에서 거래 승인 +5. "브릿지" 버튼을 클릭하고 지갑에서 거래 승인 -6. 브리징 과정이 완료될 때까지 대기 - - 브리징은 보통 5-10분 정도 소요됩니다 - - 브리지 인터페이스에서 거래 상태를 확인할 수 있습니다 +6. 브릿지 과정이 완료될 때까지 대기 + - 브릿지은 보통 5-10분 정도 소요됩니다 + - 브릿지 인터페이스에서 거래 상태를 확인할 수 있습니다 ## 주요 참고사항 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md index d2208e7..bf491ff 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/testnet-contracts.md @@ -1,7 +1,7 @@ --- title: 테스트넷 컨트랙트 -description: 브리지 컨트랙트, 핵심 인프라, L2 컨트랙트를 포함한 Status Network 테스트넷 컨트랙트 주소의 포괄적인 목록과 각각의 목적 및 블록 탐색기 링크. -keywords: [Status Network 컨트랙트, 테스트넷 주소, 스마트 컨트랙트, 브리지 컨트랙트, L1 컨트랙트, L2 컨트랙트, 블록체인 인프라] +description: 브릿지 컨트랙트, 핵심 인프라, L2 컨트랙트를 포함한 Status Network 테스트넷 컨트랙트 주소의 포괄적인 목록과 각각의 목적 및 블록 탐색기 링크. +keywords: [Status Network 컨트랙트, 테스트넷 주소, 스마트 컨트랙트, 브릿지 컨트랙트, L1 컨트랙트, L2 컨트랙트, 블록체인 인프라] --- # 테스트넷 컨트랙트 @@ -12,14 +12,14 @@ keywords: [Status Network 컨트랙트, 테스트넷 주소, 스마트 컨트랙 이 컨트랙트들은 Sepolia 테스트넷에 배포되어 있습니다. [Sepolia Etherscan](https://sepolia.etherscan.io)에서 확인할 수 있습니다. -### 브리지 컨트랙트 +### 브릿지 컨트랙트 - **Rollup Contract** - 주소: [`0x0Bf464f24D867ff0B20aE8f9C353a589138D6836`](https://sepolia.etherscan.io/address/0x0bf464f24d867ff0b20ae8f9c353a589138d6836) - 목적: L2의 유효성, DA 및 L1에서 L2로의 메시징을 관리 - **L1 Token Bridge Proxy** - 주소: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548) - - 목적: L1에서 토큰 브리징 작업을 관리 + - 목적: L1에서 토큰 브릿지 작업을 관리 ### 핵심 인프라 - **L1 Postman** @@ -38,14 +38,14 @@ keywords: [Status Network 컨트랙트, 테스트넷 주소, 스마트 컨트랙 이 컨트랙트들은 Status Network 테스트넷에 배포되어 있습니다. [Status Network Explorer](https://sepoliascan.status.network)에서 확인할 수 있습니다. -### 브리지 컨트랙트 +### 브릿지 컨트랙트 - **L2 Message Service** - 주소: [`0xe74Bd8db0440533F8915042D980AbAA86085821c`](https://sepoliascan.status.network/address/0xe74Bd8db0440533F8915042D980AbAA86085821c) - 목적: L2에서 L1로의 메시징을 관리 - **L2 Token Bridge Proxy** - 주소: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19) - - 목적: L2에서 토큰 브리징 작업을 관리 + - 목적: L2에서 토큰 브릿지 작업을 관리 ### 인프라 컨트랙트 - **L2 Faucet** diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md index e7eb51d..942b13a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/contract-addresses/tokens.md @@ -5,7 +5,7 @@ Status Network에서 지원되는 토큰과 해당 컨트랙트 주소의 최신 이 저장소에는 다음 내용이 포함되어 있습니다: - L1(Sepolia)과 L2(Status Network) 양쪽의 토큰 주소 - 토큰 메타데이터(소수점, 심볼 등) -- 브리지 컨트랙트 매핑 +- 브릿지 컨트랙트 매핑 - Status Network에 배포된 앱 토큰 -토큰 목록은 토큰 브리징 작업의 정확성과 보안을 보장하기 위해 정기적으로 유지 관리되고 업데이트됩니다. +토큰 목록은 토큰 브릿지 작업의 정확성과 보안을 보장하기 위해 정기적으로 유지 관리되고 업데이트됩니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md index 1c78311..27fc994 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md @@ -30,7 +30,7 @@ Prover에는 Karma가 새 주소에 할당되는 Karma Contract의 이벤트를 ```mermaid graph TD A[사용자 지갑] -->|화이트리스트 앱을 통한 첫 L2 액션| B(Karma 발급) - A -->|SN으로 브리지| B + A -->|SN으로 브릿지| B B -->|소울바운드 토큰| C{티어 할당} subgraph "티어 제한" diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md index 948c799..58bd8c4 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/network-details.md @@ -9,7 +9,7 @@ | **체인 ID** | 1660990954 | | **통화 기호** | ETH | | **블록 탐색기** | https://sepoliascan.status.network | -| **브리지** | https://bridge.status.network | +| **브릿지** | https://bridge.status.network | | **WebSocket RPC** | WebSocket RPC를 받으려면 [Telegram](https://t.me/statusl2)으로 문의하세요 | 이것은 Status Network 테스트넷의 공식 네트워크 세부정보입니다. 이 세부정보는 다음과 같은 용도로 사용할 수 있습니다: diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md index 20f77bc..c7b3271 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md @@ -43,7 +43,7 @@ Status Network는 Status Wallet, Keycard, Waku, Codex 등 [IFT](https://free.tec 1. [Status Network를 지갑에 추가](/overview/general-info/add-status-network) 2. [테스트넷 ETH 받기](/tools/testnet-faucets) -3. [자산 브리징하기](/overview/general-info/bridge/bridging-testnet) +3. [자산 브릿지하기](/overview/general-info/bridge/bridging-testnet) 4. [첫 번째 컨트랙트 배포하기](/build-for-karma/deploying-contracts/using-remix) ## 지원 및 리소스 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md index 0134bd6..eed217e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/introduction/quick-start.md @@ -16,7 +16,7 @@ Sepolia ETH와 Status Network ETH 모두 필요합니다: - 먼저 [Sepolia 파우셋](https://faucet.status.network)에서 Sepolia ETH를 받으세요 - - 그런 다음 [Status 브리지](https://bridge.status.network)를 사용하여 ETH를 Status Network로 브리징하세요 + - 그런 다음 [Status 브릿지](https://bridge.status.network)를 사용하여 ETH를 Status Network로 브릿지하세요 - 또는 [테스트넷 파우셋](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)에서 직접 Status Network ETH를 받으세요 이제 시작할 준비가 되었습니다! @@ -103,13 +103,13 @@ contract SimpleStorage { - **지원 받기**: - [텔레그램 커뮤니티](https://t.me/statusl2)에 참여하여 도움을 받으세요 - [네트워크 세부정보](/overview/general-info/network-details)에서 자세한 정보를 확인하세요 - - Status Network로의 [토큰 브리징](/overview/general-info/bridge/bridging-testnet)에 대해 알아보세요 + - Status Network로의 [토큰 브릿지](/overview/general-info/bridge/bridging-testnet)에 대해 알아보세요 ## 요약 성공적으로 다음을 수행하셨습니다: - Status Network 테스트넷과 상호작용하기 위한 환경 설정 -- 브리징 또는 파우셋를 통해 테스트넷 ETH 획득 +- 브릿지 또는 파우셋를 통해 테스트넷 ETH 획득 - Remix IDE와 MetaMask를 사용하여 스마트 컨트랙트 배포 - 숫자 저장 및 조회를 통해 배포된 컨트랙트와 상호작용 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/other/official-links.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/other/official-links.md index eb4fc8f..c8f492e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/other/official-links.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/other/official-links.md @@ -8,7 +8,7 @@ - **GitHub**: [github.com/status-im](https://github.com/status-im) ## 네트워크 도구 -- **브리지**: [bridge.status.network](https://bridge.status.network) +- **브릿지**: [bridge.status.network](https://bridge.status.network) - **블록 탐색기**: [sepoliascan.status.network](https://sepoliascan.status.network) - **RPC 엔드포인트**: [public.sepolia.rpc.status.network](https://public.sepolia.rpc.status.network) - **WebSocket RPC**: WebSocket RPC가 필요하시면 [Telegram](https://t.me/statusl2)으로 문의해주세요 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md index 5a93ebd..867bc04 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/economic-model.md @@ -6,7 +6,7 @@ 지속가능성을 달성하기 위해 Status Network는 다음과 같은 수입원에서 수익을 창출합니다: -- **네이티브 수익 수수료**: Status Network에 브리지된 자산(초기에는 ETH와 DAI)은 수익 창출형 등가물(stETH와 sDAI)로 재활용됩니다. 생성된 수익의 일부(30%)가 네트워크 운영 비용으로 할당됩니다. +- **네이티브 수익 수수료**: Status Network에 브릿지된 자산(초기에는 ETH와 DAI)은 수익 창출형 등가물(stETH와 sDAI)로 재활용됩니다. 생성된 수익의 일부(30%)가 네트워크 운영 비용으로 할당됩니다. - **네이티브 DEX 스왑 수수료**: Status Network는 거래 수수료가 네트워크 운영에 기여하는 네이티브 DEX를 제공합니다. 네이티브 DEX 유동성 제공자는 일반 LP 수수료 외에도 네이티브 수익에서 추가 인센티브를 얻을 수 있습니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md index 1f4434f..7cec5b6 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/karmic-tokenomics.md @@ -1,6 +1,6 @@ # 카르마 토크노믹스 -동양의 전통에서 카르마는 과거의 행동이 미래의 상태를 형성한다는 원리를 나타냅니다. 마찬가지로 Status Network에서는 모든 긍정적인 행동과 기여가 카르마를 축적하여 네트워크의 자금 조달과 인센티브에 대한 더 큰 영향력을 부여합니다. 카르마($KARMA)는 스테이킹, 브리징, 유동성 제공, 구축에 대한 보상을 제공하는 양도 불가능한 거버넌스 토큰입니다. 사용자나 앱이 L2의 유동성이나 활동에 더 많이 기여할수록, 자금 배분, 유동성 인센티브, 네트워크 로드맵과 매개변수에 대한 더 많은 투표권을 얻게 됩니다. +동양의 전통에서 카르마는 과거의 행동이 미래의 상태를 형성한다는 원리를 나타냅니다. 마찬가지로 Status Network에서는 모든 긍정적인 행동과 기여가 카르마를 축적하여 네트워크의 자금 조달과 인센티브에 대한 더 큰 영향력을 부여합니다. 카르마($KARMA)는 스테이킹, 브릿지, 유동성 제공, 구축에 대한 보상을 제공하는 양도 불가능한 거버넌스 토큰입니다. 사용자나 앱이 L2의 유동성이나 활동에 더 많이 기여할수록, 자금 배분, 유동성 인센티브, 네트워크 로드맵과 매개변수에 대한 더 많은 투표권을 얻게 됩니다. ## 카르마 획득 방법 @@ -8,7 +8,7 @@ 1. **SNT 스테이킹** – SNT를 스테이킹하는 사람은 누구나 비례적으로 카르마 보상을 받습니다. SNT를 스테이킹하거나 잠그는 기간이 길수록 카르마 획득률이 높아집니다. -2. **수익 창출 자산 브리징** – ETH와 DAI(초기에, 나중에 더 많은 자산이 추가될 예정)를 Status Network에 브리징하면 카르마를 획득할 수 있습니다. +2. **수익 창출 자산 브릿지** – ETH와 DAI(초기에, 나중에 더 많은 자산이 추가될 예정)를 Status Network에 브릿지하면 카르마를 획득할 수 있습니다. 3. **유동성 제공** – 네이티브 DEX에서 누구나 큐레이팅된 풀에 유동성을 제공하여 수수료, 네이티브 수익 보상, 카르마를 획득할 수 있습니다. @@ -36,12 +36,12 @@ ## 플라이휠 효과 -1. 사용자는 수익 창출 자산을 브리징하여 카르마를 획득하고 앱과 유동성 제공자에 대한 자금을 증가시킵니다. +1. 사용자는 수익 창출 자산을 브릿지하여 카르마를 획득하고 앱과 유동성 제공자에 대한 자금을 증가시킵니다. 2. 더 높은 앱 자금이 더 많은 새로운 앱을 네트워크에 배포하도록 유치합니다. 3. 자금을 받은 앱이 더 많은 사용자를 확보하여 네이티브 DEX의 거래량을 증가시킵니다. -4. 더 높은 네이티브 수익과 수수료가 사용자들이 추가 수익 창출 자산을 브리징함으로써 더 많은 TVL을 유치합니다. +4. 더 높은 네이티브 수익과 수수료가 사용자들이 추가 수익 창출 자산을 브릿지함으로써 더 많은 TVL을 유치합니다. TVL과 채택이 성장함에 따라 자금 조달 기회도 증가하여 네트워크의 지속가능성을 강화합니다. \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md index fc44e9e..39542fd 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/tokenomics/public-funding.md @@ -10,7 +10,7 @@ Status Network의 가장 중요한 구성 요소 중 하나는 네트워크에 ### 앱 자금 풀의 작동 방식 -- **네이티브 수익과 수수료로 자금 조달**: 브리지된 자산(초기에는 ETH와 DAI)에서 생성되는 수익과 네이티브 DEX 스왑 수수료의 상당 부분이 직접 자금 풀로 흐릅니다. +- **네이티브 수익과 수수료로 자금 조달**: 브릿지된 자산(초기에는 ETH와 DAI)에서 생성되는 수익과 네이티브 DEX 스왑 수수료의 상당 부분이 직접 자금 풀로 흐릅니다. - **카르마 보유자에 의한 관리**: 자금의 할당은 카르마 토큰 보유자에 의해 결정되어 커뮤니티 주도의 의사 결정 프로세스를 보장합니다: 커뮤니티가 당신의 앱을 좋아한다면, 자금을 받을 수 있습니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md index 7706645..fec0b9a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md @@ -1,8 +1,8 @@ --- id: tools-index title: 도구 및 인프라 -description: Status Network에서 사용할 수 있는 개발자 도구, 인프라 서비스, 통합 — RPC 엔드포인트, 브리지, 파우셋, 익스플로러, 파트너 통합. -keywords: [Status Network, 개발자 도구, RPC, 브리지, 파우셋, 블록 익스플로러, 인프라] +description: Status Network에서 사용할 수 있는 개발자 도구, 인프라 서비스, 통합 — RPC 엔드포인트, 브릿지, 파우셋, 익스플로러, 파트너 통합. +keywords: [Status Network, 개발자 도구, RPC, 브릿지, 파우셋, 블록 익스플로러, 인프라] slug: /tools sidebar_position: 1 --- diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md index 2789c6c..6018e4b 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md @@ -24,14 +24,14 @@ Status Network 테스트넷 파우셋은 [faucet.status.network](https://faucet. 3. "Request" 클릭 4. ETH가 지갑에 표시될 때까지 대기 (보통 몇 초 소요) -## Sepolia ETH (브리징에 필요) +## Sepolia ETH (브릿지에 필요) Status Network 테스트넷으로 자산을 브릿징하려면 먼저 Sepolia ETH가 필요합니다. 다음에서 받을 수 있습니다: 1. [Alchemy Sepolia 파우셋](https://www.alchemy.com/faucets/ethereum-sepolia) 2. [Metamask Sepolia 파우셋](https://docs.metamask.io/developer-tools/faucet/) -Sepolia ETH를 받은 후, [Status Network 브리지](https://bridge.status.network)를 사용하여 Status Network 테스트넷으로 브릿징할 수 있습니다. +Sepolia ETH를 받은 후, [Status Network 브릿지](https://bridge.status.network)를 사용하여 Status Network 테스트넷으로 브릿징할 수 있습니다. ## Status Network STT 파우셋 From beb9b95ac2ae563856e720fe77bae93ddaa577e6 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Thu, 19 Feb 2026 17:01:06 +0100 Subject: [PATCH 15/36] Remove redundant headings for page title Signed-off-by: yjkellyjoo --- docs/tools/block-explorers.md | 2 -- docs/tools/bridge.md | 4 +--- docs/tools/infrastructure.md | 2 -- docs/tools/rpc.md | 2 -- docs/tools/testnet-faucets.md | 2 -- 5 files changed, 1 insertion(+), 11 deletions(-) diff --git a/docs/tools/block-explorers.md b/docs/tools/block-explorers.md index cd73071..962e39f 100644 --- a/docs/tools/block-explorers.md +++ b/docs/tools/block-explorers.md @@ -4,8 +4,6 @@ description: Status Network block explorer for viewing transactions, verifying c keywords: [block explorer, transaction tracking, smart contract verification] --- -# Block Explorers - ## Status Network Mainnet *Coming soon.* diff --git a/docs/tools/bridge.md b/docs/tools/bridge.md index 889ac0d..875c64e 100644 --- a/docs/tools/bridge.md +++ b/docs/tools/bridge.md @@ -1,11 +1,9 @@ --- -title: Status Network Bridge +title: Status Network Testnet Bridge description: Complete guide to using the Status Network bridge for transferring tokens between Sepolia and Status Network testnet. Learn about supported tokens, bridging process, and monitoring transactions. keywords: [Status Network bridge, token bridge, cross-chain transfer, L1 L2 bridge, token bridging, Sepolia bridge] --- -# Status Network Testnet Bridge - The Status Network Testnet Bridge allows users to transfer tokens and pass messages between Sepolia (Layer 1) and Status Network testnet (Layer 2). The bridge interface is available at [bridge.status.network](https://bridge.status.network). ## Bridge Contracts diff --git a/docs/tools/infrastructure.md b/docs/tools/infrastructure.md index a8734fd..2367758 100644 --- a/docs/tools/infrastructure.md +++ b/docs/tools/infrastructure.md @@ -5,8 +5,6 @@ keywords: [Status Network, infrastructure, partners, oracles, indexing, RPC, acc sidebar_position: 6 --- -# Infrastructure Partners - :::note Coming Soon Status Network is actively onboarding infrastructure partners across the categories below. This page will be updated as integrations go live. ::: diff --git a/docs/tools/rpc.md b/docs/tools/rpc.md index d1a9bb7..99758be 100644 --- a/docs/tools/rpc.md +++ b/docs/tools/rpc.md @@ -6,8 +6,6 @@ keywords: [Status Network RPC, JSON-RPC, blockchain API, web3 configuration, Met import AddToMetaMask from '@site/src/components/AddToMetaMask'; -# RPC Endpoints - The Status Network provides public RPC (Remote Procedure Call) endpoints that allow you to interact with the network. ## Public RPC URL diff --git a/docs/tools/testnet-faucets.md b/docs/tools/testnet-faucets.md index e061cb9..7e40043 100644 --- a/docs/tools/testnet-faucets.md +++ b/docs/tools/testnet-faucets.md @@ -4,8 +4,6 @@ description: Get testnet ETH or STT for Status Network development. Complete gui keywords: [Status Network faucet, testnet ETH, test tokens, STT, Sepolia faucet, blockchain testing, development tokens] --- -# Testnet Faucets - To get started on Status Network testnet, you may need some testnet ETH or test assets. ## Status Network Testnet ETH Faucet From de7ba0563e340786d1dc8553ab5d801b5982e856 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 15:06:02 +0100 Subject: [PATCH 16/36] Add documentation landing page with hero, doc cards, and community sections New custom landing page replaces the default docs-as-homepage pattern. Includes hero section, navigate-the-docs card grid, quick-start banner, and community links section with responsive design and dark mode support. Co-Authored-By: Claude Opus 4.6 --- src/pages/index.module.css | 393 +++++++++++++++++++++++++++++++++++++ src/pages/index.tsx | 161 +++++++++++++++ 2 files changed, 554 insertions(+) create mode 100644 src/pages/index.module.css create mode 100644 src/pages/index.tsx diff --git a/src/pages/index.module.css b/src/pages/index.module.css new file mode 100644 index 0000000..467840b --- /dev/null +++ b/src/pages/index.module.css @@ -0,0 +1,393 @@ +/* Hero Section */ +.hero { + padding: 4rem 2rem 2rem; + text-align: center; + position: relative; + overflow: hidden; +} + +.hero::before { + content: ''; + position: absolute; + top: -60%; + left: 50%; + transform: translateX(-50%); + width: 800px; + height: 800px; + background: radial-gradient( + circle, + rgba(113, 64, 253, 0.1) 0%, + rgba(113, 64, 253, 0.04) 40%, + transparent 70% + ); + pointer-events: none; + z-index: 0; +} + +[data-theme='dark'] .hero::before { + background: radial-gradient( + circle, + rgba(113, 64, 253, 0.2) 0%, + rgba(113, 64, 253, 0.08) 40%, + transparent 70% + ); +} + +.heroContent { + position: relative; + z-index: 1; + max-width: 720px; + margin: 0 auto; +} + +.heroLogo { + width: 72px; + height: 72px; + margin-bottom: 1.25rem; + filter: drop-shadow(0 4px 12px rgba(113, 64, 253, 0.2)); +} + +[data-theme='dark'] .heroLogo { + filter: drop-shadow(0 4px 16px rgba(113, 64, 253, 0.35)); +} + +.heroSubtitle { + font-size: 1rem; + font-weight: 500; + letter-spacing: 0.08em; + text-transform: uppercase; + color: #7140fd; + margin-bottom: 0.75rem; +} + +[data-theme='dark'] .heroSubtitle { + color: #9b7aff; +} + +.heroTitle { + font-size: clamp(2rem, 5vw, 3rem); + font-weight: 700; + letter-spacing: -0.03em; + line-height: 1.15; + margin-bottom: 1.25rem; + color: #09101c; +} + +[data-theme='dark'] .heroTitle { + color: #ffffff; +} + +.heroDescription { + font-size: 1.125rem; + line-height: 1.7; + color: var(--status-gray-500); + max-width: 560px; + margin: 0 auto; +} + +[data-theme='dark'] .heroDescription { + color: var(--status-gray-400); +} + +/* Section Common */ +.section { + padding: 3rem 2rem; + max-width: 1100px; + margin: 0 auto; +} + +.sectionTitle { + font-size: 1.5rem; + font-weight: 700; + letter-spacing: -0.02em; + margin-bottom: 0.5rem; + color: #09101c; +} + +[data-theme='dark'] .sectionTitle { + color: #ffffff; +} + +.sectionSubtitle { + font-size: 1rem; + color: var(--status-gray-500); + margin-bottom: 2rem; +} + +[data-theme='dark'] .sectionSubtitle { + color: var(--status-gray-400); +} + +/* Doc Cards Grid */ +.cardGrid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.25rem; +} + +@media (max-width: 768px) { + .cardGrid { + grid-template-columns: 1fr; + } +} + +.card { + display: flex; + flex-direction: column; + padding: 1.75rem; + border: 1px solid var(--status-gray-200); + border-radius: 16px; + background: #ffffff; + text-decoration: none !important; + color: inherit !important; + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1), + border-color 250ms cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + overflow: hidden; +} + +[data-theme='dark'] .card { + background: #0f1729; + border-color: rgba(113, 64, 253, 0.12); +} + +.card:hover { + transform: translateY(-4px); + box-shadow: 0 12px 24px -8px rgba(113, 64, 253, 0.15); + border-color: #7140fd; + text-decoration: none !important; +} + +[data-theme='dark'] .card:hover { + box-shadow: 0 12px 24px -8px rgba(113, 64, 253, 0.3); + border-color: #9b7aff; +} + +.cardIcon { + width: 48px; + height: 48px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.5rem; + margin-bottom: 1.25rem; + flex-shrink: 0; +} + +.cardIconOverview { + composes: cardIcon; + background: rgba(113, 64, 253, 0.1); +} + +[data-theme='dark'] .cardIconOverview { + background: rgba(113, 64, 253, 0.18); +} + +.cardIconBuild { + composes: cardIcon; + background: rgba(94, 174, 164, 0.12); +} + +[data-theme='dark'] .cardIconBuild { + background: rgba(94, 174, 164, 0.18); +} + +.cardIconTools { + composes: cardIcon; + background: rgba(81, 208, 240, 0.12); +} + +[data-theme='dark'] .cardIconTools { + background: rgba(81, 208, 240, 0.18); +} + +.cardTitle { + font-size: 1.25rem; + font-weight: 600; + margin-bottom: 0.5rem; + color: #09101c; +} + +[data-theme='dark'] .cardTitle { + color: #ffffff; +} + +.cardDescription { + font-size: 0.925rem; + line-height: 1.6; + color: var(--status-gray-500); + margin-bottom: 1.25rem; + flex: 1; +} + +[data-theme='dark'] .cardDescription { + color: var(--status-gray-400); +} + +.cardLink { + display: inline-flex; + align-items: center; + gap: 0.35rem; + font-size: 0.9rem; + font-weight: 500; + color: #7140fd; + text-decoration: none; + transition: gap 200ms ease; +} + +[data-theme='dark'] .cardLink { + color: #9b7aff; +} + +.card:hover .cardLink { + gap: 0.6rem; +} + +.cardLinkArrow { + transition: transform 200ms ease; +} + +.card:hover .cardLinkArrow { + transform: translateX(2px); +} + +/* Community Section */ +.communityGrid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.25rem; +} + +@media (max-width: 768px) { + .communityGrid { + grid-template-columns: 1fr; + } +} + +.communityCard { + display: flex; + flex-direction: column; + gap: 0.5rem; + padding: 1.5rem; + border: 1px solid var(--status-gray-200); + border-radius: 16px; + background: #ffffff; + text-decoration: none !important; + color: inherit !important; + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1), + border-color 250ms cubic-bezier(0.4, 0, 0.2, 1); +} + +[data-theme='dark'] .communityCard { + background: #0f1729; + border-color: rgba(113, 64, 253, 0.12); +} + +.communityCard:hover { + transform: translateY(-2px); + box-shadow: 0 8px 16px -4px rgba(113, 64, 253, 0.12); + border-color: #7140fd; + text-decoration: none !important; +} + +[data-theme='dark'] .communityCard:hover { + box-shadow: 0 8px 16px -4px rgba(113, 64, 253, 0.25); + border-color: #9b7aff; +} + +.communityCardTitle { + font-size: 1rem; + font-weight: 600; + color: #09101c; +} + +[data-theme='dark'] .communityCardTitle { + color: #ffffff; +} + +.communityCardDescription { + font-size: 0.875rem; + line-height: 1.5; + color: var(--status-gray-500); +} + +[data-theme='dark'] .communityCardDescription { + color: var(--status-gray-400); +} + +/* Quick Start Banner */ +.quickStart { + padding: 2.5rem 2rem; + max-width: 1100px; + margin: 0 auto 2rem; +} + +.quickStartInner { + display: flex; + align-items: center; + justify-content: space-between; + gap: 2rem; + padding: 2rem 2.5rem; + border-radius: 16px; + background: linear-gradient(135deg, rgba(113, 64, 253, 0.06) 0%, rgba(113, 64, 253, 0.03) 100%); + border: 1px solid rgba(113, 64, 253, 0.12); +} + +[data-theme='dark'] .quickStartInner { + background: linear-gradient(135deg, rgba(113, 64, 253, 0.12) 0%, rgba(113, 64, 253, 0.06) 100%); + border-color: rgba(113, 64, 253, 0.2); +} + +@media (max-width: 640px) { + .quickStartInner { + flex-direction: column; + text-align: center; + } +} + +.quickStartText h3 { + font-size: 1.25rem; + font-weight: 600; + margin: 0 0 0.35rem; + color: #09101c; +} + +[data-theme='dark'] .quickStartText h3 { + color: #ffffff; +} + +.quickStartText p { + font-size: 0.925rem; + color: var(--status-gray-500); + margin: 0; +} + +[data-theme='dark'] .quickStartText p { + color: var(--status-gray-400); +} + +.quickStartButton { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.7rem 1.5rem; + border-radius: 12px; + background: #7140fd; + color: #ffffff !important; + font-weight: 500; + font-size: 0.925rem; + text-decoration: none !important; + transition: transform 200ms ease, box-shadow 200ms ease; + white-space: nowrap; + flex-shrink: 0; +} + +.quickStartButton:hover { + transform: translateY(-2px); + box-shadow: 0 6px 20px -4px rgba(113, 64, 253, 0.4); + text-decoration: none !important; + color: #ffffff !important; +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 0000000..0723374 --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,161 @@ +import React from 'react'; +import Layout from '@theme/Layout'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import styles from './index.module.css'; + +const docCards = [ + { + title: 'Overview', + description: + 'Learn about Status Network\'s architecture, gasless transactions, tokenomics, and the sustainable public funding model.', + link: '/overview', + linkText: 'Read More', + iconClass: styles.cardIconOverview, + icon: '🌐', + }, + { + title: 'Build for Karma', + description: + 'Guides, tutorials, and references for deploying contracts, integrating Karma, and building gasless dApps.', + link: '/build-for-karma', + linkText: 'Read More', + iconClass: styles.cardIconBuild, + icon: '🛠', + }, + { + title: 'Tools', + description: + 'RPC endpoints, bridges, testnet faucets, block explorers, and infrastructure partners.', + link: '/tools', + linkText: 'Read More', + iconClass: styles.cardIconTools, + icon: '⚡', + }, +]; + +const communityLinks = [ + { + title: 'Join our Telegram', + description: 'Connect with other Status Network builders and get support.', + href: 'https://t.me/statusl2', + }, + { + title: 'View on GitHub', + description: 'Explore the source code and contribute to the ecosystem.', + href: 'https://github.com/status-im', + }, + { + title: 'Official Links', + description: 'Website, social channels, and all official resources in one place.', + href: '/overview/other/official-links', + }, +]; + +function Hero() { + const logoSrc = useBaseUrl('/img/sn_logo.svg'); + return ( +
+
+ Status Network +

Welcome to

+

Status Network Documentation

+

+ The first natively gasless Ethereum L2 — optimized for social apps and + games, with sustainable public funding for builders. +

+
+
+ ); +} + +function DocCards() { + return ( +
+

Navigate the Docs

+

+ Start developing on Status Network today. +

+
+ {docCards.map((card) => ( + +
{card.icon}
+
{card.title}
+
{card.description}
+ + {card.linkText}{' '} + + + + ))} +
+
+ ); +} + +function QuickStart() { + return ( +
+
+
+

Ready to build?

+

+ Set up your wallet, grab testnet tokens, and deploy your first + contract in minutes. +

+
+ + Quick Start → + +
+
+ ); +} + +function Community() { + return ( +
+

Connect with us

+

+ Keep up to date with the latest from the Status Network community. +

+
+ {communityLinks.map((item) => ( + +
{item.title}
+
+ {item.description} +
+ + ))} +
+
+ ); +} + +export default function Home(): React.JSX.Element { + return ( + + + + + + + ); +} From d07669f7f23b69e4e4403e41605d3bb68aaf862c Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 15:06:08 +0100 Subject: [PATCH 17/36] Enable pages plugin and update theme for landing page - Remove pages: false to enable the custom landing page at / - Update Overview nav link from / to /overview - Refresh dark mode palette to dark blue tones (#09101c, #0f1729) - Update navbar/footer dark backgrounds for visual consistency - Add deploy-card grid component styles Co-Authored-By: Claude Opus 4.6 --- docusaurus.config.ts | 3 +- src/css/custom.css | 102 +++++++++++++++++++++++++++++++++++++++---- 2 files changed, 94 insertions(+), 11 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index c2de18f..544012f 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -48,7 +48,6 @@ const config: Config = { rehypePlugins: [rehypeKatex], }, blog: false, - pages: false, theme: { customCss: './src/css/custom.css', }, @@ -73,7 +72,7 @@ const config: Config = { items: [ { label: 'Overview', - to: '/', + to: '/overview', activeBasePath: 'overview', }, { diff --git a/src/css/custom.css b/src/css/custom.css index 91832c2..a172353 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -47,7 +47,7 @@ --ifm-color-primary-lightest: #91CFC8; /* Enhanced Secondary Colors */ - --status-purple: #8247E5; + --status-purple: #7140fd; --status-blue: #51D0F0; --status-green: #5EAEA4; --status-yellow: #FFD506; @@ -94,8 +94,8 @@ [data-theme='dark'] { --ifm-color-primary: #6FB9B0; --ifm-color-primary-dark: #5EAEA4; - --ifm-background-color: #0A0A0C; - --ifm-background-surface-color: #151519; + --ifm-background-color: #09101c; + --ifm-background-surface-color: #0f1729; /* Dark mode specific shadows */ --shadow-sm: 0 2px 4px rgba(94, 174, 164, 0.2); @@ -111,7 +111,7 @@ html body { html[data-theme='dark'], html[data-theme='dark'] body { - background: #0A0A0C !important; + background: #09101c !important; } /* Remove gradient background */ @@ -203,8 +203,8 @@ h1, h2, h3, h4, h5, h6 { } [data-theme='dark'] .navbar { - background: rgba(10, 10, 12, 0.95); - border-bottom: 1px solid rgba(38, 38, 42, 0.8); + background: rgba(9, 16, 28, 0.95); + border-bottom: 1px solid rgba(38, 48, 68, 0.8); } /* Enhanced Card Styling */ @@ -304,7 +304,7 @@ th, td { [data-theme='dark'] th, [data-theme='dark'] td { border-color: var(--status-gray-700); - background: rgba(21, 21, 25, 0.5); + background: rgba(15, 23, 41, 0.5); } /* Animations */ @@ -413,6 +413,90 @@ div[class*='sidebarViewport'] { } } +/* Deploy Card Grid */ +.deploy-card-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1rem; + margin: 1.5rem 0; +} + +@media (max-width: 768px) { + .deploy-card-grid { + grid-template-columns: 1fr; + } +} + +.deploy-card { + display: flex; + align-items: flex-start; + gap: 1rem; + padding: 1.25rem 1.5rem; + border: 1px solid var(--status-gray-200); + border-radius: 16px; + background: white; + text-decoration: none !important; + color: inherit !important; + transition: var(--transition-normal); +} + +[data-theme='dark'] .deploy-card { + background: var(--ifm-background-surface-color); + border-color: var(--status-gray-700); +} + +.deploy-card:hover { + transform: translateY(-4px); + box-shadow: var(--shadow-lg); + border-color: var(--ifm-color-primary); + text-decoration: none !important; +} + +.deploy-card-icon { + font-size: 2rem; + line-height: 1; + flex-shrink: 0; + margin-top: 0.15rem; +} + +.deploy-card-content { + flex: 1; + min-width: 0; +} + +.deploy-card-content h3 { + margin: 0 0 0.4rem; + font-size: 1.1rem; + font-weight: 600; + color: var(--ifm-heading-color); +} + +.deploy-card-content p { + margin: 0 0 0.6rem; + font-size: 0.9rem; + line-height: 1.5; + color: var(--status-gray-500); +} + +[data-theme='dark'] .deploy-card-content p { + color: var(--status-gray-400); +} + +.deploy-card-tag { + display: inline-block; + font-size: 0.75rem; + font-weight: 500; + color: var(--ifm-color-primary-dark); + background: rgba(94, 174, 164, 0.1); + padding: 0.2rem 0.6rem; + border-radius: 6px; +} + +[data-theme='dark'] .deploy-card-tag { + color: var(--ifm-color-primary-light); + background: rgba(94, 174, 164, 0.15); +} + /* Footer Enhancements */ .footer { background: rgba(255, 255, 255, 0.95) !important; @@ -421,8 +505,8 @@ div[class*='sidebarViewport'] { } [data-theme='dark'] .footer { - background: rgba(10, 10, 12, 0.95) !important; - border-top: 1px solid rgba(38, 38, 42, 0.8); + background: rgba(9, 16, 28, 0.95) !important; + border-top: 1px solid rgba(38, 48, 68, 0.8); } /* Remove default footer background */ From ae488a6e0eb078dde3533dd56adcaca0bba73e07 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 15:57:14 +0100 Subject: [PATCH 18/36] Replace dApps with apps in landing page Co-Authored-By: Claude Opus 4.6 --- src/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 0723374..c1bb3c4 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -17,7 +17,7 @@ const docCards = [ { title: 'Build for Karma', description: - 'Guides, tutorials, and references for deploying contracts, integrating Karma, and building gasless dApps.', + 'Guides, tutorials, and references for deploying contracts, integrating Karma, and building gasless apps.', link: '/build-for-karma', linkText: 'Read More', iconClass: styles.cardIconBuild, From 03cd7ebee7313c430d97e0630421163207b39ec3 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Feb 2026 15:58:39 +0100 Subject: [PATCH 19/36] Add i18n landing pages for zh, ko, ja locales Translated landing page content (hero, doc cards, quick start, community) for Chinese, Korean, and Japanese locales. Co-Authored-By: Claude Opus 4.6 --- docs/overview/index.md | 2 +- .../current/overview/index.md | 2 +- .../docusaurus-plugin-content-pages/index.tsx | 160 +++++++++++++++++ .../current/overview/index.md | 2 +- .../docusaurus-plugin-content-pages/index.tsx | 161 ++++++++++++++++++ .../current/overview/index.md | 2 +- .../docusaurus-plugin-content-pages/index.tsx | 159 +++++++++++++++++ 7 files changed, 484 insertions(+), 4 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-pages/index.tsx create mode 100644 i18n/ko/docusaurus-plugin-content-pages/index.tsx create mode 100644 i18n/zh/docusaurus-plugin-content-pages/index.tsx diff --git a/docs/overview/index.md b/docs/overview/index.md index 759a425..8f03e05 100644 --- a/docs/overview/index.md +++ b/docs/overview/index.md @@ -3,7 +3,7 @@ id: index title: Status Network · Gasless L2 description: Status Network is a gasless Layer 2 blockchain network enabling seamless, fee-free decentralized applications. Start building with easy wallet setup, faucets, and deployment tools. keywords: [Status Network, Layer 2, gasless blockchain, ethereum scaling, L2, validium, web3 development, dapp development, blockchain development] -slug: / +slug: /overview sidebar_position: 1 --- diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md index 65a1fb2..99e98bb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md @@ -3,7 +3,7 @@ id: index title: Status Networkへようこそ description: Status Networkは、シームレスで手数料無料の分散型アプリケーションを実現するガスレスなレイヤー2ブロックチェーンネットワークです。簡単なウォレット設定、フォーセット、デプロイメントツールで開発を始めましょう。 keywords: [Status Network, レイヤー2, ガスレスブロックチェーン, イーサリアムスケーリング, L2, バリディウム, web3開発, dapp開発, ブロックチェーン開発] -slug: / +slug: /overview sidebar_position: 1 --- diff --git a/i18n/ja/docusaurus-plugin-content-pages/index.tsx b/i18n/ja/docusaurus-plugin-content-pages/index.tsx new file mode 100644 index 0000000..997b8b6 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-pages/index.tsx @@ -0,0 +1,160 @@ +import React from 'react'; +import Layout from '@theme/Layout'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import styles from '@site/src/pages/index.module.css'; + +const docCards = [ + { + title: '概要', + description: + 'Status Network のアーキテクチャ、ガスレス取引、トークノミクス、持続可能な公的資金モデルについて。', + link: '/overview', + linkText: '詳細を見る', + iconClass: styles.cardIconOverview, + icon: '🌐', + }, + { + title: 'Build for Karma', + description: + 'コントラクトのデプロイ、Karma の統合、ガスレスアプリの構築に関するガイド、チュートリアル、リファレンス。', + link: '/build-for-karma', + linkText: '詳細を見る', + iconClass: styles.cardIconBuild, + icon: '🛠', + }, + { + title: 'ツール', + description: + 'RPC エンドポイント、ブリッジ、テストネットフォーセット、ブロックエクスプローラー、インフラパートナー。', + link: '/tools', + linkText: '詳細を見る', + iconClass: styles.cardIconTools, + icon: '⚡', + }, +]; + +const communityLinks = [ + { + title: 'Telegram に参加', + description: '他の Status Network ビルダーと交流し、サポートを受けましょう。', + href: 'https://t.me/statusl2', + }, + { + title: 'GitHub で見る', + description: 'ソースコードを確認し、エコシステムに貢献しましょう。', + href: 'https://github.com/status-im', + }, + { + title: '公式リンク', + description: 'ウェブサイト、ソーシャルチャンネル、すべての公式リソースを一か所に。', + href: '/overview/other/official-links', + }, +]; + +function Hero() { + const logoSrc = useBaseUrl('/img/sn_logo.svg'); + return ( +
+
+ Status Network +

ようこそ

+

Status Network ドキュメント

+

+ 初のネイティブガスレス Ethereum L2 — ソーシャルアプリやゲームに最適化され、 + ビルダーに持続可能な公的資金を提供します。 +

+
+
+ ); +} + +function DocCards() { + return ( +
+

ドキュメントを探す

+

+ 今すぐ Status Network での開発を始めましょう。 +

+
+ {docCards.map((card) => ( + +
{card.icon}
+
{card.title}
+
{card.description}
+ + {card.linkText}{' '} + + + + ))} +
+
+ ); +} + +function QuickStart() { + return ( +
+
+
+

ビルドの準備はできましたか?

+

+ ウォレットを設定し、テストネットトークンを取得して、数分で最初のコントラクトをデプロイしましょう。 +

+
+ + クイックスタート → + +
+
+ ); +} + +function Community() { + return ( +
+

コミュニティ

+

+ Status Network コミュニティの最新情報をチェックしましょう。 +

+
+ {communityLinks.map((item) => ( + +
{item.title}
+
+ {item.description} +
+ + ))} +
+
+ ); +} + +export default function Home(): React.JSX.Element { + return ( + + + + + + + ); +} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md index c7b3271..16d3874 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md @@ -3,7 +3,7 @@ id: index title: Status Network에 오신 것을 환영합니다 description: Status Network는 원활하고 수수료가 없는 탈중앙화 애플리케이션을 가능하게 하는 가스리스 레이어 2 블록체인 네트워크입니다. 간단한 지갑 설정, 파우셋, 배포 도구로 구축을 시작하세요. keywords: [Status Network, 레이어 2, 가스리스 블록체인, 이더리움 스케일링, L2, validium, web3 개발, dapp 개발, 블록체인 개발] -slug: / +slug: /overview sidebar_position: 1 --- diff --git a/i18n/ko/docusaurus-plugin-content-pages/index.tsx b/i18n/ko/docusaurus-plugin-content-pages/index.tsx new file mode 100644 index 0000000..c5dd6ec --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-pages/index.tsx @@ -0,0 +1,161 @@ +import React from 'react'; +import Layout from '@theme/Layout'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import styles from '@site/src/pages/index.module.css'; + +const docCards = [ + { + title: '개요', + description: + '스테이터스 네트워크의 아키텍처, 가스리스 트랜잭션, 토큰이코노믹스, 지속 가능한 공공 자금 모델에 대해 알아보세요.', + link: '/overview', + linkText: '자세히 보기', + iconClass: styles.cardIconOverview, + icon: '🌐', + }, + { + title: '카르마를 위해 개발하기', + description: + '컨트랙트 배포, Karma 적용 및 가스리스 앱 구축을 위한 가이드, 튜토리얼, 레퍼런스.', + link: '/build-for-karma', + linkText: '자세히 보기', + iconClass: styles.cardIconBuild, + icon: '🛠', + }, + { + title: '도구', + description: + 'RPC 엔드포인트, 브릿지, 테스트넷 파우셋, 블록 익스플로러, 인프라 파트너.', + link: '/tools', + linkText: '자세히 보기', + iconClass: styles.cardIconTools, + icon: '⚡', + }, +]; + +const communityLinks = [ + { + title: 'Telegram 참여', + description: '다른 스테이터스 네트워크 빌더들과 교류하고 지원을 받으세요.', + href: 'https://t.me/statusl2', + }, + { + title: 'GitHub 확인하기', + description: '소스 코드를 탐색하고 생태계에 기여하세요.', + href: 'https://github.com/status-im', + }, + { + title: '공식 링크', + description: '웹사이트, 소셜 채널, 모든 공식 리소스를 한 곳에서 확인하세요.', + href: '/overview/other/official-links', + }, +]; + +function Hero() { + const logoSrc = useBaseUrl('/img/sn_logo.svg'); + return ( +
+
+ Status Network +

환영합니다

+

Status Network 문서

+

+ 최초의 네이티브 가스리스 이더리움 L2 — 소셜 앱과 게임에 최적화되어 + 빌더를 위한 지속 가능한 공공 자금을 제공합니다. +

+
+
+ ); +} + +function DocCards() { + return ( +
+

문서 탐색

+

+ 지금 바로 스테이터스 네트워크에서 개발을 시작하세요. +

+
+ {docCards.map((card) => ( + +
{card.icon}
+
{card.title}
+
{card.description}
+ + {card.linkText}{' '} + + + + ))} +
+
+ ); +} + +function QuickStart() { + return ( +
+
+
+

빌드할 준비가 되셨나요?

+

+ 지갑을 설정하고 테스트넷 토큰을 받아 몇 분 만에 첫 번째 컨트랙트를 + 배포하세요. +

+
+ + 빠른 시작 → + +
+
+ ); +} + +function Community() { + return ( +
+

커뮤니티

+

+ 스테이터스 네트워크 커뮤니티의 최신 소식을 확인하세요. +

+
+ {communityLinks.map((item) => ( + +
{item.title}
+
+ {item.description} +
+ + ))} +
+
+ ); +} + +export default function Home(): React.JSX.Element { + return ( + + + + + + + ); +} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md index 4019266..fac5952 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md @@ -3,7 +3,7 @@ id: index title: 欢迎来到 Status Network description: Status Network 是一个无 Gas 费的第二层区块链网络,支持无缝、免费的去中心化应用程序。通过简单的钱包设置、水龙头和部署工具开始构建。 keywords: [Status Network, 第二层, 无gas区块链, 以太坊扩展, L2, validium, web3开发, dapp开发, 区块链开发] -slug: / +slug: /overview sidebar_position: 1 --- diff --git a/i18n/zh/docusaurus-plugin-content-pages/index.tsx b/i18n/zh/docusaurus-plugin-content-pages/index.tsx new file mode 100644 index 0000000..7d66a34 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-pages/index.tsx @@ -0,0 +1,159 @@ +import React from 'react'; +import Layout from '@theme/Layout'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import styles from '@site/src/pages/index.module.css'; + +const docCards = [ + { + title: '概览', + description: + '了解 Status Network 的架构、免 Gas 交易、代币经济学以及可持续的公共资助模式。', + link: '/overview', + linkText: '了解更多', + iconClass: styles.cardIconOverview, + icon: '🌐', + }, + { + title: 'Build for Karma', + description: + '部署合约、集成 Karma 和构建免 Gas 应用的指南、教程和参考文档。', + link: '/build-for-karma', + linkText: '了解更多', + iconClass: styles.cardIconBuild, + icon: '🛠', + }, + { + title: '工具', + description: + 'RPC 端点、跨链桥、测试网水龙头、区块浏览器和基础设施合作伙伴。', + link: '/tools', + linkText: '了解更多', + iconClass: styles.cardIconTools, + icon: '⚡', + }, +]; + +const communityLinks = [ + { + title: '加入我们的 Telegram', + description: '与其他 Status Network 开发者交流并获取支持。', + href: 'https://t.me/statusl2', + }, + { + title: '在 GitHub 上查看', + description: '探索源代码并为生态系统做贡献。', + href: 'https://github.com/status-im', + }, + { + title: '官方链接', + description: '网站、社交频道和所有官方资源汇总。', + href: '/overview/other/official-links', + }, +]; + +function Hero() { + const logoSrc = useBaseUrl('/img/sn_logo.svg'); + return ( +
+
+ Status Network +

欢迎来到

+

Status Network 文档

+

+ 首个原生免 Gas 的以太坊 L2 — 专为社交应用和游戏优化,为开发者提供可持续的公共资助。 +

+
+
+ ); +} + +function DocCards() { + return ( +
+

浏览文档

+

+ 立即开始在 Status Network 上开发。 +

+
+ {docCards.map((card) => ( + +
{card.icon}
+
{card.title}
+
{card.description}
+ + {card.linkText}{' '} + + + + ))} +
+
+ ); +} + +function QuickStart() { + return ( +
+
+
+

准备开始构建?

+

+ 设置钱包,获取测试网代币,几分钟内部署您的第一个合约。 +

+
+ + 快速开始 → + +
+
+ ); +} + +function Community() { + return ( +
+

与我们联系

+

+ 了解 Status Network 社区的最新动态。 +

+
+ {communityLinks.map((item) => ( + +
{item.title}
+
+ {item.description} +
+ + ))} +
+
+ ); +} + +export default function Home(): React.JSX.Element { + return ( + + + + + + + ); +} From 71c19566de5dcff0246bfd386009a51cbe964609 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Thu, 19 Feb 2026 15:12:45 +0100 Subject: [PATCH 20/36] improve loading translation for homepage using `Translate` component Signed-off-by: yjkellyjoo --- i18n/ja/code.json | 108 ++++++++ .../docusaurus-plugin-content-pages/index.tsx | 160 ----------- i18n/ko/code.json | 108 ++++++++ .../docusaurus-plugin-content-pages/index.tsx | 161 ----------- i18n/zh/code.json | 108 ++++++++ .../docusaurus-plugin-content-pages/index.tsx | 159 ----------- src/pages/index.tsx | 260 +++++++++++++----- 7 files changed, 522 insertions(+), 542 deletions(-) delete mode 100644 i18n/ja/docusaurus-plugin-content-pages/index.tsx delete mode 100644 i18n/ko/docusaurus-plugin-content-pages/index.tsx delete mode 100644 i18n/zh/docusaurus-plugin-content-pages/index.tsx diff --git a/i18n/ja/code.json b/i18n/ja/code.json index a8bd1f7..d9da4cd 100644 --- a/i18n/ja/code.json +++ b/i18n/ja/code.json @@ -436,5 +436,113 @@ "theme.tags.tagsPageTitle": { "message": "タグ", "description": "The title of the tag list page" + }, + "homepage.layout.title": { + "message": "Status Network ドキュメント", + "description": "Homepage layout title" + }, + "homepage.layout.description": { + "message": "Status Network ドキュメント — 初のネイティブガスレス Ethereum L2、ビルダーに持続可能な公的資金を提供。", + "description": "Homepage layout description" + }, + "homepage.hero.subtitle": { + "message": "ようこそ", + "description": "Homepage hero subtitle" + }, + "homepage.hero.title": { + "message": "Status Network ドキュメント", + "description": "Homepage hero title" + }, + "homepage.hero.description": { + "message": "初のネイティブガスレス Ethereum L2 — ソーシャルアプリやゲームに最適化され、ビルダーに持続可能な公的資金を提供します。", + "description": "Homepage hero description" + }, + "homepage.docs.sectionTitle": { + "message": "ドキュメントを探す", + "description": "Homepage docs section title" + }, + "homepage.docs.sectionSubtitle": { + "message": "今すぐ Status Network での開発を始めましょう。", + "description": "Homepage docs section subtitle" + }, + "homepage.docCards.overview.title": { + "message": "概要", + "description": "Homepage docs card title for Overview" + }, + "homepage.docCards.overview.description": { + "message": "Status Network のアーキテクチャ、ガスレス取引、トークノミクス、持続可能な公的資金モデルについて。", + "description": "Homepage docs card description for Overview" + }, + "homepage.docCards.overview.linkText": { + "message": "詳細を見る", + "description": "Homepage docs card link text for Overview" + }, + "homepage.docCards.build.title": { + "message": "Build for Karma", + "description": "Homepage docs card title for Build for Karma" + }, + "homepage.docCards.build.description": { + "message": "コントラクトのデプロイ、Karma の統合、ガスレスアプリの構築に関するガイド、チュートリアル、リファレンス。", + "description": "Homepage docs card description for Build for Karma" + }, + "homepage.docCards.build.linkText": { + "message": "詳細を見る", + "description": "Homepage docs card link text for Build for Karma" + }, + "homepage.docCards.tools.title": { + "message": "ツール", + "description": "Homepage docs card title for Tools" + }, + "homepage.docCards.tools.description": { + "message": "RPC エンドポイント、ブリッジ、テストネットフォーセット、ブロックエクスプローラー、インフラパートナー。", + "description": "Homepage docs card description for Tools" + }, + "homepage.docCards.tools.linkText": { + "message": "詳細を見る", + "description": "Homepage docs card link text for Tools" + }, + "homepage.quickStart.title": { + "message": "ビルドの準備はできましたか?", + "description": "Homepage quick start title" + }, + "homepage.quickStart.description": { + "message": "ウォレットを設定し、テストネットトークンを取得して、数分で最初のコントラクトをデプロイしましょう。", + "description": "Homepage quick start description" + }, + "homepage.quickStart.button": { + "message": "クイックスタート", + "description": "Homepage quick start button label" + }, + "homepage.community.sectionTitle": { + "message": "コミュニティ", + "description": "Homepage community section title" + }, + "homepage.community.sectionSubtitle": { + "message": "Status Network コミュニティの最新情報をチェックしましょう。", + "description": "Homepage community section subtitle" + }, + "homepage.community.telegram.title": { + "message": "Telegram に参加", + "description": "Homepage community card title for Telegram" + }, + "homepage.community.telegram.description": { + "message": "他の Status Network ビルダーと交流し、サポートを受けましょう。", + "description": "Homepage community card description for Telegram" + }, + "homepage.community.github.title": { + "message": "GitHub で見る", + "description": "Homepage community card title for GitHub" + }, + "homepage.community.github.description": { + "message": "ソースコードを確認し、エコシステムに貢献しましょう。", + "description": "Homepage community card description for GitHub" + }, + "homepage.community.official.title": { + "message": "公式リンク", + "description": "Homepage community card title for official links" + }, + "homepage.community.official.description": { + "message": "ウェブサイト、ソーシャルチャンネル、すべての公式リソースを一か所に。", + "description": "Homepage community card description for official links" } } diff --git a/i18n/ja/docusaurus-plugin-content-pages/index.tsx b/i18n/ja/docusaurus-plugin-content-pages/index.tsx deleted file mode 100644 index 997b8b6..0000000 --- a/i18n/ja/docusaurus-plugin-content-pages/index.tsx +++ /dev/null @@ -1,160 +0,0 @@ -import React from 'react'; -import Layout from '@theme/Layout'; -import Link from '@docusaurus/Link'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import styles from '@site/src/pages/index.module.css'; - -const docCards = [ - { - title: '概要', - description: - 'Status Network のアーキテクチャ、ガスレス取引、トークノミクス、持続可能な公的資金モデルについて。', - link: '/overview', - linkText: '詳細を見る', - iconClass: styles.cardIconOverview, - icon: '🌐', - }, - { - title: 'Build for Karma', - description: - 'コントラクトのデプロイ、Karma の統合、ガスレスアプリの構築に関するガイド、チュートリアル、リファレンス。', - link: '/build-for-karma', - linkText: '詳細を見る', - iconClass: styles.cardIconBuild, - icon: '🛠', - }, - { - title: 'ツール', - description: - 'RPC エンドポイント、ブリッジ、テストネットフォーセット、ブロックエクスプローラー、インフラパートナー。', - link: '/tools', - linkText: '詳細を見る', - iconClass: styles.cardIconTools, - icon: '⚡', - }, -]; - -const communityLinks = [ - { - title: 'Telegram に参加', - description: '他の Status Network ビルダーと交流し、サポートを受けましょう。', - href: 'https://t.me/statusl2', - }, - { - title: 'GitHub で見る', - description: 'ソースコードを確認し、エコシステムに貢献しましょう。', - href: 'https://github.com/status-im', - }, - { - title: '公式リンク', - description: 'ウェブサイト、ソーシャルチャンネル、すべての公式リソースを一か所に。', - href: '/overview/other/official-links', - }, -]; - -function Hero() { - const logoSrc = useBaseUrl('/img/sn_logo.svg'); - return ( -
-
- Status Network -

ようこそ

-

Status Network ドキュメント

-

- 初のネイティブガスレス Ethereum L2 — ソーシャルアプリやゲームに最適化され、 - ビルダーに持続可能な公的資金を提供します。 -

-
-
- ); -} - -function DocCards() { - return ( -
-

ドキュメントを探す

-

- 今すぐ Status Network での開発を始めましょう。 -

-
- {docCards.map((card) => ( - -
{card.icon}
-
{card.title}
-
{card.description}
- - {card.linkText}{' '} - - - - ))} -
-
- ); -} - -function QuickStart() { - return ( -
-
-
-

ビルドの準備はできましたか?

-

- ウォレットを設定し、テストネットトークンを取得して、数分で最初のコントラクトをデプロイしましょう。 -

-
- - クイックスタート → - -
-
- ); -} - -function Community() { - return ( -
-

コミュニティ

-

- Status Network コミュニティの最新情報をチェックしましょう。 -

-
- {communityLinks.map((item) => ( - -
{item.title}
-
- {item.description} -
- - ))} -
-
- ); -} - -export default function Home(): React.JSX.Element { - return ( - - - - - - - ); -} diff --git a/i18n/ko/code.json b/i18n/ko/code.json index e91247a..024bd06 100644 --- a/i18n/ko/code.json +++ b/i18n/ko/code.json @@ -436,5 +436,113 @@ "theme.tags.tagsPageTitle": { "message": "태그", "description": "The title of the tag list page" + }, + "homepage.layout.title": { + "message": "Status Network 문서", + "description": "Homepage layout title" + }, + "homepage.layout.description": { + "message": "Status Network 문서 — 최초의 네이티브 가스리스 이더리움 L2, 빌더를 위한 지속 가능한 공공 자금 제공.", + "description": "Homepage layout description" + }, + "homepage.hero.subtitle": { + "message": "환영합니다", + "description": "Homepage hero subtitle" + }, + "homepage.hero.title": { + "message": "Status Network 문서", + "description": "Homepage hero title" + }, + "homepage.hero.description": { + "message": "최초의 네이티브 가스리스 이더리움 L2 — 소셜 앱과 게임에 최적화되어 빌더를 위한 지속 가능한 공공 자금을 제공합니다.", + "description": "Homepage hero description" + }, + "homepage.docs.sectionTitle": { + "message": "문서 탐색", + "description": "Homepage docs section title" + }, + "homepage.docs.sectionSubtitle": { + "message": "지금 바로 스테이터스 네트워크에서 개발을 시작하세요.", + "description": "Homepage docs section subtitle" + }, + "homepage.docCards.overview.title": { + "message": "개요", + "description": "Homepage docs card title for Overview" + }, + "homepage.docCards.overview.description": { + "message": "스테이터스 네트워크의 아키텍처, 가스리스 트랜잭션, 토큰이코노믹스, 지속 가능한 공공 자금 모델에 대해 알아보세요.", + "description": "Homepage docs card description for Overview" + }, + "homepage.docCards.overview.linkText": { + "message": "자세히 보기", + "description": "Homepage docs card link text for Overview" + }, + "homepage.docCards.build.title": { + "message": "카르마를 위해 개발하기", + "description": "Homepage docs card title for Build for Karma" + }, + "homepage.docCards.build.description": { + "message": "컨트랙트 배포, Karma 적용 및 가스리스 앱 구축을 위한 가이드, 튜토리얼, 레퍼런스.", + "description": "Homepage docs card description for Build for Karma" + }, + "homepage.docCards.build.linkText": { + "message": "자세히 보기", + "description": "Homepage docs card link text for Build for Karma" + }, + "homepage.docCards.tools.title": { + "message": "도구", + "description": "Homepage docs card title for Tools" + }, + "homepage.docCards.tools.description": { + "message": "RPC 엔드포인트, 브릿지, 테스트넷 파우셋, 블록 익스플로러, 인프라 파트너.", + "description": "Homepage docs card description for Tools" + }, + "homepage.docCards.tools.linkText": { + "message": "자세히 보기", + "description": "Homepage docs card link text for Tools" + }, + "homepage.quickStart.title": { + "message": "빌드할 준비가 되셨나요?", + "description": "Homepage quick start title" + }, + "homepage.quickStart.description": { + "message": "지갑을 설정하고 테스트넷 토큰을 받아 몇 분 만에 첫 번째 컨트랙트를 배포하세요.", + "description": "Homepage quick start description" + }, + "homepage.quickStart.button": { + "message": "빠른 시작", + "description": "Homepage quick start button label" + }, + "homepage.community.sectionTitle": { + "message": "커뮤니티", + "description": "Homepage community section title" + }, + "homepage.community.sectionSubtitle": { + "message": "스테이터스 네트워크 커뮤니티의 최신 소식을 확인하세요.", + "description": "Homepage community section subtitle" + }, + "homepage.community.telegram.title": { + "message": "Telegram 참여", + "description": "Homepage community card title for Telegram" + }, + "homepage.community.telegram.description": { + "message": "다른 스테이터스 네트워크 빌더들과 교류하고 지원을 받으세요.", + "description": "Homepage community card description for Telegram" + }, + "homepage.community.github.title": { + "message": "GitHub 확인하기", + "description": "Homepage community card title for GitHub" + }, + "homepage.community.github.description": { + "message": "소스 코드를 탐색하고 생태계에 기여하세요.", + "description": "Homepage community card description for GitHub" + }, + "homepage.community.official.title": { + "message": "공식 링크", + "description": "Homepage community card title for official links" + }, + "homepage.community.official.description": { + "message": "웹사이트, 소셜 채널, 모든 공식 리소스를 한 곳에서 확인하세요.", + "description": "Homepage community card description for official links" } } diff --git a/i18n/ko/docusaurus-plugin-content-pages/index.tsx b/i18n/ko/docusaurus-plugin-content-pages/index.tsx deleted file mode 100644 index c5dd6ec..0000000 --- a/i18n/ko/docusaurus-plugin-content-pages/index.tsx +++ /dev/null @@ -1,161 +0,0 @@ -import React from 'react'; -import Layout from '@theme/Layout'; -import Link from '@docusaurus/Link'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import styles from '@site/src/pages/index.module.css'; - -const docCards = [ - { - title: '개요', - description: - '스테이터스 네트워크의 아키텍처, 가스리스 트랜잭션, 토큰이코노믹스, 지속 가능한 공공 자금 모델에 대해 알아보세요.', - link: '/overview', - linkText: '자세히 보기', - iconClass: styles.cardIconOverview, - icon: '🌐', - }, - { - title: '카르마를 위해 개발하기', - description: - '컨트랙트 배포, Karma 적용 및 가스리스 앱 구축을 위한 가이드, 튜토리얼, 레퍼런스.', - link: '/build-for-karma', - linkText: '자세히 보기', - iconClass: styles.cardIconBuild, - icon: '🛠', - }, - { - title: '도구', - description: - 'RPC 엔드포인트, 브릿지, 테스트넷 파우셋, 블록 익스플로러, 인프라 파트너.', - link: '/tools', - linkText: '자세히 보기', - iconClass: styles.cardIconTools, - icon: '⚡', - }, -]; - -const communityLinks = [ - { - title: 'Telegram 참여', - description: '다른 스테이터스 네트워크 빌더들과 교류하고 지원을 받으세요.', - href: 'https://t.me/statusl2', - }, - { - title: 'GitHub 확인하기', - description: '소스 코드를 탐색하고 생태계에 기여하세요.', - href: 'https://github.com/status-im', - }, - { - title: '공식 링크', - description: '웹사이트, 소셜 채널, 모든 공식 리소스를 한 곳에서 확인하세요.', - href: '/overview/other/official-links', - }, -]; - -function Hero() { - const logoSrc = useBaseUrl('/img/sn_logo.svg'); - return ( -
-
- Status Network -

환영합니다

-

Status Network 문서

-

- 최초의 네이티브 가스리스 이더리움 L2 — 소셜 앱과 게임에 최적화되어 - 빌더를 위한 지속 가능한 공공 자금을 제공합니다. -

-
-
- ); -} - -function DocCards() { - return ( -
-

문서 탐색

-

- 지금 바로 스테이터스 네트워크에서 개발을 시작하세요. -

-
- {docCards.map((card) => ( - -
{card.icon}
-
{card.title}
-
{card.description}
- - {card.linkText}{' '} - - - - ))} -
-
- ); -} - -function QuickStart() { - return ( -
-
-
-

빌드할 준비가 되셨나요?

-

- 지갑을 설정하고 테스트넷 토큰을 받아 몇 분 만에 첫 번째 컨트랙트를 - 배포하세요. -

-
- - 빠른 시작 → - -
-
- ); -} - -function Community() { - return ( -
-

커뮤니티

-

- 스테이터스 네트워크 커뮤니티의 최신 소식을 확인하세요. -

-
- {communityLinks.map((item) => ( - -
{item.title}
-
- {item.description} -
- - ))} -
-
- ); -} - -export default function Home(): React.JSX.Element { - return ( - - - - - - - ); -} diff --git a/i18n/zh/code.json b/i18n/zh/code.json index 5472836..5bc797e 100644 --- a/i18n/zh/code.json +++ b/i18n/zh/code.json @@ -436,5 +436,113 @@ "theme.tags.tagsPageTitle": { "message": "标签", "description": "The title of the tag list page" + }, + "homepage.layout.title": { + "message": "Status Network 文档", + "description": "Homepage layout title" + }, + "homepage.layout.description": { + "message": "Status Network 文档 — 首个原生免 Gas 的以太坊 L2,为开发者提供可持续的公共资助。", + "description": "Homepage layout description" + }, + "homepage.hero.subtitle": { + "message": "欢迎来到", + "description": "Homepage hero subtitle" + }, + "homepage.hero.title": { + "message": "Status Network 文档", + "description": "Homepage hero title" + }, + "homepage.hero.description": { + "message": "首个原生免 Gas 的以太坊 L2 — 专为社交应用和游戏优化,为开发者提供可持续的公共资助。", + "description": "Homepage hero description" + }, + "homepage.docs.sectionTitle": { + "message": "浏览文档", + "description": "Homepage docs section title" + }, + "homepage.docs.sectionSubtitle": { + "message": "立即开始在 Status Network 上开发。", + "description": "Homepage docs section subtitle" + }, + "homepage.docCards.overview.title": { + "message": "概览", + "description": "Homepage docs card title for Overview" + }, + "homepage.docCards.overview.description": { + "message": "了解 Status Network 的架构、免 Gas 交易、代币经济学以及可持续的公共资助模式。", + "description": "Homepage docs card description for Overview" + }, + "homepage.docCards.overview.linkText": { + "message": "了解更多", + "description": "Homepage docs card link text for Overview" + }, + "homepage.docCards.build.title": { + "message": "Build for Karma", + "description": "Homepage docs card title for Build for Karma" + }, + "homepage.docCards.build.description": { + "message": "部署合约、集成 Karma 和构建免 Gas 应用的指南、教程和参考文档。", + "description": "Homepage docs card description for Build for Karma" + }, + "homepage.docCards.build.linkText": { + "message": "了解更多", + "description": "Homepage docs card link text for Build for Karma" + }, + "homepage.docCards.tools.title": { + "message": "工具", + "description": "Homepage docs card title for Tools" + }, + "homepage.docCards.tools.description": { + "message": "RPC 端点、跨链桥、测试网水龙头、区块浏览器和基础设施合作伙伴。", + "description": "Homepage docs card description for Tools" + }, + "homepage.docCards.tools.linkText": { + "message": "了解更多", + "description": "Homepage docs card link text for Tools" + }, + "homepage.quickStart.title": { + "message": "准备开始构建?", + "description": "Homepage quick start title" + }, + "homepage.quickStart.description": { + "message": "设置钱包,获取测试网代币,几分钟内部署您的第一个合约。", + "description": "Homepage quick start description" + }, + "homepage.quickStart.button": { + "message": "快速开始", + "description": "Homepage quick start button label" + }, + "homepage.community.sectionTitle": { + "message": "与我们联系", + "description": "Homepage community section title" + }, + "homepage.community.sectionSubtitle": { + "message": "了解 Status Network 社区的最新动态。", + "description": "Homepage community section subtitle" + }, + "homepage.community.telegram.title": { + "message": "加入我们的 Telegram", + "description": "Homepage community card title for Telegram" + }, + "homepage.community.telegram.description": { + "message": "与其他 Status Network 开发者交流并获取支持。", + "description": "Homepage community card description for Telegram" + }, + "homepage.community.github.title": { + "message": "在 GitHub 上查看", + "description": "Homepage community card title for GitHub" + }, + "homepage.community.github.description": { + "message": "探索源代码并为生态系统做贡献。", + "description": "Homepage community card description for GitHub" + }, + "homepage.community.official.title": { + "message": "官方链接", + "description": "Homepage community card title for official links" + }, + "homepage.community.official.description": { + "message": "网站、社交频道和所有官方资源汇总。", + "description": "Homepage community card description for official links" } } diff --git a/i18n/zh/docusaurus-plugin-content-pages/index.tsx b/i18n/zh/docusaurus-plugin-content-pages/index.tsx deleted file mode 100644 index 7d66a34..0000000 --- a/i18n/zh/docusaurus-plugin-content-pages/index.tsx +++ /dev/null @@ -1,159 +0,0 @@ -import React from 'react'; -import Layout from '@theme/Layout'; -import Link from '@docusaurus/Link'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import styles from '@site/src/pages/index.module.css'; - -const docCards = [ - { - title: '概览', - description: - '了解 Status Network 的架构、免 Gas 交易、代币经济学以及可持续的公共资助模式。', - link: '/overview', - linkText: '了解更多', - iconClass: styles.cardIconOverview, - icon: '🌐', - }, - { - title: 'Build for Karma', - description: - '部署合约、集成 Karma 和构建免 Gas 应用的指南、教程和参考文档。', - link: '/build-for-karma', - linkText: '了解更多', - iconClass: styles.cardIconBuild, - icon: '🛠', - }, - { - title: '工具', - description: - 'RPC 端点、跨链桥、测试网水龙头、区块浏览器和基础设施合作伙伴。', - link: '/tools', - linkText: '了解更多', - iconClass: styles.cardIconTools, - icon: '⚡', - }, -]; - -const communityLinks = [ - { - title: '加入我们的 Telegram', - description: '与其他 Status Network 开发者交流并获取支持。', - href: 'https://t.me/statusl2', - }, - { - title: '在 GitHub 上查看', - description: '探索源代码并为生态系统做贡献。', - href: 'https://github.com/status-im', - }, - { - title: '官方链接', - description: '网站、社交频道和所有官方资源汇总。', - href: '/overview/other/official-links', - }, -]; - -function Hero() { - const logoSrc = useBaseUrl('/img/sn_logo.svg'); - return ( -
-
- Status Network -

欢迎来到

-

Status Network 文档

-

- 首个原生免 Gas 的以太坊 L2 — 专为社交应用和游戏优化,为开发者提供可持续的公共资助。 -

-
-
- ); -} - -function DocCards() { - return ( -
-

浏览文档

-

- 立即开始在 Status Network 上开发。 -

-
- {docCards.map((card) => ( - -
{card.icon}
-
{card.title}
-
{card.description}
- - {card.linkText}{' '} - - - - ))} -
-
- ); -} - -function QuickStart() { - return ( -
-
-
-

准备开始构建?

-

- 设置钱包,获取测试网代币,几分钟内部署您的第一个合约。 -

-
- - 快速开始 → - -
-
- ); -} - -function Community() { - return ( -
-

与我们联系

-

- 了解 Status Network 社区的最新动态。 -

-
- {communityLinks.map((item) => ( - -
{item.title}
-
- {item.description} -
- - ))} -
-
- ); -} - -export default function Home(): React.JSX.Element { - return ( - - - - - - - ); -} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index c1bb3c4..fe46f3a 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,56 +1,121 @@ import React from 'react'; import Layout from '@theme/Layout'; import Link from '@docusaurus/Link'; +import Translate, {translate} from '@docusaurus/Translate'; import useBaseUrl from '@docusaurus/useBaseUrl'; import styles from './index.module.css'; -const docCards = [ - { - title: 'Overview', - description: - 'Learn about Status Network\'s architecture, gasless transactions, tokenomics, and the sustainable public funding model.', - link: '/overview', - linkText: 'Read More', - iconClass: styles.cardIconOverview, - icon: '🌐', - }, - { - title: 'Build for Karma', - description: - 'Guides, tutorials, and references for deploying contracts, integrating Karma, and building gasless apps.', - link: '/build-for-karma', - linkText: 'Read More', - iconClass: styles.cardIconBuild, - icon: '🛠', - }, - { - title: 'Tools', - description: - 'RPC endpoints, bridges, testnet faucets, block explorers, and infrastructure partners.', - link: '/tools', - linkText: 'Read More', - iconClass: styles.cardIconTools, - icon: '⚡', - }, -]; +function getDocCards() { + return [ + { + title: translate({ + id: 'homepage.docCards.overview.title', + message: 'Overview', + description: 'Homepage docs card title for Overview', + }), + description: translate({ + id: 'homepage.docCards.overview.description', + message: + "Learn about Status Network's architecture, gasless transactions, tokenomics, and the sustainable public funding model.", + description: 'Homepage docs card description for Overview', + }), + link: '/overview', + linkText: translate({ + id: 'homepage.docCards.overview.linkText', + message: 'Read More', + description: 'Homepage docs card link text for Overview', + }), + iconClass: styles.cardIconOverview, + icon: '🌐', + }, + { + title: translate({ + id: 'homepage.docCards.build.title', + message: 'Build for Karma', + description: 'Homepage docs card title for Build for Karma', + }), + description: translate({ + id: 'homepage.docCards.build.description', + message: + 'Guides, tutorials, and references for deploying contracts, integrating Karma, and building gasless apps.', + description: 'Homepage docs card description for Build for Karma', + }), + link: '/build-for-karma', + linkText: translate({ + id: 'homepage.docCards.build.linkText', + message: 'Read More', + description: 'Homepage docs card link text for Build for Karma', + }), + iconClass: styles.cardIconBuild, + icon: '🛠', + }, + { + title: translate({ + id: 'homepage.docCards.tools.title', + message: 'Tools', + description: 'Homepage docs card title for Tools', + }), + description: translate({ + id: 'homepage.docCards.tools.description', + message: + 'RPC endpoints, bridges, testnet faucets, block explorers, and infrastructure partners.', + description: 'Homepage docs card description for Tools', + }), + link: '/tools', + linkText: translate({ + id: 'homepage.docCards.tools.linkText', + message: 'Read More', + description: 'Homepage docs card link text for Tools', + }), + iconClass: styles.cardIconTools, + icon: '⚡', + }, + ]; +} -const communityLinks = [ - { - title: 'Join our Telegram', - description: 'Connect with other Status Network builders and get support.', - href: 'https://t.me/statusl2', - }, - { - title: 'View on GitHub', - description: 'Explore the source code and contribute to the ecosystem.', - href: 'https://github.com/status-im', - }, - { - title: 'Official Links', - description: 'Website, social channels, and all official resources in one place.', - href: '/overview/other/official-links', - }, -]; +function getCommunityLinks() { + return [ + { + title: translate({ + id: 'homepage.community.telegram.title', + message: 'Join our Telegram', + description: 'Homepage community card title for Telegram', + }), + description: translate({ + id: 'homepage.community.telegram.description', + message: 'Connect with other Status Network builders and get support.', + description: 'Homepage community card description for Telegram', + }), + href: 'https://t.me/statusl2', + }, + { + title: translate({ + id: 'homepage.community.github.title', + message: 'View on GitHub', + description: 'Homepage community card title for GitHub', + }), + description: translate({ + id: 'homepage.community.github.description', + message: 'Explore the source code and contribute to the ecosystem.', + description: 'Homepage community card description for GitHub', + }), + href: 'https://github.com/status-im', + }, + { + title: translate({ + id: 'homepage.community.official.title', + message: 'Official Links', + description: 'Homepage community card title for official links', + }), + description: translate({ + id: 'homepage.community.official.description', + message: 'Website, social channels, and all official resources in one place.', + description: 'Homepage community card description for official links', + }), + href: '/overview/other/official-links', + }, + ]; +} function Hero() { const logoSrc = useBaseUrl('/img/sn_logo.svg'); @@ -64,11 +129,27 @@ function Hero() { width={72} height={72} /> -

Welcome to

-

Status Network Documentation

+

+ + Welcome to + +

+

+ + Status Network Documentation + +

- The first natively gasless Ethereum L2 — optimized for social apps and - games, with sustainable public funding for builders. + + The first natively gasless Ethereum L2 — optimized for social apps and + games, with sustainable public funding for builders. +

@@ -76,15 +157,29 @@ function Hero() { } function DocCards() { + const docCards = getDocCards(); + return (
-

Navigate the Docs

+

+ + Navigate the Docs + +

- Start developing on Status Network today. + + Start developing on Status Network today. +

{docCards.map((card) => ( - +
{card.icon}
{card.title}
{card.description}
@@ -104,17 +199,35 @@ function QuickStart() {
-

Ready to build?

+

+ + Ready to build? + +

- Set up your wallet, grab testnet tokens, and deploy your first - contract in minutes. + + Set up your wallet, grab testnet tokens, and deploy your first + contract in minutes. +

- Quick Start → + + Quick Start + {' '} + →
@@ -122,16 +235,30 @@ function QuickStart() { } function Community() { + const communityLinks = getCommunityLinks(); + return (
-

Connect with us

+

+ + Connect with us + +

- Keep up to date with the latest from the Status Network community. + + Keep up to date with the latest from the Status Network community. +

{communityLinks.map((item) => ( @@ -149,8 +276,17 @@ function Community() { export default function Home(): React.JSX.Element { return ( From 30a6491f1c8b34388ea272d0c2d07770d7254d4d Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Thu, 19 Feb 2026 15:49:27 +0100 Subject: [PATCH 21/36] Update tagline and remove trailing punctuation Signed-off-by: yjkellyjoo --- i18n/ja/code.json | 22 +++++++++++----------- i18n/ko/code.json | 22 +++++++++++----------- i18n/zh/code.json | 22 +++++++++++----------- src/pages/index.tsx | 23 +++++++++++------------ 4 files changed, 44 insertions(+), 45 deletions(-) diff --git a/i18n/ja/code.json b/i18n/ja/code.json index d9da4cd..ffaea89 100644 --- a/i18n/ja/code.json +++ b/i18n/ja/code.json @@ -442,7 +442,7 @@ "description": "Homepage layout title" }, "homepage.layout.description": { - "message": "Status Network ドキュメント — 初のネイティブガスレス Ethereum L2、ビルダーに持続可能な公的資金を提供。", + "message": "Status Network ドキュメント — コンポーザブルなプライバシーと組み込みのスパム保護を備えた、ヒトとボットのための完全ガスレス Ethereum L2", "description": "Homepage layout description" }, "homepage.hero.subtitle": { @@ -454,7 +454,7 @@ "description": "Homepage hero title" }, "homepage.hero.description": { - "message": "初のネイティブガスレス Ethereum L2 — ソーシャルアプリやゲームに最適化され、ビルダーに持続可能な公的資金を提供します。", + "message": "コンポーザブルなプライバシーと組み込みのスパム保護を備えた、ヒトとボットのための完全ガスレス Ethereum L2", "description": "Homepage hero description" }, "homepage.docs.sectionTitle": { @@ -462,7 +462,7 @@ "description": "Homepage docs section title" }, "homepage.docs.sectionSubtitle": { - "message": "今すぐ Status Network での開発を始めましょう。", + "message": "今すぐ Status Network での開発を始めましょう", "description": "Homepage docs section subtitle" }, "homepage.docCards.overview.title": { @@ -470,7 +470,7 @@ "description": "Homepage docs card title for Overview" }, "homepage.docCards.overview.description": { - "message": "Status Network のアーキテクチャ、ガスレス取引、トークノミクス、持続可能な公的資金モデルについて。", + "message": "Status Network のアーキテクチャ、ガスレス取引、トークノミクス、持続可能な公的資金モデルについて", "description": "Homepage docs card description for Overview" }, "homepage.docCards.overview.linkText": { @@ -482,7 +482,7 @@ "description": "Homepage docs card title for Build for Karma" }, "homepage.docCards.build.description": { - "message": "コントラクトのデプロイ、Karma の統合、ガスレスアプリの構築に関するガイド、チュートリアル、リファレンス。", + "message": "コントラクトのデプロイ、Karma の統合、ガスレスアプリの構築に関するガイド、チュートリアル、リファレンス", "description": "Homepage docs card description for Build for Karma" }, "homepage.docCards.build.linkText": { @@ -494,7 +494,7 @@ "description": "Homepage docs card title for Tools" }, "homepage.docCards.tools.description": { - "message": "RPC エンドポイント、ブリッジ、テストネットフォーセット、ブロックエクスプローラー、インフラパートナー。", + "message": "RPC エンドポイント、ブリッジ、テストネットフォーセット、ブロックエクスプローラー、インフラパートナー", "description": "Homepage docs card description for Tools" }, "homepage.docCards.tools.linkText": { @@ -506,7 +506,7 @@ "description": "Homepage quick start title" }, "homepage.quickStart.description": { - "message": "ウォレットを設定し、テストネットトークンを取得して、数分で最初のコントラクトをデプロイしましょう。", + "message": "ウォレットを設定し、テストネットトークンを取得して、数分で最初のコントラクトをデプロイしましょう", "description": "Homepage quick start description" }, "homepage.quickStart.button": { @@ -518,7 +518,7 @@ "description": "Homepage community section title" }, "homepage.community.sectionSubtitle": { - "message": "Status Network コミュニティの最新情報をチェックしましょう。", + "message": "Status Network コミュニティの最新情報をチェックしましょう", "description": "Homepage community section subtitle" }, "homepage.community.telegram.title": { @@ -526,7 +526,7 @@ "description": "Homepage community card title for Telegram" }, "homepage.community.telegram.description": { - "message": "他の Status Network ビルダーと交流し、サポートを受けましょう。", + "message": "他の Status Network ビルダーと交流し、サポートを受けましょう", "description": "Homepage community card description for Telegram" }, "homepage.community.github.title": { @@ -534,7 +534,7 @@ "description": "Homepage community card title for GitHub" }, "homepage.community.github.description": { - "message": "ソースコードを確認し、エコシステムに貢献しましょう。", + "message": "ソースコードを確認し、エコシステムに貢献しましょう", "description": "Homepage community card description for GitHub" }, "homepage.community.official.title": { @@ -542,7 +542,7 @@ "description": "Homepage community card title for official links" }, "homepage.community.official.description": { - "message": "ウェブサイト、ソーシャルチャンネル、すべての公式リソースを一か所に。", + "message": "ウェブサイト、ソーシャルチャンネル、すべての公式リソースを一か所に", "description": "Homepage community card description for official links" } } diff --git a/i18n/ko/code.json b/i18n/ko/code.json index 024bd06..28577b0 100644 --- a/i18n/ko/code.json +++ b/i18n/ko/code.json @@ -442,7 +442,7 @@ "description": "Homepage layout title" }, "homepage.layout.description": { - "message": "Status Network 문서 — 최초의 네이티브 가스리스 이더리움 L2, 빌더를 위한 지속 가능한 공공 자금 제공.", + "message": "Status Network 문서 — 조합 가능한 프라이버시와 내장형 스팸 방지 기능을 갖춘 완전한 가스리스 이더리움 L2, 인간과 봇 모두를 위해 설계되었습니다", "description": "Homepage layout description" }, "homepage.hero.subtitle": { @@ -454,7 +454,7 @@ "description": "Homepage hero title" }, "homepage.hero.description": { - "message": "최초의 네이티브 가스리스 이더리움 L2 — 소셜 앱과 게임에 최적화되어 빌더를 위한 지속 가능한 공공 자금을 제공합니다.", + "message": "조합 가능한 프라이버시와 내장형 스팸 방지 기능을 갖춘 완전한 가스리스 이더리움 L2, 인간과 봇 모두를 위해 설계되었습니다", "description": "Homepage hero description" }, "homepage.docs.sectionTitle": { @@ -462,7 +462,7 @@ "description": "Homepage docs section title" }, "homepage.docs.sectionSubtitle": { - "message": "지금 바로 스테이터스 네트워크에서 개발을 시작하세요.", + "message": "지금 바로 스테이터스 네트워크에서 개발을 시작하세요", "description": "Homepage docs section subtitle" }, "homepage.docCards.overview.title": { @@ -470,7 +470,7 @@ "description": "Homepage docs card title for Overview" }, "homepage.docCards.overview.description": { - "message": "스테이터스 네트워크의 아키텍처, 가스리스 트랜잭션, 토큰이코노믹스, 지속 가능한 공공 자금 모델에 대해 알아보세요.", + "message": "스테이터스 네트워크의 아키텍처, 가스리스 트랜잭션, 토큰이코노믹스, 지속 가능한 공공 자금 모델에 대해 알아보세요", "description": "Homepage docs card description for Overview" }, "homepage.docCards.overview.linkText": { @@ -482,7 +482,7 @@ "description": "Homepage docs card title for Build for Karma" }, "homepage.docCards.build.description": { - "message": "컨트랙트 배포, Karma 적용 및 가스리스 앱 구축을 위한 가이드, 튜토리얼, 레퍼런스.", + "message": "컨트랙트 배포, Karma 적용 및 가스리스 앱 구축을 위한 가이드, 튜토리얼, 레퍼런스", "description": "Homepage docs card description for Build for Karma" }, "homepage.docCards.build.linkText": { @@ -494,7 +494,7 @@ "description": "Homepage docs card title for Tools" }, "homepage.docCards.tools.description": { - "message": "RPC 엔드포인트, 브릿지, 테스트넷 파우셋, 블록 익스플로러, 인프라 파트너.", + "message": "RPC 엔드포인트, 브릿지, 테스트넷 파우셋, 블록 익스플로러, 인프라 파트너", "description": "Homepage docs card description for Tools" }, "homepage.docCards.tools.linkText": { @@ -506,7 +506,7 @@ "description": "Homepage quick start title" }, "homepage.quickStart.description": { - "message": "지갑을 설정하고 테스트넷 토큰을 받아 몇 분 만에 첫 번째 컨트랙트를 배포하세요.", + "message": "지갑을 설정하고 테스트넷 토큰을 받아 몇 분 만에 첫 번째 컨트랙트를 배포하세요", "description": "Homepage quick start description" }, "homepage.quickStart.button": { @@ -518,7 +518,7 @@ "description": "Homepage community section title" }, "homepage.community.sectionSubtitle": { - "message": "스테이터스 네트워크 커뮤니티의 최신 소식을 확인하세요.", + "message": "스테이터스 네트워크 커뮤니티의 최신 소식을 확인하세요", "description": "Homepage community section subtitle" }, "homepage.community.telegram.title": { @@ -526,7 +526,7 @@ "description": "Homepage community card title for Telegram" }, "homepage.community.telegram.description": { - "message": "다른 스테이터스 네트워크 빌더들과 교류하고 지원을 받으세요.", + "message": "다른 스테이터스 네트워크 빌더들과 교류하고 지원을 받으세요", "description": "Homepage community card description for Telegram" }, "homepage.community.github.title": { @@ -534,7 +534,7 @@ "description": "Homepage community card title for GitHub" }, "homepage.community.github.description": { - "message": "소스 코드를 탐색하고 생태계에 기여하세요.", + "message": "소스 코드를 탐색하고 생태계에 기여하세요", "description": "Homepage community card description for GitHub" }, "homepage.community.official.title": { @@ -542,7 +542,7 @@ "description": "Homepage community card title for official links" }, "homepage.community.official.description": { - "message": "웹사이트, 소셜 채널, 모든 공식 리소스를 한 곳에서 확인하세요.", + "message": "웹사이트, 소셜 채널, 모든 공식 리소스를 한 곳에서 확인하세요", "description": "Homepage community card description for official links" } } diff --git a/i18n/zh/code.json b/i18n/zh/code.json index 5bc797e..08a1b2d 100644 --- a/i18n/zh/code.json +++ b/i18n/zh/code.json @@ -442,7 +442,7 @@ "description": "Homepage layout title" }, "homepage.layout.description": { - "message": "Status Network 文档 — 首个原生免 Gas 的以太坊 L2,为开发者提供可持续的公共资助。", + "message": "Status Network 文档 — 面向人类与机器人,完全免 Gas 的 Ethereum L2,具备可组合隐私与内置垃圾信息防护", "description": "Homepage layout description" }, "homepage.hero.subtitle": { @@ -454,7 +454,7 @@ "description": "Homepage hero title" }, "homepage.hero.description": { - "message": "首个原生免 Gas 的以太坊 L2 — 专为社交应用和游戏优化,为开发者提供可持续的公共资助。", + "message": "面向人类与机器人,完全免 Gas 的 Ethereum L2,具备可组合隐私与内置垃圾信息防护", "description": "Homepage hero description" }, "homepage.docs.sectionTitle": { @@ -462,7 +462,7 @@ "description": "Homepage docs section title" }, "homepage.docs.sectionSubtitle": { - "message": "立即开始在 Status Network 上开发。", + "message": "立即开始在 Status Network 上开发", "description": "Homepage docs section subtitle" }, "homepage.docCards.overview.title": { @@ -470,7 +470,7 @@ "description": "Homepage docs card title for Overview" }, "homepage.docCards.overview.description": { - "message": "了解 Status Network 的架构、免 Gas 交易、代币经济学以及可持续的公共资助模式。", + "message": "了解 Status Network 的架构、免 Gas 交易、代币经济学以及可持续的公共资助模式", "description": "Homepage docs card description for Overview" }, "homepage.docCards.overview.linkText": { @@ -482,7 +482,7 @@ "description": "Homepage docs card title for Build for Karma" }, "homepage.docCards.build.description": { - "message": "部署合约、集成 Karma 和构建免 Gas 应用的指南、教程和参考文档。", + "message": "部署合约、集成 Karma 和构建免 Gas 应用的指南、教程和参考文档", "description": "Homepage docs card description for Build for Karma" }, "homepage.docCards.build.linkText": { @@ -494,7 +494,7 @@ "description": "Homepage docs card title for Tools" }, "homepage.docCards.tools.description": { - "message": "RPC 端点、跨链桥、测试网水龙头、区块浏览器和基础设施合作伙伴。", + "message": "RPC 端点、跨链桥、测试网水龙头、区块浏览器和基础设施合作伙伴", "description": "Homepage docs card description for Tools" }, "homepage.docCards.tools.linkText": { @@ -506,7 +506,7 @@ "description": "Homepage quick start title" }, "homepage.quickStart.description": { - "message": "设置钱包,获取测试网代币,几分钟内部署您的第一个合约。", + "message": "设置钱包,获取测试网代币,几分钟内部署您的第一个合约", "description": "Homepage quick start description" }, "homepage.quickStart.button": { @@ -518,7 +518,7 @@ "description": "Homepage community section title" }, "homepage.community.sectionSubtitle": { - "message": "了解 Status Network 社区的最新动态。", + "message": "了解 Status Network 社区的最新动态", "description": "Homepage community section subtitle" }, "homepage.community.telegram.title": { @@ -526,7 +526,7 @@ "description": "Homepage community card title for Telegram" }, "homepage.community.telegram.description": { - "message": "与其他 Status Network 开发者交流并获取支持。", + "message": "与其他 Status Network 开发者交流并获取支持", "description": "Homepage community card description for Telegram" }, "homepage.community.github.title": { @@ -534,7 +534,7 @@ "description": "Homepage community card title for GitHub" }, "homepage.community.github.description": { - "message": "探索源代码并为生态系统做贡献。", + "message": "探索源代码并为生态系统做贡献", "description": "Homepage community card description for GitHub" }, "homepage.community.official.title": { @@ -542,7 +542,7 @@ "description": "Homepage community card title for official links" }, "homepage.community.official.description": { - "message": "网站、社交频道和所有官方资源汇总。", + "message": "网站、社交频道和所有官方资源汇总", "description": "Homepage community card description for official links" } } diff --git a/src/pages/index.tsx b/src/pages/index.tsx index fe46f3a..23e8233 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -16,7 +16,7 @@ function getDocCards() { description: translate({ id: 'homepage.docCards.overview.description', message: - "Learn about Status Network's architecture, gasless transactions, tokenomics, and the sustainable public funding model.", + "Learn about Status Network's architecture, gasless transactions, tokenomics, and the sustainable public funding model", description: 'Homepage docs card description for Overview', }), link: '/overview', @@ -37,7 +37,7 @@ function getDocCards() { description: translate({ id: 'homepage.docCards.build.description', message: - 'Guides, tutorials, and references for deploying contracts, integrating Karma, and building gasless apps.', + 'Guides, tutorials, and references for deploying contracts, integrating Karma, and building gasless apps', description: 'Homepage docs card description for Build for Karma', }), link: '/build-for-karma', @@ -58,7 +58,7 @@ function getDocCards() { description: translate({ id: 'homepage.docCards.tools.description', message: - 'RPC endpoints, bridges, testnet faucets, block explorers, and infrastructure partners.', + 'RPC endpoints, bridges, testnet faucets, block explorers, and infrastructure partners', description: 'Homepage docs card description for Tools', }), link: '/tools', @@ -83,7 +83,7 @@ function getCommunityLinks() { }), description: translate({ id: 'homepage.community.telegram.description', - message: 'Connect with other Status Network builders and get support.', + message: 'Connect with other Status Network builders and get support', description: 'Homepage community card description for Telegram', }), href: 'https://t.me/statusl2', @@ -96,7 +96,7 @@ function getCommunityLinks() { }), description: translate({ id: 'homepage.community.github.description', - message: 'Explore the source code and contribute to the ecosystem.', + message: 'Explore the source code and contribute to the ecosystem', description: 'Homepage community card description for GitHub', }), href: 'https://github.com/status-im', @@ -109,7 +109,7 @@ function getCommunityLinks() { }), description: translate({ id: 'homepage.community.official.description', - message: 'Website, social channels, and all official resources in one place.', + message: 'Website, social channels, and all official resources in one place', description: 'Homepage community card description for official links', }), href: '/overview/other/official-links', @@ -147,8 +147,7 @@ function Hero() { id="homepage.hero.description" description="Homepage hero description" > - The first natively gasless Ethereum L2 — optimized for social apps and - games, with sustainable public funding for builders. + Fully gasless Ethereum L2 with composable privacy and built-in spam protection for humans and bots

@@ -174,7 +173,7 @@ function DocCards() { id="homepage.docs.sectionSubtitle" description="Homepage docs section subtitle" > - Start developing on Status Network today. + Start developing on Status Network today

@@ -213,7 +212,7 @@ function QuickStart() { description="Homepage quick start description" > Set up your wallet, grab testnet tokens, and deploy your first - contract in minutes. + contract in minutes

@@ -252,7 +251,7 @@ function Community() { id="homepage.community.sectionSubtitle" description="Homepage community section subtitle" > - Keep up to date with the latest from the Status Network community. + Keep up to date with the latest from the Status Network community

@@ -284,7 +283,7 @@ export default function Home(): React.JSX.Element { description={translate({ id: 'homepage.layout.description', message: - 'Documentation for Status Network — the first natively gasless Ethereum L2 with sustainable public funding for builders.', + 'Documentation for Status Network — fully gasless Ethereum L2 with composable privacy and built-in spam protection for humans and bots', description: 'Homepage layout description', })} > From cc3ae020e42238f3ee862d25c5a9a061f2477fef Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 20 Feb 2026 16:46:57 +0100 Subject: [PATCH 22/36] Add 'USING KARMA' category to sidebar and introduce gasless integration - Rearrange `linea_estimateGas` related content under json-rpc.md to gasless-integration.md and gasless-transactions.md Signed-off-by: yjkellyjoo --- .../guides/gasless-integration.md | 365 ++++++++++++++++++ docs/build-for-karma/rpc/json-rpc.md | 326 +--------------- .../general-info/gasless-transactions.md | 14 +- .../current.json | 10 +- .../current.json | 10 +- .../current.json | 10 +- sidebars.ts | 12 + 7 files changed, 425 insertions(+), 322 deletions(-) create mode 100644 docs/build-for-karma/guides/gasless-integration.md diff --git a/docs/build-for-karma/guides/gasless-integration.md b/docs/build-for-karma/guides/gasless-integration.md new file mode 100644 index 0000000..12144bf --- /dev/null +++ b/docs/build-for-karma/guides/gasless-integration.md @@ -0,0 +1,365 @@ +--- +title: Gasless Integration Guide +description: Practical integration guide for building gasless UX on Status Network. +keywords: [gasless, linea_estimateGas, Status Network, deny list, builder, zero gas, UX] +slug: /build-for-karma/gasless-integration +sidebar_position: 5 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Status Network provides gasless transactions at the protocol level. You do not need paymasters or relayers. As a builder, the core task is to estimate and present fees correctly per sender state. + +:::important The key rule +Use `linea_estimateGas` RPC method as the source of truth for gas fee when preparing transaction UX. +::: + +For other JSON-RPC method reference, see [JSON-RPC API](/build-for-karma/rpc/json-rpc). + +## Karma-aware fee estimation + +On Linea, [`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas) is already the recommended way to estimate gas. +It returns `gasLimit`, `baseFeePerGas`, and `priorityFeePerGas` in a **single call**, where the fee fields account for compressed transaction size, layer-1 verification costs, and the L1/L2 gas-price ratio - factors that `eth_` namespace methods do not capture. + +Status Network extends `linea_estimateGas` further so that the fee fields also incorporate our **Karma** system; fees may be reduced to zero for eligible users, or increased for deny-listed users. + +```mermaid +flowchart TD + A[User initiates transaction] --> B["Call linea_estimateGas with from parameter"] + B --> C{Fee outcome} + C -->|base+priority = 0| D[Show gasless UX] + C -->|Premium fees| F[Show premium fee UX] + D --> G[Send transaction] + F --> G +``` + +*Figure: Gas estimation flow using `linea_estimateGas`* + +This is why builders should use `linea_estimateGas` when estimating transaction costs or pre-filling EIP-1559 fee fields for users on Status Network. + +:::info for more +For a detailed explanation of Karma and its impact on gas fees and transaction privileges, see the [Karmic Tokenomics](../../overview/tokenomics/karmic-tokenomics) page. + +For the technical details of how our gasless system is implemented and enforced, refer to the [Gasless Transactions](../../overview/general-info/gasless-transactions) documentation. +::: + +## `linea_estimateGas` request/response shape + +### Request + +`linea_estimateGas` takes the **same transaction call object** as `eth_estimateGas`. +It returns `gasLimit` (using the same EVM execution logic as `eth_estimateGas`) together with fee fields that reflect both Linea's L2-specific pricing and Status Network's Karma rules - all in a single response. + +:::important +**Always include `from`.** Without it, the node can't apply Karma/quota/deny-list logic. +::: + +### Response + +`linea_estimateGas` returns an object including: + +- `gasLimit`: hex quantity - estimated gas units for EVM execution (same calculation as `eth_estimateGas`) +- `baseFeePerGas`: hex quantity - base fee for the next block, accounting for Karma rules on Status Network +- `priorityFeePerGas`: hex quantity - suggested priority fee, accounting for Karma rules on Status Network + +These fee fields may differ significantly from the values returned by `eth_` namespace calls such as `eth_gasPrice`, `eth_maxPriorityFeePerGas`, or `eth_feeHistory`, which are not aware of Linea's L2-specific pricing or Status Network's Karma adjustments. + + + + + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "gasLimit": "0x5208", + "baseFeePerGas": "0x0", + "priorityFeePerGas": "0x0" + } +} +``` + + + + +Standard EVM flows require multiple separate `eth_` calls to gather gas limit and fee data: + +**eth_estimateGas** + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": "0x5208" +} +``` + +**eth_maxPriorityFeePerGas** + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": "0x59682f00" +} +``` + +**eth_getBlockByNumber** + +```json +{ + "jsonrpc": "2.0", + "id": 3, + "result": { + "number": ..., + "baseFeePerGas": "0x3b9aca00", + ... + } +} +``` + + + + + +## Migration guide: from multiple `eth_` calls to `linea_estimateGas` + +This section shows how to migrate from the common "EIP-1559 via multiple `eth_` calls" flow to a single `linea_estimateGas` call, which provides more accurate L2-specific fee data and Karma-aware pricing on Status Network. + +### Before: common EIP-1559 estimation flow on EVM chains using `eth_` namespaces + +On many EVM chains, a typical EIP-1559 estimation flow looks like: + +1. **Estimate gas limit** via `eth_estimateGas` +2. **Fetch `maxPriorityFeePerGas`** via `eth_maxPriorityFeePerGas` and/or `eth_feeHistory` +3. **Fetch `baseFeePerGas`** via `eth_getBlockByNumber` +4. Build an EIP-1559 transaction using: + - `gas` + - `maxPriorityFeePerGas` + - `maxFeePerGas`, often $2 \cdot \mathrm{baseFeePerGas} + \mathrm{maxPriorityFeePerGas}$ + + + + + +```bash +# 1) Gas limit (EVM execution) +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"eth_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_RPC_URL + +# 2) Fetch suggested tip amount +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":2,"method":"eth_maxPriorityFeePerGas","params":[]}' \ + https://YOUR_RPC_URL + +# 3) Fetch base fee +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":3,"method":"eth_getBlockByNumber","params":["pending",false]}' \ + https://YOUR_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const gas = await provider.estimateGas(call); +const maxPriorityFeePerGas = await provider.send('eth_maxPriorityFeePerGas', []); +const pendingBlock = await provider.getBlock('pending'); + +const baseFeePerGas = pendingBlock?.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + BigInt(maxPriorityFeePerGas); + +console.log({ + gas: `0x${gas.toString(16)}`, + maxPriorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_RPC_URL'), +}); + +const call = { + account: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const gas = await client.estimateGas(call); +const maxPriorityFeePerGas = await client.getMaxPriorityFeePerGas(); +const pendingBlock = await client.getBlock({ blockTag: 'pending' }); + +const baseFeePerGas = pendingBlock.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + maxPriorityFeePerGas; + +console.log({ + gas, + maxPriorityFeePerGas, + maxFeePerGas, +}); +``` + + + + + +### After: Status Network gas estimation flow using `linea_estimateGas` + +On Status Network, you should source fee suggestions from `linea_estimateGas`, because the correct fee recommendation depends on Karma: + +- accounts may be eligible for **gasless** transactions +- deny-listed accounts may need to pay a **premium gas fee** + + + + + +```bash +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"linea_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_STATUS_NETWORK_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_STATUS_NETWORK_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await provider.send( + 'linea_estimateGas', + [call], +); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_STATUS_NETWORK_RPC_URL'), +}); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await client.request({ + method: 'linea_estimateGas', + params: [call], +}); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + + +:::tip Tooling integration +Many Ethereum libraries call `eth_estimateGas` internally (for example, `provider.estimateGas(...)`). On Status Network, keep using those libraries for standard `eth_` methods, but **fetch estimates via `linea_estimateGas` explicitly for gas limit and fee fields** wherever you build or display transaction parameters for users. +::: + +## Handling fee scenarios in UI + +### 1) Gasless + +When `baseFeePerGas` and `priorityFeePerGas` are both zero: + +- Display a clear free-transaction state. +- Skip unnecessary fee warnings. + +### 2) Premium fees + +When sender is deny-listed (exceeded quota or RLN policy): + +- Show the fee amount and explain that premium gas applies due to quota or spam policy. +- Make clear the sender can pay the fee or wait for their quota window to refresh. +- Keep the transaction possible; do not hard-block. + +## Common pitfalls + +| Pitfall | Fix | +|---|---| +| Using `eth_` methods for fee decisions (`eth_gasPrice`, `eth_maxPriorityFeePerGas`, `eth_feeHistory`) | Use `linea_estimateGas` | +| Omitting `from` when calling `linea_estimateGas` | Always pass the sender address to receive Karma-aware estimation | +| Hardcoding fee assumptions | Build fee UI from returned `baseFeePerGas` and `priorityFeePerGas` values | +| Assuming all users are gasless | Handle both states: gasless (zero fees) and deny-listed (premium fees) | +| Caching estimates across retries | Re-estimate near send time — sender Karma state can change | + +## Next steps + +- [JSON-RPC API](/build-for-karma/rpc/json-rpc) +- [Reputation Integration](/build-for-karma/reputation-integration) diff --git a/docs/build-for-karma/rpc/json-rpc.md b/docs/build-for-karma/rpc/json-rpc.md index 5d3468c..e31ab33 100644 --- a/docs/build-for-karma/rpc/json-rpc.md +++ b/docs/build-for-karma/rpc/json-rpc.md @@ -1,6 +1,6 @@ --- title: JSON-RPC API -description: Status Network JSON-RPC API notes for builders, including the Karma-aware linea_estimateGas method. +description: Status Network JSON-RPC API reference for builders. keywords: [ Status Network, @@ -14,38 +14,25 @@ keywords: ] --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - Status Network is based on Linea zkEVM, meaning **most JSON-RPC methods behave exactly like a standard EVM node**. -For the canonical list of supported methods and their standard semantics, refer to the [Linea JSON-RPC API reference](https://docs.linea.build/api/reference). -## The important difference: Karma-aware fee estimation +For the canonical list of supported methods and their standard semantics, refer to the following official documentations: -On Linea, [`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas) is already the recommended way to estimate gas. -It returns `gasLimit`, `baseFeePerGas`, and `priorityFeePerGas` in a **single call**, where the fee fields account for compressed transaction size, layer-1 verification costs, and the L1/L2 gas-price ratio - factors that `eth_estimateGas` and other `eth_` namespace methods do not capture. +- **[Ethereum JSON-RPC API](https://ethereum.github.io/execution-apis/api-documented/)** — standard Ethereum RPC methods +- **[Linea JSON-RPC API Reference](https://docs.linea.build/api/reference)** — Linea-specific methods, including `linea_estimateGas` -Status Network extends `linea_estimateGas` further so that the fee fields also incorporate our **Karma** system: fees may be reduced to zero for eligible users, or increased for deny-listed users. +## Status Network extensions -This is why builders should use `linea_estimateGas` when estimating transaction costs or pre-filling EIP-1559 fee fields for users on Status Network. +Status Network extends the standard Linea JSON-RPC with Karma-aware fee estimation: -:::info -For a detailed explanation of Karma and its impact on gas fees and transaction privileges, see the [Karmic Tokenomics](../../overview/tokenomics/karmic-tokenomics) page. +### `linea_estimateGas` -For the technical details of how our gasless system is implemented and enforced, refer to the [Gasless Transactions](../../overview/general-info/gasless-transactions) documentation. -::: +On Linea, [`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas) is the recommended way to estimate gas, returning `gasLimit`, `baseFeePerGas`, and `priorityFeePerGas` in a single call. -### Status Network changes to `linea_estimateGas` +Status Network extends `linea_estimateGas` with Karma-aware behavior: -Status Network extends the base Linea `linea_estimateGas` with Karma-aware behavior so the returned **fee fields** can depend on the sender address `from`'s Karma balance. -The `gasLimit` calculation is unchanged from the base Linea implementation (which itself uses the standard `eth_estimateGas` logic internally). - -Concretely, Status Network's `linea_estimateGas`: - -- **Applies deny-list premium**: if the sender is on the deny list, the node computes the normal fee estimate and then applies a premium multiplier to the **fee fields**. -- **Returns gasless estimates for eligible users**: if the sender has available Karma quota, the method returns zero `baseFeePerGas` and `priorityFeePerGas`. - -The above logic lives in our modified `LineaEstimateGas` implementation open-sourced around [this section in the Status Network monorepo](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218). +- **Gasless users**: Returns zero `baseFeePerGas` and `priorityFeePerGas` for eligible users with available Karma quota +- **Deny-listed users**: Applies a premium multiplier to fee fields for users on the deny list ### Status Network RPC differences @@ -58,290 +45,13 @@ Use `linea_estimateGas` as the single source of truth for `gasLimit`, `baseFeePe See [Linea's gas-fee guide](https://docs.linea.build/network/how-to/gas-fees) and [Linea's `linea_estimateGas` reference](https://docs.linea.build/api/reference/linea-estimategas) for the base Linea behavior. -## `linea_estimateGas` request/response shape - -### Request - -`linea_estimateGas` takes the **same transaction call object** as `eth_estimateGas`. -It returns `gasLimit` (using the same EVM execution logic as `eth_estimateGas`) together with fee fields that reflect both Linea's L2-specific pricing and Status Network's Karma rules - all in a single response. - -:::important -**Always include `from`.** Without it, the node can’t apply Karma/quota/deny-list logic. +:::info +For detailed integration guidance including code examples, migration steps, and common pitfalls, see the [Gasless Integration](/build-for-karma/gasless-integration) guide. ::: -### Response +### Additional resources -`linea_estimateGas` returns an object including: - -- `gasLimit`: hex quantity - estimated gas units for EVM execution (same calculation as `eth_estimateGas`) -- `baseFeePerGas`: hex quantity - base fee for the next block, accounting for Karma rules on Status Network -- `priorityFeePerGas`: hex quantity - suggested priority fee, accounting for Karma rules on Status Network - -These fee fields may differ significantly from the values returned by `eth_` namespace calls such as `eth_gasPrice`, `eth_maxPriorityFeePerGas`, or `eth_feeHistory`, which are not aware of Linea's L2-specific pricing or Status Network's Karma adjustments. - - - - - -```json -{ - "jsonrpc": "2.0", - "id": 1, - "result": { - "gasLimit": "0x5208", - "baseFeePerGas": "0x0", - "priorityFeePerGas": "0x0" - } -} -``` - - - - -Standard EVM flows require multiple separate `eth_` calls to gather gas limit and fee data: - -**eth_estimateGas** - -```json -{ - "jsonrpc": "2.0", - "id": 1, - "result": "0x5208" -} -``` - -**eth_maxPriorityFeePerGas** - -```json -{ - "jsonrpc": "2.0", - "id": 2, - "result": "0x59682f00" -} -``` - -**eth_getBlockByNumber** - -```json -{ - "jsonrpc": "2.0", - "id": 3, - "result": { - "number": ..., - "baseFeePerGas": "0x3b9aca00", - ... - } -} -``` - - - - - -## Migration guide: from multiple `eth_` calls to `linea_estimateGas` - -This section shows how to migrate from the common "EIP-1559 via multiple `eth_` calls" flow to a single `linea_estimateGas` call, which provides more accurate L2-specific fee data and Karma-aware pricing on Status Network. - -### Before: common EIP-1559 estimation flow on EVM chains using `eth_` namespaces - -On many EVM chains, a typical EIP-1559 estimation flow looks like: - -1. **Estimate gas limit** via `eth_estimateGas` -2. **Fetch `maxPriorityFeePerGas`** via `eth_maxPriorityFeePerGas` and/or `eth_feeHistory` -3. **Fetch `baseFeePerGas`** via `eth_getBlockByNumber` -4. Build an EIP-1559 transaction using: - - `gas` - - `maxPriorityFeePerGas` - - `maxFeePerGas`, often $2 \cdot \mathrm{baseFeePerGas} + \mathrm{maxPriorityFeePerGas}$ - - - - - -```bash -# 1) Gas limit (EVM execution) -curl -X POST -H "Content-Type: application/json" \ - --data '{ - "jsonrpc":"2.0", - "id":1, - "method":"eth_estimateGas", - "params":[{ - "from":"0xYOUR_SENDER", - "to":"0xCONTRACT_OR_RECIPIENT", - "data":"0xYOUR_CALLDATA", - "value":"0x0" - }] - }' \ - https://YOUR_RPC_URL - -# 2) Fetch suggested tip amount -curl -X POST -H "Content-Type: application/json" \ - --data '{"jsonrpc":"2.0","id":2,"method":"eth_maxPriorityFeePerGas","params":[]}' \ - https://YOUR_RPC_URL - -# 3) Fetch base fee -curl -X POST -H "Content-Type: application/json" \ - --data '{"jsonrpc":"2.0","id":3,"method":"eth_getBlockByNumber","params":["pending",false]}' \ - https://YOUR_RPC_URL -``` - - - - -```js -import { ethers } from 'ethers'; - -const provider = new ethers.JsonRpcProvider('https://YOUR_RPC_URL'); - -const call = { - from: '0xYOUR_SENDER', - to: '0xCONTRACT_OR_RECIPIENT', - data: '0xYOUR_CALLDATA', - value: '0x0', -}; - -const gas = await provider.estimateGas(call); -const maxPriorityFeePerGas = await provider.send('eth_maxPriorityFeePerGas', []); -const pendingBlock = await provider.getBlock('pending'); - -const baseFeePerGas = pendingBlock?.baseFeePerGas ?? 0n; -const maxFeePerGas = 2n * baseFeePerGas + BigInt(maxPriorityFeePerGas); - -console.log({ - gas: `0x${gas.toString(16)}`, - maxPriorityFeePerGas, - maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, -}); -``` - - - - -```js -import { createPublicClient, http } from 'viem'; - -const client = createPublicClient({ - transport: http('https://YOUR_RPC_URL'), -}); - -const call = { - account: '0xYOUR_SENDER', - to: '0xCONTRACT_OR_RECIPIENT', - data: '0xYOUR_CALLDATA', - value: 0n, -}; - -const gas = await client.estimateGas(call); -const maxPriorityFeePerGas = await client.getMaxPriorityFeePerGas(); -const pendingBlock = await client.getBlock({ blockTag: 'pending' }); - -const baseFeePerGas = pendingBlock.baseFeePerGas ?? 0n; -const maxFeePerGas = 2n * baseFeePerGas + maxPriorityFeePerGas; - -console.log({ - gas, - maxPriorityFeePerGas, - maxFeePerGas, -}); -``` - - - - - -### After: Status Network gas estimation flow using `linea_estimateGas` - -On Status Network, you should source fee suggestions from `linea_estimateGas`, because the correct fee recommendation depends on Karma: - -- accounts may be eligible for **gasless** transactions -- deny-listed accounts may need to pay a **premium gas fee** - - - - - -```bash -curl -X POST -H "Content-Type: application/json" \ - --data '{ - "jsonrpc":"2.0", - "id":1, - "method":"linea_estimateGas", - "params":[{ - "from":"0xYOUR_SENDER", - "to":"0xCONTRACT_OR_RECIPIENT", - "data":"0xYOUR_CALLDATA", - "value":"0x0" - }] - }' \ - https://YOUR_STATUS_NETWORK_RPC_URL -``` - - - - -```js -import { ethers } from 'ethers'; - -const provider = new ethers.JsonRpcProvider('https://YOUR_STATUS_NETWORK_RPC_URL'); - -const call = { - from: '0xYOUR_SENDER', - to: '0xCONTRACT_OR_RECIPIENT', - data: '0xYOUR_CALLDATA', - value: '0x0', -}; - -const { gasLimit, baseFeePerGas, priorityFeePerGas } = await provider.send( - 'linea_estimateGas', - [call], -); - -const maxFeePerGas = - BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); - -console.log({ - gas: gasLimit, - maxPriorityFeePerGas: priorityFeePerGas, - maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, -}); -``` - - - - -```js -import { createPublicClient, http } from 'viem'; - -const client = createPublicClient({ - transport: http('https://YOUR_STATUS_NETWORK_RPC_URL'), -}); - -const call = { - from: '0xYOUR_SENDER', - to: '0xCONTRACT_OR_RECIPIENT', - data: '0xYOUR_CALLDATA', - value: '0x0', -}; - -const { gasLimit, baseFeePerGas, priorityFeePerGas } = await client.request({ - method: 'linea_estimateGas', - params: [call], -}); - -const maxFeePerGas = - BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); - -console.log({ - gas: gasLimit, - maxPriorityFeePerGas: priorityFeePerGas, - maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, -}); -``` - - - - - -:::tip Tooling integration -Many Ethereum libraries call `eth_estimateGas` internally (for example, `provider.estimateGas(...)`). On Status Network, keep using those libraries for standard `eth_` methods, but **fetch estimates via `linea_estimateGas` explicitly for gas limit and fee fields** wherever you build or display transaction parameters for users. -::: +- [Linea's gas-fee guide](https://docs.linea.build/network/how-to/gas-fees) +- [Linea's `linea_estimateGas` reference](https://docs.linea.build/api/reference/linea-estimategas) +- [Karmic Tokenomics](/overview/tokenomics/karmic-tokenomics) — how Karma impacts gas fees +- [Gasless Transactions](/overview/general-info/gasless-transactions) — technical details of the RLN-based gasless system diff --git a/docs/overview/general-info/gasless-transactions.md b/docs/overview/general-info/gasless-transactions.md index 13fe385..b367091 100644 --- a/docs/overview/general-info/gasless-transactions.md +++ b/docs/overview/general-info/gasless-transactions.md @@ -131,12 +131,16 @@ The Deny List temporarily restricts users exceeding quotas or engaging in spam: - Users can bypass restrictions by paying premium gas fees - Paying premium fees removes users from the list and earns additional Karma -### `linea_estimateGas` RPC Modification +## `linea_estimateGas` RPC Modification -The linea_estimateGas method is customised to account for users on the Deny List: +Status Network extends the base Linea `linea_estimateGas` with Karma-aware behavior so the returned **fee fields** can depend on the sender address `from`'s Karma balance. +The `gasLimit` calculation is unchanged from the base Linea implementation (which itself uses the standard `eth_estimateGas` logic internally). -- Checks user's Deny List status -- Adds premium gas multipliers if needed -- Provides transparency and accurate gas estimations to the users +Concretely, Status Network's `linea_estimateGas`: + +- **Applies deny-list premium**: if the sender is on the deny list, the node computes the normal fee estimate and then applies a premium multiplier to the **fee fields**. +- **Returns gasless estimates for eligible users**: if the sender has available Karma quota, the method returns zero `baseFeePerGas` and `priorityFeePerGas`. + +The above logic lives in our modified `LineaEstimateGas` implementation open-sourced around [this section in the Status Network monorepo](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218). For further explanation on why it is important to use `linea_estimateGas` instead of `eth_estimateGas` to make gasless transactions on Status Network, refer to the [JSON-RPC docs](../../build-for-karma/rpc/json-rpc.md). diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json index 307f687..e908ee8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -31,9 +31,9 @@ "message": "パートナー", "description": "The label for category PARTNERS in sidebar toolsSidebar" }, - "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { - "message": "開発する", - "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + "sidebar.buildForKarmaSidebar.category.USING KARMA": { + "message": "Karmaを使う", + "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" }, "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { "message": "🚀 スマートコントラクトのデプロイ", @@ -99,6 +99,10 @@ "message": "🤝 インフラパートナー", "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" }, + "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { + "message": "⛽ ガスレス統合", + "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 Hardhatの使用", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/i18n/ko/docusaurus-plugin-content-docs/current.json b/i18n/ko/docusaurus-plugin-content-docs/current.json index 26e8896..7ba95ef 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current.json +++ b/i18n/ko/docusaurus-plugin-content-docs/current.json @@ -31,9 +31,9 @@ "message": "파트너", "description": "The label for category PARTNERS in sidebar toolsSidebar" }, - "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { - "message": "개발하기", - "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + "sidebar.buildForKarmaSidebar.category.USING KARMA": { + "message": "카르마 사용하기", + "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" }, "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { "message": "🚀 스마트 컨트랙트 배포", @@ -99,6 +99,10 @@ "message": "🤝 인프라 파트너", "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" }, + "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { + "message": "⛽ 가스리스 적용하기", + "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 Hardhat 사용하기", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/i18n/zh/docusaurus-plugin-content-docs/current.json b/i18n/zh/docusaurus-plugin-content-docs/current.json index a8aded5..76084ca 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current.json +++ b/i18n/zh/docusaurus-plugin-content-docs/current.json @@ -31,9 +31,9 @@ "message": "合作伙伴", "description": "The label for category PARTNERS in sidebar toolsSidebar" }, - "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { - "message": "开发", - "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + "sidebar.buildForKarmaSidebar.category.USING KARMA": { + "message": "使用 Karma", + "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" }, "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { "message": "🚀 部署智能合约", @@ -99,6 +99,10 @@ "message": "🤝 基础设施合作伙伴", "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" }, + "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { + "message": "⛽ 无Gas交易整合", + "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 使用 Hardhat", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/sidebars.ts b/sidebars.ts index 785cf99..648c6ab 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -133,6 +133,18 @@ const sidebars: SidebarsConfig = { }, ], }, + { + type: 'category', + label: 'USING KARMA', + collapsed: false, + items: [ + { + type: 'doc', + id: 'build-for-karma/guides/gasless-integration', + label: '⛽ Gasless Integration', + }, + ], + }, { type: 'category', label: 'DEPLOYING CONTRACTS', From 9c204f325296ae27c2e3d4abe0792ffbfa320b5b Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 20 Feb 2026 22:21:15 +0100 Subject: [PATCH 23/36] Add Reputation Integration guide - Introduced a new guide for Reputation Integration detailing Karma tiers and integration patterns. - Added a new entry in the sidebar for the Reputation Integration guide. - Updated translations for the new guide in Japanese, Korean, and Chinese. Signed-off-by: yjkellyjoo --- docs/build-for-karma/guides/index.md | 23 + .../guides/reputation-integration.md | 451 ++++++++++++++++++ .../current.json | 4 + .../current.json | 4 + .../current.json | 4 + sidebars.ts | 5 + 6 files changed, 491 insertions(+) create mode 100644 docs/build-for-karma/guides/index.md create mode 100644 docs/build-for-karma/guides/reputation-integration.md diff --git a/docs/build-for-karma/guides/index.md b/docs/build-for-karma/guides/index.md new file mode 100644 index 0000000..d08411a --- /dev/null +++ b/docs/build-for-karma/guides/index.md @@ -0,0 +1,23 @@ + +## Karma Tiers + +Karma tiers determine the gasless transaction quota for each address. Higher tiers get more free transactions per epoch. + +### Current Tier Model (Testnet) + +| Tier | Daily Quota | Equivalent Rate | Karma Range | +|---|---|---|---| +| Entry | 1 tx/day | 1 tx every 24 hours | 1-2 | +| Newbie | 5 tx/day | 1 tx every ~5 hours | 2-49 | +| Basic | 15 tx/day | 1 tx every 90 minutes | 50-499 | +| Active | 96 tx/day | 1 tx every 15 minutes | 500-4999 | +| Regular | 480 tx/day | 1 tx every 3 minutes | 5000-19999 | +| Power User | 960 tx/day | 1 tx every 90 seconds | 20000-99999 | +| Pro User | 10080 tx/day | 1 tx every 9 seconds | 100000-499999 | +| High-Throughput | 108000 tx/day | 1 TPS | 500000-4999999 | +| S-Tier | 240000 tx/day | 5 TPS | 5000000-9999999 | +| Legendary | 480000 tx/day | 10 TPS | 10000000-infinity | + +:::info Testnet-Only Model +This tier model is currently used for testnet alignment. The exact quota numbers per tier will be governed by Karma holders in the future and may change. +::: \ No newline at end of file diff --git a/docs/build-for-karma/guides/reputation-integration.md b/docs/build-for-karma/guides/reputation-integration.md new file mode 100644 index 0000000..ea34cb4 --- /dev/null +++ b/docs/build-for-karma/guides/reputation-integration.md @@ -0,0 +1,451 @@ +--- +title: Reputation Integration Guide +description: How to read Karma tiers, gate features by reputation, and build Karma-aware smart contracts and frontends on Status Network. +keywords: [Karma, integration, smart contract, soulbound token, reputation, tiers, gasless, Status Network, developer guide] +slug: /build-for-karma/reputation-integration +sidebar_position: 4 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Karma is Status Network's soulbound reputation token. Every address earns Karma through genuine network participation such as staking SNT, bridging assets, providing liquidity, using apps, or paying premium gas fees. Karma cannot be bought, sold, or transferred. + +This guide covers how to read Karma data and build apps that respond to a user's reputation tier. + +## Reading Karma On-Chain + +Karma state is split across two contracts: + +- **Karma** — the soulbound ERC-20 token. `balanceOf` returns the net balance after any slashing. Transfers and approvals always revert. +- **KarmaTiers** — maps balances to tiers. Call `getTierIdByKarmaBalance(balance)` then `getTierById(tierId)` to resolve a user's tier and its `txPerEpoch` quota. + + + + + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +/// @notice Minimal interface for the Karma soulbound token. +interface IKarma { + /// @notice Net Karma balance of `account` after slashing. + function balanceOf(address account) external view returns (uint256); + + /// @notice Total amount slashed from `account` across all distributors. + function slashedAmountOf(address account) external view returns (uint256); +} + +/// @notice Minimal interface for the KarmaTiers registry. +interface IKarmaTiers { + struct Tier { + uint256 minKarma; + uint256 maxKarma; + string name; + uint32 txPerEpoch; // gasless transactions allowed per epoch + } + + /// @notice Returns the highest tier ID the given karma balance qualifies for. + function getTierIdByKarmaBalance(uint256 karmaBalance) external view returns (uint8); + + /// @notice Returns the full Tier struct for a given tier ID. + function getTierById(uint8 tierId) external view returns (Tier memory); + + /// @notice Returns the total number of configured tiers. + function getTierCount() external view returns (uint256); +} + +contract KarmaGated { + IKarma public karma; + IKarmaTiers public karmaTiers; + + constructor(address _karmaContract, address _karmaTiersContract) { + karma = IKarma(_karmaContract); + karmaTiers = IKarmaTiers(_karmaTiersContract); + } + + /// @notice Resolves the tier ID for `user` from their current Karma balance. + function tierIdOf(address user) public view returns (uint8) { + return karmaTiers.getTierIdByKarmaBalance(karma.balanceOf(user)); + } + + modifier onlyTier(uint8 minTier) { + require(tierIdOf(msg.sender) >= minTier, "Karma tier too low"); + _; + } + + function premiumAction() external onlyTier(3) { + // Only users at tier 3 or above can call this + } + + function getDiscount(address user) external view returns (uint256) { + uint8 tierId = tierIdOf(user); + // Higher tiers get bigger discounts + return uint256(tierId) * 5; // 0%, 5%, 10%, ... + } +} +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider( + 'https://public.sepolia.rpc.status.network' +); + +const KARMA_ABI = [ + 'function balanceOf(address account) view returns (uint256)', + 'function slashedAmountOf(address account) view returns (uint256)', +]; + +const KARMA_TIERS_ABI = [ + 'function getTierIdByKarmaBalance(uint256 karmaBalance) view returns (uint8)', + 'function getTierById(uint8 tierId) view returns (tuple(uint256 minKarma, uint256 maxKarma, string name, uint32 txPerEpoch))', + 'function getTierCount() view returns (uint256)', +]; + +const karma = new ethers.Contract(KARMA_ADDRESS, KARMA_ABI, provider); +const karmaTiers = new ethers.Contract(KARMA_TIERS_ADDRESS, KARMA_TIERS_ABI, provider); + +// Read a user's Karma balance and resolve their tier +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); +const tier = await karmaTiers.getTierById(tierId); + +console.log(`Karma balance: ${ethers.formatEther(balance)} KARMA`); +console.log(`Tier: ${tier.name} (ID ${tierId})`); +console.log(`Tx quota per epoch: ${tier.txPerEpoch}`); +``` + + + + +```ts +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://public.sepolia.rpc.status.network'), +}); + +const karmaAbi = [ + { + name: 'balanceOf', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'account', type: 'address' }], + outputs: [{ name: '', type: 'uint256' }], + }, + { + name: 'slashedAmountOf', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'account', type: 'address' }], + outputs: [{ name: '', type: 'uint256' }], + }, +] as const; + +const karmaTiersAbi = [ + { + name: 'getTierIdByKarmaBalance', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'karmaBalance', type: 'uint256' }], + outputs: [{ name: '', type: 'uint8' }], + }, + { + name: 'getTierById', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'tierId', type: 'uint8' }], + outputs: [{ + name: 'tier', + type: 'tuple', + components: [ + { name: 'minKarma', type: 'uint256' }, + { name: 'maxKarma', type: 'uint256' }, + { name: 'name', type: 'string' }, + { name: 'txPerEpoch', type: 'uint32' }, + ], + }], + }, +] as const; + +// Two sequential reads: balance → tier ID → tier details +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const tier = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierById', + args: [tierId], +}); + +console.log(`Tier: ${tier.name} (ID ${tierId})`); +console.log(`Tx quota per epoch: ${tier.txPerEpoch}`); +``` + + + + + +:::note Contract Addresses +Karma and KarmaTiers contract addresses for testnet are published on the [Contract Addresses](/overview/general-info/contract-addresses/testnet-contracts) page. +::: + +## Common Integration Patterns + +### Feature Gating + +Unlock features based on Karma tier. The `onlyTier` modifier from the [Reading Karma On-Chain](#reading-karma-on-chain) section enforces access at the contract level: + + + + + +```solidity +function accessPremiumContent() external onlyTier(3) { + // Only users at tier 3 or above can call this +} +``` + + + + +```js +// Resolve tier from Karma balance, then gate UI features +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); + +if (tierId >= 3) { + showPremiumFeatures(); +} else { + showUpgradePrompt(tierId); +} +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +if (tierId >= 3) { + showPremiumFeatures(); +} else { + showUpgradePrompt(tierId); +} +``` + + + + + +### Dynamic Pricing + +Offer discounts or better rates to high-Karma users: + + + + + +```solidity +function calculateFee(address user, uint256 baseAmount) public view returns (uint256) { + uint8 tierId = karmaTiers.getTierIdByKarmaBalance(karma.balanceOf(user)); + // Each tier gives 5% discount + uint256 discount = uint256(tierId) * 5; + return baseAmount * (100 - discount) / 100; +} +``` + + + + +```js +// Compute the discounted fee client-side from the user's current tier +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); + +const discount = BigInt(tierId) * 5n; // 5% per tier +const fee = baseAmount * (100n - discount) / 100n; + +console.log(`Tier ${tierId}: ${discount}% discount → fee = ${fee}`); +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const discount = BigInt(tierId) * 5n; // 5% per tier +const fee = baseAmount * (100n - discount) / 100n; + +console.log(`Tier ${tierId}: ${discount}% discount → fee = ${fee}`); +``` + + + + + +### Reputation Display + +Show Karma tier as a trust signal in your UI by reading the name directly from the `KarmaTiers` contract: + + + + + +```js +// Fetch tier name on-chain — no hardcoded array needed +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); +const tier = await karmaTiers.getTierById(tierId); + +function KarmaBadge({ tierName }) { + return {tierName}; +} + +// Usage + +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const tier = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierById', + args: [tierId], +}); + +function KarmaBadge({ tierName }: { tierName: string }) { + return {tierName}; +} + +// Usage + +``` + + + + + +### Weighted Governance + +Use Karma for vote weighting in your app's governance: + + + + + +```solidity +function vote(uint256 proposalId, bool support) external { + uint256 weight = karma.balanceOf(msg.sender); + proposals[proposalId].votes += support ? int256(weight) : -int256(weight); +} +``` + + + + +```js +// Read the user's Karma balance as their vote weight, then submit +const weight = await karma.balanceOf(userAddress); +console.log(`Voting with weight: ${ethers.formatEther(weight)} KARMA`); + +// Call your governance contract +const tx = await governanceContract.vote(proposalId, support); +await tx.wait(); +``` + + + + +```ts +import { formatEther, parseAbi } from 'viem'; + +// Read vote weight from Karma balance +const weight = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); +console.log(`Voting with weight: ${formatEther(weight)} KARMA`); + +// Submit vote via your governance contract +const { request } = await client.simulateContract({ + address: GOVERNANCE_ADDRESS, + abi: parseAbi(['function vote(uint256 proposalId, bool support) external']), + functionName: 'vote', + args: [proposalId, support], + account: userAddress, +}); +await walletClient.writeContract(request); +``` + + + + + +## Next Steps + +- Refer to [Gasless Integration](/build-for-karma/gasless-integration) to integrate Karma in making gasless transaction +- Check out [Karmic Tokenomics](/overview/tokenomics/karmic-tokenomics) to see a breakdown of how Karma is earned and used +- Go to [Gasless Transactions](/overview/general-info/gasless-transactions) to understand the technical details of the RLN-based gasless system diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json index e908ee8..e4968ab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -103,6 +103,10 @@ "message": "⛽ ガスレス統合", "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" }, + "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { + "message": "🔰 レピュテーション統合", + "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 Hardhatの使用", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/i18n/ko/docusaurus-plugin-content-docs/current.json b/i18n/ko/docusaurus-plugin-content-docs/current.json index 7ba95ef..a4a504d 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current.json +++ b/i18n/ko/docusaurus-plugin-content-docs/current.json @@ -103,6 +103,10 @@ "message": "⛽ 가스리스 적용하기", "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" }, + "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { + "message": "🔰 평판 적용하기", + "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 Hardhat 사용하기", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/i18n/zh/docusaurus-plugin-content-docs/current.json b/i18n/zh/docusaurus-plugin-content-docs/current.json index 76084ca..dc0845c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current.json +++ b/i18n/zh/docusaurus-plugin-content-docs/current.json @@ -103,6 +103,10 @@ "message": "⛽ 无Gas交易整合", "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" }, + "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { + "message": "🔰 声誉整合", + "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { "message": "🎩 使用 Hardhat", "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" diff --git a/sidebars.ts b/sidebars.ts index 648c6ab..b9dbf42 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -143,6 +143,11 @@ const sidebars: SidebarsConfig = { id: 'build-for-karma/guides/gasless-integration', label: '⛽ Gasless Integration', }, + { + type: 'doc', + id: 'build-for-karma/guides/reputation-integration', + label: '🔰 Reputation Integration', + }, ], }, { From cc5cd7bb49d4d739db5c263e3b8fe72883e9e905 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Tue, 24 Feb 2026 14:00:44 +0100 Subject: [PATCH 24/36] Update slug paths - Changed slug paths in gasless-integration.md and reputation-integration.md to include 'guides' for consistency. - Updated references to the gasless integration guide in the reputation integration guide and json-rpc documentation. Signed-off-by: yjkellyjoo --- docs/build-for-karma/guides/gasless-integration.md | 4 ++-- docs/build-for-karma/guides/reputation-integration.md | 4 ++-- docs/build-for-karma/rpc/json-rpc.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/build-for-karma/guides/gasless-integration.md b/docs/build-for-karma/guides/gasless-integration.md index 12144bf..fb7146f 100644 --- a/docs/build-for-karma/guides/gasless-integration.md +++ b/docs/build-for-karma/guides/gasless-integration.md @@ -2,7 +2,7 @@ title: Gasless Integration Guide description: Practical integration guide for building gasless UX on Status Network. keywords: [gasless, linea_estimateGas, Status Network, deny list, builder, zero gas, UX] -slug: /build-for-karma/gasless-integration +slug: /build-for-karma/guides/gasless-integration sidebar_position: 5 --- @@ -362,4 +362,4 @@ When sender is deny-listed (exceeded quota or RLN policy): ## Next steps - [JSON-RPC API](/build-for-karma/rpc/json-rpc) -- [Reputation Integration](/build-for-karma/reputation-integration) +- [Reputation Integration](/build-for-karma/guides/reputation-integration) diff --git a/docs/build-for-karma/guides/reputation-integration.md b/docs/build-for-karma/guides/reputation-integration.md index ea34cb4..8423f88 100644 --- a/docs/build-for-karma/guides/reputation-integration.md +++ b/docs/build-for-karma/guides/reputation-integration.md @@ -2,7 +2,7 @@ title: Reputation Integration Guide description: How to read Karma tiers, gate features by reputation, and build Karma-aware smart contracts and frontends on Status Network. keywords: [Karma, integration, smart contract, soulbound token, reputation, tiers, gasless, Status Network, developer guide] -slug: /build-for-karma/reputation-integration +slug: /build-for-karma/guides/reputation-integration sidebar_position: 4 --- @@ -446,6 +446,6 @@ await walletClient.writeContract(request); ## Next Steps -- Refer to [Gasless Integration](/build-for-karma/gasless-integration) to integrate Karma in making gasless transaction +- Refer to [Gasless Integration](/build-for-karma/guides/gasless-integration) to integrate Karma in making gasless transaction - Check out [Karmic Tokenomics](/overview/tokenomics/karmic-tokenomics) to see a breakdown of how Karma is earned and used - Go to [Gasless Transactions](/overview/general-info/gasless-transactions) to understand the technical details of the RLN-based gasless system diff --git a/docs/build-for-karma/rpc/json-rpc.md b/docs/build-for-karma/rpc/json-rpc.md index e31ab33..2c881a9 100644 --- a/docs/build-for-karma/rpc/json-rpc.md +++ b/docs/build-for-karma/rpc/json-rpc.md @@ -46,7 +46,7 @@ Use `linea_estimateGas` as the single source of truth for `gasLimit`, `baseFeePe See [Linea's gas-fee guide](https://docs.linea.build/network/how-to/gas-fees) and [Linea's `linea_estimateGas` reference](https://docs.linea.build/api/reference/linea-estimategas) for the base Linea behavior. :::info -For detailed integration guidance including code examples, migration steps, and common pitfalls, see the [Gasless Integration](/build-for-karma/gasless-integration) guide. +For detailed integration guidance including code examples, migration steps, and common pitfalls, see the [Gasless Integration](/build-for-karma/guides/gasless-integration) guide. ::: ### Additional resources From f896dd847534c924309c0b247e637bbc6f51bf1c Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Tue, 24 Feb 2026 15:24:19 +0100 Subject: [PATCH 25/36] Add 'Using Karma' section docs - Introduced a new 'Using Karma' category in the sidebar with a link to the guides index. - Added comprehensive content to the guides index for integrating Karma features, including gasless and reputation integration. - Added Karma Tier model table in Karmic Tokenomics Signed-off-by: yjkellyjoo --- docs/build-for-karma/guides/index.md | 33 +++++++++---------- docs/overview/tokenomics/karmic-tokenomics.md | 23 +++++++++++++ sidebars.ts | 4 +++ 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/docs/build-for-karma/guides/index.md b/docs/build-for-karma/guides/index.md index d08411a..31ddd3a 100644 --- a/docs/build-for-karma/guides/index.md +++ b/docs/build-for-karma/guides/index.md @@ -1,23 +1,20 @@ +--- +title: Using Karma +description: Entry point for integrating Karma-based gasless UX and reputation-aware features on Status Network. +keywords: [Karma, gasless, reputation, integration, Status Network] +slug: /build-for-karma/guides +sidebar_position: 3 +--- -## Karma Tiers +Karma provides gasless transaction privileges and reputation across Status Network. +This section helps you integrate both gasless behavior and tier-aware product logic in your app. -Karma tiers determine the gasless transaction quota for each address. Higher tiers get more free transactions per epoch. +## Start Here -### Current Tier Model (Testnet) +**Handling transactions?** -| Tier | Daily Quota | Equivalent Rate | Karma Range | -|---|---|---|---| -| Entry | 1 tx/day | 1 tx every 24 hours | 1-2 | -| Newbie | 5 tx/day | 1 tx every ~5 hours | 2-49 | -| Basic | 15 tx/day | 1 tx every 90 minutes | 50-499 | -| Active | 96 tx/day | 1 tx every 15 minutes | 500-4999 | -| Regular | 480 tx/day | 1 tx every 3 minutes | 5000-19999 | -| Power User | 960 tx/day | 1 tx every 90 seconds | 20000-99999 | -| Pro User | 10080 tx/day | 1 tx every 9 seconds | 100000-499999 | -| High-Throughput | 108000 tx/day | 1 TPS | 500000-4999999 | -| S-Tier | 240000 tx/day | 5 TPS | 5000000-9999999 | -| Legendary | 480000 tx/day | 10 TPS | 10000000-infinity | +- Start with [Gasless Integration](/build-for-karma/guides/gasless-integration) to use `linea_estimateGas` as your single source of truth for gasless vs premium-fee outcomes. -:::info Testnet-Only Model -This tier model is currently used for testnet alignment. The exact quota numbers per tier will be governed by Karma holders in the future and may change. -::: \ No newline at end of file +**Gating features by reputation?** + +- Continue with [Reputation Integration](/build-for-karma/guides/reputation-integration) to read Karma balances and tiers onchain, gate contracts, and design tier-aware frontends. diff --git a/docs/overview/tokenomics/karmic-tokenomics.md b/docs/overview/tokenomics/karmic-tokenomics.md index a951390..3f5a0cc 100644 --- a/docs/overview/tokenomics/karmic-tokenomics.md +++ b/docs/overview/tokenomics/karmic-tokenomics.md @@ -6,6 +6,29 @@ keywords: [Karma token, Karmic tokenomics, Status Network governance, non-transf In some Eastern traditions, Karma represents the principle that one's past actions shape their future state. Similarly, on Status Network, every positive action and contribution accumulates Karma, granting greater influence over the network's funding and incentives. Karma ($KARMA) is a non-transferable governance token that rewards staking, bridging, providing liquidity, and building. The more a user or an app contributes to the L2 in liquidity or activity, the more voting power they earn over funding allocations, liquidity incentives, and network roadmap and parameters. +## Karma Tiers + +Karma tiers determine the gasless transaction quota for each address. Higher tiers get more free transactions per epoch. + +### Current Tier Model (Testnet) + +| Tier | Daily Quota | Equivalent Rate | Karma Range | +|---|---|---|---| +| Entry | 1 tx/day | 1 tx every 24 hours | 1-2 | +| Newbie | 5 tx/day | 1 tx every ~5 hours | 2-49 | +| Basic | 15 tx/day | 1 tx every 90 minutes | 50-499 | +| Active | 96 tx/day | 1 tx every 15 minutes | 500-4999 | +| Regular | 480 tx/day | 1 tx every 3 minutes | 5000-19999 | +| Power User | 960 tx/day | 1 tx every 90 seconds | 20000-99999 | +| Pro User | 10080 tx/day | 1 tx every 9 seconds | 100000-499999 | +| High-Throughput | 108000 tx/day | 1 TPS | 500000-4999999 | +| S-Tier | 240000 tx/day | 5 TPS | 5000000-9999999 | +| Legendary | 480000 tx/day | 10 TPS | 10000000 and more | + +:::info Testnet-only model +This tier model is currently used for testnet alignment. The exact quota numbers per tier will be governed by Karma holders in the future and may change. +::: + ## How Karma is Earned Karma is minted through six primary mechanisms and cannot be acquired, ensuring that no entity—including the Status team—has any advantage in getting access to it. Everyone earns Karma under the same rules, based solely on their contributions to the network, ensuring it remains a pure representation of meaningful engagement within the network: diff --git a/sidebars.ts b/sidebars.ts index b9dbf42..1652fdc 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -137,6 +137,10 @@ const sidebars: SidebarsConfig = { type: 'category', label: 'USING KARMA', collapsed: false, + link: { + type: 'doc', + id: 'build-for-karma/guides/index', + }, items: [ { type: 'doc', From 7f32e80d7f661a96b069ade8300e388540948c78 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Tue, 24 Feb 2026 20:49:31 +0100 Subject: [PATCH 26/36] Add i18n translation for the added/updated changes Signed-off-by: yjkellyjoo --- .../guides/reputation-integration.md | 10 +- docs/build-for-karma/rpc/json-rpc.md | 2 +- .../current.json | 22 +- .../guides/gasless-integration.md | 365 ++++++++++++++ .../current/build-for-karma/guides/index.md | 20 + .../guides/reputation-integration.md | 451 +++++++++++++++++ .../current/build-for-karma/index.md | 0 .../current/build-for-karma/rpc/json-rpc.md | 57 +++ .../current.json | 24 +- .../guides/gasless-integration.md | 365 ++++++++++++++ .../current/build-for-karma/guides/index.md | 20 + .../guides/reputation-integration.md | 453 ++++++++++++++++++ .../current/build-for-karma/index.md | 0 .../current/build-for-karma/rpc/json-rpc.md | 57 +++ .../current.json | 22 +- .../guides/gasless-integration.md | 365 ++++++++++++++ .../current/build-for-karma/guides/index.md | 20 + .../guides/reputation-integration.md | 451 +++++++++++++++++ .../current/build-for-karma/index.md | 0 .../current/build-for-karma/rpc/json-rpc.md | 57 +++ 20 files changed, 2746 insertions(+), 15 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/index.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/index.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md diff --git a/docs/build-for-karma/guides/reputation-integration.md b/docs/build-for-karma/guides/reputation-integration.md index 8423f88..056d7ec 100644 --- a/docs/build-for-karma/guides/reputation-integration.md +++ b/docs/build-for-karma/guides/reputation-integration.md @@ -208,11 +208,13 @@ console.log(`Tx quota per epoch: ${tier.txPerEpoch}`); Karma and KarmaTiers contract addresses for testnet are published on the [Contract Addresses](/overview/general-info/contract-addresses/testnet-contracts) page. ::: -## Common Integration Patterns +## Possible Integration Patterns ### Feature Gating -Unlock features based on Karma tier. The `onlyTier` modifier from the [Reading Karma On-Chain](#reading-karma-on-chain) section enforces access at the contract level: +Unlock features based on Karma tier. +The `onlyTier` modifier you can check from the [Reading Karma On-Chain](#reading-karma-on-chain) section can restrict access at the contract level. +Alternatively, you can use `tierId` in your code to gate features: @@ -289,7 +291,7 @@ function calculateFee(address user, uint256 baseAmount) public view returns (uin ```js -// Compute the discounted fee client-side from the user's current tier +// Compute the discounted fee on the client-side from the user's current tier const balance = await karma.balanceOf(userAddress); const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); @@ -329,7 +331,7 @@ console.log(`Tier ${tierId}: ${discount}% discount → fee = ${fee}`); ### Reputation Display -Show Karma tier as a trust signal in your UI by reading the name directly from the `KarmaTiers` contract: +Show Karma tier as a trust index in your UI by reading the tier name directly from the `KarmaTiers` contract: diff --git a/docs/build-for-karma/rpc/json-rpc.md b/docs/build-for-karma/rpc/json-rpc.md index 2c881a9..6213cd9 100644 --- a/docs/build-for-karma/rpc/json-rpc.md +++ b/docs/build-for-karma/rpc/json-rpc.md @@ -46,7 +46,7 @@ Use `linea_estimateGas` as the single source of truth for `gasLimit`, `baseFeePe See [Linea's gas-fee guide](https://docs.linea.build/network/how-to/gas-fees) and [Linea's `linea_estimateGas` reference](https://docs.linea.build/api/reference/linea-estimategas) for the base Linea behavior. :::info -For detailed integration guidance including code examples, migration steps, and common pitfalls, see the [Gasless Integration](/build-for-karma/guides/gasless-integration) guide. +For detailed integration guidance including code examples, migration steps, and common pitfalls, see the [Using Karma](/build-for-karma/guides) guide. ::: ### Additional resources diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json index e4968ab..22eda16 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -31,13 +31,25 @@ "message": "パートナー", "description": "The label for category PARTNERS in sidebar toolsSidebar" }, + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "Karma開発", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { + "message": "🛠 Karma開発ガイド", + "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.category.USING KARMA": { "message": "Karmaを使う", "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" }, - "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { - "message": "🚀 スマートコントラクトのデプロイ", - "description": "The label for category 🚀 Deploying a Smart Contract in sidebar buildForKarmaSidebar" + "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { + "message": "コントラクトのデプロイ", + "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.RPC": { + "message": "RPC", + "description": "The label for category RPC in sidebar buildForKarmaSidebar" }, "sidebar.homeSidebar.category.OTHER DOCS": { "message": "その他のドキュメント", @@ -155,6 +167,10 @@ "message": "💰 プリ・デポジット金庫コントラクト", "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, + "sidebar.buildForKarmaSidebar.doc.🔌 JSON-RPC API": { + "message": "🔌 JSON-RPC API", + "description": "The label for the doc item 🔌 JSON-RPC API in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { "message": "🌐 RPCノードの運用", "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md new file mode 100644 index 0000000..0991650 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md @@ -0,0 +1,365 @@ +--- +title: ガスレス統合ガイド +description: Status Networkでガスレスなユーザー体験を構築するための実践的な統合ガイド。 +keywords: [gasless, linea_estimateGas, Status Network, deny list, builder, zero gas, UX] +slug: /build-for-karma/guides/gasless-integration +sidebar_position: 5 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Status Networkはプロトコルレベルでガスレストランザクションを提供します。ペイマスターやリレイヤーは不要です。ビルダーとしての中心的なタスクは、送信者の状態に応じて手数料を正確に推定し表示することです。 + +:::important 基本ルール +トランザクションUXを準備する際、ガス手数料の信頼できるソースとして`linea_estimateGas` RPCメソッドを使用してください。 +::: + +その他のJSON-RPCメソッドのリファレンスについては、[JSON-RPC API](/build-for-karma/rpc/json-rpc)を参照してください。 + +## Karma対応の手数料推定 + +Lineaでは、[`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas)はすでにガス推定の推奨メソッドです。 +**1回の呼び出し**で`gasLimit`、`baseFeePerGas`、`priorityFeePerGas`を返し、手数料フィールドは圧縮されたトランザクションサイズ、L1検証コスト、L1/L2ガス価格比率を反映します — `eth_`名前空間のメソッドでは把握できない要素です。 + +Status Networkは`linea_estimateGas`をさらに拡張し、手数料フィールドに**Karma**システムを組み込んでいます。対象ユーザーの手数料がゼロに削減されたり、拒否リストに載ったユーザーの手数料が増加したりする場合があります。 + +```mermaid +flowchart TD + A[ユーザーがトランザクションを開始] --> B["fromパラメータ付きでlinea_estimateGasを呼び出し"] + B --> C{手数料の結果} + C -->|base+priority = 0| D[ガスレスUXを表示] + C -->|プレミアム手数料| F[プレミアム手数料UXを表示] + D --> G[トランザクションを送信] + F --> G +``` + +*図: `linea_estimateGas`を使用したガス推定フロー* + +これが、ビルダーがStatus Networkでトランザクションコストの推定やユーザー向けEIP-1559手数料フィールドの事前入力に`linea_estimateGas`を使用すべき理由です。 + +:::info 詳細 +Karmaとガス手数料およびトランザクション特権への影響に関する詳細な説明は、[カルミックトークノミクス](../../overview/tokenomics/karmic-tokenomics)ページを参照してください。 + +ガスレスシステムの実装と適用方法の技術的な詳細は、[ガスレストランザクション](../../overview/general-info/gasless-transactions)ドキュメントを参照してください。 +::: + +## `linea_estimateGas`のリクエスト/レスポンス形式 + +### リクエスト + +`linea_estimateGas`は`eth_estimateGas`と**同じトランザクション呼び出しオブジェクト**を受け取ります。 +`gasLimit`(`eth_estimateGas`と同じEVM実行ロジックを使用)と、LineaのL2固有の価格設定とStatus NetworkのKarmaルールの両方を反映した手数料フィールドを、単一のレスポンスで返します。 + +:::important +**必ず`from`を含めてください。** これがないと、ノードはKarma/クォータ/拒否リストのロジックを適用できません。 +::: + +### レスポンス + +`linea_estimateGas`は以下を含むオブジェクトを返します: + +- `gasLimit`: 16進数 - EVM実行のための推定ガスユニット(`eth_estimateGas`と同じ計算) +- `baseFeePerGas`: 16進数 - Status NetworkのKarmaルールを反映した次のブロックの基本手数料 +- `priorityFeePerGas`: 16進数 - Status NetworkのKarmaルールを反映した推奨優先手数料 + +これらの手数料フィールドは、`eth_gasPrice`、`eth_maxPriorityFeePerGas`、`eth_feeHistory`などの`eth_`名前空間の呼び出しが返す値とは大きく異なる場合があります。これらはLineaのL2固有の価格設定やStatus NetworkのKarma調整を認識していません。 + + + + + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "gasLimit": "0x5208", + "baseFeePerGas": "0x0", + "priorityFeePerGas": "0x0" + } +} +``` + + + + +標準EVMフローでは、ガスリミットと手数料データを収集するために複数の`eth_`呼び出しが必要です: + +**eth_estimateGas** + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": "0x5208" +} +``` + +**eth_maxPriorityFeePerGas** + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": "0x59682f00" +} +``` + +**eth_getBlockByNumber** + +```json +{ + "jsonrpc": "2.0", + "id": 3, + "result": { + "number": ..., + "baseFeePerGas": "0x3b9aca00", + ... + } +} +``` + + + + + +## 移行ガイド: 複数の`eth_`呼び出しから`linea_estimateGas`へ + +このセクションでは、一般的な「複数の`eth_`呼び出しによるEIP-1559」フローから単一の`linea_estimateGas`呼び出しへの移行方法を説明します。Status Networkでより正確なL2固有の手数料データとKarma対応の価格設定を提供します。 + +### 移行前: `eth_`名前空間を使用したEVMチェーンでの一般的なEIP-1559推定フロー + +多くのEVMチェーンでは、一般的なEIP-1559推定フローは次のようになります: + +1. **ガスリミットの推定** — `eth_estimateGas` +2. **`maxPriorityFeePerGas`の取得** — `eth_maxPriorityFeePerGas`および/または`eth_feeHistory` +3. **`baseFeePerGas`の取得** — `eth_getBlockByNumber` +4. 以下を使用してEIP-1559トランザクションを構築: + - `gas` + - `maxPriorityFeePerGas` + - `maxFeePerGas`、通常は $2 \cdot \mathrm{baseFeePerGas} + \mathrm{maxPriorityFeePerGas}$ + + + + + +```bash +# 1) Gas limit (EVM execution) +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"eth_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_RPC_URL + +# 2) Fetch suggested tip amount +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":2,"method":"eth_maxPriorityFeePerGas","params":[]}' \ + https://YOUR_RPC_URL + +# 3) Fetch base fee +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":3,"method":"eth_getBlockByNumber","params":["pending",false]}' \ + https://YOUR_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const gas = await provider.estimateGas(call); +const maxPriorityFeePerGas = await provider.send('eth_maxPriorityFeePerGas', []); +const pendingBlock = await provider.getBlock('pending'); + +const baseFeePerGas = pendingBlock?.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + BigInt(maxPriorityFeePerGas); + +console.log({ + gas: `0x${gas.toString(16)}`, + maxPriorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_RPC_URL'), +}); + +const call = { + account: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const gas = await client.estimateGas(call); +const maxPriorityFeePerGas = await client.getMaxPriorityFeePerGas(); +const pendingBlock = await client.getBlock({ blockTag: 'pending' }); + +const baseFeePerGas = pendingBlock.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + maxPriorityFeePerGas; + +console.log({ + gas, + maxPriorityFeePerGas, + maxFeePerGas, +}); +``` + + + + + +### 移行後: `linea_estimateGas`を使用したStatus Networkのガス推定フロー + +Status Networkでは、`linea_estimateGas`から手数料の提案を取得する必要があります。正確な手数料推奨がKarmaに依存するためです: + +- アカウントが**ガスレス**トランザクションの対象になる可能性があります +- 拒否リストに載ったアカウントは**プレミアムガス手数料**を支払う必要がある場合があります + + + + + +```bash +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"linea_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_STATUS_NETWORK_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_STATUS_NETWORK_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await provider.send( + 'linea_estimateGas', + [call], +); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_STATUS_NETWORK_RPC_URL'), +}); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await client.request({ + method: 'linea_estimateGas', + params: [call], +}); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + + +:::tip ツールの統合 +多くのイーサリアムライブラリは内部的に`eth_estimateGas`を呼び出します(例: `provider.estimateGas(...)`)。Status Networkでは標準の`eth_`メソッドにはそれらのライブラリを引き続き使用しつつ、ユーザー向けのトランザクションパラメータを構築または表示する際は**ガスリミットと手数料フィールドを`linea_estimateGas`で明示的に取得してください**。 +::: + +## UIでの手数料シナリオの処理 + +### 1) ガスレス + +`baseFeePerGas`と`priorityFeePerGas`が両方ゼロの場合: + +- 明確な無料トランザクション状態を表示します。 +- 不要な手数料警告をスキップします。 + +### 2) プレミアム手数料 + +送信者が拒否リストに載っている場合(クォータ超過またはRLNポリシー): + +- 手数料の金額を表示し、クォータまたはスパムポリシーによりプレミアムガスが適用されることを説明します。 +- 送信者が手数料を支払うか、クォータ期間がリフレッシュされるまで待つことができることを明確にします。 +- トランザクションを可能に保ちます。完全にブロックしないでください。 + +## よくある落とし穴 + +| 落とし穴 | 対処法 | +|---|---| +| 手数料判定に`eth_`メソッドを使用(`eth_gasPrice`、`eth_maxPriorityFeePerGas`、`eth_feeHistory`) | `linea_estimateGas`を使用 | +| `linea_estimateGas`呼び出し時に`from`を省略 | Karma対応の推定を受け取るため、常に送信者アドレスを渡す | +| 手数料の前提をハードコーディング | 返された`baseFeePerGas`と`priorityFeePerGas`の値から手数料UIを構築 | +| すべてのユーザーがガスレスであると仮定 | ガスレス(手数料ゼロ)と拒否リスト(プレミアム手数料)の両方を処理 | +| リトライ時に推定値をキャッシュ | 送信時に近いタイミングで再推定 — 送信者のKarma状態は変更される可能性がある | + +## 次のステップ + +- [JSON-RPC API](/build-for-karma/rpc/json-rpc) +- [レピュテーション統合](/build-for-karma/guides/reputation-integration) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md new file mode 100644 index 0000000..1a1e286 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md @@ -0,0 +1,20 @@ +--- +title: Karmaを使う +description: Status NetworkでKarmaベースのガスレスUXとレピュテーション対応機能を統合するためのエントリーポイント。 +keywords: [Karma, gasless, reputation, integration, Status Network] +slug: /build-for-karma/guides +sidebar_position: 3 +--- + +KarmaはStatus Networkでガスレストランザクション特権とレピュテーションを提供します。 +このセクションでは、アプリにガスレス動作とティア対応のプロダクトロジックを統合する方法を説明します。 + +## はじめに + +**トランザクションを処理しますか?** + +- [ガスレス統合](/build-for-karma/guides/gasless-integration)から始めて、`linea_estimateGas`をガスレスとプレミアム手数料の判定における唯一の信頼できるソースとして使用してください。 + +**レピュテーションで機能を制限しますか?** + +- [レピュテーション統合](/build-for-karma/guides/reputation-integration)に進み、オンチェーンでKarma残高とティアを読み取り、コントラクトのゲーティングを行い、ティア対応のフロントエンドを設計する方法を学びましょう。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md new file mode 100644 index 0000000..d9109ac --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md @@ -0,0 +1,451 @@ +--- +title: レピュテーション統合ガイド +description: Status NetworkでKarmaティアを読み取り、レピュテーションで機能をゲーティングし、Karma対応のスマートコントラクトとフロントエンドを構築する方法。 +keywords: [Karma, integration, smart contract, soulbound token, reputation, tiers, gasless, Status Network, developer guide] +slug: /build-for-karma/guides/reputation-integration +sidebar_position: 4 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +KarmaはStatus Networkのソウルバウンドレピュテーショントークンです。すべてのアドレスは、SNTステーキング、アセットのブリッジ、流動性提供、アプリの使用、プレミアムガス手数料の支払いなど、ネットワークへの真正な参加を通じてKarmaを獲得します。Karmaは購入、売却、転送することができません。 + +このガイドでは、Karmaデータの読み取り方法と、ユーザーのレピュテーションティアに応じたアプリの構築方法を説明します。 + +## オンチェーンでのKarma読み取り + +Karmaの状態は2つのコントラクトに分かれています: + +- **Karma** — ソウルバウンドERC-20トークン。`balanceOf`はスラッシング後の純残高を返します。転送と承認は常にリバートします。 +- **KarmaTiers** — 残高をティアにマッピングします。`getTierIdByKarmaBalance(balance)`を呼び出してから`getTierById(tierId)`を呼び出し、ユーザーのティアとその`txPerEpoch`クォータを解決します。 + + + + + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +/// @notice Minimal interface for the Karma soulbound token. +interface IKarma { + /// @notice Net Karma balance of `account` after slashing. + function balanceOf(address account) external view returns (uint256); + + /// @notice Total amount slashed from `account` across all distributors. + function slashedAmountOf(address account) external view returns (uint256); +} + +/// @notice Minimal interface for the KarmaTiers registry. +interface IKarmaTiers { + struct Tier { + uint256 minKarma; + uint256 maxKarma; + string name; + uint32 txPerEpoch; // gasless transactions allowed per epoch + } + + /// @notice Returns the highest tier ID the given karma balance qualifies for. + function getTierIdByKarmaBalance(uint256 karmaBalance) external view returns (uint8); + + /// @notice Returns the full Tier struct for a given tier ID. + function getTierById(uint8 tierId) external view returns (Tier memory); + + /// @notice Returns the total number of configured tiers. + function getTierCount() external view returns (uint256); +} + +contract KarmaGated { + IKarma public karma; + IKarmaTiers public karmaTiers; + + constructor(address _karmaContract, address _karmaTiersContract) { + karma = IKarma(_karmaContract); + karmaTiers = IKarmaTiers(_karmaTiersContract); + } + + /// @notice Resolves the tier ID for `user` from their current Karma balance. + function tierIdOf(address user) public view returns (uint8) { + return karmaTiers.getTierIdByKarmaBalance(karma.balanceOf(user)); + } + + modifier onlyTier(uint8 minTier) { + require(tierIdOf(msg.sender) >= minTier, "Karma tier too low"); + _; + } + + function premiumAction() external onlyTier(3) { + // Only users at tier 3 or above can call this + } + + function getDiscount(address user) external view returns (uint256) { + uint8 tierId = tierIdOf(user); + // Higher tiers get bigger discounts + return uint256(tierId) * 5; // 0%, 5%, 10%, ... + } +} +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider( + 'https://public.sepolia.rpc.status.network' +); + +const KARMA_ABI = [ + 'function balanceOf(address account) view returns (uint256)', + 'function slashedAmountOf(address account) view returns (uint256)', +]; + +const KARMA_TIERS_ABI = [ + 'function getTierIdByKarmaBalance(uint256 karmaBalance) view returns (uint8)', + 'function getTierById(uint8 tierId) view returns (tuple(uint256 minKarma, uint256 maxKarma, string name, uint32 txPerEpoch))', + 'function getTierCount() view returns (uint256)', +]; + +const karma = new ethers.Contract(KARMA_ADDRESS, KARMA_ABI, provider); +const karmaTiers = new ethers.Contract(KARMA_TIERS_ADDRESS, KARMA_TIERS_ABI, provider); + +// ユーザーのKarma残高を読み取り、ティアを解決 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); +const tier = await karmaTiers.getTierById(tierId); + +console.log(`Karma残高: ${ethers.formatEther(balance)} KARMA`); +console.log(`ティア: ${tier.name} (ID ${tierId})`); +console.log(`エポックあたりのTx: ${tier.txPerEpoch}`); +``` + + + + +```ts +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://public.sepolia.rpc.status.network'), +}); + +const karmaAbi = [ + { + name: 'balanceOf', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'account', type: 'address' }], + outputs: [{ name: '', type: 'uint256' }], + }, + { + name: 'slashedAmountOf', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'account', type: 'address' }], + outputs: [{ name: '', type: 'uint256' }], + }, +] as const; + +const karmaTiersAbi = [ + { + name: 'getTierIdByKarmaBalance', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'karmaBalance', type: 'uint256' }], + outputs: [{ name: '', type: 'uint8' }], + }, + { + name: 'getTierById', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'tierId', type: 'uint8' }], + outputs: [{ + name: 'tier', + type: 'tuple', + components: [ + { name: 'minKarma', type: 'uint256' }, + { name: 'maxKarma', type: 'uint256' }, + { name: 'name', type: 'string' }, + { name: 'txPerEpoch', type: 'uint32' }, + ], + }], + }, +] as const; + +// 2回の順次読み取り: 残高 → ティアID → ティア詳細 +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const tier = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierById', + args: [tierId], +}); + +console.log(`ティア: ${tier.name} (ID ${tierId})`); +console.log(`エポックあたりのTx: ${tier.txPerEpoch}`); +``` + + + + + +:::note コントラクトアドレス +KarmaとKarmaTiersのテストネットコントラクトアドレスは[コントラクトアドレス](/overview/general-info/contract-addresses/testnet-contracts)ページに掲載されています。 +::: + +## 考えられる統合パターン + +### 機能ゲーティング + +Karmaティアに基づいて機能をアンロックします。[オンチェーンでのKarma読み取り](#オンチェーンでのkarma読み取り)セクションの`onlyTier`モディファイアがコントラクトレベルでアクセスを制御します: + + + + + +```solidity +function accessPremiumContent() external onlyTier(3) { + // Only users at tier 3 or above can call this +} +``` + + + + +```js +// Karma残高からティアを解決し、UI機能をゲーティング +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); + +if (tierId >= 3) { + showPremiumFeatures(); +} else { + showUpgradePrompt(tierId); +} +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +if (tierId >= 3) { + showPremiumFeatures(); +} else { + showUpgradePrompt(tierId); +} +``` + + + + + +### ダイナミックプライシング + +高Karmaユーザーに割引やより良いレートを提供します: + + + + + +```solidity +function calculateFee(address user, uint256 baseAmount) public view returns (uint256) { + uint8 tierId = karmaTiers.getTierIdByKarmaBalance(karma.balanceOf(user)); + // Each tier gives 5% discount + uint256 discount = uint256(tierId) * 5; + return baseAmount * (100 - discount) / 100; +} +``` + + + + +```js +// ユーザーの現在のティアからクライアント側で割引手数料を計算 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); + +const discount = BigInt(tierId) * 5n; // ティアごとに5%割引 +const fee = baseAmount * (100n - discount) / 100n; + +console.log(`ティア ${tierId}: ${discount}% 割引 → 手数料 = ${fee}`); +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const discount = BigInt(tierId) * 5n; // ティアごとに5%割引 +const fee = baseAmount * (100n - discount) / 100n; + +console.log(`ティア ${tierId}: ${discount}% 割引 → 手数料 = ${fee}`); +``` + + + + + +### レピュテーション表示 + +`KarmaTiers`コントラクトから直接名前を読み取って、UIにKarmaティアを信頼シグナルとして表示します: + + + + + +```js +// オンチェーンでティア名を取得 — ハードコードされた配列は不要 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); +const tier = await karmaTiers.getTierById(tierId); + +function KarmaBadge({ tierName }) { + return {tierName}; +} + +// 使用方法 + +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const tier = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierById', + args: [tierId], +}); + +function KarmaBadge({ tierName }: { tierName: string }) { + return {tierName}; +} + +// 使用方法 + +``` + + + + + +### 加重ガバナンス + +アプリのガバナンスでKarmaを投票の重み付けに使用します: + + + + + +```solidity +function vote(uint256 proposalId, bool support) external { + uint256 weight = karma.balanceOf(msg.sender); + proposals[proposalId].votes += support ? int256(weight) : -int256(weight); +} +``` + + + + +```js +// ユーザーのKarma残高を投票の重みとして読み取り、送信 +const weight = await karma.balanceOf(userAddress); +console.log(`投票の重み: ${ethers.formatEther(weight)} KARMA`); + +// ガバナンスコントラクトを呼び出し +const tx = await governanceContract.vote(proposalId, support); +await tx.wait(); +``` + + + + +```ts +import { formatEther, parseAbi } from 'viem'; + +// Karma残高から投票の重みを読み取り +const weight = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); +console.log(`投票の重み: ${formatEther(weight)} KARMA`); + +// ガバナンスコントラクトを通じて投票を送信 +const { request } = await client.simulateContract({ + address: GOVERNANCE_ADDRESS, + abi: parseAbi(['function vote(uint256 proposalId, bool support) external']), + functionName: 'vote', + args: [proposalId, support], + account: userAddress, +}); +await walletClient.writeContract(request); +``` + + + + + +## 次のステップ + +- [ガスレス統合](/build-for-karma/guides/gasless-integration)を参照して、ガスレストランザクションにKarmaを統合する方法を学ぶ +- [カルミックトークノミクス](/overview/tokenomics/karmic-tokenomics)でKarmaの獲得と使用の仕組みを確認する +- [ガスレストランザクション](/overview/general-info/gasless-transactions)でRLNベースのガスレスシステムの技術的詳細を理解する diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/index.md new file mode 100644 index 0000000..e69de29 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md new file mode 100644 index 0000000..3d522eb --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md @@ -0,0 +1,57 @@ +--- +title: JSON-RPC API +description: ビルダー向けStatus Network JSON-RPC APIリファレンス。 +keywords: + [ + Status Network, + JSON-RPC, + Linea, + EIP-1559, + eth_estimateGas, + linea_estimateGas, + Karma, + gasless, + ] +--- + +Status NetworkはLinea zkEVMをベースとしており、**ほとんどのJSON-RPCメソッドは標準的なEVMノードと同じ動作をします**。 + +サポートされているメソッドとその標準セマンティクスの一覧については、以下の公式ドキュメントを参照してください: + +- **[イーサリアムJSON-RPC API](https://ethereum.github.io/execution-apis/api-documented/)** — 標準イーサリアムRPCメソッド +- **[Linea JSON-RPC APIリファレンス](https://docs.linea.build/api/reference)** — `linea_estimateGas`を含むLinea固有のメソッド + +## Status Networkの拡張 + +Status Networkは標準のLinea JSON-RPCにKarma対応の手数料推定を追加しています: + +### `linea_estimateGas` + +Lineaでは、[`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas)がガス推定の推奨メソッドであり、1回の呼び出しで`gasLimit`、`baseFeePerGas`、`priorityFeePerGas`を返します。 + +Status Networkは`linea_estimateGas`にKarma対応の動作を追加しています: + +- **ガスレスユーザー**: 利用可能なKarmaクォータを持つ対象ユーザーに対して、`baseFeePerGas`と`priorityFeePerGas`をゼロで返します +- **拒否リストユーザー**: 拒否リストに載っているユーザーの手数料フィールドにプレミアム乗数を適用します + +### Status Network RPCの違い + +ベースのLineaでも、`linea_estimateGas`はすでに推奨メソッドです。L1検証コストとデータ圧縮を考慮した手数料フィールドを返すためで、これは`eth_estimateGas`やその他の`eth_`名前空間の呼び出しでは提供されない情報です。 +Status Networkのフォークは`linea_estimateGas`をさらに拡張してKarma対応にしており、その他のJSON-RPCメソッドはすべて標準セマンティクスを維持しています。 + +つまり、`eth_`メソッドを使用した従来の手数料フロー(例: `eth_gasPrice`、`eth_maxPriorityFeePerGas`、`eth_feeHistory`)は**不正確な**手数料提案につながる可能性があります。LineaのL2固有の価格設定とStatus NetworkのKarma調整の両方が欠落するためです。 + +Status Networkでは、`linea_estimateGas`を`gasLimit`、`baseFeePerGas`、`priorityFeePerGas`の唯一の信頼できるソースとして使用してください。 + +ベースLineaの動作については、[Lineaのガス手数料ガイド](https://docs.linea.build/network/how-to/gas-fees)と[Lineaの`linea_estimateGas`リファレンス](https://docs.linea.build/api/reference/linea-estimategas)を参照してください。 + +:::info +コード例、移行手順、よくある落とし穴を含む詳細な統合ガイドは、[Karma の使い方](/build-for-karma/guides)ガイドを参照してください。 +::: + +### その他のリソース + +- [Lineaのガス手数料ガイド](https://docs.linea.build/network/how-to/gas-fees) +- [Lineaの`linea_estimateGas`リファレンス](https://docs.linea.build/api/reference/linea-estimategas) +- [カルミックトークノミクス](/overview/tokenomics/karmic-tokenomics) — Karmaがガス手数料に与える影響 +- [ガスレストランザクション](/overview/general-info/gasless-transactions) — RLNベースのガスレスシステムの技術的詳細 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current.json b/i18n/ko/docusaurus-plugin-content-docs/current.json index a4a504d..9a48e01 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current.json +++ b/i18n/ko/docusaurus-plugin-content-docs/current.json @@ -31,13 +31,25 @@ "message": "파트너", "description": "The label for category PARTNERS in sidebar toolsSidebar" }, + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "카르마를 위해 개발하기", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { + "message": "🛠 Karma 빌드 가이드", + "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.category.USING KARMA": { - "message": "카르마 사용하기", + "message": "카르마 사용", "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" }, - "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { - "message": "🚀 스마트 컨트랙트 배포", - "description": "The label for category 🚀 Deploying a Smart Contract in sidebar buildForKarmaSidebar" + "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { + "message": "컨트랙트 배포", + "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.RPC": { + "message": "RPC", + "description": "The label for category RPC in sidebar buildForKarmaSidebar" }, "sidebar.homeSidebar.category.OTHER DOCS": { "message": "기타 문서", @@ -155,6 +167,10 @@ "message": "💰 사전예치 금고 컨트랙트", "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, + "sidebar.buildForKarmaSidebar.doc.🔌 JSON-RPC API": { + "message": "🔌 JSON-RPC API", + "description": "The label for the doc item 🔌 JSON-RPC API in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { "message": "🌐 RPC 노드 운영하기", "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md new file mode 100644 index 0000000..5484e0d --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md @@ -0,0 +1,365 @@ +--- +title: 가스리스 적용 가이드 +description: Status Network에서 가스리스 UX를 구축하기 위한 실용적인 통합 가이드. +keywords: [가스리스, linea_estimateGas, 스테이터스 네트워크, deny list, 빌더, 가스리스, UX] +slug: /build-for-karma/guides/gasless-integration +sidebar_position: 5 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Status Network는 프로토콜 레벨에서 가스리스 트랜잭션을 제공합니다. 페이마스터나 릴레이어가 필요하지 않습니다. 빌더로서 핵심 작업은 sender의 상태에 따라 수수료를 정확하게 추정하고 표시하는 것입니다. + +:::important 핵심 규칙 +트랜잭션 UX를 준비할 때 신뢰할 수 있는 가스비 값 출처로 `linea_estimateGas` RPC 메서드를 사용하세요. +::: + +기타 JSON-RPC 메서드 레퍼런스는 [JSON-RPC API](/build-for-karma/rpc/json-rpc)를 참조하세요. + +## 카르마가 적용된 수수료 추정법 + +Linea에서 [`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas)는 이미 가스 추정을 위한 권장 방법입니다. +**단일 호출**에서 `gasLimit`, `baseFeePerGas`, `priorityFeePerGas`를 반환하며, 수수료 관련 필드들은 압축된 트랜잭션의 크기, L1 검증 비용, L1/L2 가스 가격 비율을 반영합니다. 이는 `eth_` 네임스페이스 메서드에는 적용되지 않은 요소들입니다. + +Status Network는 `linea_estimateGas`를 더욱 확장하여 수수료 필드에 **카르마 시스템**을 반영합니다. 자격이 있는 사용자의 경우 수수료가 0으로 줄어들 수 있고, 거부 목록에 있는 사용자의 수수료는 증가할 수 있습니다. + +```mermaid +flowchart TD + A[사용자 트랜잭션 호출] --> B["from 파라미터와 함께 linea_estimateGas 호출"] + B --> C{수수료 계산} + C -->|base+priority = 0| D[가스리스 UX 표시] + C -->|프리미엄 수수료| F[프리미엄 수수료 UX 표시] + D --> G[트랜잭션 전송] + F --> G +``` + +*그림: `linea_estimateGas`를 사용한 가스 추정 플로우* + +이것이 빌더가 Status Network에서 트랜잭션 비용을 추정하거나 사용자를 위한 EIP-1559 수수료 필드를 입력해줄 때 `linea_estimateGas`를 사용해야 하는 이유입니다. + +:::info 자세히 보기 +카르마와 가스비 및 트랜잭션 권한에 미치는 영향에 대한 자세한 설명은 [카르마 토크노믹스](../../overview/tokenomics/karmic-tokenomics) 페이지를 참조하세요. + +가스리스 시스템이 어떻게 구현되고 적용되는지에 대한 기술적 세부사항은 [가스리스 트랜잭션](../../overview/general-info/gasless-transactions) 문서를 참조하세요. +::: + +## `linea_estimateGas` 요청/응답 형태 + +### 요청 + +`linea_estimateGas`는 `eth_estimateGas`와 **동일한 트랜잭션 호출 객체**를 받습니다. +`gasLimit`(`eth_estimateGas`와 동일한 EVM 실행 로직 사용)과 함께 Linea의 L2 전용 가격 책정과 Status Network의 카르마 규칙을 모두 반영한 수수료 필드를 단일 응답으로 반환합니다. + +:::important +**항상 `from`을 포함하세요.** 해당 값이 없으면 노드가 카르마/할당량/거부 목록 로직을 적용할 수 없습니다. +::: + +### 응답 + +`linea_estimateGas`는 다음을 포함하는 객체를 반환합니다: + +- `gasLimit`: 16진수 숫자값 - EVM 실행을 위한 추정 가스 단위(`eth_estimateGas`와 동일한 계산 결과) +- `baseFeePerGas`: 16진수 숫자값 - Status Network의 카르마 규칙을 반영한 다음 블록의 기본 수수료 +- `priorityFeePerGas`: 16진수 숫자값 - Status Network의 카르마 규칙을 반영한 제안 우선순위 수수료 + +이러한 수수료 필드는 `eth_gasPrice`, `eth_maxPriorityFeePerGas`, `eth_feeHistory`와 같은 `eth_` 네임스페이스 호출이 반환하는 값과 크게 다를 수 있습니다. `eth_` 네임스페이스들은 Linea의 L2 전용 가격 책정이나 Status Network의 카르마 조정을 인식하지 못합니다. + + + + + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "gasLimit": "0x5208", + "baseFeePerGas": "0x0", + "priorityFeePerGas": "0x0" + } +} +``` + + + + +표준 EVM 플로우에서는 가스 한도와 수수료 데이터를 수집하기 위해 별도의 `eth_` 호출이 여러 번 필요합니다: + +**eth_estimateGas** + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": "0x5208" +} +``` + +**eth_maxPriorityFeePerGas** + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": "0x59682f00" +} +``` + +**eth_getBlockByNumber** + +```json +{ + "jsonrpc": "2.0", + "id": 3, + "result": { + "number": ..., + "baseFeePerGas": "0x3b9aca00", + ... + } +} +``` + + + + + +## 마이그레이션 안내: 다중 `eth_` 호출에서 단일 `linea_estimateGas`로 + +이 섹션은 일반적인 "다중 `eth_` 호출을 통한 EIP-1559" 플로우에서 단일 `linea_estimateGas` 호출로 마이그레이션하는 방법을 보여줍니다. Status Network에서의 더 정확한 L2 전용 수수료 데이터와 카르마 인식 가격 책정을 제공합니다. + +### 이전: `eth_` 네임스페이스를 사용한 일반적인 EVM 체인의 EIP-1559 추정 플로우 + +많은 EVM 체인에서 일반적인 EIP-1559 추정 플로우는 다음과 같습니다: + +1. **가스 한도 추정** — `eth_estimateGas` +2. **`maxPriorityFeePerGas` 조회** — `eth_maxPriorityFeePerGas` 및 `eth_feeHistory` +3. **`baseFeePerGas` 조회** — `eth_getBlockByNumber` +4. 위 값들을 조합하여 EIP-1559 트랜잭션 구성: + - `gas` + - `maxPriorityFeePerGas` + - `maxFeePerGas`, 일반적으로 $2 \cdot \mathrm{baseFeePerGas} + \mathrm{maxPriorityFeePerGas}$ + + + + + +```bash +# 1) Gas limit (EVM execution) +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"eth_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_RPC_URL + +# 2) Fetch suggested tip amount +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":2,"method":"eth_maxPriorityFeePerGas","params":[]}' \ + https://YOUR_RPC_URL + +# 3) Fetch base fee +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":3,"method":"eth_getBlockByNumber","params":["pending",false]}' \ + https://YOUR_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const gas = await provider.estimateGas(call); +const maxPriorityFeePerGas = await provider.send('eth_maxPriorityFeePerGas', []); +const pendingBlock = await provider.getBlock('pending'); + +const baseFeePerGas = pendingBlock?.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + BigInt(maxPriorityFeePerGas); + +console.log({ + gas: `0x${gas.toString(16)}`, + maxPriorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_RPC_URL'), +}); + +const call = { + account: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const gas = await client.estimateGas(call); +const maxPriorityFeePerGas = await client.getMaxPriorityFeePerGas(); +const pendingBlock = await client.getBlock({ blockTag: 'pending' }); + +const baseFeePerGas = pendingBlock.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + maxPriorityFeePerGas; + +console.log({ + gas, + maxPriorityFeePerGas, + maxFeePerGas, +}); +``` + + + + + +### 이후: `linea_estimateGas`를 사용한 Status Network 가스 추정 플로우 + +Status Network에서는 `linea_estimateGas`를 통해 수수료 제안을 가져와야 합니다. 정확한 수수료 추천이 트랜잭션 전송자의 카르마 보유량에 따라 달라지기 때문입니다: + +- 계정이 **가스리스** 트랜잭션 대상일 수 있습니다 +- 거부 목록에 있는 계정은 **프리미엄 가스비**를 지불해야 할 수 있습니다 + + + + + +```bash +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"linea_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_STATUS_NETWORK_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_STATUS_NETWORK_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await provider.send( + 'linea_estimateGas', + [call], +); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_STATUS_NETWORK_RPC_URL'), +}); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await client.request({ + method: 'linea_estimateGas', + params: [call], +}); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + + +:::tip 툴링 구현 +많은 이더리움 라이브러리가 내부적으로 `eth_estimateGas`를 호출합니다(예: `provider.estimateGas(...)`). Status Network에서는 표준 `eth_` 메서드에 대해 해당 라이브러리 사용을 유지하되, 사용자를 위한 트랜잭션 파라미터를 구성하거나 표시할 때만은 **가스 한도와 수수료 필드를 `linea_estimateGas`를 통해 명시적으로 가져오는 것을 권고합니다.**. +::: + +## UI에서의 수수료 처리 시나리오 + +### 1) 가스리스 + +`baseFeePerGas`와 `priorityFeePerGas`가 모두 0일 때: + +- 명확한 무료 트랜잭션 상태를 표시합니다. +- 불필요한 수수료 경고를 건너뜁니다. + +### 2) 프리미엄 수수료 + +sender가 거부 목록에 있을 때(할당량 초과 또는 RLN 정책): + +- 수수료 금액을 표시하고 할당량 초과 또는 스팸 정책으로 인해 프리미엄 가스가 적용됨을 설명합니다. +- sender가 수수료를 지불하거나 할당량 기간이 갱신될 때까지 기다릴 수 있음을 명확히 합니다. +- 프리미엄 가스를 지불할 의향이 있다면 트랜잭션 전송이 가능하도록 유지합니다. 완전히 차단하지 마세요. + +## 주로 빠지는 함정들 + +| 함정 | 해결법 | +|---|---| +| 수수료 결정에 `eth_` 메서드 사용(`eth_gasPrice`, `eth_maxPriorityFeePerGas`, `eth_feeHistory`) | `linea_estimateGas` 사용 | +| `linea_estimateGas` 호출 시 `from` 생략 | 카르마가 적용된 추정값을 받으려면 항상 sender 주소를 전달 | +| 수수료값을 가정하여 하드코딩 | 반환된 `baseFeePerGas`와 `priorityFeePerGas` 값으로 수수료 UI 구성 | +| 모든 트랜잭션이 가스리스라고 가정 | 가스리스(수수료 0)와 거부 목록(프리미엄 수수료) 각각 처리 | +| 재시도 시 가스비 추정값 캐싱 | 전송 시점 인근에 재추정 필요 — sender의 카르마 상태가 변경될 수 있음 | + +## 다음 단계 + +- [JSON-RPC API](/build-for-karma/rpc/json-rpc) +- [평판 적용하기](/build-for-karma/guides/reputation-integration) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md new file mode 100644 index 0000000..b282b25 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md @@ -0,0 +1,20 @@ +--- +title: 카르마 사용하기 +description: Status Network에서 카르마 기반 가스리스 UX 및 평판 인식 기능을 통합하기 위한 시작점입니다. +keywords: [카르마, gasless, reputation, integration, Status Network] +slug: /build-for-karma/guides +sidebar_position: 3 +--- + +카르마는 Status Network에서 가스리스 트랜잭션 권한과 평판을 제공합니다. +이 섹션은 앱에서 가스리스 동작과 티어 기반 프로덕트 로직을 적용하는 방법을 안내합니다. + +## 시작하기 + +**트랜잭션을 처리하시나요?** + +- [가스리스 적용](/build-for-karma/guides/gasless-integration)를 참고하여 `linea_estimateGas`를 가스리스와 프리미엄 수수료 결과의 단일 진실 공급원으로 사용하세요. + +**평판에 따라 기능을 제한하고 싶나요?** + +- [평판 적용](/build-for-karma/guides/reputation-integration)으로 넘어가 온체인에서 카르마 잔액과 티어를 읽고, 컨트랙트단 제한을 적용하며, 티어 인식 프론트엔드를 설계하는 방법을 알아보세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md new file mode 100644 index 0000000..53afea8 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md @@ -0,0 +1,453 @@ +--- +title: 평판 적용 가이드 +description: Status Network에서 카르마 티어를 읽고, 평판에 따라 기능을 제한하고, 카르마가 적용된 스마트 컨트랙트와 프론트엔드를 구축하는 방법. +keywords: [카르마, 적용, 스마트 컨트랙트, 소울바운드 토큰, 평판, 계층, 가스리스, 스테이터스 네트워크, 개발자 가이드] +slug: /build-for-karma/guides/reputation-integration +sidebar_position: 4 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +카르마는 Status Network의 소울바운드 평판 토큰입니다. 인간과 봇을 포함한 모든 이의 계정은 SNT 스테이킹, 자산 브릿징, 유동성 제공, 앱 사용, 프리미엄 가스비 지불 등 실제 네트워크 참여를 통해 카르마를 획득합니다. 카르마는 구매, 판매 또는 전송할 수 없습니다. + +본 가이드는 카르마 정보를 읽고 사용자의 평판 티어에 따라 다르게 반응하는 앱을 구축하는 방법을 다룹니다. + +## 온체인에서 카르마 읽기 + +카르마 상태는 두 개의 컨트랙트에 분산되어 있습니다: + +- **Karma** — 소울바운드 ERC-20 토큰. `balanceOf`는 해당 계정의 슬래싱량이 제외된 순 잔액을 반환합니다. `transfer`나 `approve` 함수 호출은 모두 거절됩니다. +- **KarmaTiers** — 잔액에 해당하는 티어를 알려줍니다. `getTierIdByKarmaBalance(balance)`를 호출한 후 `getTierById(tierId)`를 호출하여 사용자의 티어와 `txPerEpoch` 할당량을 확인합니다. + + + + + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +/// @notice Minimal interface for the Karma soulbound token. +interface IKarma { + /// @notice Net Karma balance of `account` after slashing. + function balanceOf(address account) external view returns (uint256); + + /// @notice Total amount slashed from `account` across all distributors. + function slashedAmountOf(address account) external view returns (uint256); +} + +/// @notice Minimal interface for the KarmaTiers registry. +interface IKarmaTiers { + struct Tier { + uint256 minKarma; + uint256 maxKarma; + string name; + uint32 txPerEpoch; // gasless transactions allowed per epoch + } + + /// @notice Returns the highest tier ID the given karma balance qualifies for. + function getTierIdByKarmaBalance(uint256 karmaBalance) external view returns (uint8); + + /// @notice Returns the full Tier struct for a given tier ID. + function getTierById(uint8 tierId) external view returns (Tier memory); + + /// @notice Returns the total number of configured tiers. + function getTierCount() external view returns (uint256); +} + +contract KarmaGated { + IKarma public karma; + IKarmaTiers public karmaTiers; + + constructor(address _karmaContract, address _karmaTiersContract) { + karma = IKarma(_karmaContract); + karmaTiers = IKarmaTiers(_karmaTiersContract); + } + + /// @notice Resolves the tier ID for `user` from their current Karma balance. + function tierIdOf(address user) public view returns (uint8) { + return karmaTiers.getTierIdByKarmaBalance(karma.balanceOf(user)); + } + + modifier onlyTier(uint8 minTier) { + require(tierIdOf(msg.sender) >= minTier, "Karma tier too low"); + _; + } + + function premiumAction() external onlyTier(3) { + // Only users at tier 3 or above can call this + } + + function getDiscount(address user) external view returns (uint256) { + uint8 tierId = tierIdOf(user); + // Higher tiers get bigger discounts + return uint256(tierId) * 5; // 0%, 5%, 10%, ... + } +} +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider( + 'https://public.sepolia.rpc.status.network' +); + +const KARMA_ABI = [ + 'function balanceOf(address account) view returns (uint256)', + 'function slashedAmountOf(address account) view returns (uint256)', +]; + +const KARMA_TIERS_ABI = [ + 'function getTierIdByKarmaBalance(uint256 karmaBalance) view returns (uint8)', + 'function getTierById(uint8 tierId) view returns (tuple(uint256 minKarma, uint256 maxKarma, string name, uint32 txPerEpoch))', + 'function getTierCount() view returns (uint256)', +]; + +const karma = new ethers.Contract(KARMA_ADDRESS, KARMA_ABI, provider); +const karmaTiers = new ethers.Contract(KARMA_TIERS_ADDRESS, KARMA_TIERS_ABI, provider); + +// 사용자의 Karma 잔액을 읽고 티어를 확인 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); +const tier = await karmaTiers.getTierById(tierId); + +console.log(`Karma 잔액: ${ethers.formatEther(balance)} KARMA`); +console.log(`티어: ${tier.name} (ID ${tierId})`); +console.log(`에폭당 Tx 할당량: ${tier.txPerEpoch}`); +``` + + + + +```ts +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://public.sepolia.rpc.status.network'), +}); + +const karmaAbi = [ + { + name: 'balanceOf', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'account', type: 'address' }], + outputs: [{ name: '', type: 'uint256' }], + }, + { + name: 'slashedAmountOf', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'account', type: 'address' }], + outputs: [{ name: '', type: 'uint256' }], + }, +] as const; + +const karmaTiersAbi = [ + { + name: 'getTierIdByKarmaBalance', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'karmaBalance', type: 'uint256' }], + outputs: [{ name: '', type: 'uint8' }], + }, + { + name: 'getTierById', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'tierId', type: 'uint8' }], + outputs: [{ + name: 'tier', + type: 'tuple', + components: [ + { name: 'minKarma', type: 'uint256' }, + { name: 'maxKarma', type: 'uint256' }, + { name: 'name', type: 'string' }, + { name: 'txPerEpoch', type: 'uint32' }, + ], + }], + }, +] as const; + +// 두 번의 순차 읽기: 잔액 → 티어 ID → 티어 상세 +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const tier = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierById', + args: [tierId], +}); + +console.log(`티어: ${tier.name} (ID ${tierId})`); +console.log(`에폭당 Tx 할당량: ${tier.txPerEpoch}`); +``` + + + + + +:::note 컨트랙트 주소 +Karma와 KarmaTiers의 테스트넷 컨트랙트 주소는 [컨트랙트 주소](/overview/general-info/contract-addresses/testnet-contracts) 페이지에 게시되어 있습니다. +::: + +## 가능한 적용 패턴 + +### 기능 제한 + +앱 내 기능을 카르마 티어에 따라 잠금 해제합니다. +[온체인에서 카르마 읽기](#온체인에서-카르마-읽기) 섹션에서 확인할 수 있는 `onlyTier` modifier가 컨트랙트 레벨에서 접근을 제어합니다. +혹은 코드 내에서 `tierId`흫 활용하여 제어할 수도 있습니다: + + + + + +```solidity +function accessPremiumContent() external onlyTier(3) { + // Only users at tier 3 or above can call this +} +``` + + + + +```js +// Karma 잔액에서 티어를 확인한 후 UI 기능을 제한한다 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); + +if (tierId >= 3) { + showPremiumFeatures(); +} else { + showUpgradePrompt(tierId); +} +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +if (tierId >= 3) { + showPremiumFeatures(); +} else { + showUpgradePrompt(tierId); +} +``` + + + + + +### 동적 가격 책정 + +높은 카르마 사용자에게 할인 요금을 제공합니다: + + + + + +```solidity +function calculateFee(address user, uint256 baseAmount) public view returns (uint256) { + uint8 tierId = karmaTiers.getTierIdByKarmaBalance(karma.balanceOf(user)); + // Each tier gives 5% discount + uint256 discount = uint256(tierId) * 5; + return baseAmount * (100 - discount) / 100; +} +``` + + + + +```js +// 사용자의 현재 티어를 기반으로 할인율 계산 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); + +const discount = BigInt(tierId) * 5n; // 티어당 5% 할인 +const fee = baseAmount * (100n - discount) / 100n; + +console.log(`티어 ${tierId}: ${discount}% 할인 → 수수료 = ${fee}`); +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const discount = BigInt(tierId) * 5n; // 티어당 5% 할인 +const fee = baseAmount * (100n - discount) / 100n; + +console.log(`티어 ${tierId}: ${discount}% 할인 → 수수료 = ${fee}`); +``` + + + + + +### 평판 표기 + +`KarmaTiers` 컨트랙트에서 직접 티어 이름을 읽어 UI에 카르마 티어를 표시, 신뢰 지표로 활용합니다: + + + + + +```js +// 온체인에서 티어 이름을 가져옴 — 하드코딩된 배열 불필요 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); +const tier = await karmaTiers.getTierById(tierId); + +function KarmaBadge({ tierName }) { + return {tierName}; +} + +// 사용 + +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const tier = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierById', + args: [tierId], +}); + +function KarmaBadge({ tierName }: { tierName: string }) { + return {tierName}; +} + +// 사용 + +``` + + + + + +### 가중 거버넌스 + +앱의 거버넌스에서 카르마를 투표 가중치로 사용합니다: + + + + + +```solidity +function vote(uint256 proposalId, bool support) external { + uint256 weight = karma.balanceOf(msg.sender); + proposals[proposalId].votes += support ? int256(weight) : -int256(weight); +} +``` + + + + +```js +// 사용자의 Karma 잔액을 투표 가중치로 읽은 후 제출 +const weight = await karma.balanceOf(userAddress); +console.log(`투표 가중치: ${ethers.formatEther(weight)} KARMA`); + +// 거버넌스 컨트랙트 호출 +const tx = await governanceContract.vote(proposalId, support); +await tx.wait(); +``` + + + + +```ts +import { formatEther, parseAbi } from 'viem'; + +// Karma 잔액에서 투표 가중치 읽기 +const weight = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); +console.log(`투표 가중치: ${formatEther(weight)} KARMA`); + +// 거버넌스 컨트랙트를 통해 투표 제출 +const { request } = await client.simulateContract({ + address: GOVERNANCE_ADDRESS, + abi: parseAbi(['function vote(uint256 proposalId, bool support) external']), + functionName: 'vote', + args: [proposalId, support], + account: userAddress, +}); +await walletClient.writeContract(request); +``` + + + + + +## 다음 단계 + +- [가스리스 적용하기](/build-for-karma/guides/gasless-integration)을 참조하여 가스리스 트랜잭션에 카르마 적용하기 +- [카르마 토크노믹스](/overview/tokenomics/karmic-tokenomics)에서 카르마가 어떻게 획득되고 사용되는지 확인하기 +- [가스리스 트랜잭션](/overview/general-info/gasless-transactions)에서 RLN 기반 가스리스 시스템의 기술적 세부사항 알아보기 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/index.md new file mode 100644 index 0000000..e69de29 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md new file mode 100644 index 0000000..c5ab134 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md @@ -0,0 +1,57 @@ +--- +title: JSON-RPC API +description: 빌더를 위한 Status Network JSON-RPC API 레퍼런스. +keywords: + [ + Status Network, + JSON-RPC, + Linea, + EIP-1559, + eth_estimateGas, + linea_estimateGas, + Karma, + gasless, + ] +--- + +Status Network는 Linea zkEVM을 기반으로 하므로, **대부분의 JSON-RPC 메서드는 표준 EVM 노드와 동일하게 동작합니다**. + +지원되는 표준 메서드와 전체 목록은 다음의 공식 문서를 참조하세요: + +- **[이더리움 JSON-RPC API](https://ethereum.github.io/execution-apis/api-documented/)** — 표준 이더리움 RPC 메서드 +- **[Linea JSON-RPC API 레퍼런스](https://docs.linea.build/api/reference)** — `linea_estimateGas`를 포함한 Linea 전용 메서드 + +## Status Network 확장 + +Status Network는 Linea의 표준 JSON-RPC에 카르마가 적용된 수수료 추정을 추가합니다: + +### `linea_estimateGas` + +Linea에서는 가스 추정을 위해 [`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas)를 사용하길 권장하고 있으며, 해당 단일 호출은 `gasLimit`, `baseFeePerGas`, `priorityFeePerGas`를 반환합니다. + +Status Network는 `linea_estimateGas`에 카르마를 적용한 동작을 추가합니다: + +- **가스리스 사용자**: 사용 가능한 Karma 할당량이 남아있는 사용자에 한해 `baseFeePerGas`와 `priorityFeePerGas`를 0으로 반환합니다 +- **거부 목록 사용자**: 거부 목록에 있는 사용자의 경우 수수료 필드에 프리미엄 배수를 적용합니다 + +### Status Network RPC 차이점 + +Linea에서 `linea_estimateGas`는 이미 권장 메서드입니다. L1 검증 비용과 데이터 압축이 반영된 수수료 값을 반환하기 때문인데, 이는 `eth_estimateGas` 및 다른 `eth_` 네임스페이스 호출에서는 적용되지 않는 정보입니다. +Status Network의 포크는 `linea_estimateGas`를 더욱 확장하여 카르마를 적용하며, 다른 모든 JSON-RPC 메서드는 호환성을 위해 표준의 구현을 유지합니다. + +이는 `eth_` 메서드를 사용하는 기존의 수수료 플로우(예: `eth_gasPrice`, `eth_maxPriorityFeePerGas`, `eth_feeHistory`)가 **부정확한 수수료** 제안으로 이어질 수 있음을 의미합니다. Linea의 L2 전용 가격 책정과 Status Network의 카르마 조정이 모두 누락되기 때문입니다. + +Status Network에서는 `linea_estimateGas`를 `gasLimit`, `baseFeePerGas`, `priorityFeePerGas`의 단일 진실 공급원으로 사용하세요. + +기존 Linea 동작은 [Linea의 가스비 가이드](https://docs.linea.build/network/how-to/gas-fees)와 [Linea의 `linea_estimateGas` 레퍼런스](https://docs.linea.build/api/reference/linea-estimategas)를 참조하세요. + +:::info +코드 예제, 마이그레이션 단계, 자주 빠지는 함정을 포함한 상세한 구현 가이드는 [카르마 사용](/build-for-karma/guides) 가이드를 참조하세요. +::: + +### 추가 리소스 + +- [Linea의 가스비 가이드](https://docs.linea.build/network/how-to/gas-fees) +- [Linea의 `linea_estimateGas` 레퍼런스](https://docs.linea.build/api/reference/linea-estimategas) +- [카르마 토크노믹스](/overview/tokenomics/karmic-tokenomics) — Karma가 가스비에 미치는 영향 +- [가스리스 트랜잭션](/overview/general-info/gasless-transactions) — RLN 기반 가스리스 시스템의 기술적 세부사항 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current.json b/i18n/zh/docusaurus-plugin-content-docs/current.json index dc0845c..00dde5f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current.json +++ b/i18n/zh/docusaurus-plugin-content-docs/current.json @@ -31,13 +31,25 @@ "message": "合作伙伴", "description": "The label for category PARTNERS in sidebar toolsSidebar" }, + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "Karma 开发", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { + "message": "🛠 Karma 开发指南", + "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.category.USING KARMA": { "message": "使用 Karma", "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" }, - "sidebar.buildForKarmaSidebar.category.🚀 Deploying a Smart Contract": { - "message": "🚀 部署智能合约", - "description": "The label for category 🚀 Deploying a Smart Contract in sidebar buildForKarmaSidebar" + "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { + "message": "部署合约", + "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.RPC": { + "message": "RPC", + "description": "The label for category RPC in sidebar buildForKarmaSidebar" }, "sidebar.homeSidebar.category.OTHER DOCS": { "message": "其他文档", @@ -155,6 +167,10 @@ "message": "💰 预存金库合同", "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, + "sidebar.buildForKarmaSidebar.doc.🔌 JSON-RPC API": { + "message": "🔌 JSON-RPC API", + "description": "The label for the doc item 🔌 JSON-RPC API in sidebar buildForKarmaSidebar" + }, "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { "message": "🌐 运行RPC节点", "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md new file mode 100644 index 0000000..31550f0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md @@ -0,0 +1,365 @@ +--- +title: 无 Gas 集成指南 +description: 在 Status Network 上构建无 Gas 用户体验的实用集成指南。 +keywords: [gasless, linea_estimateGas, Status Network, deny list, builder, zero gas, UX] +slug: /build-for-karma/guides/gasless-integration +sidebar_position: 5 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Status Network 在协议层面提供无 Gas 交易。你不需要 paymasters 或中继器。作为开发者,核心任务是根据发送方状态正确地估算和展示费用。 + +:::important 核心规则 +使用 `linea_estimateGas` RPC 方法作为准备交易 UX 时 Gas 费用的唯一数据来源。 +::: + +其他 JSON-RPC 方法参考,请参阅 [JSON-RPC API](/build-for-karma/rpc/json-rpc)。 + +## 具有 Karma 感知能力的费用估算 + +在 Linea 上,[`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas) 已经是估算 Gas 的推荐方式。 +它在**单次调用**中返回 `gasLimit`、`baseFeePerGas` 和 `priorityFeePerGas`,其中费用字段已考虑了压缩交易大小、L1 验证成本以及 L1/L2 Gas 价格比率——这些是 `eth_` 命名空间方法无法捕获的因素。 + +Status Network 进一步扩展了 `linea_estimateGas`,使其费用字段同时纳入我们的 **Karma** 系统;符合条件的用户费用可能降为零,而被列入拒绝名单的用户费用则可能增加。 + +```mermaid +flowchart TD + A[用户发起交易] --> B["使用 from 参数调用 linea_estimateGas"] + B --> C{费用结果} + C -->|base+priority = 0| D[显示无 Gas UX] + C -->|溢价费用| F[显示溢价费用 UX] + D --> G[发送交易] + F --> G +``` + +*图示:使用 `linea_estimateGas` 的 Gas 估算流程* + +这就是为什么开发者在 Status Network 上估算交易成本或为用户预填 EIP-1559 费用字段时,应该使用 `linea_estimateGas`。 + +:::info 更多信息 +关于 Karma 及其对 Gas 费用和交易特权影响的详细说明,请参阅 [Karmic 代币经济学](../../overview/tokenomics/karmic-tokenomics) 页面。 + +关于我们无 Gas 系统如何实现和执行的技术细节,请参阅[无 Gas 交易](../../overview/general-info/gasless-transactions)文档。 +::: + +## `linea_estimateGas` 请求/响应结构 + +### 请求 + +`linea_estimateGas` 接受与 `eth_estimateGas` 相同的**交易调用对象**。 +它使用与 `eth_estimateGas` 相同的 EVM 执行逻辑返回 `gasLimit`,同时返回反映 Linea L2 专属定价和 Status Network Karma 规则的费用字段——全部在单次响应中完成。 + +:::important +**始终包含 `from`。** 没有它,节点无法应用 Karma/配额/拒绝名单逻辑。 +::: + +### 响应 + +`linea_estimateGas` 返回的对象包含: + +- `gasLimit`:十六进制数量——EVM 执行的估算 Gas 单位(与 `eth_estimateGas` 计算方式相同) +- `baseFeePerGas`:十六进制数量——下一个区块的基础费用,已考虑 Status Network 上的 Karma 规则 +- `priorityFeePerGas`:十六进制数量——建议的优先费用,已考虑 Status Network 上的 Karma 规则 + +这些费用字段可能与 `eth_` 命名空间调用(如 `eth_gasPrice`、`eth_maxPriorityFeePerGas` 或 `eth_feeHistory`)返回的值有显著差异——后者不了解 Linea 的 L2 专属定价或 Status Network 的 Karma 调整。 + + + + + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "gasLimit": "0x5208", + "baseFeePerGas": "0x0", + "priorityFeePerGas": "0x0" + } +} +``` + + + + +标准 EVM 流程需要多次独立的 `eth_` 调用来获取 Gas 限制和费用数据: + +**eth_estimateGas** + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": "0x5208" +} +``` + +**eth_maxPriorityFeePerGas** + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": "0x59682f00" +} +``` + +**eth_getBlockByNumber** + +```json +{ + "jsonrpc": "2.0", + "id": 3, + "result": { + "number": ..., + "baseFeePerGas": "0x3b9aca00", + ... + } +} +``` + + + + + +## 迁移指南:从多次 `eth_` 调用迁移到 `linea_estimateGas` + +本节介绍如何从常见的"通过多次 `eth_` 调用实现 EIP-1559"流程迁移到单次 `linea_estimateGas` 调用,后者能在 Status Network 上提供更准确的 L2 专属费用数据和 Karma 感知定价。 + +### 迁移前:使用 `eth_` 命名空间的常见 EIP-1559 估算流程 + +在许多 EVM 链上,典型的 EIP-1559 估算流程如下: + +1. 通过 `eth_estimateGas` **估算 Gas 限制** +2. 通过 `eth_maxPriorityFeePerGas` 和/或 `eth_feeHistory` **获取 `maxPriorityFeePerGas`** +3. 通过 `eth_getBlockByNumber` **获取 `baseFeePerGas`** +4. 构建 EIP-1559 交易,使用: + - `gas` + - `maxPriorityFeePerGas` + - `maxFeePerGas`,通常为 $2 \cdot \mathrm{baseFeePerGas} + \mathrm{maxPriorityFeePerGas}$ + + + + + +```bash +# 1) Gas 限制(EVM 执行) +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"eth_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_RPC_URL + +# 2) 获取建议小费金额 +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":2,"method":"eth_maxPriorityFeePerGas","params":[]}' \ + https://YOUR_RPC_URL + +# 3) 获取基础费用 +curl -X POST -H "Content-Type: application/json" \ + --data '{"jsonrpc":"2.0","id":3,"method":"eth_getBlockByNumber","params":["pending",false]}' \ + https://YOUR_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const gas = await provider.estimateGas(call); +const maxPriorityFeePerGas = await provider.send('eth_maxPriorityFeePerGas', []); +const pendingBlock = await provider.getBlock('pending'); + +const baseFeePerGas = pendingBlock?.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + BigInt(maxPriorityFeePerGas); + +console.log({ + gas: `0x${gas.toString(16)}`, + maxPriorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_RPC_URL'), +}); + +const call = { + account: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const gas = await client.estimateGas(call); +const maxPriorityFeePerGas = await client.getMaxPriorityFeePerGas(); +const pendingBlock = await client.getBlock({ blockTag: 'pending' }); + +const baseFeePerGas = pendingBlock.baseFeePerGas ?? 0n; +const maxFeePerGas = 2n * baseFeePerGas + maxPriorityFeePerGas; + +console.log({ + gas, + maxPriorityFeePerGas, + maxFeePerGas, +}); +``` + + + + + +### 迁移后:使用 `linea_estimateGas` 的 Status Network Gas 估算流程 + +在 Status Network 上,你应该从 `linea_estimateGas` 获取费用建议,因为正确的费用推荐取决于 Karma: + +- 账户可能有资格获得**无 Gas** 交易 +- 被列入拒绝名单的账户可能需要支付**溢价 Gas 费用** + + + + + +```bash +curl -X POST -H "Content-Type: application/json" \ + --data '{ + "jsonrpc":"2.0", + "id":1, + "method":"linea_estimateGas", + "params":[{ + "from":"0xYOUR_SENDER", + "to":"0xCONTRACT_OR_RECIPIENT", + "data":"0xYOUR_CALLDATA", + "value":"0x0" + }] + }' \ + https://YOUR_STATUS_NETWORK_RPC_URL +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider('https://YOUR_STATUS_NETWORK_RPC_URL'); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: '0x0', +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await provider.send( + 'linea_estimateGas', + [call], +); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + +```js +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://YOUR_STATUS_NETWORK_RPC_URL'), +}); + +const call = { + from: '0xYOUR_SENDER', + to: '0xCONTRACT_OR_RECIPIENT', + data: '0xYOUR_CALLDATA', + value: 0n, +}; + +const { gasLimit, baseFeePerGas, priorityFeePerGas } = await client.request({ + method: 'linea_estimateGas', + params: [call], +}); + +const maxFeePerGas = + BigInt(baseFeePerGas) + BigInt(priorityFeePerGas); + +console.log({ + gas: gasLimit, + maxPriorityFeePerGas: priorityFeePerGas, + maxFeePerGas: `0x${maxFeePerGas.toString(16)}`, +}); +``` + + + + + +:::tip 工具集成 +许多以太坊库在内部调用 `eth_estimateGas`(例如 `provider.estimateGas(...)`)。在 Status Network 上,继续使用这些库进行标准 `eth_` 方法调用,但**在构建或向用户展示交易参数时,显式通过 `linea_estimateGas` 获取 Gas 限制和费用字段**。 +::: + +## 在 UI 中处理费用场景 + +### 1) 无 Gas + +当 `baseFeePerGas` 和 `priorityFeePerGas` 均为零时: + +- 显示清晰的免费交易状态。 +- 跳过不必要的费用警告。 + +### 2) 溢价费用 + +当发送方被列入拒绝名单(超出配额或 RLN 策略)时: + +- 显示费用金额,并说明由于配额或垃圾邮件策略,将收取溢价 Gas 费用。 +- 明确告知发送方可以支付费用,或等待配额窗口刷新。 +- 保持交易可执行;不要强制阻止。 + +## 常见陷阱 + +| 陷阱 | 解决方案 | +|---|---| +| 使用 `eth_` 方法进行费用决策(`eth_gasPrice`、`eth_maxPriorityFeePerGas`、`eth_feeHistory`) | 使用 `linea_estimateGas` | +| 调用 `linea_estimateGas` 时省略 `from` | 始终传入发送方地址以获得 Karma 感知的估算 | +| 硬编码费用假设 | 根据返回的 `baseFeePerGas` 和 `priorityFeePerGas` 值构建费用 UI | +| 假设所有用户都是无 Gas 的 | 处理两种状态:无 Gas(零费用)和被拒绝名单(溢价费用) | +| 在重试之间缓存估算值 | 在发送前重新估算——发送方的 Karma 状态可能已发生变化 | + +## 下一步 + +- [JSON-RPC API](/build-for-karma/rpc/json-rpc) +- [声誉集成](/build-for-karma/guides/reputation-integration) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md new file mode 100644 index 0000000..65ec1b0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/index.md @@ -0,0 +1,20 @@ +--- +title: 使用 Karma +description: 在 Status Network 上集成基于 Karma 的无 Gas 用户体验和声誉感知功能的入口。 +keywords: [Karma, gasless, reputation, integration, Status Network] +slug: /build-for-karma/guides +sidebar_position: 3 +--- + +Karma 在 Status Network 上提供无 Gas 交易特权和声誉系统。 +本章节帮助您在应用中集成无 Gas 行为和基于层级的产品逻辑。 + +## 从这里开始 + +**处理交易?** + +- 从 [无 Gas 交易集成](/build-for-karma/guides/gasless-integration) 开始,使用 `linea_estimateGas` 作为无 Gas 与付费 Gas 结果的唯一数据来源。 + +**按声誉等级控制功能?** + +- 继续阅读 [声誉集成](/build-for-karma/guides/reputation-integration),了解如何在链上读取 Karma 余额和层级、进行合约门控,以及设计层级感知的前端。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md new file mode 100644 index 0000000..6424503 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/reputation-integration.md @@ -0,0 +1,451 @@ +--- +title: 声誉集成指南 +description: 如何在 Status Network 上读取 Karma 层级、按声誉门控功能、以及构建 Karma 感知的智能合约和前端。 +keywords: [Karma, integration, smart contract, soulbound token, reputation, tiers, gasless, Status Network, developer guide] +slug: /build-for-karma/guides/reputation-integration +sidebar_position: 4 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Karma 是 Status Network 的灵魂绑定声誉代币。每个地址通过真实的网络参与来赚取 Karma,例如质押 SNT、桥接资产、提供流动性、使用应用或支付高级 Gas 费用。Karma 不能被购买、出售或转让。 + +本指南介绍如何读取 Karma 数据以及构建响应用户声誉层级的应用。 + +## 链上读取 Karma + +Karma 状态分布在两个合约中: + +- **Karma** — 灵魂绑定 ERC-20 代币。`balanceOf` 返回扣除任何削减后的净余额。转账和授权始终会回退。 +- **KarmaTiers** — 将余额映射到层级。调用 `getTierIdByKarmaBalance(balance)` 然后 `getTierById(tierId)` 来解析用户的层级及其 `txPerEpoch` 配额。 + + + + + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +/// @notice Minimal interface for the Karma soulbound token. +interface IKarma { + /// @notice Net Karma balance of `account` after slashing. + function balanceOf(address account) external view returns (uint256); + + /// @notice Total amount slashed from `account` across all distributors. + function slashedAmountOf(address account) external view returns (uint256); +} + +/// @notice Minimal interface for the KarmaTiers registry. +interface IKarmaTiers { + struct Tier { + uint256 minKarma; + uint256 maxKarma; + string name; + uint32 txPerEpoch; // gasless transactions allowed per epoch + } + + /// @notice Returns the highest tier ID the given karma balance qualifies for. + function getTierIdByKarmaBalance(uint256 karmaBalance) external view returns (uint8); + + /// @notice Returns the full Tier struct for a given tier ID. + function getTierById(uint8 tierId) external view returns (Tier memory); + + /// @notice Returns the total number of configured tiers. + function getTierCount() external view returns (uint256); +} + +contract KarmaGated { + IKarma public karma; + IKarmaTiers public karmaTiers; + + constructor(address _karmaContract, address _karmaTiersContract) { + karma = IKarma(_karmaContract); + karmaTiers = IKarmaTiers(_karmaTiersContract); + } + + /// @notice Resolves the tier ID for `user` from their current Karma balance. + function tierIdOf(address user) public view returns (uint8) { + return karmaTiers.getTierIdByKarmaBalance(karma.balanceOf(user)); + } + + modifier onlyTier(uint8 minTier) { + require(tierIdOf(msg.sender) >= minTier, "Karma tier too low"); + _; + } + + function premiumAction() external onlyTier(3) { + // Only users at tier 3 or above can call this + } + + function getDiscount(address user) external view returns (uint256) { + uint8 tierId = tierIdOf(user); + // Higher tiers get bigger discounts + return uint256(tierId) * 5; // 0%, 5%, 10%, ... + } +} +``` + + + + +```js +import { ethers } from 'ethers'; + +const provider = new ethers.JsonRpcProvider( + 'https://public.sepolia.rpc.status.network' +); + +const KARMA_ABI = [ + 'function balanceOf(address account) view returns (uint256)', + 'function slashedAmountOf(address account) view returns (uint256)', +]; + +const KARMA_TIERS_ABI = [ + 'function getTierIdByKarmaBalance(uint256 karmaBalance) view returns (uint8)', + 'function getTierById(uint8 tierId) view returns (tuple(uint256 minKarma, uint256 maxKarma, string name, uint32 txPerEpoch))', + 'function getTierCount() view returns (uint256)', +]; + +const karma = new ethers.Contract(KARMA_ADDRESS, KARMA_ABI, provider); +const karmaTiers = new ethers.Contract(KARMA_TIERS_ADDRESS, KARMA_TIERS_ABI, provider); + +// 读取用户的 Karma 余额并解析其层级 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); +const tier = await karmaTiers.getTierById(tierId); + +console.log(`Karma 余额: ${ethers.formatEther(balance)} KARMA`); +console.log(`层级: ${tier.name} (ID ${tierId})`); +console.log(`每周期交易配额: ${tier.txPerEpoch}`); +``` + + + + +```ts +import { createPublicClient, http } from 'viem'; + +const client = createPublicClient({ + transport: http('https://public.sepolia.rpc.status.network'), +}); + +const karmaAbi = [ + { + name: 'balanceOf', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'account', type: 'address' }], + outputs: [{ name: '', type: 'uint256' }], + }, + { + name: 'slashedAmountOf', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'account', type: 'address' }], + outputs: [{ name: '', type: 'uint256' }], + }, +] as const; + +const karmaTiersAbi = [ + { + name: 'getTierIdByKarmaBalance', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'karmaBalance', type: 'uint256' }], + outputs: [{ name: '', type: 'uint8' }], + }, + { + name: 'getTierById', + type: 'function', + stateMutability: 'view', + inputs: [{ name: 'tierId', type: 'uint8' }], + outputs: [{ + name: 'tier', + type: 'tuple', + components: [ + { name: 'minKarma', type: 'uint256' }, + { name: 'maxKarma', type: 'uint256' }, + { name: 'name', type: 'string' }, + { name: 'txPerEpoch', type: 'uint32' }, + ], + }], + }, +] as const; + +// 两次顺序读取: 余额 → 层级 ID → 层级详情 +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const tier = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierById', + args: [tierId], +}); + +console.log(`层级: ${tier.name} (ID ${tierId})`); +console.log(`每周期交易配额: ${tier.txPerEpoch}`); +``` + + + + + +:::note 合约地址 +Karma 和 KarmaTiers 的测试网合约地址发布在[合约地址](/overview/general-info/contract-addresses/testnet-contracts)页面。 +::: + +## 可能的集成模式 + +### 功能门控 + +基于 Karma 层级解锁功能。[链上读取 Karma](#链上读取-karma) 部分中的 `onlyTier` 修饰器在合约层面强制执行访问控制: + + + + + +```solidity +function accessPremiumContent() external onlyTier(3) { + // Only users at tier 3 or above can call this +} +``` + + + + +```js +// 从 Karma 余额解析层级,然后门控 UI 功能 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); + +if (tierId >= 3) { + showPremiumFeatures(); +} else { + showUpgradePrompt(tierId); +} +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +if (tierId >= 3) { + showPremiumFeatures(); +} else { + showUpgradePrompt(tierId); +} +``` + + + + + +### 动态定价 + +为高 Karma 用户提供折扣或更优惠的费率: + + + + + +```solidity +function calculateFee(address user, uint256 baseAmount) public view returns (uint256) { + uint8 tierId = karmaTiers.getTierIdByKarmaBalance(karma.balanceOf(user)); + // Each tier gives 5% discount + uint256 discount = uint256(tierId) * 5; + return baseAmount * (100 - discount) / 100; +} +``` + + + + +```js +// 从用户当前层级在客户端计算折扣费用 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); + +const discount = BigInt(tierId) * 5n; // 每层 5% 折扣 +const fee = baseAmount * (100n - discount) / 100n; + +console.log(`层级 ${tierId}: ${discount}% 折扣 → 费用 = ${fee}`); +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const discount = BigInt(tierId) * 5n; // 每层 5% 折扣 +const fee = baseAmount * (100n - discount) / 100n; + +console.log(`层级 ${tierId}: ${discount}% 折扣 → 费用 = ${fee}`); +``` + + + + + +### 声誉展示 + +通过直接从 `KarmaTiers` 合约读取名称,在 UI 中将 Karma 层级显示为信任信号: + + + + + +```js +// 从链上获取层级名称 — 无需硬编码数组 +const balance = await karma.balanceOf(userAddress); +const tierId = await karmaTiers.getTierIdByKarmaBalance(balance); +const tier = await karmaTiers.getTierById(tierId); + +function KarmaBadge({ tierName }) { + return {tierName}; +} + +// 使用 + +``` + + + + +```ts +const balance = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); + +const tierId = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierIdByKarmaBalance', + args: [balance], +}); + +const tier = await client.readContract({ + address: KARMA_TIERS_ADDRESS, + abi: karmaTiersAbi, + functionName: 'getTierById', + args: [tierId], +}); + +function KarmaBadge({ tierName }: { tierName: string }) { + return {tierName}; +} + +// 使用 + +``` + + + + + +### 加权治理 + +在应用的治理中使用 Karma 进行投票加权: + + + + + +```solidity +function vote(uint256 proposalId, bool support) external { + uint256 weight = karma.balanceOf(msg.sender); + proposals[proposalId].votes += support ? int256(weight) : -int256(weight); +} +``` + + + + +```js +// 读取用户的 Karma 余额作为投票权重,然后提交 +const weight = await karma.balanceOf(userAddress); +console.log(`投票权重: ${ethers.formatEther(weight)} KARMA`); + +// 调用您的治理合约 +const tx = await governanceContract.vote(proposalId, support); +await tx.wait(); +``` + + + + +```ts +import { formatEther, parseAbi } from 'viem'; + +// 从 Karma 余额读取投票权重 +const weight = await client.readContract({ + address: KARMA_ADDRESS, + abi: karmaAbi, + functionName: 'balanceOf', + args: [userAddress], +}); +console.log(`投票权重: ${formatEther(weight)} KARMA`); + +// 通过治理合约提交投票 +const { request } = await client.simulateContract({ + address: GOVERNANCE_ADDRESS, + abi: parseAbi(['function vote(uint256 proposalId, bool support) external']), + functionName: 'vote', + args: [proposalId, support], + account: userAddress, +}); +await walletClient.writeContract(request); +``` + + + + + +## 下一步 + +- 参阅[无 Gas 集成](/build-for-karma/guides/gasless-integration)了解如何在无 Gas 交易中集成 Karma +- 查看[因果代币经济学](/overview/tokenomics/karmic-tokenomics)了解 Karma 的获取和使用机制 +- 前往[无 Gas 交易](/overview/general-info/gasless-transactions)了解基于 RLN 的无 Gas 系统的技术细节 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/index.md new file mode 100644 index 0000000..e69de29 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md new file mode 100644 index 0000000..134ecd4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md @@ -0,0 +1,57 @@ +--- +title: JSON-RPC API +description: 面向开发者的 Status Network JSON-RPC API 参考。 +keywords: + [ + Status Network, + JSON-RPC, + Linea, + EIP-1559, + eth_estimateGas, + linea_estimateGas, + Karma, + gasless, + ] +--- + +Status Network 基于 Linea zkEVM,这意味着**大多数 JSON-RPC 方法的行为与标准 EVM 节点完全一致**。 + +关于已支持方法及其标准语义的权威列表,请参阅以下官方文档: + +- **[以太坊 JSON-RPC API](https://ethereum.github.io/execution-apis/api-documented/)** — 标准以太坊 RPC 方法 +- **[Linea JSON-RPC API 参考](https://docs.linea.build/api/reference)** — Linea 专属方法,包括 `linea_estimateGas` + +## Status Network 扩展 + +Status Network 在标准 Linea JSON-RPC 基础上扩展了具有 Karma 感知能力的费用估算: + +### `linea_estimateGas` + +在 Linea 上,[`linea_estimateGas`](https://docs.linea.build/api/reference/linea-estimategas) 是估算 Gas 的推荐方式,在单次调用中返回 `gasLimit`、`baseFeePerGas` 和 `priorityFeePerGas`。 + +Status Network 为 `linea_estimateGas` 增加了 Karma 感知行为: + +- **无 Gas 用户**:对具有可用 Karma 配额的符合条件用户,返回零 `baseFeePerGas` 和 `priorityFeePerGas` +- **被拒绝名单用户**:对拒绝名单中的用户,在费用字段上应用溢价乘数 + +### Status Network RPC 差异 + +在基础 Linea 上,`linea_estimateGas` 已经是推荐方法,因为它返回的费用字段考虑了 L1 验证成本和数据压缩——这是 `eth_estimateGas` 和其他 `eth_` 命名空间调用所不具备的。 +Status Network 的分叉进一步将 `linea_estimateGas` 扩展为具有 Karma 感知能力;所有其他 JSON-RPC 方法保留其标准语义。 + +这意味着使用传统的 `eth_` 方法费用流程(例如 `eth_gasPrice`、`eth_maxPriorityFeePerGas` 或 `eth_feeHistory`)可能导致**不准确**的费用建议:它们同时缺少 Linea 的 L2 专属定价和 Status Network 的 Karma 调整。 + +在 Status Network 上,使用 `linea_estimateGas` 作为 `gasLimit`、`baseFeePerGas` 和 `priorityFeePerGas` 的唯一数据来源。 + +基础 Linea 行为请参阅 [Linea 的 Gas 费用指南](https://docs.linea.build/network/how-to/gas-fees) 和 [Linea 的 `linea_estimateGas` 参考](https://docs.linea.build/api/reference/linea-estimategas)。 + +:::info +包含代码示例、迁移步骤和常见陷阱的详细集成指南,请参阅[为 Karma 构建](/build-for-karma/guides)指南。 +::: + +### 附加资源 + +- [Linea 的 Gas 费用指南](https://docs.linea.build/network/how-to/gas-fees) +- [Linea 的 `linea_estimateGas` 参考](https://docs.linea.build/api/reference/linea-estimategas) +- [Karmic 代币经济学](/overview/tokenomics/karmic-tokenomics) — Karma 如何影响 Gas 费用 +- [无 Gas 交易](/overview/general-info/gasless-transactions) — 基于 RLN 的无 Gas 系统的技术细节 From 3e86080b17fa1bee9e830a8bd7acce6b6ede2118 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Tue, 17 Feb 2026 22:14:41 +0100 Subject: [PATCH 27/36] Add "Why Build on Status Network" page to Build for Karma New page explaining the case for building on Status Network with a side-by-side comparison grid, detailed sections on gasless transactions, Karma reputation, sustainable funding, EVM equivalence, and privacy. Includes supporting CSS for comparison cards and purple accent styling. Co-authored-by: Cursor --- docs/build-for-karma/why-status-network.md | 138 +++++++++++++++++ .../general-info/gasless-transactions.md | 40 +++-- docs/overview/general-info/privacy.md | 1 + sidebars.ts | 5 + src/css/custom.css | 145 +++++++++++++++++- 5 files changed, 308 insertions(+), 21 deletions(-) create mode 100644 docs/build-for-karma/why-status-network.md create mode 100644 docs/overview/general-info/privacy.md diff --git a/docs/build-for-karma/why-status-network.md b/docs/build-for-karma/why-status-network.md new file mode 100644 index 0000000..81f91d9 --- /dev/null +++ b/docs/build-for-karma/why-status-network.md @@ -0,0 +1,138 @@ +--- +title: Why Build on Status Network +description: The case for building on Status Network — gasless transactions, Karma reputation, sustainable public funding, and how it compares to other L2s. +keywords: [Status Network, why build, L2 comparison, gasless, Karma, public funding, developer advantages, Linea zkEVM] +sidebar_position: 2 +--- + +There are dozens of L2s to choose from. Here's why Status Network is worth your attention. + + + +## Sustainable Public Funding + +Status Network doesn't rely on one-time grants or foundation treasuries. Instead, it has a continuous public funding pool fed by: + +- **Native yield** from bridged yield-bearing assets (initially ETH and stablecoins) +- **DEX fees** from the native decentralized exchange +- **Premium gas fees** from deny-listed users +- **Future native app fees** (lending, NFT, launchpad, etc.) + +Read more → [Economic Model](/overview/tokenomics/economic-model) + +Karma holders vote on how this public funding pool is distributed to apps and builders. The more your app contributes to the network by generating activity and transaction volume, the more Karma you and your users earn, and the more influence you have over future allocations. + +**What this means for builders:** + +- Not just a one-time grant you have to re-apply for every few months, but a recurring revenue stream +- Funding scales with your app's traction — more users, more Karma, more incentives for you +- Community-governed allocation, no foundation gatekeeping + +Read more → [Public Funding](/overview/tokenomics/public-funding) + +## Gasless by Default + +On most chains, "gasless" means setting up a paymaster, running a relayer, or integrating an account abstraction SDK. On Status Network, gasless is the default behavior. + +Every address with a positive Karma balance gets a free transaction quota. No paymasters. No relayers. No special wallet configuration. Your app just works without gas fees for eligible users. + +**What this means for builders:** + +- No UX friction from gas. Your onboarding funnel doesn't lose users at the "bridge some ETH for gas" step +- No need to integrate ERC-4337, meta-transactions, or gas relay patterns +- No infrastructure cost for sponsoring gas on behalf of users + +The gasless system is enforced at the sequencer level via [Rate Limiting Nullifiers (RLN)](/overview/general-info/gasless-transactions/#rln), a zero-knowledge spam prevention mechanism. + +## Built-in Reputation with Karma + +Karma is a soulbound (non-transferable) token that every user earns through genuine network participation such as staking, bridging, providing liquidity, using apps, or paying premium gas. It cannot be bought or transferred. + +**What this means for builders:** + +- **Trust signal**: High-Karma users are verified active participants, not airdrop farmers or sybils +- **Feature gating**: Builders could gate their features such as premium features, priority access, or better rates based on user Karma tiers +- **Spam resistance**: The network itself is gating spams with RLN mechanism and Karma tiers directly control gasless transaction quotas, meaning high-Karma users are inherently less likely to spam +- **No cold start problem**: Your app benefits from reputation built network-wide in the ecosystem + +Read more → [Karmic Tokenomics](/overview/tokenomics/karmic-tokenomics) + +## Privacy Focused Civil Goods + +Status Network is built with technology from the [Institute of Free Technology (IFT)](https://free.technology). Most notably, the gasless transaction system uses [RLN (Rate Limiting Nullifiers)](https://vac.dev/rln), a zero-knowledge spam prevention mechanism developed by [Vac](https://vac.dev), an IFT research division. + +We align with IFT's vision in technology to build public goods to safegauard civil liberties in the digital age. Status Network will add on privacy focused modules leveraging our gaslessness. + +Read more → [Status Network and Privacy](/overview/general-info/privacy) + +## Full EVM Equivalence + +Status Network is built on the [Linea zkEVM](https://linea.build) stack. This means builders can: + +- Deploy existing Solidity contracts without modification +- Use standard Ethereum tooling like Hardhat, Foundry, ethers.js, viem, etc. +- use standard JSON-RPC methods (except for some methods related to gas fee. Refer to [JSON-RPC API](/build-for-karma/rpc/json-rpc/) for more information.) +- Zero-knowledge proof-based security inherited from Linea's rollup architecture + +No custom VM. No non-standard opcodes. No rewriting your contracts or backends. diff --git a/docs/overview/general-info/gasless-transactions.md b/docs/overview/general-info/gasless-transactions.md index b367091..0dd8c89 100644 --- a/docs/overview/general-info/gasless-transactions.md +++ b/docs/overview/general-info/gasless-transactions.md @@ -7,7 +7,9 @@ keywords: [Status Network, Gasless Transactions, Linea, RLN, Rate Limiting Nulli Status Network aims to introduce gasless transactions at scale. The key component of this gasless approach is Vac's [Rate Limiting Nullifier](https://vac.dev/rln), which permits transaction rate limitation without the need for traditional gas fees. The document describes the architecture and integration elements needed to safely enable gasless transactions. -The implementation code for these gasless transactions is available in the [Status Network monorepo](https://github.com/status-im/status-network-monorepo?tab=readme-ov-file#architecture-components). +The implementation code for gasless transactions is available in the [Status Network monorepo](https://github.com/status-im/status-network-monorepo?tab=readme-ov-file#architecture-components). + +For more information on operational level implementation of our gaslessness, refer to [Karma integration guide](/build-for-karma/guides/index) ## RLN @@ -32,20 +34,28 @@ graph TD B -->|Soulbound Token| C{Tier Assignment} subgraph "Tier Limits" - D[Basic] - E[Active] - F[Regular] - G[Power User] - H[High-Throughput] - I[S-Tier] + T1[Entry] + T2[Newbie] + T3[Basic] + T4[Active] + T5[Regular] + T6[Power User] + T7[Pro User] + T8[High-Throughput] + T9[S-Tier] + T10[Legendary] end - C --> D - C --> E - C --> F - C --> G - C --> H - C --> I + C --> T1 + C --> T2 + C --> T3 + C --> T4 + C --> T5 + C --> T6 + C --> T7 + C --> T8 + C --> T9 + C --> T10 %% RLN Flow A -->|Submits Gasless Tx| J[RPC Node] @@ -94,7 +104,7 @@ graph TD class A wallet class B,L karma class C tier - class D,E,F,G,H,I tierNode + class T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 tierNode class J,K,K1,K2,K3,M,N,O rln class P,Q,R,S,T,U,V,W sequencer class X,Y,Z,AA gas @@ -143,4 +153,4 @@ Concretely, Status Network's `linea_estimateGas`: The above logic lives in our modified `LineaEstimateGas` implementation open-sourced around [this section in the Status Network monorepo](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218). -For further explanation on why it is important to use `linea_estimateGas` instead of `eth_estimateGas` to make gasless transactions on Status Network, refer to the [JSON-RPC docs](../../build-for-karma/rpc/json-rpc.md). +For Karma-aware fee estimation behavior and `linea_estimateGas` specifics, see [JSON-RPC API](/build-for-karma/rpc/json-rpc). diff --git a/docs/overview/general-info/privacy.md b/docs/overview/general-info/privacy.md new file mode 100644 index 0000000..d84d009 --- /dev/null +++ b/docs/overview/general-info/privacy.md @@ -0,0 +1 @@ +# How Status Network connects to Privacy diff --git a/sidebars.ts b/sidebars.ts index 1652fdc..8cdb4e4 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -131,6 +131,11 @@ const sidebars: SidebarsConfig = { id: 'build-for-karma/index', label: '🛠 Build for Karma', }, + { + type: 'doc', + id: 'build-for-karma/why-status-network', + label: '🌟 Why Status Network', + }, ], }, { diff --git a/src/css/custom.css b/src/css/custom.css index a172353..ffaa5a4 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -447,11 +447,15 @@ div[class*='sidebarViewport'] { .deploy-card:hover { transform: translateY(-4px); - box-shadow: var(--shadow-lg); - border-color: var(--ifm-color-primary); + box-shadow: 0 10px 20px rgba(113, 64, 253, 0.12); + border-color: var(--status-purple); text-decoration: none !important; } +[data-theme='dark'] .deploy-card:hover { + box-shadow: 0 10px 20px rgba(113, 64, 253, 0.25); +} + .deploy-card-icon { font-size: 2rem; line-height: 1; @@ -486,15 +490,144 @@ div[class*='sidebarViewport'] { display: inline-block; font-size: 0.75rem; font-weight: 500; - color: var(--ifm-color-primary-dark); - background: rgba(94, 174, 164, 0.1); + color: var(--status-purple); + background: rgba(113, 64, 253, 0.08); padding: 0.2rem 0.6rem; border-radius: 6px; } [data-theme='dark'] .deploy-card-tag { - color: var(--ifm-color-primary-light); - background: rgba(94, 174, 164, 0.15); + color: #a78bfa; + background: rgba(113, 64, 253, 0.15); +} + +/* Comparison Grid (Us vs Them) */ +.comparison-grid { + display: flex; + flex-direction: column; + gap: 0.75rem; + margin: 1.5rem 0; +} + +.comparison-row-link { + text-decoration: none !important; + color: inherit !important; + display: block; + border-radius: 14px; + transition: var(--transition-normal); +} + +.comparison-row-link:hover { + text-decoration: none !important; + color: inherit !important; +} + +.comparison-row-link:hover .comparison-card--us { + border-color: var(--status-purple); + box-shadow: 0 4px 12px rgba(113, 64, 253, 0.15); +} + +[data-theme='dark'] .comparison-row-link:hover .comparison-card--us { + border-color: #a78bfa; + box-shadow: 0 4px 12px rgba(113, 64, 253, 0.25); +} + +.comparison-row { + display: flex; + flex-direction: column; + gap: 0.5rem; + cursor: pointer; +} + +.comparison-label { + font-size: 0.8rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--status-gray-500); + padding-left: 0.25rem; +} + +[data-theme='dark'] .comparison-label { + color: var(--status-gray-400); +} + +.comparison-cards { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0.75rem; +} + +@media (max-width: 768px) { + .comparison-cards { + grid-template-columns: 1fr; + } +} + +.comparison-card { + padding: 1rem 1.25rem; + border-radius: 12px; + border: 1px solid var(--status-gray-200); + transition: var(--transition-normal); +} + +[data-theme='dark'] .comparison-card { + border-color: var(--status-gray-700); +} + +.comparison-card--us { + border-left: 3px solid var(--status-purple); + background: rgba(113, 64, 253, 0.05); +} + +[data-theme='dark'] .comparison-card--us { + background: rgba(113, 64, 253, 0.08); +} + +.comparison-card--them { + border-left: 3px solid var(--status-gray-300); + background: rgba(0, 0, 0, 0.015); + color: var(--status-gray-500); +} + +[data-theme='dark'] .comparison-card--them { + border-left-color: var(--status-gray-600); + background: rgba(255, 255, 255, 0.02); + color: var(--status-gray-400); +} + +.comparison-card-heading { + font-size: 0.7rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.04em; + margin-bottom: 0.35rem; +} + +.comparison-card--us .comparison-card-heading { + color: var(--status-purple); +} + +[data-theme='dark'] .comparison-card--us .comparison-card-heading { + color: #a78bfa; +} + +.comparison-card--them .comparison-card-heading { + color: var(--status-gray-400); +} + +[data-theme='dark'] .comparison-card--them .comparison-card-heading { + color: var(--status-gray-500); +} + +.comparison-card p { + margin: 0; + font-size: 0.93rem; + line-height: 1.5; +} + +.comparison-card--them p { + font-size: 0.9rem; } /* Footer Enhancements */ From 01e2748573e781060e764f943125ce9088ea27b4 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 20 Feb 2026 22:28:28 +0100 Subject: [PATCH 28/36] Add section docs for deploying-contracts Signed-off-by: yjkellyjoo --- .../deploying-contracts/index.md | 72 +++++++++++++++++++ docs/build-for-karma/index.md | 6 ++ sidebars.ts | 17 +++-- 3 files changed, 88 insertions(+), 7 deletions(-) create mode 100644 docs/build-for-karma/deploying-contracts/index.md diff --git a/docs/build-for-karma/deploying-contracts/index.md b/docs/build-for-karma/deploying-contracts/index.md new file mode 100644 index 0000000..072274e --- /dev/null +++ b/docs/build-for-karma/deploying-contracts/index.md @@ -0,0 +1,72 @@ +--- +id: deploying-contracts-index +title: Deploy Your First Contract +description: Choose your preferred deployment tool to get a smart contract live on Status Network. Guides available for Hardhat, Foundry, Remix, and Scaffold-ETH 2. +keywords: [deploy smart contract, Status Network, Hardhat, Foundry, Remix, Scaffold-ETH 2, blockchain deployment, EVM] +slug: /build-for-karma/deploying-contracts +sidebar_position: 1 +--- + +Status Network is fully EVM-compatible, so you can deploy contracts using any standard Ethereum toolchain. Pick the tool that fits your workflow and follow the step-by-step guide to get your first contract live on the testnet. + +:::tip Before you start +Make sure you've [added Status Network to your wallet](/overview/general-info/add-status-network) and grabbed some [testnet ETH](/tools/testnet-faucets). +::: + +## Choose a Deployment Tool + +
+ + +
🎩
+
+

Hardhat

+

The industry-standard development environment for compiling, testing, and deploying Solidity contracts. Includes Hardhat Ignition and TypeScript support.

+ TypeScript · Testing · Ignition +
+
+ + +
⚒️
+
+

Foundry

+

A blazing-fast, Rust-based toolkit for smart contract development. Write tests in Solidity and interact with contracts using Cast.

+ Solidity Tests · Cast · Fast Builds +
+
+ + +
🎛️
+
+

Remix IDE

+

A browser-based IDE with zero setup — perfect for quick prototyping, learning, and deploying simple contracts without any local tooling.

+ Browser-Based · No Setup · Beginner-Friendly +
+
+ + +
🏗️
+
+

Scaffold-ETH 2

+

A full-stack starter kit with a pre-configured Status Network extension. Includes a NextJS frontend, contract hot-reload, and both Hardhat and Foundry support.

+ Full-Stack · NextJS · Hot Reload +
+
+ +
+ +## Not Sure Which to Pick? + +| Tool | Best For | Setup Required | +|---|---|---| +| **Hardhat** | Production projects with complex testing and deployment pipelines | Node.js + npm | +| **Foundry** | Developers who prefer Solidity-native testing and fast compilation | Rust toolchain | +| **Remix** | Quick experiments, learning, and simple one-off deployments | None (browser) | +| **Scaffold-ETH 2** | Full-stack dApps that need a frontend from day one | Node.js + npm | + +## After Deployment + +Once your contract is live, here are your next steps: + +- [Integrate gasless transactions](/build-for-karma/gasless-integration) through Karma so your users never pay gas +- [Read reputation integration guide](/build-for-karma/reputation-integration) to build reputation-aware features using Karma diff --git a/docs/build-for-karma/index.md b/docs/build-for-karma/index.md index e69de29..506d606 100644 --- a/docs/build-for-karma/index.md +++ b/docs/build-for-karma/index.md @@ -0,0 +1,6 @@ +--- +id: build-for-karma-index +title: Build for Karma +slug: /build-for-karma +sidebar_position: 1 +--- diff --git a/sidebars.ts b/sidebars.ts index 8cdb4e4..098e604 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -33,12 +33,12 @@ const sidebars: SidebarsConfig = { type: 'doc', id: 'overview/tokenomics/public-funding', label: '💰 Public Funding', - }, + }, { type: 'doc', id: 'overview/tokenomics/karmic-tokenomics', label: '🐉 Karmic Tokenomics', - }, + }, { type: 'doc', id: 'overview/tokenomics/snt-staking', @@ -125,12 +125,11 @@ const sidebars: SidebarsConfig = { type: 'category', label: 'BUILD FOR KARMA', collapsed: false, + link: { + type: 'doc', + id: 'build-for-karma/build-for-karma-index', + }, items: [ - { - type: 'doc', - id: 'build-for-karma/index', - label: '🛠 Build for Karma', - }, { type: 'doc', id: 'build-for-karma/why-status-network', @@ -163,6 +162,10 @@ const sidebars: SidebarsConfig = { type: 'category', label: 'DEPLOYING CONTRACTS', collapsed: false, + link: { + type: 'doc', + id: 'build-for-karma/deploying-contracts/deploying-contracts-index', + }, items: [ { type: 'doc', From 877268dba3d297c4251fe24e470cbbd4669646f7 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Wed, 25 Feb 2026 23:27:33 +0100 Subject: [PATCH 29/36] Add Idea Catalog components and filters for What to Build page - Introduced a new Idea Catalog feature with components for displaying and filtering app ideas - Added `FilterBar` for user-defined filtering options based on categories, difficulties, and more - Created `IdeaCard` for showcasing individual ideas with expandable details - Implemented a new `IdeaCatalog` component to manage the overall display and filtering logic - Included a new markdown file for "What to Build" on Status Network, enhancing the documentation - Updated styles in custom.css to support the new Idea Catalog layout and functionality Signed-off-by: yjkellyjoo --- .gitignore | 1 + .../guides/reputation-integration.md | 8 + docs/build-for-karma/what-to-build.md | 31 ++ sidebars.ts | 5 + src/components/IdeaCatalog/FilterBar.tsx | 177 ++++++++ src/components/IdeaCatalog/IdeaCard.tsx | 135 ++++++ src/components/IdeaCatalog/IdeaCatalog.tsx | 66 +++ src/components/IdeaCatalog/ideaData.ts | 280 +++++++++++++ src/components/IdeaCatalog/types.ts | 153 +++++++ src/css/custom.css | 389 +++++++++++++++++- 10 files changed, 1244 insertions(+), 1 deletion(-) create mode 100644 docs/build-for-karma/what-to-build.md create mode 100644 src/components/IdeaCatalog/FilterBar.tsx create mode 100644 src/components/IdeaCatalog/IdeaCard.tsx create mode 100644 src/components/IdeaCatalog/IdeaCatalog.tsx create mode 100644 src/components/IdeaCatalog/ideaData.ts create mode 100644 src/components/IdeaCatalog/types.ts diff --git a/.gitignore b/.gitignore index 5f39356..36fb342 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ yarn-error.log* # AI configuration files .omc .sisyphus +.claude diff --git a/docs/build-for-karma/guides/reputation-integration.md b/docs/build-for-karma/guides/reputation-integration.md index 056d7ec..e79baac 100644 --- a/docs/build-for-karma/guides/reputation-integration.md +++ b/docs/build-for-karma/guides/reputation-integration.md @@ -216,6 +216,8 @@ Unlock features based on Karma tier. The `onlyTier` modifier you can check from the [Reading Karma On-Chain](#reading-karma-on-chain) section can restrict access at the contract level. Alternatively, you can use `tierId` in your code to gate features: +> **Catalog idea:** [Karma-Gated Content Feed](/build-for-karma/what-to-build) — a ready-to-scope app built entirely around this pattern. + @@ -274,6 +276,8 @@ if (tierId >= 3) { Offer discounts or better rates to high-Karma users: +> **Catalog idea:** [Karma-Tiered NFT Marketplace](/build-for-karma/what-to-build) — a marketplace where fees and access windows scale automatically with a buyer's Karma tier. + @@ -333,6 +337,8 @@ console.log(`Tier ${tierId}: ${discount}% discount → fee = ${fee}`); Show Karma tier as a trust index in your UI by reading the tier name directly from the `KarmaTiers` contract: +> **Catalog idea:** [Gasless Micro-Blogging Platform](/build-for-karma/what-to-build) — a social feed with Karma trust badges embedded in profiles and posts. + @@ -392,6 +398,8 @@ function KarmaBadge({ tierName }: { tierName: string }) { Use Karma for vote weighting in your app's governance: +> **Catalog idea:** [DAO Proposal & Karma-Weighted Voting App](/build-for-karma/what-to-build) — polling and signal voting with optional Karma-weighted participation. + diff --git a/docs/build-for-karma/what-to-build.md b/docs/build-for-karma/what-to-build.md new file mode 100644 index 0000000..5e61206 --- /dev/null +++ b/docs/build-for-karma/what-to-build.md @@ -0,0 +1,31 @@ +--- +title: What to Build on Status Network +description: A scan-first catalog of high-leverage app ideas for Status Network, organized by category, effort, and delivery profile. +keywords: [Status Network, app ideas, builder ideas, Karma apps, privacy apps, gasless apps, DeFi, social apps, games, MVP] +sidebar_position: 3 +--- + +import IdeaCatalog from '@site/src/components/IdeaCatalog/IdeaCatalog'; + +Status Network combines gasless UX, Karma reputation, and privacy primitives. +This unlocks products that are hard to build well on any other chains. + +Below are some example products we think are a great fit for Status Network, though of course you’re not limited to these ideas. + +Use the filters to find ideas aligned with your expertise and ambition. Click any card to see the full scope. + + + +## Start building now + +- [Quick Start](/overview/introduction/quick-start) +- [How to use Karma for gaslessness and reputation](/build-for-karma/guides) +- [Deploying Contracts on Status Network](/build-for-karma/deploying-contracts) +- [Telegram Builder's Community](https://t.me/statusl2) + +## Ecosystem & Funding + +Builders can earn continuous funding from the public funding pool governed by Karma holders. +As your app gains traction, you gain Karma and stronger influence over future allocations. + +Learn more → [Ecosystem & Funding](/overview/tokenomics/public-funding) diff --git a/sidebars.ts b/sidebars.ts index 098e604..4b086f9 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -135,6 +135,11 @@ const sidebars: SidebarsConfig = { id: 'build-for-karma/why-status-network', label: '🌟 Why Status Network', }, + { + type: 'doc', + id: 'build-for-karma/what-to-build', + label: '💡 What to Build', + }, ], }, { diff --git a/src/components/IdeaCatalog/FilterBar.tsx b/src/components/IdeaCatalog/FilterBar.tsx new file mode 100644 index 0000000..551b552 --- /dev/null +++ b/src/components/IdeaCatalog/FilterBar.tsx @@ -0,0 +1,177 @@ +import React, { useState } from 'react'; +import type { + Category, + StatusPrimitive, + BuilderProfile, + Difficulty, + UserSegment, + DomainExpertise, + CapitalReq, +} from './types'; +import { + categoryLabels, + statusPrimitiveLabels, + builderProfileLabels, + difficultyLabels, + userSegmentLabels, + domainExpertiseLabels, + capitalReqLabels, +} from './types'; + +export interface Filters { + categories: Category[]; + superpowers: StatusPrimitive[]; + builderProfiles: BuilderProfile[]; + difficulties: Difficulty[]; + userSegments: UserSegment[]; + domainExpertises: DomainExpertise[]; + capitalReqs: CapitalReq[]; +} + +export const emptyFilters: Filters = { + categories: [], + superpowers: [], + builderProfiles: [], + difficulties: [], + userSegments: [], + domainExpertises: [], + capitalReqs: [], +}; + +interface FilterBarProps { + filters: Filters; + onChange: (filters: Filters) => void; + totalCount: number; + visibleCount: number; +} + +export default function FilterBar({ + filters, + onChange, + totalCount, + visibleCount, +}: FilterBarProps): JSX.Element { + const [showAdvanced, setShowAdvanced] = useState(false); + + const hasAnyFilter = Object.values(filters).some((arr) => arr.length > 0); + + function toggle(key: K, value: Filters[K][number]) { + const current = filters[key] as Filters[K][number][]; + const next: Filters[K][number][] = current.includes(value) + ? current.filter((v) => v !== value) + : [...current, value]; + onChange({ ...filters, [key]: next }); + } + + return ( +
+ {/* Primary filters */} + toggle('categories', v)} + /> + toggle('superpowers', v)} + /> + toggle('builderProfiles', v)} + /> + toggle('difficulties', v)} + /> + + {/* Advanced toggle */} + + + {/* Advanced filters */} + {showAdvanced && ( +
+ toggle('domainExpertises', v)} + /> + toggle('userSegments', v)} + /> + toggle('capitalReqs', v)} + /> +
+ )} + + {/* Result count + clear */} +
+ + Showing {visibleCount} of {totalCount} ideas + + {hasAnyFilter && ( + + )} +
+
+ ); +} + +function FilterGroup({ + label, + options, + selected, + onToggle, +}: { + label: string; + options: Record; + selected: T[]; + onToggle: (value: T) => void; +}): JSX.Element { + return ( +
+ {label} +
+ {(Object.entries(options) as [T, string][]).map(([key, display]) => ( + + ))} +
+
+ ); +} diff --git a/src/components/IdeaCatalog/IdeaCard.tsx b/src/components/IdeaCatalog/IdeaCard.tsx new file mode 100644 index 0000000..dc6ea76 --- /dev/null +++ b/src/components/IdeaCatalog/IdeaCard.tsx @@ -0,0 +1,135 @@ +import React, { useState } from 'react'; +import type { Idea, Difficulty } from './types'; +import { + categoryLabels, + categoryColors, + statusPrimitiveLabels, + statusPrimitiveColors, + builderProfileLabels, + domainExpertiseLabels, + userSegmentLabels, +} from './types'; + +interface IdeaCardProps { + idea: Idea; +} + +const difficultyColor: Record = { + 'Low-Med': 'var(--status-green)', + Med: 'var(--status-blue)', + 'Med-High': 'var(--status-orange)', + High: 'var(--status-pink)', +}; + +export default function IdeaCard({ idea }: IdeaCardProps): JSX.Element { + const [expanded, setExpanded] = useState(false); + const detailId = `idea-card-detail-${idea.id}`; + + return ( +
setExpanded((v) => !v)} + role="button" + tabIndex={0} + aria-expanded={expanded} + aria-controls={detailId} + onKeyDown={(e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + setExpanded((v) => !v); + } + }} + > + {/* Header row */} +
+ + {categoryLabels[idea.category]} + +
+ + {/* Title */} +

{idea.title}

+ + {/* Status Primitives */} +
+ {idea.superpowers.map((sp) => ( + + {statusPrimitiveLabels[sp]} + + ))} +
+ + {/* One-line summary */} +

{idea.what}

+ + {/* Badges row */} +
+ + {idea.difficulty} + +
+ + {/* Tags row */} +
+ {idea.builderProfiles.map((bp) => ( + + {builderProfileLabels[bp]} + + ))} + + {domainExpertiseLabels[idea.domainExpertise]} + + + {userSegmentLabels[idea.userSegment]} + +
+ + {/* Expand indicator */} + {expanded ? '\u25B2' : '\u25BC'} + + {/* Expanded detail */} + {expanded && ( +
+
+ Why Status: {idea.whyStatus} +
+
+ MVP Scope: {idea.mvp} +
+
+ + +
+
+ )} +
+ ); +} + +function MetaBadge({ label, value }: { label: string; value: string }): JSX.Element { + return ( + + {label} + {value} + + ); +} diff --git a/src/components/IdeaCatalog/IdeaCatalog.tsx b/src/components/IdeaCatalog/IdeaCatalog.tsx new file mode 100644 index 0000000..89230c2 --- /dev/null +++ b/src/components/IdeaCatalog/IdeaCatalog.tsx @@ -0,0 +1,66 @@ +import React, { useState, useMemo } from 'react'; +import { ideas } from './ideaData'; +import type { Idea } from './types'; +import FilterBar, { emptyFilters, type Filters } from './FilterBar'; +import IdeaCard from './IdeaCard'; + +function matchesFilters(idea: Idea, filters: Filters): boolean { + // AND across dimensions, OR within a dimension + if (filters.categories.length > 0 && !filters.categories.includes(idea.category)) return false; + if ( + filters.superpowers.length > 0 && + !filters.superpowers.some((sp) => idea.superpowers.includes(sp)) + ) + return false; + if ( + filters.builderProfiles.length > 0 && + !filters.builderProfiles.some((bp) => idea.builderProfiles.includes(bp)) + ) + return false; + if (filters.difficulties.length > 0 && !filters.difficulties.includes(idea.difficulty)) + return false; + if (filters.userSegments.length > 0 && !filters.userSegments.includes(idea.userSegment)) + return false; + if ( + filters.domainExpertises.length > 0 && + !filters.domainExpertises.includes(idea.domainExpertise) + ) + return false; + if (filters.capitalReqs.length > 0 && !filters.capitalReqs.includes(idea.capitalRequirement)) + return false; + return true; +} + +export default function IdeaCatalog(): JSX.Element { + const [filters, setFilters] = useState(emptyFilters); + + const filtered = useMemo(() => ideas.filter((idea) => matchesFilters(idea, filters)), [filters]); + + return ( +
+ +
+ {filtered.map((idea) => ( + + ))} +
+ {filtered.length === 0 && ( +

+ No ideas match the current filters.{' '} + +

+ )} +
+ ); +} diff --git a/src/components/IdeaCatalog/ideaData.ts b/src/components/IdeaCatalog/ideaData.ts new file mode 100644 index 0000000..5d1b065 --- /dev/null +++ b/src/components/IdeaCatalog/ideaData.ts @@ -0,0 +1,280 @@ +import type { Idea } from './types'; +import { + Category, + StatusPrimitive, + BuilderProfile, + Difficulty, + UserSegment, + DomainExpertise, + CapitalReq, + SecurityCriticality, + OpsBurden, +} from './types'; + +export const ideas: Idea[] = [ + // ── Karma ────────────────────────────────────────────── + { + id: 'karma-gated-access', + title: 'Karma-Gated Content Feed', + category: Category.reputation, + superpowers: [StatusPrimitive.karma], + builderProfiles: [BuilderProfile.frontendDev], + what: 'A social feed where creators publish posts visible only to followers who meet a minimum Karma tier — think Substack meets on-chain reputation.', + whyStatus: 'Karma tiers are resolved on-chain, so access control is trustless — no subscription billing, no platform lock-in, and Sybil-resistant by design.', + mvp: 'Feed with public + gated posts, tier-check middleware (possibly on-chain), creator dashboard showing audience breakdown by Karma tier.', + difficulty: Difficulty.lowMed, + userSegment: UserSegment.communityCreator, + domainExpertise: DomainExpertise.communityDesign, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.medium, + opsBurden: OpsBurden.low, + }, + { + id: 'karma-liquidity-protocol', + title: 'Karma-Boosted Yield Vault', + category: Category.reputation, + superpowers: [StatusPrimitive.karma], + builderProfiles: [BuilderProfile.contractDev], + what: 'A DeFi vault where depositors with higher Karma tiers receive boosted APY — early supporters and active participants earn better returns.', + whyStatus: 'The native reputation graph lets the vault weight rewards by proven participation instead of token-weighted voting or off-chain allowlists.', + mvp: 'Single-asset vault with two yield tiers, on-chain Karma tier lookup at deposit, and a dashboard showing effective APY per tier.', + difficulty: Difficulty.medHigh, + userSegment: UserSegment.traderDefi, + domainExpertise: DomainExpertise.defiMechanisms, + capitalRequirement: CapitalReq.seedLiquidity, + securityCriticality: SecurityCriticality.high, + opsBurden: OpsBurden.medium, + }, + { + id: 'karma-incentive-market', + title: 'Karma Bounty Board', + category: Category.reputation, + superpowers: [StatusPrimitive.karma], + builderProfiles: [BuilderProfile.fullStack], + what: 'A bounty marketplace where only users above a Karma threshold can claim tasks — project teams post work (bug reports, translations, onboarding guides) and pay verified contributors.', + whyStatus: 'Karma-gating filters out spamming bots and low-effort submissions, giving bounty issuers confidence that claimants have a real track record on the network.', + mvp: 'Bounty listing page, Karma-gated claim flow, submission review panel, and on-chain payout on approval.', + difficulty: Difficulty.med, + userSegment: UserSegment.communityCreator, + domainExpertise: DomainExpertise.communityDesign, + capitalRequirement: CapitalReq.operatingTreasury, + securityCriticality: SecurityCriticality.medium, + opsBurden: OpsBurden.medium, + }, + { + id: 'karma-dynamic-pricing', + title: 'Karma-Tiered NFT Marketplace', + category: Category.reputation, + superpowers: [StatusPrimitive.karma], + builderProfiles: [BuilderProfile.frontendDev], + what: 'An NFT marketplace where listing fees, royalties, and early-access windows adjust based on the buyer\'s and seller\'s Karma tier — trusted participants get better terms automatically.', + whyStatus: 'On-chain tier resolution at checkout means dynamic pricing is enforced trustlessly — no coupon codes, no backend allowlists.', + mvp: 'NFT listing + purchase flow with tiered fee schedule, on-chain tier check at checkout, and seller analytics showing sales by buyer tier.', + difficulty: Difficulty.lowMed, + userSegment: UserSegment.communityCreator, + domainExpertise: DomainExpertise.consumerProduct, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.medium, + opsBurden: OpsBurden.low, + }, + + // ── Privacy ─────────────────────────────────────────── + { + id: 'stealth-address-payments', + title: 'Stealth Address Payments', + category: Category.privacy, + superpowers: [StatusPrimitive.privacy, StatusPrimitive.gasless], + builderProfiles: [BuilderProfile.protocolDev], + what: 'One-time receiving addresses with unlinkable spend paths.', + whyStatus: 'Privacy primitives + low-friction transaction UX.', + mvp: 'Address generation, receive flow, and private spend flow.', + difficulty: Difficulty.medHigh, + userSegment: UserSegment.consumer, + domainExpertise: DomainExpertise.privacy, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.critical, + opsBurden: OpsBurden.low, + }, + { + id: 'private-payroll', + title: 'Private Payroll & Savings', + category: Category.privacy, + superpowers: [StatusPrimitive.privacy], + builderProfiles: [BuilderProfile.fullStack], + what: 'Salary and savings rails that do not expose balances and recipients.', + whyStatus: 'Real-world demand where public ledgers fail expectations.', + mvp: 'Employer payout batch + recipient claim + shielded vault.', + difficulty: Difficulty.med, + userSegment: UserSegment.daoOrgOps, + domainExpertise: DomainExpertise.paymentsFinops, + capitalRequirement: CapitalReq.operatingTreasury, + securityCriticality: SecurityCriticality.high, + opsBurden: OpsBurden.medium, + }, + { + id: 'shielded-microtransactions', + title: 'Shielded Microtransactions / Card Layer', + category: Category.privacy, + superpowers: [StatusPrimitive.privacy, StatusPrimitive.gasless], + builderProfiles: [BuilderProfile.fullStack], + what: 'Low-value payments and subscriptions with hidden amounts/participants.', + whyStatus: 'Gasless interactions make frequent payments viable.', + mvp: 'Private tip/subscription flow with recurring authorization.', + difficulty: Difficulty.medHigh, + userSegment: UserSegment.consumer, + domainExpertise: DomainExpertise.paymentsFinops, + capitalRequirement: CapitalReq.operatingTreasury, + securityCriticality: SecurityCriticality.high, + opsBurden: OpsBurden.medium, + }, + { + id: 'private-lending', + title: 'Private Lending & Borrowing', + category: Category.privacy, + superpowers: [StatusPrimitive.privacy, StatusPrimitive.karma], + builderProfiles: [BuilderProfile.contractDev, BuilderProfile.protocolDev], + what: 'Borrow/lend flows that avoid public position leakage.', + whyStatus: 'Privacy + Karma-based trust signals.', + mvp: 'One collateral type, one borrow asset, private health checks.', + difficulty: Difficulty.high, + userSegment: UserSegment.traderDefi, + domainExpertise: DomainExpertise.defiMechanisms, + capitalRequirement: CapitalReq.deepLiquidity, + securityCriticality: SecurityCriticality.critical, + opsBurden: OpsBurden.high, + }, + { + id: 'private-multisig', + title: 'Private Multisig', + category: Category.privacy, + superpowers: [StatusPrimitive.privacy], + builderProfiles: [BuilderProfile.contractDev, BuilderProfile.protocolDev], + what: 'Multisig ops where signers, threshold, and tx details are obscured.', + whyStatus: 'Privacy-sensitive orgs can still operate on-chain.', + mvp: 'Policy setup + signing flow + execution log with selective disclosure.', + difficulty: Difficulty.high, + userSegment: UserSegment.daoOrgOps, + domainExpertise: DomainExpertise.privacy, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.critical, + opsBurden: OpsBurden.medium, + }, + + // ── Social ───────────────────────────────────────────── + { + id: 'social-mini-app', + title: 'Gasless Micro-Blogging Platform', + category: Category.social, + superpowers: [StatusPrimitive.karma, StatusPrimitive.gasless], + builderProfiles: [BuilderProfile.frontendDev], + what: 'A Twitter-style micro-blog where every post, reply, and like is an on-chain action that costs the user nothing — with Karma badges that surface trusted voices.', + whyStatus: 'Gasless transactions make post-per-action economics viable; Karma badges replace arbitrary blue-check systems with reputation earned through actual network participation.', + mvp: 'Timeline feed, post/reply/like actions, user profiles with Karma trust badges, and basic content moderation controls.', + difficulty: Difficulty.lowMed, + userSegment: UserSegment.consumer, + domainExpertise: DomainExpertise.consumerProduct, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.low, + opsBurden: OpsBurden.medium, + }, + { + id: 'creator-economy-toolkit', + title: 'Fan Pass Platform', + category: Category.social, + superpowers: [StatusPrimitive.gasless], + builderProfiles: [BuilderProfile.frontendDev], + what: 'A platform where creators mint free digital passes that unlock exclusive content, group chats, and IRL event access — fans collect passes gaslessly.', + whyStatus: 'Zero-cost minting and claiming removes the paywall friction from community passes, letting creators grow audiences without asking fans to pay gas.', + mvp: 'Creator page with pass minting, fan claim flow, pass-gated content section, and event check-in via pass verification.', + difficulty: Difficulty.med, + userSegment: UserSegment.communityCreator, + domainExpertise: DomainExpertise.consumerProduct, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.medium, + opsBurden: OpsBurden.medium, + }, + { + id: 'community-governance', + title: 'DAO Proposal & Karma-Weighted Voting App', + category: Category.social, + superpowers: [StatusPrimitive.karma, StatusPrimitive.gasless], + builderProfiles: [BuilderProfile.fullStack], + what: 'A governance app where community members submit proposals and vote with weight proportional to their Karma tier — active contributors have a louder voice than passive holders.', + whyStatus: 'Karma-weighted voting rewards real participation over token accumulation, and gasless voting removes the cost barrier that suppresses turnout in most DAOs.', + mvp: 'Proposal submission form, Karma-weighted voting with on-chain tallying, results dashboard with participation breakdown by tier.', + difficulty: Difficulty.med, + userSegment: UserSegment.daoOrgOps, + domainExpertise: DomainExpertise.communityDesign, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.medium, + opsBurden: OpsBurden.low, + }, + + // ── Games ────────────────────────────────────────────── + { + id: 'onchain-strategy-game', + title: 'Fog-of-War Conquest Game', + category: Category.games, + superpowers: [StatusPrimitive.privacy, StatusPrimitive.gasless], + builderProfiles: [BuilderProfile.fullStack], + what: 'A hex-grid territory control game where troop positions are hidden via private state and every move is a gasless on-chain transaction — think Risk board game with real fog of war on-chain.', + whyStatus: 'Privacy primitives enable genuine hidden information (not just client-side fog), while gasless moves make the rapid back-and-forth of strategy games economically feasible.', + mvp: 'Hex map with fog-of-war, one unit type, private troop placement, turn resolution, and a match leaderboard.', + difficulty: Difficulty.medHigh, + userSegment: UserSegment.consumer, + domainExpertise: DomainExpertise.consumerProduct, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.medium, + opsBurden: OpsBurden.medium, + }, + { + id: 'prediction-market', + title: 'Prediction Market', + category: Category.games, + superpowers: [StatusPrimitive.privacy, StatusPrimitive.gasless], + builderProfiles: [BuilderProfile.fullStack], + what: 'Markets with low-friction entries and private participant positions.', + whyStatus: 'Better market participation and less copy-trading behavior.', + mvp: 'Market creation + position entry + settlement + basic analytics.', + difficulty: Difficulty.medHigh, + userSegment: UserSegment.traderDefi, + domainExpertise: DomainExpertise.defiMechanisms, + capitalRequirement: CapitalReq.seedLiquidity, + securityCriticality: SecurityCriticality.high, + opsBurden: OpsBurden.high, + }, + + // ── DeFi ─────────────────────────────────────────────── + { + id: 'native-dex-companion', + title: 'Karma-Tiered Swap Router', + category: Category.defi, + superpowers: [StatusPrimitive.karma], + builderProfiles: [BuilderProfile.contractDev], + what: 'A swap interface that routes trades through the best on-chain pools and gives high-Karma users reduced fees and priority execution — a loyalty program baked into the DEX layer.', + whyStatus: 'Karma tiers let the router offer fee discounts trustlessly, and tight integration with native liquidity means better rates without external aggregator dependencies.', + mvp: 'Token swap UI with tiered fee display, Karma-aware routing logic, LP position panel, and trade history showing fees saved by tier.', + difficulty: Difficulty.med, + userSegment: UserSegment.traderDefi, + domainExpertise: DomainExpertise.defiMechanisms, + capitalRequirement: CapitalReq.seedLiquidity, + securityCriticality: SecurityCriticality.high, + opsBurden: OpsBurden.medium, + }, + { + id: 'public-funding-interface', + title: 'Public Funding Interface', + category: Category.defi, + superpowers: [StatusPrimitive.karma, StatusPrimitive.gasless], + builderProfiles: [BuilderProfile.frontendDev], + what: 'End-to-end grant discovery, proposal, voting, and tracking dashboard.', + whyStatus: 'Directly supports ecosystem growth flywheel.', + mvp: 'Proposal board + vote screen + grant progress tracker.', + difficulty: Difficulty.med, + userSegment: UserSegment.daoOrgOps, + domainExpertise: DomainExpertise.communityDesign, + capitalRequirement: CapitalReq.none, + securityCriticality: SecurityCriticality.medium, + opsBurden: OpsBurden.low, + }, +]; diff --git a/src/components/IdeaCatalog/types.ts b/src/components/IdeaCatalog/types.ts new file mode 100644 index 0000000..84643dd --- /dev/null +++ b/src/components/IdeaCatalog/types.ts @@ -0,0 +1,153 @@ +export const Category = { + reputation: 'reputation', + privacy: 'privacy', + social: 'social', + games: 'games', + defi: 'defi', +} as const; +export type Category = (typeof Category)[keyof typeof Category]; + +export const StatusPrimitive = { + gasless: 'gasless', + karma: 'karma', + privacy: 'privacy', +} as const; +export type StatusPrimitive = (typeof StatusPrimitive)[keyof typeof StatusPrimitive]; + +export const BuilderProfile = { + frontendDev: 'frontend-dev', + contractDev: 'contract-dev', + fullStack: 'full-stack', + protocolDev: 'protocol-dev', +} as const; +export type BuilderProfile = (typeof BuilderProfile)[keyof typeof BuilderProfile]; + +export const Difficulty = { + lowMed: 'Low-Med', + med: 'Med', + medHigh: 'Med-High', + high: 'High', +} as const; +export type Difficulty = (typeof Difficulty)[keyof typeof Difficulty]; + +export const UserSegment = { + consumer: 'consumer', + communityCreator: 'community-creator', + daoOrgOps: 'dao-org-ops', + traderDefi: 'trader-defi', +} as const; +export type UserSegment = (typeof UserSegment)[keyof typeof UserSegment]; + +export const DomainExpertise = { + communityDesign: 'community-design', + defiMechanisms: 'defi-mechanisms', + privacy: 'privacy', + paymentsFinops: 'payments-finops', + consumerProduct: 'consumer-product', +} as const; +export type DomainExpertise = (typeof DomainExpertise)[keyof typeof DomainExpertise]; + +export const CapitalReq = { + none: 'none', + operatingTreasury: 'operating-treasury', + seedLiquidity: 'seed-liquidity', + deepLiquidity: 'deep-liquidity', +} as const; +export type CapitalReq = (typeof CapitalReq)[keyof typeof CapitalReq]; + +export const SecurityCriticality = { + low: 'Low', + medium: 'Medium', + high: 'High', + critical: 'Critical', +} as const; +export type SecurityCriticality = (typeof SecurityCriticality)[keyof typeof SecurityCriticality]; + +export const OpsBurden = { + low: 'Low', + medium: 'Medium', + high: 'High', + veryHigh: 'Very High', +} as const; +export type OpsBurden = (typeof OpsBurden)[keyof typeof OpsBurden]; + +export interface Idea { + id: string; + title: string; + category: Category; + superpowers: StatusPrimitive[]; + builderProfiles: BuilderProfile[]; + what: string; + whyStatus: string; + mvp: string; + difficulty: Difficulty; + userSegment: UserSegment; + domainExpertise: DomainExpertise; + capitalRequirement: CapitalReq; + securityCriticality: SecurityCriticality; + opsBurden: OpsBurden; +} + +export const categoryLabels: Record = { + reputation: 'Reputation', + privacy: 'Privacy', + social: 'Social', + games: 'Games', + defi: 'DeFi', +}; + +export const difficultyLabels: Record = { + 'Low-Med': 'Low-Med', + Med: 'Med', + 'Med-High': 'Med-High', + High: 'High', +}; + +export const userSegmentLabels: Record = { + consumer: 'Consumer', + 'community-creator': 'Community/Creator', + 'dao-org-ops': 'DAO/Org Ops', + 'trader-defi': 'Trader/DeFi', +}; + +export const domainExpertiseLabels: Record = { + 'community-design': 'Community Design', + 'defi-mechanisms': 'DeFi Mechanisms', + privacy: 'Privacy', + 'payments-finops': 'Payments/FinOps', + 'consumer-product': 'Consumer Product', +}; + +export const capitalReqLabels: Record = { + none: 'None', + 'operating-treasury': 'Operating Treasury', + 'seed-liquidity': 'Seed Liquidity', + 'deep-liquidity': 'Deep Liquidity', +}; + +export const statusPrimitiveLabels: Record = { + gasless: 'Gasless UX', + karma: 'Karma Reputation', + privacy: 'Privacy Primitives', +}; + +export const builderProfileLabels: Record = { + 'frontend-dev': 'Frontend / App Dev', + 'contract-dev': 'Smart Contract Dev', + 'full-stack': 'Full-Stack', + 'protocol-dev': 'Protocol / Cryptography', +}; + +export const categoryColors: Record = { + reputation: 'var(--status-purple)', + privacy: 'var(--status-green)', + social: 'var(--status-blue)', + games: 'var(--status-orange)', + defi: 'var(--status-yellow)', +}; + +export const statusPrimitiveColors: Record = { + gasless: 'var(--status-blue)', + karma: 'var(--status-purple)', + privacy: 'var(--status-green)', +}; diff --git a/src/css/custom.css b/src/css/custom.css index ffaa5a4..5540b98 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -645,4 +645,391 @@ div[class*='sidebarViewport'] { /* Remove default footer background */ .footer--dark { background: none; -} \ No newline at end of file +} + +/* ═══════════════════════════════════════════════════════════ + Idea Catalog + ═══════════════════════════════════════════════════════════ */ + +.idea-catalog { + margin: 1.5rem 0; +} + +/* ── Filter Bar ──────────────────────────────────────────── */ + +.idea-catalog-filters { + display: flex; + flex-direction: column; + gap: 0.75rem; + margin-bottom: 1.5rem; +} + +.idea-catalog-filter-group { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.4rem; +} + +.idea-catalog-filter-label { + font-size: 0.8rem; + font-weight: 600; + color: var(--status-gray-500); + min-width: 6.5rem; + flex-shrink: 0; +} + +[data-theme='dark'] .idea-catalog-filter-label { + color: var(--status-gray-400); +} + +.idea-catalog-chips { + display: flex; + flex-wrap: wrap; + gap: 0.35rem; +} + +.idea-catalog-chip { + display: inline-flex; + align-items: center; + padding: 0.25rem 0.7rem; + border: 1px solid var(--status-gray-300); + border-radius: 99px; + background: transparent; + font-size: 0.8rem; + font-weight: 500; + color: var(--status-gray-500); + cursor: pointer; + transition: var(--transition-fast); + font-family: var(--ifm-font-family-base); +} + +.idea-catalog-chip:hover { + border-color: var(--status-purple); + color: var(--status-purple); +} + +.idea-catalog-chip--active { + background: var(--status-purple); + border-color: var(--status-purple); + color: #fff; +} + +[data-theme='dark'] .idea-catalog-chip { + border-color: var(--status-gray-600); + color: var(--status-gray-400); +} + +[data-theme='dark'] .idea-catalog-chip:hover { + border-color: #a78bfa; + color: #a78bfa; +} + +[data-theme='dark'] .idea-catalog-chip--active { + background: #7140fd; + border-color: #7140fd; + color: #fff; +} + +.idea-catalog-advanced-toggle { + background: none; + border: none; + color: var(--status-purple); + font-size: 0.85rem; + font-weight: 500; + cursor: pointer; + padding: 0; + text-align: left; + font-family: var(--ifm-font-family-base); +} + +.idea-catalog-advanced-toggle:hover { + text-decoration: underline; +} + +[data-theme='dark'] .idea-catalog-advanced-toggle { + color: #a78bfa; +} + +.idea-catalog-advanced { + display: flex; + flex-direction: column; + gap: 0.75rem; + padding: 0.75rem 0; + border-top: 1px solid var(--status-gray-200); +} + +[data-theme='dark'] .idea-catalog-advanced { + border-top-color: var(--status-gray-700); +} + +.idea-catalog-status { + display: flex; + align-items: center; + gap: 0.75rem; + font-size: 0.85rem; + color: var(--status-gray-500); + padding-top: 0.5rem; + border-top: 1px solid var(--status-gray-200); +} + +[data-theme='dark'] .idea-catalog-status { + color: var(--status-gray-400); + border-top-color: var(--status-gray-700); +} + +.idea-catalog-clear { + background: none; + border: none; + color: var(--status-purple); + font-size: 0.85rem; + font-weight: 500; + cursor: pointer; + padding: 0; + font-family: var(--ifm-font-family-base); +} + +.idea-catalog-clear:hover { + text-decoration: underline; +} + +[data-theme='dark'] .idea-catalog-clear { + color: #a78bfa; +} + +.idea-catalog-empty { + text-align: center; + color: var(--status-gray-500); + padding: 2rem 1rem; +} + +/* ── Card Grid ───────────────────────────────────────────── */ + +.idea-catalog-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1rem; +} + +@media (max-width: 768px) { + .idea-catalog-grid { + grid-template-columns: 1fr; + } + + .idea-catalog-filter-group { + flex-direction: column; + align-items: flex-start; + } + + .idea-catalog-filter-label { + min-width: auto; + } +} + +/* ── Idea Card ───────────────────────────────────────────── */ + +.idea-card { + position: relative; + padding: 1.25rem 1.5rem; + border: 1px solid var(--status-gray-200); + border-radius: 16px; + background: white; + cursor: pointer; + transition: var(--transition-normal); + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +[data-theme='dark'] .idea-card { + background: var(--ifm-background-surface-color); + border-color: var(--status-gray-700); +} + +.idea-card:hover { + transform: translateY(-4px); + box-shadow: 0 10px 20px rgba(113, 64, 253, 0.12); + border-color: var(--status-purple); +} + +[data-theme='dark'] .idea-card:hover { + box-shadow: 0 10px 20px rgba(113, 64, 253, 0.25); + border-color: #a78bfa; +} + +.idea-card__header { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.idea-card__category { + font-size: 0.72rem; + font-weight: 600; + padding: 0.15rem 0.55rem; + border-radius: 6px; + text-transform: uppercase; + letter-spacing: 0.03em; +} + +.idea-card__title { + margin: 0; + font-size: 1.05rem; + font-weight: 600; + color: var(--ifm-heading-color); + line-height: 1.3; +} + +.idea-card__superpowers { + display: flex; + flex-wrap: wrap; + gap: 0.3rem; +} + +.idea-card__superpower { + font-size: 0.68rem; + font-weight: 600; + padding: 0.1rem 0.45rem; + border-radius: 4px; +} + +.idea-card__tag--builder { + color: var(--status-blue); + background: rgba(51, 153, 255, 0.1); +} + +[data-theme='dark'] .idea-card__tag--builder { + color: #60a5fa; + background: rgba(51, 153, 255, 0.15); +} + +.idea-card__what { + margin: 0; + font-size: 0.88rem; + line-height: 1.5; + color: var(--status-gray-500); +} + +[data-theme='dark'] .idea-card__what { + color: var(--status-gray-400); +} + +.idea-card__badges { + display: flex; + gap: 0.4rem; + flex-wrap: wrap; +} + +.idea-card__badge { + font-size: 0.72rem; + font-weight: 600; + padding: 0.15rem 0.5rem; + border-radius: 6px; +} + +.idea-card__tags { + display: flex; + flex-wrap: wrap; + gap: 0.3rem; +} + +.idea-card__tag { + font-size: 0.7rem; + font-weight: 500; + padding: 0.12rem 0.45rem; + border-radius: 4px; + color: var(--status-purple); + background: rgba(113, 64, 253, 0.08); +} + +[data-theme='dark'] .idea-card__tag { + color: #a78bfa; + background: rgba(113, 64, 253, 0.15); +} + +.idea-card__tag--segment { + color: var(--status-green); + background: rgba(94, 174, 164, 0.1); +} + +[data-theme='dark'] .idea-card__tag--segment { + color: var(--ifm-color-primary); + background: rgba(94, 174, 164, 0.15); +} + +.idea-card__expand-icon { + position: absolute; + top: 1.25rem; + right: 1.25rem; + font-size: 0.65rem; + color: var(--status-gray-400); +} + +/* ── Expanded Detail ─────────────────────────────────────── */ + +.idea-card__detail { + display: flex; + flex-direction: column; + gap: 0.6rem; + padding-top: 0.6rem; + border-top: 1px solid var(--status-gray-200); + animation: ideaDetailFadeIn 200ms ease-out; +} + +[data-theme='dark'] .idea-card__detail { + border-top-color: var(--status-gray-700); +} + +@keyframes ideaDetailFadeIn { + from { opacity: 0; transform: translateY(-4px); } + to { opacity: 1; transform: translateY(0); } +} + +.idea-card__detail-section { + font-size: 0.88rem; + line-height: 1.55; + color: var(--ifm-font-color-base); +} + +.idea-card__detail-section strong { + font-weight: 600; +} + +.idea-card__detail-meta { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + padding-top: 0.3rem; +} + +.idea-card__meta-badge { + display: inline-flex; + flex-direction: column; + padding: 0.3rem 0.55rem; + border-radius: 8px; + background: var(--status-gray-100); + border: 1px solid var(--status-gray-200); +} + +[data-theme='dark'] .idea-card__meta-badge { + background: rgba(255, 255, 255, 0.04); + border-color: var(--status-gray-700); +} + +.idea-card__meta-label { + font-size: 0.62rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--status-gray-400); +} + +[data-theme='dark'] .idea-card__meta-label { + color: var(--status-gray-500); +} + +.idea-card__meta-value { + font-size: 0.78rem; + font-weight: 500; + color: var(--ifm-font-color-base); +} From 3fd029552d2c87874fbf8e1cc96b2f0fd6215dae Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Thu, 26 Feb 2026 17:20:24 +0100 Subject: [PATCH 30/36] Move RPC related docs from build-for-karma to tools navbar - Updated docs to use new sidebar structure Signed-off-by: yjkellyjoo --- .../deploying-contracts/index.md | 6 +- .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 2 +- .../deploying-contracts/using-se2.md | 2 +- .../guides/gasless-integration.md | 4 +- docs/build-for-karma/why-status-network.md | 2 +- .../general-info/gasless-transactions.md | 4 +- docs/overview/index.md | 2 +- .../block-explorers.md | 1 + .../tools/{ => core-infrastructure}/bridge.md | 1 + .../rpc-endpoints.md} | 3 +- .../testnet-faucets.md | 1 + docs/tools/index.md | 20 +++-- .../rpc/json-rpc.md | 2 +- .../rpc/running-an-rpc.md | 0 docusaurus.config.ts | 11 ++- sidebars.ts | 73 ++++++++++--------- 18 files changed, 83 insertions(+), 55 deletions(-) rename docs/tools/{ => core-infrastructure}/block-explorers.md (94%) rename docs/tools/{ => core-infrastructure}/bridge.md (98%) rename docs/tools/{rpc.md => core-infrastructure/rpc-endpoints.md} (97%) rename docs/tools/{ => core-infrastructure}/testnet-faucets.md (97%) rename docs/{build-for-karma => tools}/rpc/json-rpc.md (95%) rename docs/{build-for-karma => tools}/rpc/running-an-rpc.md (100%) diff --git a/docs/build-for-karma/deploying-contracts/index.md b/docs/build-for-karma/deploying-contracts/index.md index 072274e..a7469ac 100644 --- a/docs/build-for-karma/deploying-contracts/index.md +++ b/docs/build-for-karma/deploying-contracts/index.md @@ -10,7 +10,7 @@ sidebar_position: 1 Status Network is fully EVM-compatible, so you can deploy contracts using any standard Ethereum toolchain. Pick the tool that fits your workflow and follow the step-by-step guide to get your first contract live on the testnet. :::tip Before you start -Make sure you've [added Status Network to your wallet](/overview/general-info/add-status-network) and grabbed some [testnet ETH](/tools/testnet-faucets). +Make sure you've [added Status Network to your wallet](/overview/general-info/add-status-network) and grabbed some [testnet ETH](/tools/core-infrastructure/testnet-faucets). ::: ## Choose a Deployment Tool @@ -68,5 +68,5 @@ Make sure you've [added Status Network to your wallet](/overview/general-info/ad Once your contract is live, here are your next steps: -- [Integrate gasless transactions](/build-for-karma/gasless-integration) through Karma so your users never pay gas -- [Read reputation integration guide](/build-for-karma/reputation-integration) to build reputation-aware features using Karma +- [Integrate gasless transactions](/build-for-karma/guides/gasless-integration) through Karma so your users never pay gas +- [Read reputation integration guide](/build-for-karma/guides/reputation-integration) to build reputation-aware features using Karma diff --git a/docs/build-for-karma/deploying-contracts/using-foundry.md b/docs/build-for-karma/deploying-contracts/using-foundry.md index 619f554..c41bd39 100644 --- a/docs/build-for-karma/deploying-contracts/using-foundry.md +++ b/docs/build-for-karma/deploying-contracts/using-foundry.md @@ -15,7 +15,7 @@ Before you begin, ensure you have the following: - **Foundry**: Install from the [official Foundry book](https://book.getfoundry.sh/getting-started/installation) - **Ethereum Wallet**: A private key for Status Network testnet - **Testnet ETH**: You'll need Status Network testnet ETH - - Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets) + - Get Status Network testnet ETH from our [Faucet](/tools/core-infrastructure/testnet-faucets) - **Basic Knowledge**: Familiarity with Solidity and command line ## What You'll Accomplish diff --git a/docs/build-for-karma/deploying-contracts/using-hardhat.md b/docs/build-for-karma/deploying-contracts/using-hardhat.md index bd578e0..d06ad9f 100644 --- a/docs/build-for-karma/deploying-contracts/using-hardhat.md +++ b/docs/build-for-karma/deploying-contracts/using-hardhat.md @@ -15,7 +15,7 @@ Before you begin, ensure you have the following: - **Node.js and npm**: Download and install from the [official Node.js website](https://nodejs.org/) - **Ethereum Wallet**: MetaMask or another wallet with a private key for Status Network testnet - **Testnet ETH**: You'll need Status Network testnet ETH - - Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets) + - Get Status Network testnet ETH from our [Faucet](/tools/core-infrastructure/testnet-faucets) - **Basic Knowledge**: Familiarity with Solidity, Hardhat, and command line ## What You'll Accomplish diff --git a/docs/build-for-karma/deploying-contracts/using-remix.md b/docs/build-for-karma/deploying-contracts/using-remix.md index 651bf16..9f12329 100644 --- a/docs/build-for-karma/deploying-contracts/using-remix.md +++ b/docs/build-for-karma/deploying-contracts/using-remix.md @@ -15,7 +15,7 @@ Before you begin, ensure you have: - **Web Browser**: A modern web browser like Chrome or Firefox - **MetaMask**: Install the [MetaMask](https://metamask.io) browser extension - **Testnet ETH**: You'll need Status Network testnet ETH - - Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets) + - Get Status Network testnet ETH from our [Faucet](/tools/core-infrastructure/testnet-faucets) - **Network Configuration**: Add Status Network testnet to MetaMask following our [Add Network guide](/overview/general-info/add-status-network) ## Steps diff --git a/docs/build-for-karma/deploying-contracts/using-se2.md b/docs/build-for-karma/deploying-contracts/using-se2.md index 406bdb3..cd0e6f3 100644 --- a/docs/build-for-karma/deploying-contracts/using-se2.md +++ b/docs/build-for-karma/deploying-contracts/using-se2.md @@ -14,7 +14,7 @@ The [Status Network Scaffold-ETH 2 extension](https://github.com/status-im/statu - **Foundry** (optional): If you choose the Foundry workflow - **Ethereum Wallet** (optional): An EVM wallet private key for test, but it's okay if you don't have one -> **Note**: Status Network supports gasless transactions, so testnet ETH is optional. If you still need testnet ETH, get it from our [Faucet](/tools/testnet-faucets). +> **Note**: Status Network supports gasless transactions, so testnet ETH is optional. If you still need testnet ETH, get it from our [Faucet](/tools/core-infrastructure/testnet-faucets). ## Quick Start diff --git a/docs/build-for-karma/guides/gasless-integration.md b/docs/build-for-karma/guides/gasless-integration.md index fb7146f..06956f0 100644 --- a/docs/build-for-karma/guides/gasless-integration.md +++ b/docs/build-for-karma/guides/gasless-integration.md @@ -15,7 +15,7 @@ Status Network provides gasless transactions at the protocol level. You do not n Use `linea_estimateGas` RPC method as the source of truth for gas fee when preparing transaction UX. ::: -For other JSON-RPC method reference, see [JSON-RPC API](/build-for-karma/rpc/json-rpc). +For other JSON-RPC method reference, see [JSON-RPC API](/tools/rpc/json-rpc). ## Karma-aware fee estimation @@ -361,5 +361,5 @@ When sender is deny-listed (exceeded quota or RLN policy): ## Next steps -- [JSON-RPC API](/build-for-karma/rpc/json-rpc) +- [JSON-RPC API](/tools/rpc/json-rpc) - [Reputation Integration](/build-for-karma/guides/reputation-integration) diff --git a/docs/build-for-karma/why-status-network.md b/docs/build-for-karma/why-status-network.md index 81f91d9..0460292 100644 --- a/docs/build-for-karma/why-status-network.md +++ b/docs/build-for-karma/why-status-network.md @@ -132,7 +132,7 @@ Status Network is built on the [Linea zkEVM](https://linea.build) stack. This me - Deploy existing Solidity contracts without modification - Use standard Ethereum tooling like Hardhat, Foundry, ethers.js, viem, etc. -- use standard JSON-RPC methods (except for some methods related to gas fee. Refer to [JSON-RPC API](/build-for-karma/rpc/json-rpc/) for more information.) +- use standard JSON-RPC methods (except for some methods related to gas fee. Refer to [JSON-RPC API](/tools/rpc/json-rpc) for more information.) - Zero-knowledge proof-based security inherited from Linea's rollup architecture No custom VM. No non-standard opcodes. No rewriting your contracts or backends. diff --git a/docs/overview/general-info/gasless-transactions.md b/docs/overview/general-info/gasless-transactions.md index 0dd8c89..6c55eab 100644 --- a/docs/overview/general-info/gasless-transactions.md +++ b/docs/overview/general-info/gasless-transactions.md @@ -9,7 +9,7 @@ Status Network aims to introduce gasless transactions at scale. The key componen The implementation code for gasless transactions is available in the [Status Network monorepo](https://github.com/status-im/status-network-monorepo?tab=readme-ov-file#architecture-components). -For more information on operational level implementation of our gaslessness, refer to [Karma integration guide](/build-for-karma/guides/index) +For more information on operational level implementation of our gaslessness, refer to [Karma integration guide](/build-for-karma/guides) ## RLN @@ -153,4 +153,4 @@ Concretely, Status Network's `linea_estimateGas`: The above logic lives in our modified `LineaEstimateGas` implementation open-sourced around [this section in the Status Network monorepo](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218). -For Karma-aware fee estimation behavior and `linea_estimateGas` specifics, see [JSON-RPC API](/build-for-karma/rpc/json-rpc). +For Karma-aware fee estimation behavior and `linea_estimateGas` specifics, see [JSON-RPC API](/tools/rpc/json-rpc). diff --git a/docs/overview/index.md b/docs/overview/index.md index 8f03e05..77b882b 100644 --- a/docs/overview/index.md +++ b/docs/overview/index.md @@ -42,7 +42,7 @@ Status Network is natively integrated with Status Wallet, Keycard, Waku and Code Wants to skip the explanation part and go straight to building? Here's how to get started: 1. [Add Status Network to Your Wallet](/overview/general-info/add-status-network) -2. [Get Testnet ETH](/tools/testnet-faucets) +2. [Get Testnet ETH](/tools/core-infrastructure/testnet-faucets) 3. [Bridge Assets](/overview/general-info/bridge/bridging-testnet) 4. [Deploy Your First Contract](/build-for-karma/deploying-contracts/using-remix) diff --git a/docs/tools/block-explorers.md b/docs/tools/core-infrastructure/block-explorers.md similarity index 94% rename from docs/tools/block-explorers.md rename to docs/tools/core-infrastructure/block-explorers.md index 962e39f..06be6f7 100644 --- a/docs/tools/block-explorers.md +++ b/docs/tools/core-infrastructure/block-explorers.md @@ -2,6 +2,7 @@ title: Block Explorers description: Status Network block explorer for viewing transactions, verifying contracts, and monitoring network activity. keywords: [block explorer, transaction tracking, smart contract verification] +slug: /tools/core-infrastructure/block-explorers --- ## Status Network Mainnet diff --git a/docs/tools/bridge.md b/docs/tools/core-infrastructure/bridge.md similarity index 98% rename from docs/tools/bridge.md rename to docs/tools/core-infrastructure/bridge.md index 875c64e..2401145 100644 --- a/docs/tools/bridge.md +++ b/docs/tools/core-infrastructure/bridge.md @@ -2,6 +2,7 @@ title: Status Network Testnet Bridge description: Complete guide to using the Status Network bridge for transferring tokens between Sepolia and Status Network testnet. Learn about supported tokens, bridging process, and monitoring transactions. keywords: [Status Network bridge, token bridge, cross-chain transfer, L1 L2 bridge, token bridging, Sepolia bridge] +slug: /tools/core-infrastructure/bridge --- The Status Network Testnet Bridge allows users to transfer tokens and pass messages between Sepolia (Layer 1) and Status Network testnet (Layer 2). The bridge interface is available at [bridge.status.network](https://bridge.status.network). diff --git a/docs/tools/rpc.md b/docs/tools/core-infrastructure/rpc-endpoints.md similarity index 97% rename from docs/tools/rpc.md rename to docs/tools/core-infrastructure/rpc-endpoints.md index 99758be..b3942cc 100644 --- a/docs/tools/rpc.md +++ b/docs/tools/core-infrastructure/rpc-endpoints.md @@ -2,6 +2,7 @@ title: RPC Endpoints description: Official RPC endpoints for Status Network, including configuration guides for MetaMask and Web3 libraries. Learn about available methods, rate limits, and best practices. keywords: [Status Network RPC, JSON-RPC, blockchain API, web3 configuration, MetaMask setup, blockchain development] +slug: /tools/core-infrastructure/rpc-endpoints --- import AddToMetaMask from '@site/src/components/AddToMetaMask'; @@ -58,4 +59,4 @@ For higher limits, get in touch with us on our [Telegram Builder's Community](ht If you experience issues with the RPC endpoint: - Join our [Telegram Community](https://t.me/statusl2) for support -- Consider implementing a fallback RPC strategy in your application \ No newline at end of file +- Consider implementing a fallback RPC strategy in your application diff --git a/docs/tools/testnet-faucets.md b/docs/tools/core-infrastructure/testnet-faucets.md similarity index 97% rename from docs/tools/testnet-faucets.md rename to docs/tools/core-infrastructure/testnet-faucets.md index 7e40043..63f67fe 100644 --- a/docs/tools/testnet-faucets.md +++ b/docs/tools/core-infrastructure/testnet-faucets.md @@ -2,6 +2,7 @@ title: Testnet Faucets description: Get testnet ETH or STT for Status Network development. Complete guide to obtaining test tokens through Status Network faucets and Sepolia faucets for bridging. keywords: [Status Network faucet, testnet ETH, test tokens, STT, Sepolia faucet, blockchain testing, development tokens] +slug: /tools/core-infrastructure/testnet-faucets --- To get started on Status Network testnet, you may need some testnet ETH or test assets. diff --git a/docs/tools/index.md b/docs/tools/index.md index fc7f18a..f3929f9 100644 --- a/docs/tools/index.md +++ b/docs/tools/index.md @@ -13,12 +13,20 @@ A complete reference of developer tools, infrastructure services, and integratio Essential services for building and testing on Status Network: -| Tool | Description | Link | -|---|---|---| -| **RPC Endpoints** | Public JSON-RPC and WebSocket access | [RPC →](/tools/rpc) | -| **Bridge** | Transfer assets between Ethereum Sepolia and Status Network | [Bridge →](/tools/bridge) | -| **Testnet Faucets** | Get testnet assets for development | [Faucets →](/tools/testnet-faucets) | -| **Block Explorers** | Browse transactions, contracts, and network activity | [Explorers →](/tools/block-explorers) | +| Tool | Description | +|---|---| +| [**RPC Endpoints**](/tools/core-infrastructure/rpc-endpoints) | Public JSON-RPC access and RPC documentation | +| [**Bridge**](/tools/core-infrastructure/bridge) | Transfer assets between Ethereum Sepolia and Status Network | +| [**Testnet Faucets**](/tools/core-infrastructure/testnet-faucets) | Get testnet assets for development | +| [**Block Explorers**](/tools/core-infrastructure/block-explorers) | Browse transactions, contracts, and network activity | + +## RPC + +For RPC documentation including public endpoints, JSON-RPC API reference, and self-hosted node setup, start with: + +- [RPC Endpoints](/tools/core-infrastructure/rpc-endpoints) — public endpoint URL, setup examples, rate limits, and supported methods overview +- [JSON-RPC API](/tools/rpc/json-rpc) — method reference and Status Network-specific RPC behavior +- [Running an RPC Node](/tools/rpc/running-an-rpc) — self-hosted node setup and operations guidance ## Infrastructure Partners diff --git a/docs/build-for-karma/rpc/json-rpc.md b/docs/tools/rpc/json-rpc.md similarity index 95% rename from docs/build-for-karma/rpc/json-rpc.md rename to docs/tools/rpc/json-rpc.md index 6213cd9..945f50e 100644 --- a/docs/build-for-karma/rpc/json-rpc.md +++ b/docs/tools/rpc/json-rpc.md @@ -18,7 +18,7 @@ Status Network is based on Linea zkEVM, meaning **most JSON-RPC methods behave e For the canonical list of supported methods and their standard semantics, refer to the following official documentations: -- **[Ethereum JSON-RPC API](https://ethereum.github.io/execution-apis/api-documented/)** — standard Ethereum RPC methods +- **[Ethereum JSON-RPC API Reference](https://ethereum.github.io/execution-apis/)** — standard Ethereum RPC methods - **[Linea JSON-RPC API Reference](https://docs.linea.build/api/reference)** — Linea-specific methods, including `linea_estimateGas` ## Status Network extensions diff --git a/docs/build-for-karma/rpc/running-an-rpc.md b/docs/tools/rpc/running-an-rpc.md similarity index 100% rename from docs/build-for-karma/rpc/running-an-rpc.md rename to docs/tools/rpc/running-an-rpc.md diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 544012f..dae3721 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -232,7 +232,16 @@ const config: Config = { }, { from: '/tutorials/running-an-rpc', - to: '/build-for-karma/rpc/running-an-rpc', + to: '/tools/rpc/running-an-rpc', + }, + // Old build-for-karma RPC paths to new tools/rpc paths + { + from: '/build-for-karma/rpc/json-rpc', + to: '/tools/rpc/json-rpc', + }, + { + from: '/build-for-karma/rpc/running-an-rpc', + to: '/tools/rpc/running-an-rpc', }, // Old root-level paths to overview { diff --git a/sidebars.ts b/sidebars.ts index 4b086f9..1d4e2d7 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -194,23 +194,6 @@ const sidebars: SidebarsConfig = { }, ], }, - { - type: 'category', - label: 'RPC', - collapsed: false, - items: [ - { - type: 'doc', - id: 'build-for-karma/rpc/json-rpc', - label: '🔌 JSON-RPC API', - }, - { - type: 'doc', - id: 'build-for-karma/rpc/running-an-rpc', - label: '🌐 Running an RPC node', - }, - ], - }, ], toolsSidebar: [ { @@ -223,24 +206,48 @@ const sidebars: SidebarsConfig = { }, items: [ { - type: 'doc', - id: 'tools/rpc', - label: '🔌 RPC', + type: 'category', + label: 'CORE INFRASTRUCTURE', + collapsed: false, + items: [ + { + type: 'doc', + id: 'tools/core-infrastructure/rpc-endpoints', + label: '📡 RPC Endpoints', + }, + { + type: 'doc', + id: 'tools/core-infrastructure/bridge', + label: '🌉 Bridge', + }, + { + type: 'doc', + id: 'tools/core-infrastructure/testnet-faucets', + label: '🚰 Testnet Faucets', + }, + { + type: 'doc', + id: 'tools/core-infrastructure/block-explorers', + label: '🔎 Block Explorers', + }, + ], }, { - type: 'doc', - id: 'tools/bridge', - label: '🌉 Bridge', - }, - { - type: 'doc', - id: 'tools/testnet-faucets', - label: '🚰 Testnet Faucets', - }, - { - type: 'doc', - id: 'tools/block-explorers', - label: '🔎 Block Explorers', + type: 'category', + label: 'RPC', + collapsed: false, + items: [ + { + type: 'doc', + id: 'tools/rpc/json-rpc', + label: '🔌 JSON-RPC API', + }, + { + type: 'doc', + id: 'tools/rpc/running-an-rpc', + label: '🌐 Running an RPC Node', + }, + ], }, ], }, From 1d3fa88c9b435295acf2eeb45a207171777135cb Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Thu, 26 Feb 2026 21:17:48 +0100 Subject: [PATCH 31/36] Add builder index page - Expanded the Build for Karma index with a comprehensive introduction for builders on Status Network. Signed-off-by: yjkellyjoo --- docs/build-for-karma/index.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/build-for-karma/index.md b/docs/build-for-karma/index.md index 506d606..728ea1f 100644 --- a/docs/build-for-karma/index.md +++ b/docs/build-for-karma/index.md @@ -1,6 +1,21 @@ --- id: build-for-karma-index title: Build for Karma +description: Everything builders need to ship on Status Network — guides for gasless and reputation integration, deployment tutorials, and app ideas. +keywords: [Status Network, builder guides, Karma, gasless integration, reputation, deploy contracts, app ideas, developer documentation] slug: /build-for-karma sidebar_position: 1 --- + +This section is your builder hub for Status Network. Whether you want to understand the benefits of building here, explore what to build, learn how to implement gasless transactions, or deploy your first smart contract — everything you need for Karma-focused building is here. + +## Where to Start + +- [**Why Status Network**](/build-for-karma/why-status-network): The case for building here — gasless economics, Karma, public funding, and how it compares to other L2s. +- [**What to Build**](/build-for-karma/what-to-build): Interactive idea catalog with filterable app ideas to help your creation. +- [**Using Karma**](/build-for-karma/guides): Technical guides for integrating gasless transactions and reputation-aware features into your app. +- [**Deploy Your First Contract**](/build-for-karma/deploying-contracts): Step-by-step contract deployment with Hardhat, Foundry, Remix, or Scaffold-ETH 2. + +## Community + +- Join the [Telegram Builder's Community](https://t.me/statusl2) to get help building on Status Network From 3f4e5e6a48d1b37979a65cf18cf9157662fab3e9 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Tue, 3 Mar 2026 01:30:02 +0100 Subject: [PATCH 32/36] Add i18n translations for the new and updated docs Signed-off-by: yjkellyjoo --- i18n/ja/code.json | 440 ++++++++++++++++++ .../current.json | 224 ++++----- .../deploying-contracts/index.md | 72 +++ .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 2 +- .../deploying-contracts/using-se2.md | 2 +- .../guides/gasless-integration.md | 4 +- .../current/build-for-karma/index.md | 21 + .../current/build-for-karma/running-an-rpc.md | 218 --------- .../current/build-for-karma/what-to-build.md | 31 ++ .../build-for-karma/why-status-network.md | 138 ++++++ .../current/overview/general-info/privacy.md | 1 + .../current/overview/index.md | 2 +- .../block-explorers.md | 0 .../tools/{ => core-infrastructure}/bridge.md | 0 .../rpc-endpoints.md} | 54 +-- .../testnet-faucets.md | 0 .../current/tools/index.md | 8 +- .../current/tools/infrastructure.md | 2 +- .../rpc/json-rpc.md | 0 .../current/tools/rpc/running-an-rpc.md | 219 +++++++++ i18n/ko/code.json | 440 ++++++++++++++++++ .../current.json | 224 ++++----- .../deploying-contracts/index.md | 72 +++ .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 2 +- .../deploying-contracts/using-se2.md | 2 +- .../guides/gasless-integration.md | 4 +- .../current/build-for-karma/index.md | 21 + .../current/build-for-karma/what-to-build.md | 31 ++ .../build-for-karma/why-status-network.md | 138 ++++++ .../current/overview/general-info/privacy.md | 1 + .../current/overview/index.md | 2 +- .../block-explorers.md | 0 .../tools/{ => core-infrastructure}/bridge.md | 0 .../rpc-endpoints.md} | 0 .../testnet-faucets.md | 0 .../current/tools/index.md | 8 +- .../current/tools/infrastructure.md | 2 +- .../rpc/json-rpc.md | 0 .../rpc}/running-an-rpc.md | 0 i18n/zh/code.json | 440 ++++++++++++++++++ .../current.json | 230 ++++----- .../deploying-contracts/index.md | 72 +++ .../deploying-contracts/using-foundry.md | 2 +- .../deploying-contracts/using-hardhat.md | 2 +- .../deploying-contracts/using-remix.md | 2 +- .../deploying-contracts/using-se2.md | 2 +- .../guides/gasless-integration.md | 4 +- .../current/build-for-karma/index.md | 21 + .../current/build-for-karma/running-an-rpc.md | 219 --------- .../current/build-for-karma/what-to-build.md | 31 ++ .../build-for-karma/why-status-network.md | 138 ++++++ .../current/overview/general-info/privacy.md | 1 + .../current/overview/index.md | 2 +- .../block-explorers.md | 0 .../tools/{ => core-infrastructure}/bridge.md | 0 .../rpc-endpoints.md} | 4 + .../testnet-faucets.md | 0 .../current/tools/index.md | 8 +- .../current/tools/infrastructure.md | 2 +- .../rpc/json-rpc.md | 0 .../current/tools/rpc/running-an-rpc.md | 219 +++++++++ src/components/IdeaCatalog/FilterBar.tsx | 56 ++- src/components/IdeaCatalog/IdeaCard.tsx | 25 +- src/components/IdeaCatalog/IdeaCatalog.tsx | 10 +- src/components/IdeaCatalog/ideaData.ts | 147 +++--- src/components/IdeaCatalog/types.ts | 106 +++-- 70 files changed, 3132 insertions(+), 1004 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md delete mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md rename i18n/ja/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/block-explorers.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/bridge.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/tools/{rpc.md => core-infrastructure/rpc-endpoints.md} (50%) rename i18n/ja/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/testnet-faucets.md (100%) rename i18n/ja/docusaurus-plugin-content-docs/current/{build-for-karma => tools}/rpc/json-rpc.md (100%) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md rename i18n/ko/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/block-explorers.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/bridge.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/tools/{rpc.md => core-infrastructure/rpc-endpoints.md} (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/testnet-faucets.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{build-for-karma => tools}/rpc/json-rpc.md (100%) rename i18n/ko/docusaurus-plugin-content-docs/current/{build-for-karma => tools/rpc}/running-an-rpc.md (100%) create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md rename i18n/zh/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/block-explorers.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/bridge.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/tools/{rpc.md => core-infrastructure/rpc-endpoints.md} (96%) rename i18n/zh/docusaurus-plugin-content-docs/current/tools/{ => core-infrastructure}/testnet-faucets.md (100%) rename i18n/zh/docusaurus-plugin-content-docs/current/{build-for-karma => tools}/rpc/json-rpc.md (100%) create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md diff --git a/i18n/ja/code.json b/i18n/ja/code.json index ffaea89..5096ed5 100644 --- a/i18n/ja/code.json +++ b/i18n/ja/code.json @@ -544,5 +544,445 @@ "homepage.community.official.description": { "message": "ウェブサイト、ソーシャルチャンネル、すべての公式リソースを一か所に", "description": "Homepage community card description for official links" + }, + "ideaCatalog.filter.category": { + "message": "カテゴリ", + "description": "Filter group label" + }, + "ideaCatalog.filter.statusPrimitives": { + "message": "Status固有機能", + "description": "Filter group label" + }, + "ideaCatalog.filter.builderProfile": { + "message": "ビルダープロフィール", + "description": "Filter group label" + }, + "ideaCatalog.filter.difficulty": { + "message": "難易度", + "description": "Filter group label" + }, + "ideaCatalog.filter.fewerFilters": { + "message": "フィルターを閉じる", + "description": "Toggle button label" + }, + "ideaCatalog.filter.moreFilters": { + "message": "フィルターをもっと見る", + "description": "Toggle button label" + }, + "ideaCatalog.filter.domainExpertise": { + "message": "ドメイン専門性", + "description": "Filter group label" + }, + "ideaCatalog.filter.userSegment": { + "message": "ユーザーセグメント", + "description": "Filter group label" + }, + "ideaCatalog.filter.capitalRequirement": { + "message": "資本要件", + "description": "Filter group label" + }, + "ideaCatalog.status.showing": { + "message": "{totalCount}件中{visibleCount}件を表示", + "description": "Status text" + }, + "ideaCatalog.status.clearAll": { + "message": "すべてクリア", + "description": "Clear all filters button" + }, + "ideaCatalog.card.whyStatus": { + "message": "Why Status:", + "description": "Card detail label" + }, + "ideaCatalog.card.mvpScope": { + "message": "MVPスコープ:", + "description": "Card detail label" + }, + "ideaCatalog.card.security": { + "message": "セキュリティ", + "description": "Card meta badge label" + }, + "ideaCatalog.card.opsBurden": { + "message": "運用負担", + "description": "Card meta badge label" + }, + "ideaCatalog.empty.message": { + "message": "現在のフィルターに一致するアイデアはありません。", + "description": "Empty state message" + }, + "ideaCatalog.empty.clearAll": { + "message": "すべてのフィルターをクリア", + "description": "Empty state clear button" + }, + "ideaCatalog.category.reputation": { + "message": "レピュテーション", + "description": "Category label" + }, + "ideaCatalog.category.privacy": { + "message": "プライバシー", + "description": "Category label" + }, + "ideaCatalog.category.social": { + "message": "ソーシャル", + "description": "Category label" + }, + "ideaCatalog.category.games": { + "message": "ゲーム", + "description": "Category label" + }, + "ideaCatalog.category.defi": { + "message": "DeFi", + "description": "Category label" + }, + "ideaCatalog.statusPrimitive.gasless": { + "message": "ガスレス", + "description": "Status primitive label" + }, + "ideaCatalog.statusPrimitive.reputation": { + "message": "評判", + "description": "Status primitive label" + }, + "ideaCatalog.statusPrimitive.privacy": { + "message": "プライバシー", + "description": "Status primitive label" + }, + "ideaCatalog.builderProfile.frontendDev": { + "message": "Web / モバイル開発", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.contractDev": { + "message": "スマートコントラクト開発", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.fullStack": { + "message": "フルスタック", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.protocolDev": { + "message": "プロトコル / 暗号学", + "description": "Builder profile label" + }, + "ideaCatalog.difficulty.lowMed": { + "message": "低〜中", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.med": { + "message": "中", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.medHigh": { + "message": "中〜高", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.high": { + "message": "高", + "description": "Difficulty label" + }, + "ideaCatalog.userSegment.consumer": { + "message": "コンシューマー", + "description": "User segment label" + }, + "ideaCatalog.userSegment.communityCreator": { + "message": "コミュニティ/クリエイター", + "description": "User segment label" + }, + "ideaCatalog.userSegment.daoOrgOps": { + "message": "DAO/組織運営", + "description": "User segment label" + }, + "ideaCatalog.userSegment.traderDefi": { + "message": "トレーダー/DeFi", + "description": "User segment label" + }, + "ideaCatalog.domainExpertise.communityDesign": { + "message": "コミュニティデザイン", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.defiMechanisms": { + "message": "DeFiメカニズム", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.privacy": { + "message": "プライバシー", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.paymentsFinops": { + "message": "決済/FinOps", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.consumerProduct": { + "message": "コンシューマープロダクト", + "description": "Domain expertise label" + }, + "ideaCatalog.capitalReq.none": { + "message": "不要", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.operatingTreasury": { + "message": "運用資金", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.seedLiquidity": { + "message": "シード流動性", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.deepLiquidity": { + "message": "深い流動性", + "description": "Capital requirement label" + }, + "ideaCatalog.idea.karmaGatedAccess.title": { + "message": "Karmaゲート付きコンテンツフィード", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaGatedAccess.what": { + "message": "クリエイターが最小Karmaティアを満たすフォロワーにのみ表示される投稿を公開するソーシャルフィード。Substackとオンチェーンレピュテーションの融合。", + "description": "Idea what" + }, + "ideaCatalog.idea.karmaGatedAccess.whyStatus": { + "message": "Karmaティアはオンチェーンで解決されるため、アクセス制御はトラストレス。サブスクリプション課金なし、プラットフォームロックインなし、Sybil耐性を設計。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.karmaGatedAccess.mvp": { + "message": "公開+ゲート付き投稿のあるフィード、ティアチェックミドルウェア(オプションでオンチェーン)、Karmaティア別のオーディエンス内訳を表示するクリエイターダッシュボード。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.title": { + "message": "Karmaブースト付きイールドボールト", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.what": { + "message": "より高いKarmaティアの預金者がブーストされたAPYを受け取るDeFiボールト。初期サポーターとアクティブ参加者がより良いリターンを得る。", + "description": "Idea what" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.whyStatus": { + "message": "ネイティブレピュテーショングラフにより、ボールトはトークン加重投票やオフチェーンの許可リストではなく、実証済みの参加度に基づいて報酬を配分できる。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.mvp": { + "message": "2つのイールドティアを持つ単一資産ボールト、預金時のオンチェーンKarmaティア検索、ティア別の実効APYを表示するダッシュボード。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.karmaIncentiveMarket.title": { + "message": "Karmaバウンティボード", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaIncentiveMarket.what": { + "message": "Karma閾値を超えるユーザーのみがタスクを申請できるバウンティマーケットプレイス。プロジェクトチームが作業(バグ報告、翻訳、オンボーディングガイド)を投稿し、認証された貢献者に報酬を支払う。", + "description": "Idea what" + }, + "ideaCatalog.idea.karmaIncentiveMarket.whyStatus": { + "message": "Karmaゲートによりスパムボットや低品質の提出を排除し、バウンティ発行者は申請者がネットワークに実際の実績を持つことを信頼できる。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.karmaIncentiveMarket.mvp": { + "message": "バウンティ一覧ページ、Karmaゲート付き申請フロー、提出物レビューパネル、承認時のオンチェーン支払い。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.karmaDynamicPricing.title": { + "message": "Karmaティア付きNFTマーケットプレイス", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaDynamicPricing.what": { + "message": "出品者・購入者のKarmaティアに基づいて出品手数料、ロイヤリティ、先行アクセス期間が調整されるNFTマーケットプレイス。信頼された参加者には自動的に有利な条件が適用される。", + "description": "Idea what" + }, + "ideaCatalog.idea.karmaDynamicPricing.whyStatus": { + "message": "チェックアウト時のオンチェーン tier resolution により、動的価格設定がトラストレスに適用される。クーポンコードもバックエンド許可リストも不要。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.karmaDynamicPricing.mvp": { + "message": "NFT出品+購入フロー(ティア付き手数料スケジュール)、チェックアウト時のオンチェーン tier check、購入者ティア別の売上を表示する出品者分析。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.stealthAddressPayments.title": { + "message": "ステルスアドレス決済", + "description": "Idea title" + }, + "ideaCatalog.idea.stealthAddressPayments.what": { + "message": "リンク不可能な支出パスを持つ使い捨て受信アドレス。", + "description": "Idea what" + }, + "ideaCatalog.idea.stealthAddressPayments.whyStatus": { + "message": "プライバシープリミティブ+低摩擦トランザクションUX。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.stealthAddressPayments.mvp": { + "message": "アドレス生成、受信フロー、プライベート支出フロー。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.privatePayroll.title": { + "message": "プライベート給与・貯蓄", + "description": "Idea title" + }, + "ideaCatalog.idea.privatePayroll.what": { + "message": "残高と受取人を公開しない給与・貯蓄レール。", + "description": "Idea what" + }, + "ideaCatalog.idea.privatePayroll.whyStatus": { + "message": "公開台帳が期待に応えられない現実世界のニーズ。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.privatePayroll.mvp": { + "message": "雇用主支払いバッチ+受取人請求+シールド付きボールト。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.shieldedMicrotransactions.title": { + "message": "シールド付きマイクロ決済 / カードレイヤー", + "description": "Idea title" + }, + "ideaCatalog.idea.shieldedMicrotransactions.what": { + "message": "金額・参加者を隠した低額決済とサブスクリプション。", + "description": "Idea what" + }, + "ideaCatalog.idea.shieldedMicrotransactions.whyStatus": { + "message": "Gasless相互作用により頻繁な決済が実現可能。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.shieldedMicrotransactions.mvp": { + "message": "定期認証付きプライベートチップ/サブスクリプションフロー。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.privateLending.title": { + "message": "プライベート貸借", + "description": "Idea title" + }, + "ideaCatalog.idea.privateLending.what": { + "message": "公開ポジション漏洩を避ける借入・貸出フロー。", + "description": "Idea what" + }, + "ideaCatalog.idea.privateLending.whyStatus": { + "message": "プライバシー+Karmaベースの信頼シグナル。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.privateLending.mvp": { + "message": "1種類の担保、1種類の借入資産、プライベートヘルスチェック。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.privateMultisig.title": { + "message": "プライベート多重署名", + "description": "Idea title" + }, + "ideaCatalog.idea.privateMultisig.what": { + "message": "署名者、閾値、取引詳細が隠蔽される多重署名機能。", + "description": "Idea what" + }, + "ideaCatalog.idea.privateMultisig.whyStatus": { + "message": "プライバシー重視の組織でもオンチェーンで運営可能。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.privateMultisig.mvp": { + "message": "ポリシー設定+署名フロー+選択的開示付き実行ログ。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.socialMiniApp.title": { + "message": "Gaslessマイクロブログプラットフォーム", + "description": "Idea title" + }, + "ideaCatalog.idea.socialMiniApp.what": { + "message": "すべての投稿、返信、いいねがユーザーに無料のオンチェーンアクションとなるTwitter風マイクロブログ。Karmaバッジで信頼された声を可視化。", + "description": "Idea what" + }, + "ideaCatalog.idea.socialMiniApp.whyStatus": { + "message": "Gaslessトランザクションにより投稿・アクションごとの経済が実現可能。Karmaバッジは任意の青チェックシステムを、実際のネットワーク参加に基づくレピュテーションに置き換える。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.socialMiniApp.mvp": { + "message": "タイムライン、投稿/返信/いいねアクション、Karma信頼バッジ付きユーザープロフィール、基本コンテンツモデレーション。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.creatorEconomyToolkit.title": { + "message": "ファンパスプラットフォーム", + "description": "Idea title" + }, + "ideaCatalog.idea.creatorEconomyToolkit.what": { + "message": "クリエイターが限定コンテンツ、グループチャット、IRLイベントアクセスをアンロックする無料デジタルパスをミントするプラットフォーム。ファンはGaslessでパスを収集。", + "description": "Idea what" + }, + "ideaCatalog.idea.creatorEconomyToolkit.whyStatus": { + "message": "ゼロコストのミントと請求により、コミュニティパスからのペイウォール摩擦を排除。クリエイターはファンにガス代を払わせることなくオーディエンスを拡大できる。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.creatorEconomyToolkit.mvp": { + "message": "パスミント付きクリエイターページ、ファン請求フロー、パスゲート付きコンテンツセクション、パス検証によるイベントチェックイン。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.communityGovernance.title": { + "message": "DAO提案・Karma加重投票アプリ", + "description": "Idea title" + }, + "ideaCatalog.idea.communityGovernance.what": { + "message": "コミュニティメンバーが提案を提出し、Karmaティアに比例した重みで投票するガバナンスアプリ。アクティブな貢献者は受動的なホルダーより大きな声を持つ。", + "description": "Idea what" + }, + "ideaCatalog.idea.communityGovernance.whyStatus": { + "message": "Karma加重投票はトークン蓄積ではなく実際の参加を報酬。Gasless投票はほとんどのDAOで投票率を抑えるコスト障壁を除去。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.communityGovernance.mvp": { + "message": "提案提出フォーム、オンチェーン集計付きKarma加重投票、ティア別参加内訳付き結果ダッシュボード。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.onchainStrategyGame.title": { + "message": "フォグオブウォー征服ゲーム", + "description": "Idea title" + }, + "ideaCatalog.idea.onchainStrategyGame.what": { + "message": "部隊の位置がプライベートステートで隠され、すべての移動がGaslessオンチェーントランザクションとなる六角グリッド領土争奪ゲーム。Riskボードゲームに本物のオンチェーンフォグオブウォーを融合。", + "description": "Idea what" + }, + "ideaCatalog.idea.onchainStrategyGame.whyStatus": { + "message": "プライバシープリミティブにより真の隠蔽情報(クライアントサイドのフォグのみではない)を実現。Gasless移動により戦略ゲームの迅速な往来が経済的に可能に。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.onchainStrategyGame.mvp": { + "message": "フォグオブウォー付き六角マップ、1種類のユニット、プライベート部隊配置、ターン解決、マッチリーダーボード。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.predictionMarket.title": { + "message": "予測市場", + "description": "Idea title" + }, + "ideaCatalog.idea.predictionMarket.what": { + "message": "低摩擦のエントリーとプライベート参加者ポジションを持つ市場。", + "description": "Idea what" + }, + "ideaCatalog.idea.predictionMarket.whyStatus": { + "message": "より良い市場参加とコピートレード行動の減少。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.predictionMarket.mvp": { + "message": "市場作成+ポジションエントリー+決済+基本分析。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.nativeDexCompanion.title": { + "message": "Karmaティア付きスワップルーター", + "description": "Idea title" + }, + "ideaCatalog.idea.nativeDexCompanion.what": { + "message": "最良のオンチェーンプールを経由して取引をルーティングし、高Karmaユーザーに手数料削減と優先実行を提供するスワップインターフェース。DEXレイヤーに組み込まれたロイヤルティプログラム。", + "description": "Idea what" + }, + "ideaCatalog.idea.nativeDexCompanion.whyStatus": { + "message": "Karmaティアによりルーターがトラストレスに手数料割引を提供。ネイティブ流動性との緊密な統合により、外部アグリゲーターの依存なしでより良いレートを実現。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.nativeDexCompanion.mvp": { + "message": "ティア付き手数料表示付きトークンスワップUI、Karma対応ルーティングロジック、LPポジションパネル、ティア別の節約手数料を表示する取引履歴。", + "description": "Idea mvp" + }, + "ideaCatalog.idea.publicFundingInterface.title": { + "message": "パブリックファンディングインターフェース", + "description": "Idea title" + }, + "ideaCatalog.idea.publicFundingInterface.what": { + "message": "エンドツーエンドのgrant発見、提案、投票、追跡ダッシュボード。", + "description": "Idea what" + }, + "ideaCatalog.idea.publicFundingInterface.whyStatus": { + "message": "エコシステム成長フライホイールを直接支援。", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.publicFundingInterface.mvp": { + "message": "提案ボード+投票画面+grant進捗トラッカー。", + "description": "Idea mvp" } } diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json index 22eda16..e0d0cbb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -23,122 +23,18 @@ "message": "🌉 ブリッジ", "description": "The label for category 🌉 Bridge in sidebar homeSidebar" }, - "sidebar.toolsSidebar.category.TOOLS": { - "message": "ツール", - "description": "The label for category TOOLS in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.category.PARTNERS": { - "message": "パートナー", - "description": "The label for category PARTNERS in sidebar toolsSidebar" - }, - "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { - "message": "Karma開発", - "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { - "message": "🛠 Karma開発ガイド", - "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.USING KARMA": { - "message": "Karmaを使う", - "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { - "message": "コントラクトのデプロイ", - "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.RPC": { - "message": "RPC", - "description": "The label for category RPC in sidebar buildForKarmaSidebar" - }, "sidebar.homeSidebar.category.OTHER DOCS": { "message": "その他のドキュメント", "description": "The label for category OTHER DOCS in sidebar homeSidebar" }, "sidebar.homeSidebar.doc.🌴 Home": { "message": "🌴 ホーム", - "description": "The label for the doc item 🌴 Home in sidebar homeSidebar, linking to the doc index" + "description": "The label for the doc item 🌴 Home in sidebar homeSidebar" }, "sidebar.homeSidebar.doc.⚡ Quick Start": { "message": "⚡ クイックスタート", "description": "The label for the doc item ⚡ Quick Start in sidebar homeSidebar" }, - "sidebar.homeSidebar.doc.💎 SNT Token": { - "message": "💎 SNT Token", - "description": "The label for the doc item 💎 SNT Token in sidebar homeSidebar, linking to the doc tokenomics/snt-token" - }, - "sidebar.homeSidebar.doc.💠 Karma Token": { - "message": "💠 Karma Token", - "description": "The label for the doc item 💠 Karma Token in sidebar homeSidebar, linking to the doc tokenomics/karma-token" - }, - "sidebar.homeSidebar.doc.🌐 Network Details": { - "message": "🌐 ネットワーク詳細", - "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.➕ Add Status Network": { - "message": "➕ Status ネットワークの追加", - "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.💰 Tokens": { - "message": "💰 トークン", - "description": "The label for the doc item 💰 Tokens in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { - "message": "🧪 テストネットコントラクト", - "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { - "message": "🧪 テストネットブリッジ", - "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" - }, - "sidebar.toolsSidebar.doc.🔌 RPC": { - "message": "🔌 RPC", - "description": "The label for the doc item 🔌 RPC in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🌉 Bridge": { - "message": "🌉 ブリッジ", - "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { - "message": "🚰 テストネットフォーセット", - "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🔎 Block Explorers": { - "message": "🔎 ブロックエクスプローラー", - "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { - "message": "🤝 インフラパートナー", - "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { - "message": "⛽ ガスレス統合", - "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { - "message": "🔰 レピュテーション統合", - "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { - "message": "🎩 Hardhatの使用", - "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { - "message": "⚒️ Foundryの使用", - "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { - "message": "🎛️ Remixの使用", - "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { - "message": "🏗 Scaffold-ETH 2 使用", - "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" - }, - "sidebar.homeSidebar.doc.🔗 Official Links": { - "message": "🔗 公式リンク", - "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" - }, "sidebar.homeSidebar.doc.🤝 Economic Model": { "message": "🤝 経済モデル", "description": "The label for the doc item 🤝 Economic Model in sidebar homeSidebar" @@ -159,20 +55,128 @@ "message": "💰 事前預入", "description": "The label for the doc item 💰 Pre-Deposits in sidebar homeSidebar" }, + "sidebar.homeSidebar.doc.🌐 Network Details": { + "message": "🌐 ネットワーク詳細", + "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" + }, + "sidebar.homeSidebar.doc.⛽ Gasless Transactions": { + "message": "⛽ ガスレストランザクション", + "description": "The label for the doc item ⛽ Gasless Transactions in sidebar homeSidebar" + }, + "sidebar.homeSidebar.doc.➕ Add Status Network": { + "message": "➕ Status ネットワークの追加", + "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" + }, "sidebar.homeSidebar.doc.🪙 Tokens": { "message": "🪙 トークン", "description": "The label for the doc item 🪙 Tokens in sidebar homeSidebar" }, + "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { + "message": "🧪 テストネットコントラクト", + "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" + }, "sidebar.homeSidebar.doc.💰 Pre-Deposit Vault Contracts": { "message": "💰 プリ・デポジット金庫コントラクト", "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, - "sidebar.buildForKarmaSidebar.doc.🔌 JSON-RPC API": { - "message": "🔌 JSON-RPC API", - "description": "The label for the doc item 🔌 JSON-RPC API in sidebar buildForKarmaSidebar" + "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { + "message": "🧪 テストネットブリッジ", + "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" }, - "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { + "sidebar.homeSidebar.doc.🔗 Official Links": { + "message": "🔗 公式リンク", + "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" + }, + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "Karma開発", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { + "message": "🛠 Karma開発ガイド", + "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🌟 Why Status Network": { + "message": "🌟 なぜStatus Networkか", + "description": "The label for the doc item 🌟 Why Status Network in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.💡 What to Build": { + "message": "💡 アイデアカタログ", + "description": "The label for the doc item 💡 What to Build in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.USING KARMA": { + "message": "Karmaを使う", + "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { + "message": "⛽ ガスレス統合", + "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { + "message": "🔰 レピュテーション統合", + "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { + "message": "コントラクトのデプロイ", + "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { + "message": "🎩 Hardhatの使用", + "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { + "message": "⚒️ Foundryの使用", + "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { + "message": "🎛️ Remixの使用", + "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { + "message": "🏗 Scaffold-ETH 2 使用", + "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" + }, + "sidebar.toolsSidebar.category.TOOLS": { + "message": "ツール", + "description": "The label for category TOOLS in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.CORE INFRASTRUCTURE": { + "message": "コアインフラストラクチャ", + "description": "The label for category CORE INFRASTRUCTURE in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.📡 RPC Endpoints": { + "message": "📡 RPCエンドポイント", + "description": "The label for the doc item 📡 RPC Endpoints in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🌉 Bridge": { + "message": "🌉 ブリッジ", + "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { + "message": "🚰 テストネットフォーセット", + "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🔎 Block Explorers": { + "message": "🔎 ブロックエクスプローラー", + "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.RPC": { + "message": "RPC", + "description": "The label for category RPC in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🔌 JSON-RPC API": { + "message": "🔌 JSON-RPC API", + "description": "The label for the doc item 🔌 JSON-RPC API in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🌐 Running an RPC Node": { "message": "🌐 RPCノードの運用", - "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" + "description": "The label for the doc item 🌐 Running an RPC Node in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.PARTNERS": { + "message": "パートナー", + "description": "The label for category PARTNERS in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { + "message": "🤝 インフラパートナー", + "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" } } diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md new file mode 100644 index 0000000..263b598 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md @@ -0,0 +1,72 @@ +--- +id: deploying-contracts-index +title: 最初のコントラクトをデプロイする +description: Status Networkでスマートコントラクトを稼働させるためのデプロイツールを選択してください。Hardhat、Foundry、Remix、Scaffold-ETH 2のガイドがあります。 +keywords: [deploy smart contract, Status Network, Hardhat, Foundry, Remix, Scaffold-ETH 2, blockchain deployment, EVM] +slug: /build-for-karma/deploying-contracts +sidebar_position: 1 +--- + +Status Networkは完全なEVM互換なので、標準的なイーサリアムツールチェーンを使ってコントラクトをデプロイできます。ワークフローに合ったツールを選び、ステップバイステップのガイドに従ってテストネットに最初のコントラクトをデプロイしましょう。 + +:::tip 開始前に +[ウォレットにStatus Networkを追加](/overview/general-info/add-status-network)し、[テストネットETH](/tools/core-infrastructure/testnet-faucets)を入手しておいてください。 +::: + +## デプロイツールを選ぶ + +
+ + +
🎩
+
+

Hardhat

+

Solidityコントラクトのコンパイル、テスト、デプロイのための業界標準の開発環境。Hardhat IgnitionとTypeScriptサポート付き。

+ TypeScript · テスト · Ignition +
+
+ + +
⚒️
+
+

Foundry

+

Rustベースの高速スマートコントラクト開発ツールキット。Solidityでテストを書き、Castでコントラクトとやり取り。

+ Solidityテスト · Cast · 高速ビルド +
+
+ + +
🎛️
+
+

Remix IDE

+

ゼロセットアップのブラウザベースIDE。クイックプロトタイピング、学習、ローカルツールなしでのシンプルなコントラクトのデプロイに最適。

+ ブラウザベース · セットアップ不要 · 初心者向け +
+
+ + +
🏗️
+
+

Scaffold-ETH 2

+

Status Network拡張がプリ設定されたフルスタックスターターキット。NextJSフロントエンド、コントラクトのホットリロード、HardhatとFoundryの両方に対応。

+ フルスタック · NextJS · ホットリロード +
+
+ +
+ +## どれを選べばいいか迷っている場合 + +| ツール | 最適な用途 | 必要なセットアップ | +|---|---|---| +| **Hardhat** | 複雑なテストとデプロイパイプラインを持つ本番プロジェクト | Node.js + npm | +| **Foundry** | Solidityネイティブのテストと高速コンパイルを好む開発者 | Rustツールチェーン | +| **Remix** | クイック実験、学習、シンプルな単発デプロイ | 不要(ブラウザ) | +| **Scaffold-ETH 2** | 初日からフロントエンドが必要なフルスタックdApp | Node.js + npm | + +## デプロイ後 + +コントラクトが稼働したら、次のステップは以下の通りです: + +- [ガスレス取引の統合](/build-for-karma/guides/gasless-integration) — Karmaを通じてユーザーがガス代を支払わずに済む +- [レピュテーション統合ガイドを読む](/build-for-karma/guides/reputation-integration) — Karmaを使ったレピュテーション対応機能の構築 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index 6ef7f46..dd9886d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -9,7 +9,7 @@ - **Foundry**: [公式Foundryブック](https://book.getfoundry.sh/getting-started/installation)からインストール - **Ethereumウォレット**: Status Networkテストネット用のプライベートキー - **テストネットETH**: Status NetworkテストネットのETHが必要です - - Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます + - Status NetworkテストネットのETHは[フォーセット](/tools/core-infrastructure/testnet-faucets)から入手できます - **基本知識**: Solidityとコマンドラインの基礎知識 ## 達成目標 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index 6b69233..7666ce8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -9,7 +9,7 @@ - **Node.jsとnpm**: [公式Node.jsウェブサイト](https://nodejs.org/)からダウンロードしてインストール - **Ethereumウォレット**: Status Networkテストネット用のプライベートキーを持つMetaMaskまたは他のウォレット - **テストネットETH**: Status NetworkテストネットのETHが必要です - - Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます + - Status NetworkテストネットのETHは[フォーセット](/tools/core-infrastructure/testnet-faucets)から入手できます - **基本知識**: Solidity、Hardhat、コマンドラインの基礎知識 ## 達成目標 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index cf9715c..a9523f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -9,7 +9,7 @@ - **Webブラウザ**: ChromeやFirefoxなどの最新のブラウザ - **MetaMask**: [MetaMask](https://metamask.io)ブラウザ拡張機能をインストール - **テストネットETH**: Status NetworkテストネットのETHが必要です - - Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます + - Status NetworkテストネットのETHは[フォーセット](/tools/core-infrastructure/testnet-faucets)から入手できます - **ネットワーク設定**: [ネットワーク追加ガイド](/overview/general-info/add-status-network)に従ってMetaMaskにStatus Networkテストネットを追加 ## 手順 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index 96de2aa..76379dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -14,7 +14,7 @@ keywords: [Scaffold-ETH 2, スマートコントラクトデプロイ, Status Ne - **Foundry** (オプション): Foundryワークフローを選択する場合 - **Ethereumウォレット** (オプション): テスト用のEVMウォレットの秘密鍵ですが、持っていなくても問題ありません -> **注意**: Status Networkはガスレス取引をサポートしているため、テストネットETHはオプションです。それでもテストネットETHが必要な場合は、[Faucet](/tools/testnet-faucets)から取得してください。 +> **注意**: Status Networkはガスレス取引をサポートしているため、テストネットETHはオプションです。それでもテストネットETHが必要な場合は、[Faucet](/tools/core-infrastructure/testnet-faucets)から取得してください。 ## クイックスタート diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md index 0991650..b7740b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md @@ -15,7 +15,7 @@ Status Networkはプロトコルレベルでガスレストランザクション トランザクションUXを準備する際、ガス手数料の信頼できるソースとして`linea_estimateGas` RPCメソッドを使用してください。 ::: -その他のJSON-RPCメソッドのリファレンスについては、[JSON-RPC API](/build-for-karma/rpc/json-rpc)を参照してください。 +その他のJSON-RPCメソッドのリファレンスについては、[JSON-RPC API](/tools/rpc/json-rpc)を参照してください。 ## Karma対応の手数料推定 @@ -361,5 +361,5 @@ console.log({ ## 次のステップ -- [JSON-RPC API](/build-for-karma/rpc/json-rpc) +- [JSON-RPC API](/tools/rpc/json-rpc) - [レピュテーション統合](/build-for-karma/guides/reputation-integration) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/index.md index e69de29..47cf973 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/index.md @@ -0,0 +1,21 @@ +--- +id: build-for-karma-index +title: Build for Karma +description: Status Networkで構築するために必要なすべて — ガスレス・レピュテーション統合ガイド、デプロイチュートリアル、アプリアイデア。 +keywords: [Status Network, builder guides, Karma, gasless integration, reputation, deploy contracts, app ideas, developer documentation] +slug: /build-for-karma +sidebar_position: 1 +--- + +このセクションは、Status Networkのビルダーハブです。ここで構築するメリットを理解したい方、何を作るか探したい方、ガスレストランザクションの実装方法を学びたい方、最初のスマートコントラクトをデプロイしたい方 — Karma中心の開発に必要なすべてがここにあります。 + +## はじめに + +- [**なぜStatus Networkか**](/build-for-karma/why-status-network):ここで構築すべき理由 — ガスレス経済、Karma、パブリックファンディング、他のL2との比較。 +- [**何を作るか**](/build-for-karma/what-to-build):フィルタリング可能なアプリアイデアのインタラクティブカタログ。 +- [**Karmaを使う**](/build-for-karma/guides):ガスレストランザクションとレピュテーション対応機能をアプリに統合するための技術ガイド。 +- [**最初のコントラクトをデプロイ**](/build-for-karma/deploying-contracts):Hardhat、Foundry、Remix、またはScaffold-ETH 2を使ったステップバイステップのコントラクトデプロイ。 + +## コミュニティ + +- [Telegramビルダーコミュニティ](https://t.me/statusl2)に参加して、Status Networkでの構築に関するサポートを受けましょう diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md deleted file mode 100644 index 3ca9aba..0000000 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: 独自のRPCノードの運用 -description: 公式RPCツールを使用してStatus Network用の独自RPCノードをセットアップし、運用するための完全ガイド。ノードのセットアップ、設定、メンテナンスについて学びます。 -keywords: [RPCノード, Status Network RPC, ブロックチェーンノード, WebSocket, wss, セルフホストRPC, ネットワークインフラ, Status L2 RPCツール] ---- - -# 独自のRPCノードの運用 - -このチュートリアルでは、Status Network用の独自のRemote Procedure Call (RPC)ノードをセットアップして運用するプロセスをガイドします。独自のRPCノードを運用することで、Status Networkとのやり取りをより強力に制御し、プライバシーを強化し、サードパーティサービスへの依存を減らすことができます。 - -## はじめに - -[Status Network RPCツールリポジトリ](https://github.com/status-im/status-l2-rpc-tools)は、独自のRPCノードを運用するために必要なすべてのツール、ジェネシスファイル、セットアップスクリプトを提供します。 - -### 完全セットアップガイド -詳細なセットアップ手順、前提条件、システム要件、ステップバイステップのガイダンスについては、リポジトリ内の**[公式README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)**を参照してください。 - -## ノードオプション - -セットアップスクリプトは、選択可能な2つのノード実装を提供します: - -- **Besuノード**: ポート`8545`で実行 (http://localhost:8545) -- **Gethノード**: ポート`8445`で実行 (http://localhost:8445) - -必要に応じて、どちらか一方または両方を同時に実行できます。 - -## ノードの検証 -以下の例では、Besuを使用している場合は``を`8545`に、Gethを使用している場合は`8445`に置き換えてください。 - -### 基本検証 - -ノードが実行されたら、正常に動作していることを確認します: - -```bash -# 現在のブロック番号を含むレスポンスが返されるはずです。 -curl -X POST \ - -H "Content-Type: application/json" \ - -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \ - http://localhost: -``` - -### ヘルスと同期の検証 -包括的なノードヘルスチェックの場合: - -```bash -# ノードの同期ステータスを確認します。ノードが同期している場合はfalseを返します。 -curl -X POST \ - -H "Content-Type: application/json" \ - -d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' \ - http://localhost: - -# ノードの接続ピア数を確認します(> 0 である必要があります) -curl -X POST \ - -H "Content-Type: application/json" \ - -d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' \ - http://localhost: -``` - -最新で健全なノードは以下を示すはずです: -- `eth_blockNumber`が信頼できる参照(公開RPCやブロックエクスプローラーなど)と一致する -- `eth_syncing`が`false`を返す(完全に同期済み) -- `net_peerCount`が0より大きい(ピアに接続済み) - -## WebSocketサポート - -ノードは、リアルタイムイベントサブスクリプション用のWebSocket接続もサポートしています: - -```bash -# WebSocketエンドポイント -ws://localhost:8546 # Besu -ws://localhost:8446 # Geth -``` - -### WebSocket接続 - -### サブスクリプションの例 - -```json -// 新しいブロックヘッダーをサブスクライブ -{"jsonrpc":"2.0","method":"eth_subscribe","params":["newHeads"],"id":1} - -// フィルタに一致するログをサブスクライブ -{"jsonrpc":"2.0","method":"eth_subscribe","params":["logs",{"address":"0x..."}],"id":1} - -// サブスクライブ解除 -{"jsonrpc":"2.0","method":"eth_unsubscribe","params":["0x..."],"id":1} -``` - -## 高度な機能 - -### バッチリクエスト - -ノードは、効率向上のためバッチJSON-RPCリクエストをサポートしています: - -- **デフォルトバッチ上限**: バッチあたり1,024リクエスト -- **設定**: `--rpc-http-max-batch-size`で調整可能(無制限にする場合は`1`に設定) -- **最大リクエストサイズ**: 5 MB(デフォルト `--rpc-http-max-request-content-length`) - -### リソース集約的なメソッド - -レスポンス時間が長くなる可能性のあるメソッドに注意してください: - -| メソッド | レスポンス時間 | 備考 | -|--------|---------------|-------| -| `eth_getLogs` (大きな範囲) | 200msから数秒 | 制限された範囲とブルームフィルタを使用 | -| `eth_estimateGas` | 200msから数秒 | 負荷が高い場合や複雑なコントラクトの場合は遅くなる可能性あり | - -::::tip パフォーマンスのヒント -本番環境では、数千程度の読み取りRPSから始めて、特定のワークロードとハードウェアテストに基づいて水平スケーリングしてください。 -:::: - -## トラブルシューティング - -### よくある問題 - -1. **ポートがすでに使用中** - ```bash - # ポート8545(Besu)または8445(Geth)を使用しているものを確認 - lsof -i :8545 - lsof -i :8445 - - # 必要に応じてプロセスを終了 - kill -9 - ``` - -2. **Dockerコンテナの問題** - ```bash - # 実行中のコンテナを確認 - docker ps - - # コンテナログを表示 - docker compose logs -f - - # コンテナを再起動 - docker compose restart - ``` - -3. **ノードが同期しない** - - インターネット接続を確認 - - 十分なディスク容量があることを確認 - - Dockerコンテナログを確認:`docker compose logs` - - システムが最小要件を満たしていることを確認 - -4. **RPCエンドポイントが応答しない** - - コンテナが実行中であることを確認:`docker ps` - - ファイアウォール設定を確認 - - RPCポート(8545、8445)がアクセス可能であることを確認 - - エラーのコンテナログを確認 - -### ノードの監視 - -```bash -# Dockerコンテナのステータスを確認 -docker compose ps - -# コンテナログを監視 -docker compose logs -f - -# ディスク使用量を監視 -df -h - -# ネットワーク接続を確認 -netstat -tulpn | grep :8545 -netstat -tulpn | grep :8445 -``` - -## ストレージ計画 - -### ディスク容量要件 - -成長に基づいてストレージ容量を計画します: - -- 初期サイズ:約200 GB(6ヶ月後、2秒ブロックで約12Mトランザクション) -- 成長率:中程度、ネットワーク活動に依存 -- 推奨:余裕を持たせるため2 TB Gen4 NVMe - -::::warning 成長を計画する -継続的な運用を確保するため、常に現在の要件を超える追加ストレージ容量を確保してください。 -:::: - -## セキュリティに関する考慮事項 - -独自のRPCノードを運用する場合: - -1. **ファイアウォール設定**: 必要なポート(8545、8445)のみを公開 -2. **アクセス制御**: 本番環境では認証の実装を検討 -3. **ネットワーク分離**: RPCエンドポイントをインターネットに直接公開しない -4. **定期的な更新**: ノードソフトウェアとDockerイメージを最新に保つ -5. **バックアップ**: ノード設定を定期的にバックアップ(データは必要に応じて再同期可能) -6. **レート制限**: 複数のユーザーに公開する場合はレート制限を実装 - -::::caution 本番環境デプロイ -本番環境では、レート制限のため公開RPCエンドポイントに依存しないでください。独自のプライベートRPCノードを運用することで、より良い信頼性とパフォーマンスが得られます。 -:::: - -## パフォーマンス最適化 - -RPCノードのパフォーマンスを最適化するには: - -1. **SSDストレージ**: より良いI/Oパフォーマンスのために Gen4 NVMe ストレージを使用 -2. **十分なRAM**: キャッシング用の適切なメモリを確保(32〜48 GB推奨) -3. **ネットワーク帯域幅**: 同期とピア通信のための安定した1+ Gbps接続 -4. **CPUリソース**: トランザクション検証のための適切な処理能力(8〜12コア推奨) -5. **水平スケーリング**: 高トラフィックアプリケーションの場合、ロードバランサーの背後で複数のノードを実行 - -## サポート - -問題が発生した場合: - -- 最新の更新については[公式README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)を確認 -- [ネットワーク詳細](/overview/general-info/network-details)およびドキュメント全般を確認 -- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加 - -## 追加リソース - -- [Status Network RPCツールリポジトリ](https://github.com/status-im/status-l2-rpc-tools) - セットアップガイドとスクリプトを含む公式リポジトリ -- [Status Networkドキュメント](https://docs.status.network/) - 公式ドキュメント -- [Status Networkブロックエクスプローラー](https://sepoliascan.status.network) - Sepoliaテストネットエクスプローラー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md new file mode 100644 index 0000000..d030b8e --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md @@ -0,0 +1,31 @@ +--- +title: Status Networkで何を構築するか +description: Status Network向けの高レバレッジなアプリアイデアのスキャンファーストカタログ。カテゴリ、工数、デリバリープロファイル別に整理。 +keywords: [Status Network, app ideas, builder ideas, Karma apps, privacy apps, gasless apps, DeFi, social apps, games, MVP] +sidebar_position: 3 +--- + +import IdeaCatalog from '@site/src/components/IdeaCatalog/IdeaCatalog'; + +Status NetworkはガスレスUX、Karmaレピュテーション、プライバシープリミティブを組み合わせています。 +これにより、他のチェーンではうまく構築しにくいプロダクトが実現可能になります。 + +以下はStatus Networkに最適な例として考えられるプロダクトの一部です。もちろん、これらのアイデアに限定されるわけではありません。 + +フィルターを使って、あなたの専門性と野心に合ったアイデアを見つけてください。カードをクリックすると詳細を確認できます。 + + + +## 今すぐ構築を始める + +- [クイックスタート](/overview/introduction/quick-start) +- [Karmaを使ったガスレスとレピュテーションの使い方](/build-for-karma/guides) +- [Status Networkへのコントラクトデプロイ](/build-for-karma/deploying-contracts) +- [Telegram Builder's Community](https://t.me/statusl2) + +## エコシステムと資金 + +ビルダーはKarmaホルダーがガバナンスする公共資金プールから継続的な資金を得られます。 +アプリのトラクションが増えるほど、Karmaと将来の配分に対する影響力が強くなります。 + +詳細 → [エコシステムと資金](/overview/tokenomics/public-funding) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md new file mode 100644 index 0000000..a7c0f7e --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md @@ -0,0 +1,138 @@ +--- +title: なぜStatus Networkで構築するのか +description: Status Networkで構築する理由 — ガスレス取引、Karmaレピュテーション、持続可能な公共資金、他L2との比較。 +keywords: [Status Network, why build, L2 comparison, gasless, Karma, public funding, developer advantages, Linea zkEVM] +sidebar_position: 2 +--- + +選択できるL2は数多くあります。Status Networkが注目に値する理由をご紹介します。 + +
+ +
+
開発者資金
+
+
+
Status Network
+

アプリのトラクションに応じてスケールする継続的な収益プール

+
+
+
一般的なL2
+

数ヶ月ごとに再申請する一度きりのグラント

+
+
+
+
+ +
+
ユーザーのガス
+
+
+
Status Network
+

Karmaで無料 — ペイマスター、リレイヤー、アカウント抽象化のセットアップ不要

+
+
+
一般的なL2
+

ユーザーがガスを支払うか、開発者がペイマスター+リレイヤーインフラを運用

+
+
+
+
+ +
+
ユーザーレピュテーション
+
+
+
Status Network
+

Karmaによるネットワーク全体のレピュテーションシステム — スパム耐性、トラストシグナル、機能ゲーティング

+
+
+
一般的なL2
+

なし — 自前で構築するかサードパーティソリューションを統合

+
+
+
+
+ +
+
プライバシー
+
+
+
Status Network
+

ネイティブZKベースのツール — Rate Limiting Nullifiersなど

+
+
+
一般的なL2
+

サードパーティ統合

+
+
+
+
+
+ +## 持続可能な公共資金 + +Status Networkは一度きりのグラントや財団の資金に依存しません。代わりに、以下のソースから継続的に供給される公共資金プールを有しています: + +- **ネイティブ利回り** — ブリッジされた利回り付き資産(当初はETHとステーブルコイン)から +- **DEX手数料** — ネイティブ分散型取引所から +- **プレミアムガス手数料** — 拒否リスト入りユーザーから +- **将来のネイティブアプリ手数料** — レンディング、NFT、ローンチパッドなど + +詳細 → [経済モデル](/overview/tokenomics/economic-model) + +Karmaホルダーがこの公共資金プールをアプリとビルダーにどう配分するかを投票します。アプリがネットワークに貢献するほど(アクティビティと取引量を生み出すほど)、あなたとユーザーが獲得するKarmaが増え、将来の配分に対する影響力も大きくなります。 + +**ビルダーにとっての意味:** + +- 数ヶ月ごとに再申請する一度きりのグラントではなく、継続的な収益ストリーム +- 資金はアプリのトラクションに応じてスケール — ユーザーが増えればKarmaも増え、インセンティブも増加 +- コミュニティガバナンスによる配分、財団の門番なし + +詳細 → [公共資金](/overview/tokenomics/public-funding) + +## デフォルトでガスレス + +多くのチェーンでは「ガスレス」はペイマスターのセットアップ、リレイヤーの運用、アカウント抽象化SDKの統合を意味します。Status Networkでは、ガスレスがデフォルトの動作です。 + +正のKarma残高を持つすべてのアドレスは無料取引枠を取得します。ペイマスター不要。リレイヤー不要。特別なウォレット設定不要。対象ユーザーにはアプリがガス料金なしでそのまま動作します。 + +**ビルダーにとっての意味:** + +- ガスによるUXの摩擦なし。オンボーディングファネルで「ガス用にETHをブリッジして」のステップでユーザーを失わない +- ERC-4337、メタトランザクション、ガスリレーパターンの統合が不要 +- ユーザーに代わってガスをスポンサーするインフラコストが不要 + +ガスレスシステムは[Rate Limiting Nullifiers(RLN)](/overview/general-info/gasless-transactions/#rln)(ゼロ知識スパム防止メカニズム)によりシーケンサーレベルで強制されています。 + +## Karmaによる組み込みレピュテーション + +Karmaは、ステーキング、ブリッジ、流動性提供、アプリ利用、プレミアムガス支払など、本物のネットワーク参加を通じて全ユーザーが獲得するソウルバウンド(譲渡不可)トークンです。購入や譲渡はできません。 + +**ビルダーにとっての意味:** + +- **トラストシグナル**:高Karmaユーザーは検証済みのアクティブ参加者であり、エアドロップ農家やシビルではない +- **機能ゲーティング**:ビルダーはプレミアム機能、優先アクセス、優遇レートなどをユーザーのKarmaティアに基づいてゲートできる +- **スパム耐性**:ネットワーク自体がRLNメカニズムでスパムをゲートしており、Karmaティアがガスレス取引枠を直接制御するため、高Karmaユーザーは本質的にスパムしにくい +- **コールドスタート問題なし**:アプリはエコシステム全体で構築されたレピュテーションの恩恵を受ける + +詳細 → [Karmic Tokenomics](/overview/tokenomics/karmic-tokenomics) + +## プライバシー重視のシビルグッズ + +Status Networkは[Institute of Free Technology(IFT)](https://free.technology)の技術で構築されています。特に、ガスレス取引システムは[Vac](https://vac.dev)(IFTの研究部門)が開発したゼロ知識スパム防止メカニズムである[RLN(Rate Limiting Nullifiers)](https://vac.dev/rln)を使用しています。 + +私たちは、デジタル時代の市民的自由を守る公共財を構築するというIFTの技術ビジョンに沿っています。Status Networkはガスレス性を活かしたプライバシー重視モジュールを追加していきます。 + +詳細 → [Status Networkとプライバシー](/overview/general-info/privacy) + +## 完全なEVM等価性 + +Status Networkは[Linea zkEVM](https://linea.build)スタック上に構築されています。つまりビルダーは以下が可能です: + +- 既存のSolidityコントラクトを修正なしでデプロイ +- Hardhat、Foundry、ethers.js、viemなどの標準イーサリアムツールを使用 +- 標準JSON-RPCメソッドを使用(ガス料金関連の一部メソッドを除く。詳細は[JSON-RPC API](/tools/rpc/json-rpc)を参照) +- Lineaのロールアップアーキテクチャから継承したゼロ知識証明ベースのセキュリティ + +カスタムVMなし。非標準オペコードなし。コントラクトやバックエンドの書き直しなし。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md new file mode 100644 index 0000000..d213500 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md @@ -0,0 +1 @@ +# Status Networkとプライバシーの関係 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md index 99e98bb..1a0a646 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/index.md @@ -42,7 +42,7 @@ Status NetworkはStatus Wallet、Keycard、Waku、Codexなど、[IFT](https://fr 説明部分をスキップして直接開発を始めたいですか?以下が始め方です: 1. [Status NetworkをウォレットへAdd](/overview/general-info/add-status-network) -2. [テストネットETHを入手](/tools/testnet-faucets) +2. [テストネットETHを入手](/tools/core-infrastructure/testnet-faucets) 3. [アセットをブリッジ](/overview/general-info/bridge/bridging-testnet) 4. [最初のコントラクトをデプロイ](/build-for-karma/deploying-contracts/using-remix) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/block-explorers.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/block-explorers.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/tools/block-explorers.md rename to i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/block-explorers.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/bridge.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/tools/bridge.md rename to i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/bridge.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/rpc-endpoints.md similarity index 50% rename from i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md rename to i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/rpc-endpoints.md index 6b5e4c0..0310c9f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/rpc-endpoints.md @@ -1,55 +1,7 @@ -# RPCエンドポイント +--- +slug: /tools/core-infrastructure/rpc-endpoints +--- -Status Networkは、ネットワークとの対話を可能にする公開RPC(Remote Procedure Call)エンドポイントを提供しています。 - -## 公開RPC URL - -``` -https://public.sepolia.rpc.status.network -``` - -## RPCの使用 - -### MetaMaskへの追加 -このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](/overview/general-info/add-status-network)をご参照ください。 - -### Web3ライブラリの設定 - -```javascript -// Web3.js -const web3 = new Web3('https://public.sepolia.rpc.status.network'); - -// Ethers.js v5 -const provider = new ethers.providers.JsonRpcProvider('https://public.sepolia.rpc.status.network'); -``` - -## 利用可能なメソッド - -RPCエンドポイントは、以下を含む標準的なEthereum JSON-RPCメソッドをサポートしています: - -- `eth_blockNumber`: 最新のブロック番号を取得 -- `eth_getBalance`: アカウント残高を取得 -- `eth_sendRawTransaction`: 署名済みトランザクションを送信 -- `eth_call`: トランザクションを作成せずにコールを実行 -- `eth_getLogs`: イベントログを取得 -- `eth_getTransactionByHash`: トランザクションの詳細を取得 -- `eth_getBlockByNumber`: ブロック情報を取得 - -サポートされているRPCメソッドの完全なリストと詳細な仕様については、Status NetworkがLinea技術をベースにしているため、[Linea APIリファレンス](https://docs.linea.build/api/reference)を参照してください。 - -## レート制限 - -公開RPCエンドポイントには、公平な使用を確保するためのレート制限があります: -- IPあたり1秒間に10リクエスト -- IPあたり1日100,000リクエスト - -より高い制限が必要な場合は、Telegramでお問い合わせください。 - -## サポート - -RPCエンドポイントに問題が発生した場合: -- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加 -- アプリケーションにフォールバックRPC戦略の実装を検討 # RPCエンドポイント Status Networkは、ネットワークとの対話を可能にする公開RPC(Remote Procedure Call)エンドポイントを提供しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/testnet-faucets.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md rename to i18n/ja/docusaurus-plugin-content-docs/current/tools/core-infrastructure/testnet-faucets.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/index.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/index.md index d626031..92be9d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/index.md @@ -15,10 +15,10 @@ Status Network でのビルドとテストに必要な基本サービス: | ツール | 説明 | リンク | |---|---|---| -| **RPC エンドポイント** | パブリック JSON-RPC および WebSocket アクセス | [RPC →](/tools/rpc) | -| **ブリッジ** | Ethereum Sepolia と Status Network 間のアセット転送 | [ブリッジ →](/tools/bridge) | -| **テストネットフォーセット** | 開発用テストネットアセットの取得 | [フォーセット →](/tools/testnet-faucets) | -| **ブロックエクスプローラー** | トランザクション、コントラクト、ネットワーク活動の閲覧 | [エクスプローラー →](/tools/block-explorers) | +| **RPC エンドポイント** | パブリック JSON-RPC および WebSocket アクセス | [RPC →](/tools/core-infrastructure/rpc-endpoints) | +| **ブリッジ** | Ethereum Sepolia と Status Network 間のアセット転送 | [ブリッジ →](/tools/core-infrastructure/bridge) | +| **テストネットフォーセット** | 開発用テストネットアセットの取得 | [フォーセット →](/tools/core-infrastructure/testnet-faucets) | +| **ブロックエクスプローラー** | トランザクション、コントラクト、ネットワーク活動の閲覧 | [エクスプローラー →](/tools/core-infrastructure/block-explorers) | ## インフラストラクチャパートナー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/infrastructure.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/infrastructure.md index 1f0ec7f..3a59766 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/tools/infrastructure.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/infrastructure.md @@ -17,7 +17,7 @@ Status Network は以下のカテゴリのインフラパートナーを積極 |---|---| | **RPC プロバイダー** | 信頼性が高く低レイテンシーなノードアクセスのための専用 RPC インフラ | | **オラクルと VRF** | 価格フィード、RWA データ、オンチェーンランダム性のための VRF、DEX データフィード | -| **Safe とマルチシグ** | 財務管理とガバナンスのためのマルチシグウォレット | +| **Safe と多重署名** | 財務管理とガバナンスのための多重署名ウォレット | | **インデクサー** | スマートコントラクトイベントとオンチェーンデータのための分散型・中央集権型インデクシング | | **アカウントアブストラクション** | スマートアカウント、鍵管理、シームレスなユーザーオンボーディング | | **開発ツール** | SDK、デプロイツール、Status Network ソーシャルログイン | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc/json-rpc.md similarity index 100% rename from i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md rename to i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc/json-rpc.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md b/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md new file mode 100644 index 0000000..3024ab5 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md @@ -0,0 +1,219 @@ +--- +title: 独自RPCノードの運用 +description: 公式RPCツールを使ってStatus Network用の独自RPCノードをセットアップ・運用する完全ガイド。ノードセットアップ、設定、メンテナンスについて学びます。 +keywords: [RPC node, Status Network RPC, blockchain node, WebSocket, wss, self-hosted RPC, network infrastructure, Status L2 RPC tools] +--- + +このチュートリアルでは、Status Network用のリモートプロシージャコール(RPC)ノードをセットアップ・運用する手順を説明します。独自のRPCノードを運用することで、Status Networkとのやり取りをより細かく制御し、プライバシーを高め、サードパーティサービスへの依存を減らせます。 + +## はじめに + +[Status Network RPC Toolsリポジトリ](https://github.com/status-im/status-l2-rpc-tools)には、独自のRPCノードを運用するために必要なツール、ジェネシスファイル、セットアップスクリプトがすべて含まれています。 + +### 完全セットアップガイド + +詳細なセットアップ手順、前提条件、システム要件、ステップバイステップのガイダンスについては、リポジトリの[**公式README**](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)を参照してください。 + +## ノードオプション + +セットアップスクリプトでは、次の2つのノード実装から選択できます: + +- **Besu Node**:ポート`8545`で動作(http://localhost:8545) +- **Geth Node**:ポート`8445`で動作(http://localhost:8445) + +必要に応じてどちらか一方、または両方を同時に実行できます。 + +## ノードの検証 + +以下の例では、``をBesuの場合は`8545`、Gethの場合は`8445`に置き換えてください。 + +### 基本検証 + +ノードが起動したら、正しく動作しているか確認します: + +```bash +# 現在のブロック番号を含むレスポンスが返ってくるはずです。 +curl -X POST \ + -H "Content-Type: application/json" \ + -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \ + http://localhost: +``` + +### ヘルスチェックと同期検証 + +ノードの包括的なヘルスチェック: + +```bash +# ノードの同期状態を確認。同期済みの場合はfalseを返します。 +curl -X POST \ + -H "Content-Type: application/json" \ + -d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' \ + http://localhost: + +# ノードの接続ピア数を確認(0より大きいこと) +curl -X POST \ + -H "Content-Type: application/json" \ + -d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' \ + http://localhost: +``` + +最新で健全なノードでは以下が確認できます: +- `eth_blockNumber`が信頼できる参照(パブリックRPCやブロックエクスプローラーなど)と一致 +- `eth_syncing`が`false`を返す(完全同期済み) +- `net_peerCount`が0より大きい(ピアに接続済み) + +## WebSocketサポート + +ノードはリアルタイムイベント購読用のWebSocket接続にも対応しています: + +```bash +# WebSocketエンドポイント +ws://localhost:8546 # Besu +ws://localhost:8446 # Geth +``` + +### WebSocket接続 + +### 購読の例 + +```json +// 新しいブロックヘッダーを購読 +{"jsonrpc":"2.0","method":"eth_subscribe","params":["newHeads"],"id":1} + +// フィルターに一致するログを購読 +{"jsonrpc":"2.0","method":"eth_subscribe","params":["logs",{"address":"0x..."}],"id":1} + +// 購読解除 +{"jsonrpc":"2.0","method":"eth_unsubscribe","params":["0x..."],"id":1} +``` + +## 高度な機能 + +### バッチリクエスト + +ノードは効率化のためのバッチJSON-RPCリクエストに対応しています: + +- **デフォルトバッチ上限**:1バッチあたり1,024リクエスト +- **設定**:`--rpc-http-max-batch-size`で調整可能(`1`で無制限) +- **最大リクエストサイズ**:5 MB(デフォルト`--rpc-http-max-request-content-length`) + +### リソース集約型メソッド + +レスポンスに時間がかかる可能性のあるメソッドに注意してください: + +| メソッド | レスポンス時間 | 備考 | +|--------|---------------|-------| +| `eth_getLogs`(広い範囲) | 200ms〜数秒 | 範囲を限定し、ブルームフィルターを活用 | +| `eth_estimateGas` | 200ms〜数秒 | 負荷時や複雑なコントラクトでは遅くなる可能性 | + +:::tip パフォーマンスのヒント +本番環境では、低数千RPSの読み取りから始め、ワークロードとハードウェアテストに基づいて水平スケールしてください。 +::: + +## トラブルシューティング + +### よくある問題 + +1. **ポートが使用中** + ```bash + # ポート8545(Besu)または8445(Geth)を使用しているプロセスを確認 + lsof -i :8545 + lsof -i :8445 + + # 必要に応じてプロセスを終了 + kill -9 + ``` + +2. **Dockerコンテナの問題** + ```bash + # 実行中のコンテナを確認 + docker ps + + # コンテナログを表示 + docker compose logs -f + + # コンテナを再起動 + docker compose restart + ``` + +3. **ノードが同期しない** + - インターネット接続を確認 + - 十分なディスク容量があるか確認 + - Dockerコンテナのログを確認:`docker compose logs` + - システムが最小要件を満たしているか確認 + +4. **RPCエンドポイントが応答しない** + - コンテナが実行中か確認:`docker ps` + - ファイアウォール設定を確認 + - RPCポート(8545、8445)がアクセス可能か確認 + - エラーの有無をコンテナログで確認 + +### ノードの監視 + +```bash +# Dockerコンテナのステータスを確認 +docker compose ps + +# コンテナログを監視 +docker compose logs -f + +# ディスク使用量を監視 +df -h + +# ネットワーク接続を確認 +netstat -tulpn | grep :8545 +netstat -tulpn | grep :8445 +``` + +## ストレージ計画 + +### ディスク容量要件 + +成長に合わせてストレージ容量を計画してください: + +- 初期サイズ:約200 GB(6ヶ月後、2秒ブロックで約1,200万トランザクション) +- 成長率:ネットワークアクティビティに依存、中程度 +- 推奨:余裕を持って2 TB Gen4 NVMe + +:::warning 成長を見据えた計画 +継続運用のため、現在の要件を超えるストレージ容量を必ず確保してください。 +::: + +## セキュリティの考慮事項 + +独自のRPCノードを運用する際: + +1. **ファイアウォール設定**:必要なポート(8545、8445)のみを公開 +2. **アクセス制御**:本番環境では認証の実装を検討 +3. **ネットワーク分離**:RPCエンドポイントをインターネットに直接公開しない +4. **定期的な更新**:ノードソフトウェアとDockerイメージを最新に保つ +5. **バックアップ**:ノード設定を定期的にバックアップ(データは再同期可能) +6. **レート制限**:複数ユーザーに公開する場合はレート制限を実装 + +:::caution 本番デプロイ +本番環境では、レート制限のためパブリックRPCエンドポイントへの依存は避けてください。独自のプライベートRPCノードを運用することで、信頼性とパフォーマンスが向上します。 +::: + +## パフォーマンス最適化 + +RPCノードのパフォーマンスを最適化するには: + +1. **SSDストレージ**:I/Oパフォーマンス向上のためGen4 NVMeストレージを使用 +2. **十分なRAM**:キャッシュ用に十分なメモリを確保(32〜48 GB推奨) +3. **ネットワーク帯域**:同期とピア通信のため安定した1 Gbps以上の接続 +4. **CPUリソース**:トランザクション検証に十分な処理能力(8〜12コア推奨) +5. **水平スケーリング**:高トラフィックアプリでは、ロードバランサーの背後で複数ノードを運用 + +## サポート + +問題が発生した場合: + +- 最新情報は[公式README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)を確認 +- [ネットワーク詳細](/overview/general-info/network-details)およびドキュメント全般を参照 +- サポートは[Telegramコミュニティ](https://t.me/statusl2)に参加 + +## 追加リソース + +- [Status Network RPC Toolsリポジトリ](https://github.com/status-im/status-l2-rpc-tools) — セットアップガイドとスクリプト付き公式リポジトリ +- [Status Networkドキュメント](https://docs.status.network/) — 公式ドキュメント +- [Status Networkブロックエクスプローラー](https://sepoliascan.status.network) — Sepoliaテストネットエクスプローラー diff --git a/i18n/ko/code.json b/i18n/ko/code.json index 28577b0..c814352 100644 --- a/i18n/ko/code.json +++ b/i18n/ko/code.json @@ -544,5 +544,445 @@ "homepage.community.official.description": { "message": "웹사이트, 소셜 채널, 모든 공식 리소스를 한 곳에서 확인하세요", "description": "Homepage community card description for official links" + }, + "ideaCatalog.filter.category": { + "message": "카테고리", + "description": "Filter group label" + }, + "ideaCatalog.filter.statusPrimitives": { + "message": "스테이터스 고유 기능", + "description": "Filter group label" + }, + "ideaCatalog.filter.builderProfile": { + "message": "빌더 프로필", + "description": "Filter group label" + }, + "ideaCatalog.filter.difficulty": { + "message": "난이도", + "description": "Filter group label" + }, + "ideaCatalog.filter.fewerFilters": { + "message": "필터 접기", + "description": "Toggle button label" + }, + "ideaCatalog.filter.moreFilters": { + "message": "필터 더보기", + "description": "Toggle button label" + }, + "ideaCatalog.filter.domainExpertise": { + "message": "도메인 전문성", + "description": "Filter group label" + }, + "ideaCatalog.filter.userSegment": { + "message": "사용자 계층", + "description": "Filter group label" + }, + "ideaCatalog.filter.capitalRequirement": { + "message": "자본 요건", + "description": "Filter group label" + }, + "ideaCatalog.status.showing": { + "message": "{totalCount}개 중 {visibleCount}개 표시", + "description": "Status text" + }, + "ideaCatalog.status.clearAll": { + "message": "모두 지우기", + "description": "Clear all filters button" + }, + "ideaCatalog.card.whyStatus": { + "message": "Why Status:", + "description": "Card detail label" + }, + "ideaCatalog.card.mvpScope": { + "message": "MVP 범위:", + "description": "Card detail label" + }, + "ideaCatalog.card.security": { + "message": "보안", + "description": "Card meta badge label" + }, + "ideaCatalog.card.opsBurden": { + "message": "운영 부담", + "description": "Card meta badge label" + }, + "ideaCatalog.empty.message": { + "message": "현재 필터에 맞는 아이디어가 없습니다.", + "description": "Empty state message" + }, + "ideaCatalog.empty.clearAll": { + "message": "모든 필터 지우기", + "description": "Empty state clear button" + }, + "ideaCatalog.category.reputation": { + "message": "평판", + "description": "Category label" + }, + "ideaCatalog.category.privacy": { + "message": "프라이버시", + "description": "Category label" + }, + "ideaCatalog.category.social": { + "message": "소셜", + "description": "Category label" + }, + "ideaCatalog.category.games": { + "message": "게임", + "description": "Category label" + }, + "ideaCatalog.category.defi": { + "message": "DeFi", + "description": "Category label" + }, + "ideaCatalog.statusPrimitive.gasless": { + "message": "가스리스", + "description": "Status primitive label" + }, + "ideaCatalog.statusPrimitive.reputation": { + "message": "평판", + "description": "Status primitive label" + }, + "ideaCatalog.statusPrimitive.privacy": { + "message": "프라이버시", + "description": "Status primitive label" + }, + "ideaCatalog.builderProfile.frontendDev": { + "message": "웹 / 모바일 개발", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.contractDev": { + "message": "스마트 컨트랙트 개발", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.fullStack": { + "message": "풀스택", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.protocolDev": { + "message": "프로토콜 / 암호학", + "description": "Builder profile label" + }, + "ideaCatalog.difficulty.lowMed": { + "message": "낮음-중간", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.med": { + "message": "중간", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.medHigh": { + "message": "중간-높음", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.high": { + "message": "높음", + "description": "Difficulty label" + }, + "ideaCatalog.userSegment.consumer": { + "message": "소비자", + "description": "User segment label" + }, + "ideaCatalog.userSegment.communityCreator": { + "message": "커뮤니티/크리에이터", + "description": "User segment label" + }, + "ideaCatalog.userSegment.daoOrgOps": { + "message": "DAO/조직 운영", + "description": "User segment label" + }, + "ideaCatalog.userSegment.traderDefi": { + "message": "트레이더/DeFi", + "description": "User segment label" + }, + "ideaCatalog.domainExpertise.communityDesign": { + "message": "커뮤니티 디자인", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.defiMechanisms": { + "message": "DeFi 메커니즘", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.privacy": { + "message": "프라이버시", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.paymentsFinops": { + "message": "결제/FinOps", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.consumerProduct": { + "message": "소비자 제품", + "description": "Domain expertise label" + }, + "ideaCatalog.capitalReq.none": { + "message": "없음", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.operatingTreasury": { + "message": "운영 자금", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.seedLiquidity": { + "message": "시드 유동성", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.deepLiquidity": { + "message": "깊은 유동성", + "description": "Capital requirement label" + }, + "ideaCatalog.idea.karmaGatedAccess.title": { + "message": "카르마로 제한된 콘텐츠 피드", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaGatedAccess.what": { + "message": "크리에이터가 최소 카르마 등급을 충족하는 팔로워에게만 보이는 게시물을 발행하는 소셜 피드. 일종의 Substack + 온체인 평판", + "description": "Idea what" + }, + "ideaCatalog.idea.karmaGatedAccess.whyStatus": { + "message": "카르마 등급이 온체인에서 해결되므로 신뢰 없이도 접근 제어가 가능합니다. 구독 결제, 플랫폼 제약 따위 없으며, 시빌 공격 저항적입니다", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.karmaGatedAccess.mvp": { + "message": "공개된 + 제한된 피드, 티어 확인 미들웨어(온체인 가능), 카르마 등급별 청중 구성을 보여주는 크리에이터 대시보드.", + "description": "Idea mvp" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.title": { + "message": "카르마로 부스트된 수익 볼트", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.what": { + "message": "높은 카르마 등급 예치자의 APY가 인상되는 DeFi 금고. 초기 지지자와 적극적인 참여자들이 더 나은 수익을 얻을 수 있는 메커니즘", + "description": "Idea what" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.whyStatus": { + "message": "네이티브 평판 그래프로 금고가 토큰에 기반한 가중 투표나 오프체인 허용 목록과 같은 방식 대신 검증된 참여로 보상 가중치를 매길 수 있습니다.", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.mvp": { + "message": "단일 자산 금고에 두 개의 수익 티어, 예치 시 온체인 카르마 등급 확인, 티어별로 다른 유효 APY를 보여주는 대시보드.", + "description": "Idea mvp" + }, + "ideaCatalog.idea.karmaIncentiveMarket.title": { + "message": "카르마 현상금 시장", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaIncentiveMarket.what": { + "message": "카르마 임계값 이상의 사용자만 작업을 청구할 수 있는 현상금 시장. 프로젝트 팀이 작업(버그 리포트, 번역, 온보딩 가이드)을 게시하고 검증된 기여자에게 보상금을 지급", + "description": "Idea what" + }, + "ideaCatalog.idea.karmaIncentiveMarket.whyStatus": { + "message": "카르마 관문이 스팸 봇과 저품질 제출을 걸러내어, 현상금 발행자가 청구인이 네트워크에서 실제 실적이 있다는 확신을 갖게 합니다.", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.karmaIncentiveMarket.mvp": { + "message": "현상금 목록 페이지, 카르마로 제한된 청구 플로우, 제출 검토 패널, 승인에 따른 온체인 지불.", + "description": "Idea mvp" + }, + "ideaCatalog.idea.karmaDynamicPricing.title": { + "message": "카르마 등급제 NFT 마켓플레이스", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaDynamicPricing.what": { + "message": "구매자와 판매자의 카르마 등급에 따라 리스팅 수수료, 로열티, 얼리 액세스 기간이 조정되는 NFT 마켓플레이스. 신뢰받는 참여자가 자동으로 더 나은 조건을 받는 구조", + "description": "Idea what" + }, + "ideaCatalog.idea.karmaDynamicPricing.whyStatus": { + "message": "결제 시 온체인 티어 검증으로 동적 가격이 적용됩니다. 쿠폰 코드 X, 백엔드 허용 목록 X.", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.karmaDynamicPricing.mvp": { + "message": "NFT 리스팅 + 구매 플로우, 티어별 수수료 일정, 결제 시 온체인 티어 체크, 구매자 티어별 매출을 보여주는 판매자 분석.", + "description": "Idea mvp" + }, + "ideaCatalog.idea.stealthAddressPayments.title": { + "message": "스텔스 주소 결제", + "description": "Idea title" + }, + "ideaCatalog.idea.stealthAddressPayments.what": { + "message": "지출 경로를 숨길 수 있는 일회용 수신 주소.", + "description": "Idea what" + }, + "ideaCatalog.idea.stealthAddressPayments.whyStatus": { + "message": "프라이버시 프리미티브 + 마찰이 적은 트랜잭션 UX.", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.stealthAddressPayments.mvp": { + "message": "주소 생성, 수신 플로우, 비공개의 지출 플로우가 구현된 시스템", + "description": "Idea mvp" + }, + "ideaCatalog.idea.privatePayroll.title": { + "message": "프라이빗 급여 및 저축", + "description": "Idea title" + }, + "ideaCatalog.idea.privatePayroll.what": { + "message": "잔액과 수령인을 노출하지 않는 급여 및 저축 서비스", + "description": "Idea what" + }, + "ideaCatalog.idea.privatePayroll.whyStatus": { + "message": "비공개적인 급여 지급과 저축을 요구하는 실질적인 수요에 미치지 못하는 현대의 블록체인들의 공개성", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.privatePayroll.mvp": { + "message": "고용주의 일괄 지급 + 수령인의 청구 + 차폐 금고 구조", + "description": "Idea mvp" + }, + "ideaCatalog.idea.shieldedMicrotransactions.title": { + "message": "차폐 소액 결제 / 카드 레이어", + "description": "Idea title" + }, + "ideaCatalog.idea.shieldedMicrotransactions.what": { + "message": "금액 및 참여자를 숨길 수 있는 소액 결제 및 구독 서비스", + "description": "Idea what" + }, + "ideaCatalog.idea.shieldedMicrotransactions.whyStatus": { + "message": "가스리스 상호작용 덕분에 빈번한 결제가 가능해집니다", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.shieldedMicrotransactions.mvp": { + "message": "비공개 팁/구독 플로우와 반복 승인이 있는 시스템", + "description": "Idea mvp" + }, + "ideaCatalog.idea.privateLending.title": { + "message": "비공개 대출 및 차입", + "description": "Idea title" + }, + "ideaCatalog.idea.privateLending.what": { + "message": "공개적인 포지션 유출을 막는 차입/대출 플로우가 구현된 시스템", + "description": "Idea what" + }, + "ideaCatalog.idea.privateLending.whyStatus": { + "message": "프라이버시 + 카르마 기반 신용이 기본적으로 탑재됨", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.privateLending.mvp": { + "message": "단일 담보 유형, 단일 차입 자산, 비공개적 헬스체크", + "description": "Idea mvp" + }, + "ideaCatalog.idea.privateMultisig.title": { + "message": "프라이빗 다중서명", + "description": "Idea title" + }, + "ideaCatalog.idea.privateMultisig.what": { + "message": "서명자, 임계값, 트랜잭션 등의 세부사항이 숨겨진 다중서명 기능", + "description": "Idea what" + }, + "ideaCatalog.idea.privateMultisig.whyStatus": { + "message": "프라이버시에 민감한 조직도 온체인에서 운영할 수 있게 됩니다", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.privateMultisig.mvp": { + "message": "정책 설정 + 서명 플로우 + 선택적으로 공개가 가능한 실행 로그 구현", + "description": "Idea mvp" + }, + "ideaCatalog.idea.socialMiniApp.title": { + "message": "가스리스 마이크로블로그 플랫폼", + "description": "Idea title" + }, + "ideaCatalog.idea.socialMiniApp.what": { + "message": "Twitter 스타일 마이크로블로그로, 모든 게시·답글·좋아요가 온체인에서 작동하면서도 비용이 들지 않고, 카르마 배지로 신뢰할 수 있는 목소리들을 부각시킬 수 있습니다", + "description": "Idea what" + }, + "ideaCatalog.idea.socialMiniApp.whyStatus": { + "message": "가스리스 트랜잭션으로 게시 당 액션 경제적이며, 카르마 배지가 임의의 블루체크 시스템을 실제 네트워크 참여로 얻은 평판으로 대체합니다", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.socialMiniApp.mvp": { + "message": "타임라인 피드, 게시/답글/좋아요 액션, 카르마 신뢰 배지가 있는 사용자 프로필, 기본 콘텐츠 관리 컨트롤 구현", + "description": "Idea mvp" + }, + "ideaCatalog.idea.creatorEconomyToolkit.title": { + "message": "팬 패스 플랫폼", + "description": "Idea title" + }, + "ideaCatalog.idea.creatorEconomyToolkit.what": { + "message": "크리에이터가 독점 콘텐츠, 그룹 채팅, 오프라인 행사 등의 접근을 제공하게 되는 무료 디지털 패스를 민팅하는 플랫폼. 팬은 가스비 없이 패스를 수집할 수 있습니다", + "description": "Idea what" + }, + "ideaCatalog.idea.creatorEconomyToolkit.whyStatus": { + "message": "무료 민팅과 무료 청구로 커뮤니티 패스의 페이월 마찰이 제거되어, 크리에이터가 팬에게 가스 비용을 요구하지 않으면서 보다 쉽게 팬층을 키울 수 있습니다", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.creatorEconomyToolkit.mvp": { + "message": "패스 민팅이 있는 크리에이터 페이지, 팬 청구 플로우, 패스로 제한된 콘텐츠 섹션, 패스 검증을 통한 행사 체크인 기능 구현", + "description": "Idea mvp" + }, + "ideaCatalog.idea.communityGovernance.title": { + "message": "DAO 제안 & 카르마 가중 투표 앱", + "description": "Idea title" + }, + "ideaCatalog.idea.communityGovernance.what": { + "message": "커뮤니티 구성원이 제안을 제출하고 카르마 등급에 비례한 가중치로 투표하는 거버넌스 앱. 간단한 방식으로 적극 기여자가 수동 보유자보다 더 큰 목소리를 냅니다", + "description": "Idea what" + }, + "ideaCatalog.idea.communityGovernance.whyStatus": { + "message": "카르마 가중 투표가 토큰 축적보다 실제 참여를 보상하고, 가스리스 투표가 대부분 DAO에서 투표율을 억누르는 비용 장벽을 제거합니다.", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.communityGovernance.mvp": { + "message": "제안 제출 폼, 온체인 집계가 있는 카르마 가중 투표, 티어별로 참여 구성을 보여주는 결과 대시보드.", + "description": "Idea mvp" + }, + "ideaCatalog.idea.onchainStrategyGame.title": { + "message": "전장의 안개 정복 게임", + "description": "Idea title" + }, + "ideaCatalog.idea.onchainStrategyGame.what": { + "message": "육각형 그리드 영토 지배 게임으로, 부대 위치가 프라이빗 상태로 숨겨지고 모든 이동이 Gasless 온체인 트랜잭션입니다 — Risk 보드 게임에 온체인 실제 전장의 안개를 더한 것을 생각해 보세요.", + "description": "Idea what" + }, + "ideaCatalog.idea.onchainStrategyGame.whyStatus": { + "message": "프라이버시 프리미티브로 클라이언트 측 안개가 아닌 진정한 숨겨진 정보가 가능하며, Gasless 이동으로 전략 게임의 빠른 주고받기가 경제적으로 실현 가능해집니다.", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.onchainStrategyGame.mvp": { + "message": "전장의 안개가 있는 육각형 맵, 단일 유닛 유형, 프라이빗 부대 배치, 턴 해결, 매치 리더보드.", + "description": "Idea mvp" + }, + "ideaCatalog.idea.predictionMarket.title": { + "message": "예측 시장", + "description": "Idea title" + }, + "ideaCatalog.idea.predictionMarket.what": { + "message": "저마찰 진입과 프라이빗 참여자 포지션이 있는 시장.", + "description": "Idea what" + }, + "ideaCatalog.idea.predictionMarket.whyStatus": { + "message": "더 나은 시장 참여와 더 적은 카피 트레이딩 행동을 유도합니다", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.predictionMarket.mvp": { + "message": "시장 생성 + 포지션 진입 + 결산 + 기본 분석.", + "description": "Idea mvp" + }, + "ideaCatalog.idea.nativeDexCompanion.title": { + "message": "Karma 등급별 스왑 라우터", + "description": "Idea title" + }, + "ideaCatalog.idea.nativeDexCompanion.what": { + "message": "최고 온체인 풀을 통해 거래를 라우팅하고 고-Karma 사용자에게 수수료 감면과 우선 실행을 제공하는 스왑 인터페이스 — DEX 레이어에 구워진 로열티 프로그램", + "description": "Idea what" + }, + "ideaCatalog.idea.nativeDexCompanion.whyStatus": { + "message": "카르마 등급으로 라우터가 신뢰 없이도 수수료 할인을 제공하고, 네이티브 유동성과의 긴밀한 통합으로 외부 애그리게이터 의존 없이 더 나은 비율을 제공합니다", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.nativeDexCompanion.mvp": { + "message": "티어별 수수료 표시가 있는 토큰 스왑 UI, 카르마 인식 라우팅 로직, LP 포지션 패널, 티어별 절약 수수료를 보여주는 거래 내역", + "description": "Idea mvp" + }, + "ideaCatalog.idea.publicFundingInterface.title": { + "message": "공공 자금 인터페이스", + "description": "Idea title" + }, + "ideaCatalog.idea.publicFundingInterface.what": { + "message": "보조금 발견, 제안, 투표, 추적 대시보드의 엔드투엔드 기능 구현", + "description": "Idea what" + }, + "ideaCatalog.idea.publicFundingInterface.whyStatus": { + "message": "생태계 성장 플라이휠을 직접 지원하는 구조", + "description": "Idea whyStatus" + }, + "ideaCatalog.idea.publicFundingInterface.mvp": { + "message": "제안 게시판 + 투표 화면 + 보조금 진행 추적 기능 구현", + "description": "Idea mvp" } } diff --git a/i18n/ko/docusaurus-plugin-content-docs/current.json b/i18n/ko/docusaurus-plugin-content-docs/current.json index 9a48e01..0772be9 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current.json +++ b/i18n/ko/docusaurus-plugin-content-docs/current.json @@ -23,122 +23,18 @@ "message": "🌉 브릿지", "description": "The label for category 🌉 Bridge in sidebar homeSidebar" }, - "sidebar.toolsSidebar.category.TOOLS": { - "message": "도구", - "description": "The label for category TOOLS in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.category.PARTNERS": { - "message": "파트너", - "description": "The label for category PARTNERS in sidebar toolsSidebar" - }, - "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { - "message": "카르마를 위해 개발하기", - "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { - "message": "🛠 Karma 빌드 가이드", - "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.USING KARMA": { - "message": "카르마 사용", - "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { - "message": "컨트랙트 배포", - "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.RPC": { - "message": "RPC", - "description": "The label for category RPC in sidebar buildForKarmaSidebar" - }, "sidebar.homeSidebar.category.OTHER DOCS": { "message": "기타 문서", "description": "The label for category OTHER DOCS in sidebar homeSidebar" }, "sidebar.homeSidebar.doc.🌴 Home": { "message": "🌴 홈", - "description": "The label for the doc item 🌴 Home in sidebar homeSidebar, linking to the doc index" + "description": "The label for the doc item 🌴 Home in sidebar homeSidebar" }, "sidebar.homeSidebar.doc.⚡ Quick Start": { "message": "⚡ 빠른 시작", "description": "The label for the doc item ⚡ Quick Start in sidebar homeSidebar" }, - "sidebar.homeSidebar.doc.💎 SNT Token": { - "message": "💎 SNT Token", - "description": "The label for the doc item 💎 SNT Token in sidebar homeSidebar, linking to the doc tokenomics/snt-token" - }, - "sidebar.homeSidebar.doc.💠 Karma Token": { - "message": "💠 Karma Token", - "description": "The label for the doc item 💠 Karma Token in sidebar homeSidebar, linking to the doc tokenomics/karma-token" - }, - "sidebar.homeSidebar.doc.🌐 Network Details": { - "message": "🌐 네트워크 세부정보", - "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.➕ Add Status Network": { - "message": "➕ Status 네트워크 추가", - "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.💰 Tokens": { - "message": "💰 토큰", - "description": "The label for the doc item 💰 Tokens in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { - "message": "🧪 테스트넷 컨트랙트", - "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { - "message": "🧪 테스트넷 브릿징", - "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" - }, - "sidebar.toolsSidebar.doc.🔌 RPC": { - "message": "🔌 RPC", - "description": "The label for the doc item 🔌 RPC in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🌉 Bridge": { - "message": "🌉 브릿지", - "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { - "message": "🚰 테스트넷 파우셋", - "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🔎 Block Explorers": { - "message": "🔎 블록 익스플로러", - "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { - "message": "🤝 인프라 파트너", - "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { - "message": "⛽ 가스리스 적용하기", - "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { - "message": "🔰 평판 적용하기", - "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { - "message": "🎩 Hardhat 사용하기", - "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { - "message": "⚒️ Foundry 사용하기", - "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { - "message": "🎛️ Remix 사용하기", - "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { - "message": "🏗 Scaffold-ETH 2 사용하기", - "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" - }, - "sidebar.homeSidebar.doc.🔗 Official Links": { - "message": "🔗 공식 링크", - "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" - }, "sidebar.homeSidebar.doc.🤝 Economic Model": { "message": "🤝 경제 모델", "description": "The label for the doc item 🤝 Economic Model in sidebar homeSidebar" @@ -159,20 +55,128 @@ "message": "💰 사전예치", "description": "The label for the doc item 💰 Pre-Deposits in sidebar homeSidebar" }, + "sidebar.homeSidebar.doc.🌐 Network Details": { + "message": "🌐 네트워크 세부정보", + "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" + }, + "sidebar.homeSidebar.doc.⛽ Gasless Transactions": { + "message": "⛽ 가스리스 트랜잭션", + "description": "The label for the doc item ⛽ Gasless Transactions in sidebar homeSidebar" + }, + "sidebar.homeSidebar.doc.➕ Add Status Network": { + "message": "➕ Status 네트워크 추가", + "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" + }, "sidebar.homeSidebar.doc.🪙 Tokens": { "message": "🪙 토큰", "description": "The label for the doc item 🪙 Tokens in sidebar homeSidebar" }, + "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { + "message": "🧪 테스트넷 컨트랙트", + "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" + }, "sidebar.homeSidebar.doc.💰 Pre-Deposit Vault Contracts": { "message": "💰 사전예치 금고 컨트랙트", "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, - "sidebar.buildForKarmaSidebar.doc.🔌 JSON-RPC API": { - "message": "🔌 JSON-RPC API", - "description": "The label for the doc item 🔌 JSON-RPC API in sidebar buildForKarmaSidebar" + "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { + "message": "🧪 테스트넷 브릿징", + "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" }, - "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { + "sidebar.homeSidebar.doc.🔗 Official Links": { + "message": "🔗 공식 링크", + "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" + }, + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "카르마를 위해 개발하기", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { + "message": "🛠 Karma 빌드 가이드", + "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🌟 Why Status Network": { + "message": "🌟 왜 스테이터스 네트워크인가", + "description": "The label for the doc item 🌟 Why Status Network in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.💡 What to Build": { + "message": "💡 아이디어 카탈로그", + "description": "The label for the doc item 💡 What to Build in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.USING KARMA": { + "message": "카르마 사용", + "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { + "message": "⛽ 가스리스 적용하기", + "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { + "message": "🔰 평판 적용하기", + "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { + "message": "컨트랙트 배포", + "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { + "message": "🎩 Hardhat 사용하기", + "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { + "message": "⚒️ Foundry 사용하기", + "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { + "message": "🎛️ Remix 사용하기", + "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { + "message": "🏗 Scaffold-ETH 2 사용하기", + "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" + }, + "sidebar.toolsSidebar.category.TOOLS": { + "message": "도구", + "description": "The label for category TOOLS in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.CORE INFRASTRUCTURE": { + "message": "핵심 인프라", + "description": "The label for category CORE INFRASTRUCTURE in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.📡 RPC Endpoints": { + "message": "📡 RPC 엔드포인트", + "description": "The label for the doc item 📡 RPC Endpoints in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🌉 Bridge": { + "message": "🌉 브릿지", + "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { + "message": "🚰 테스트넷 파우셋", + "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🔎 Block Explorers": { + "message": "🔎 블록 익스플로러", + "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.RPC": { + "message": "RPC", + "description": "The label for category RPC in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🔌 JSON-RPC API": { + "message": "🔌 JSON-RPC API", + "description": "The label for the doc item 🔌 JSON-RPC API in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🌐 Running an RPC Node": { "message": "🌐 RPC 노드 운영하기", - "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" + "description": "The label for the doc item 🌐 Running an RPC Node in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.PARTNERS": { + "message": "파트너", + "description": "The label for category PARTNERS in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { + "message": "🤝 인프라 파트너", + "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" } } diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md new file mode 100644 index 0000000..5f600ba --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md @@ -0,0 +1,72 @@ +--- +id: deploying-contracts-index +title: 첫 번째 컨트랙트 배포하기 +description: 선호하는 배포 도구를 선택하여 Status Network에 스마트 컨트랙트를 배포하세요. Hardhat, Foundry, Remix, Scaffold-ETH 2 가이드를 제공합니다. +keywords: [deploy smart contract, Status Network, Hardhat, Foundry, Remix, Scaffold-ETH 2, blockchain deployment, EVM] +slug: /build-for-karma/deploying-contracts +sidebar_position: 1 +--- + +스테이터스 네트워크는 EVM 호환이므로 표준 이더리움 도구 체인을 사용하여 컨트랙트를 배포할 수 있습니다. 워크플로에 맞는 도구를 선택하고 단계별 가이드를 따라 테스트넷에 첫 번째 컨트랙트를 배포하세요. + +:::tip 시작하기 전에 +[지갑에 스테이터스 네트워크를 추가](/overview/general-info/add-status-network)하고 [테스트넷 ETH](/tools/core-infrastructure/testnet-faucets)를 받아두었는지 확인하세요. +::: + +## 배포 도구 선택 + +
+ + +
🎩
+
+

Hardhat

+

Solidity 컨트랙트 컴파일, 테스트, 배포를 위한 업계 표준 개발 환경. Hardhat Ignition 및 TypeScript 지원 포함.

+ TypeScript · Testing · Ignition +
+
+ + +
⚒️
+
+

Foundry

+

스마트 컨트랙트 개발을 위한 Rust 기반 초고속 툴킷. Solidity로 테스트를 작성하고 Cast로 컨트랙트와 상호작용하세요.

+ Solidity Tests · Cast · Fast Builds +
+
+ + +
🎛️
+
+

Remix IDE

+

설치 없이 브라우저에서 사용하는 IDE — 빠른 프로토타이핑, 학습, 로컬 도구 설치 없이 간단한 컨트랙트 배포에 완벽합니다.

+ Browser-Based · No Setup · Beginner-Friendly +
+
+ + +
🏗️
+
+

Scaffold-ETH 2

+

스테이터스 네트워크 확장이 사전 구성된 풀스택 스타터 키트. NextJS 프론트엔드, 컨트랙트 핫 리로드, Hardhat 및 Foundry 지원 포함.

+ Full-Stack · NextJS · Hot Reload +
+
+ +
+ +## 어떤 것을 선택할지 모르시겠어요? + +| 도구 | 적합한 용도 | 필요한 설정 | +|---|---|---| +| **Hardhat** | 복잡한 테스트 및 배포 파이프라인이 있는 프로덕션 프로젝트 | Node.js + npm | +| **Foundry** | Solidity-native 테스트와 빠른 컴파일을 선호하는 개발자 | Rust toolchain | +| **Remix** | 빠른 실험, 학습, 간단한 일회성 배포 | None (browser) | +| **Scaffold-ETH 2** | 처음부터 프론트엔드가 필요한 풀스택 app | Node.js + npm | + +## 배포 후 + +컨트랙트가 배포되면 다음 단계를 진행하세요: + +- Karma를 통해 [가스리스 트랜잭션을 적용](/build-for-karma/guides/gasless-integration)하여 사용자가 가스비를 지불할 필요 없도록 하기 +- Karma를 사용한 평판 인식 기능 구축을 위한 [평판 적용 가이드 읽기](/build-for-karma/guides/reputation-integration) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index eefba4e..2801960 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -9,7 +9,7 @@ - **Foundry**: [공식 Foundry 문서](https://book.getfoundry.sh/getting-started/installation)에서 설치 - **이더리움 지갑**: Status Network 테스트넷용 개인키 - **테스트넷 ETH**: Status Network 테스트넷 ETH가 필요합니다 - - Status Network 테스트넷 ETH는 [파우셋](/tools/testnet-faucets)에서 받을 수 있습니다 + - Status Network 테스트넷 ETH는 [파우셋](/tools/core-infrastructure/testnet-faucets)에서 받을 수 있습니다 - **기본 지식**: Solidity와 명령줄 사용 경험 ## 달성 목표 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index 0c53c7d..915e4f3 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -9,7 +9,7 @@ - **Node.js와 npm**: [공식 Node.js 웹사이트](https://nodejs.org/)에서 다운로드 및 설치 - **이더리움 지갑**: Status Network 테스트넷용 개인키가 있는 MetaMask 또는 다른 지갑 - **테스트넷 ETH**: Status Network 테스트넷 ETH가 필요합니다 - - Status Network 테스트넷 ETH는 [파우셋](/tools/testnet-faucets)에서 받을 수 있습니다 + - Status Network 테스트넷 ETH는 [파우셋](/tools/core-infrastructure/testnet-faucets)에서 받을 수 있습니다 - **기본 지식**: Solidity, Hardhat, 명령줄 사용 경험 ## 달성 목표 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index 3296c45..f57c897 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -9,7 +9,7 @@ - **웹 브라우저**: Chrome이나 Firefox와 같은 최신 브라우저 - **MetaMask**: [MetaMask](https://metamask.io) 브라우저 확장 프로그램 설치 - **테스트넷 ETH**: Status Network 테스트넷 ETH가 필요합니다 - - Status Network 테스트넷 ETH는 [파우셋](/tools/testnet-faucets)에서 받을 수 있습니다 + - Status Network 테스트넷 ETH는 [파우셋](/tools/core-infrastructure/testnet-faucets)에서 받을 수 있습니다 - **네트워크 구성**: [네트워크 추가 가이드](/overview/general-info/add-status-network)에 따라 MetaMask에 Status Network 테스트넷 추가 ## 단계 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index af64e7e..cc250bd 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -14,7 +14,7 @@ keywords: [Scaffold-ETH 2, 스마트 컨트랙트 배포, Status Network 개발, - **Foundry** (선택사항): Foundry 워크플로우를 선택하는 경우 - **Ethereum 지갑** (선택사항): 테스트용 EVM 지갑 개인 키, 없어도 가능 -> **참고**: Status Network는 가스 없는 트랜잭션을 지원하므로 테스트넷 ETH는 선택사항입니다. 여전히 테스트넷 ETH가 필요하다면 [Faucet](/tools/testnet-faucets)를 참고하세요. +> **참고**: Status Network는 가스 없는 트랜잭션을 지원하므로 테스트넷 ETH는 선택사항입니다. 여전히 테스트넷 ETH가 필요하다면 [Faucet](/tools/core-infrastructure/testnet-faucets)를 참고하세요. ## 빠른 시작 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md index 5484e0d..05b13f4 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md @@ -15,7 +15,7 @@ Status Network는 프로토콜 레벨에서 가스리스 트랜잭션을 제공 트랜잭션 UX를 준비할 때 신뢰할 수 있는 가스비 값 출처로 `linea_estimateGas` RPC 메서드를 사용하세요. ::: -기타 JSON-RPC 메서드 레퍼런스는 [JSON-RPC API](/build-for-karma/rpc/json-rpc)를 참조하세요. +기타 JSON-RPC 메서드 레퍼런스는 [JSON-RPC API](/tools/rpc/json-rpc)를 참조하세요. ## 카르마가 적용된 수수료 추정법 @@ -361,5 +361,5 @@ sender가 거부 목록에 있을 때(할당량 초과 또는 RLN 정책): ## 다음 단계 -- [JSON-RPC API](/build-for-karma/rpc/json-rpc) +- [JSON-RPC API](/tools/rpc/json-rpc) - [평판 적용하기](/build-for-karma/guides/reputation-integration) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/index.md index e69de29..f3ce96f 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/index.md @@ -0,0 +1,21 @@ +--- +id: build-for-karma-index +title: Build for Karma +description: Status Network에서 빌드하는 데 필요한 모든 것 — 가스리스 및 평판 통합 가이드, 배포 튜토리얼, 앱 아이디어. +keywords: [Status Network, builder guides, Karma, gasless integration, reputation, deploy contracts, app ideas, developer documentation] +slug: /build-for-karma +sidebar_position: 1 +--- + +이 섹션은 스테이터스 네트워크의 빌더 허브입니다. 이곳에서 빌드하는 이점을 이해하고, 무엇을 만들지 탐색하고, 가스리스 트랜잭션 구현 방법을 배우거나, 첫 번째 스마트 컨트랙트를 배포하는 등, 카르마를 중점으로 둔 개발에 필요한 모든 것이 여기에 있습니다. + +## 시작하기 + +- [**왜 스테이터스 네트워크인가**](/build-for-karma/why-status-network): 이곳에서 빌드해야 하는 이유 — 가스리스 경제, 카르마, 공공 자금, 다른 L2들과의 비교. +- [**아이디어 카탈로그**](/build-for-karma/what-to-build): 앱 아이디어들을 모아둔 인터랙티브 아이디어 카탈로그. +- [**카르마 사용하기**](/build-for-karma/guides): 가스리스 트랜잭션과 평판 기능을 앱에 적용하기 위한 기술 가이드. +- [**첫 번째 컨트랙트 배포**](/build-for-karma/deploying-contracts): Hardhat, Foundry, Remix 또는 Scaffold-ETH 2를 사용한 단계별 컨트랙트 배포 방법. + +## 커뮤니티 + +- [Telegram 빌더 커뮤니티](https://t.me/statusl2)에 참여하여 스테이터스 네트워크에서의 개발에 대한 도움을 받으세요 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md new file mode 100644 index 0000000..d5f63e8 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md @@ -0,0 +1,31 @@ +--- +title: 스테이터스 네트워크에서 만들 수 있는 다양한 앱 아이디어 카탈로그 +description: 카테고리, 노력, 전달 프로필별로 구성된 스테이터스 네트워크용 고성과 앱 아이디어 스캔 우선 카탈로그. +keywords: [Status Network, app ideas, builder ideas, Karma apps, privacy apps, gasless apps, DeFi, social apps, games, MVP] +sidebar_position: 3 +--- + +import IdeaCatalog from '@site/src/components/IdeaCatalog/IdeaCatalog'; + +스테이터스 네트워크는 가스리스 UX, 카르마 평판 시스템 그리고 근본적인 프라이버시를 하나로 모았습니다. +그로 인해 다른 체인에서는 볼 수 없는 제품들을 구현 가능하게 합니다. + +아래는 스테이터스 네트워크에 적합하다고 생각하는 예시 제품들입니다. 물론 이 아이디어에 제한될 필요는 없습니다. + +필터를 사용하여 여러분의 전문성과 야망에 맞는 아이디어를 찾아보세요. 카드를 클릭하면 전체 내용을 확인할 수 있습니다. + + + +## 지금 바로 구축하기 + +- [Quick Start](/overview/introduction/quick-start) +- [가스리스 및 평판을 위한 카르마 적용법](/build-for-karma/guides) +- [스테이터스 네트워크에 컨트랙트 배포하기](/build-for-karma/deploying-contracts) +- [Telegram Builder's Community](https://t.me/statusl2) + +## Ecosystem & Funding + +빌더는 카르마 보유자가 운영하는 공공 자금 풀에서 지속적인 자금을 지원 받을 수 있습니다. +앱의 성과가 높아질수록 카르마를 더 많이 획득하고, 향후 배분에 대한 영향력이 강해집니다. + +자세히 보기 → [Ecosystem & Funding](/overview/tokenomics/public-funding) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md new file mode 100644 index 0000000..9673f97 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md @@ -0,0 +1,138 @@ +--- +title: Status Network에서 구축해야 하는 이유 +description: Status Network에서 구축해야 하는 이유 — 가스리스 트랜잭션, Karma 평판, 지속 가능한 공공 자금 조달, 그리고 다른 L2와의 비교. +keywords: [Status Network, why build, L2 comparison, gasless, Karma, public funding, developer advantages, Linea zkEVM] +sidebar_position: 2 +--- + +여러분이 선택할 수 있는 수십 개의 L2들 중에서 스테이터스 네트워크를 주목할 만한 이유를 소개합니다. + +
+ +
+
개발자 자금
+
+
+
Status Network
+

앱의 성과에 따라 확장되는 지속적인 수익 풀

+
+
+
일반적인 L2
+

몇 달마다 재신청해야하는 일회성 보조금

+
+
+
+
+ +
+
사용자 가스
+
+
+
Status Network
+

카르마로 완전히 무료 — 페이마스터, 릴레이어, 계정 추상화 등 설정 불필요

+
+
+
일반적인 L2
+

사용자가 가스를 지불하거나, 개발자가 페이마스터 + 릴레이어 인프라 운영

+
+
+
+
+ +
+
사용자 평판
+
+
+
Status Network
+

카르마를 통한 네트워크 전역 평판 시스템 — 스팸 방지, 신뢰 신호, 기능 제한 등 활용 가능

+
+
+
일반적인 L2
+

없음 — 직접 구축하거나 서드파티 솔루션 사용

+
+
+
+
+ +
+
프라이버시
+
+
+
Status Network
+

네이티브 ZK 기반 도구 — Rate Limiting Nullifiers 등

+
+
+
일반적인 L2
+

서드파티

+
+
+
+
+
+ +## 지속 가능한 공공 자금 조달 + +스테이터스 네트워크는 일회성 보조금이나 재단 자금에 의존하지 않습니다. 대신 다음으로 공급되는 지속적인 공공 자금 풀이 있습니다: + +- 브릿지된 수익 자산(ETH, 스테이블코인 등)으로부터 나오는 **네이티브 수익** +- 네이티브 탈중앙화 거래소의 **DEX 수수료** +- 거부 목록 사용자의 **프리미엄 가스 수수료** +- 향후 출시될 추가적인 **네이티브 앱들의 수수료**(대출, NFT, 런치패드 등) + +자세히 보기 → [Economic Model](/overview/tokenomics/economic-model) + +카르마 보유자는 이 공공 자금 풀이 앱과 빌더에게 어떻게 분배될지 투표로 결정합니다. 앱이 활동과 트랜잭션 볼륨을 생성하며 네트워크에 더 많이 기여할수록 앱 사용자와 함께 더 많은 카르마를 획득하고, 향후 배분에 대한 영향력을 키울 수 있습니다. + +**빌더에게 의미하는 바:** + +- 몇 달마다 재신청해야 하는 일회성 보조금이 아니라 반복 수익 스트림에 자동 가입 +- 앱의 성과에 따라 자금이 확장됨. 사용자가 증가 -> 카르마 증가 -> 더 많은 인센티브 +- 커뮤니티 거버넌스 배분, 재단 리스크 없음 + +자세히 보기 → [Public Funding](/overview/tokenomics/public-funding) + +## 가스리스를 디폴트로 + +대부분의 체인들은 "가스리스"를 위해서 페이마스터 설정, 릴레이어 운영, 또는 계정 추상화 SDK 적용 등 개발자의 추가적인 조치가 필요합니다. 스테이터스 네트워크에서는 가스리스가 기본 동작입니다. + +Karma를 보유한 주소는 일정량의 무료 트랜잭션을 할당 받습니다. 페이마스터 X. 릴레이어 X. 특별한 지갑 설정 X. 자격이 있는 사용자에게 앱이 가스 수수료 없이 작동합니다. + +**빌더에게 의미하는 바:** + +- 가스로 인한 UX 마찰 없음. 온보딩 과정에서 "가스용 ETH 브릿지" 때문에 사용자를 잃지 않음 +- ERC-4337, 메타 트랜잭션 또는 가스 릴레이 패턴 별도 적용 불필요 +- 사용자 대신 가스 지불을 위한 인프라 비용 없음 + +가스리스 시스템은 [Rate Limiting Nullifiers (RLN)](/overview/general-info/gasless-transactions/#rln)라는 영지식 스팸 방지 메커니즘을 기반으로 시퀀서 레벨에서 적용됩니다. + +## 내장된 카르마 평판 시스템 + +카르마는 스테이킹, 브릿징, 유동성 제공, 앱 사용 또는 프리미엄 가스 지불과 같은 진정한 네트워크 참여를 통해 모든 사용자가 획득하는 소울바운드(비양도) 토큰입니다. 구매하거나 전송할 수 없습니다. + +**빌더에게 의미하는 바:** + +- **신뢰 신호**: 높은 카르마 티어 사용자는 검증된 활발한 참여자임을 의미함 +- **기능 제한**: 빌더는 사용자의 카르마 등급에 따라 프리미엄 기능, 우선 접근, 더 나은 이율 등 기능을 제한적으로 제공 수 있음 +- **스팸 방지**: 네트워크 자체가 RLN 메커니즘으로 스팸을 방지하며, 카르마 등급이 가스리스 트랜잭션 할당량을 직접 제어하므로 높은 카르마 티어 사용자는 본질적으로 스팸 가능성이 낮음 +- **콜드 스타트 문제 없음**: 앱은 생태계에서 네트워크 전역으로 구축된 평판의 혜택을 바로 적용할 수 있음. 처음부터 사용자 기반을 다져야 하는 문제 해소. + +자세히 보기 → [Karmic Tokenomics](/overview/tokenomics/karmic-tokenomics) + +## 프라이버시 중심적인 공공재 + +스테이터스 네트워크는 [Institute of Free Technology (IFT)](https://free.technology)의 기술로 구축되었습니다. 특히 가스리스 트랜잭션 시스템은 [Vac](https://vac.dev)(IFT 연구 부서)이 개발한 영지식 스팸 방지 메커니즘인 [RLN (Rate Limiting Nullifiers)](https://vac.dev/rln)를 사용합니다. + +우리는 디지털 시대의 시민권을 보호하는 공공재를 구축하고자 하는 IFT의 기술 비전과 함께합니다. 스테이터스 네트워크는 가스리스 특성을 활용하여 프라이버시 중심 모듈을 추가할 예정입니다. + +자세히 보기 → [Status Network and Privacy](/overview/general-info/privacy) + +## EVM 호환성 + +스테이터스 네트워크는 [Linea zkEVM](https://linea.build) 스택을 기반으로 구축되었습니다. 이는 빌더가 다음을 할 수 있음을 의미합니다: + +- 기존 Solidity 컨트랙트 수정 없이 그대로 배포 +- Hardhat, Foundry, ethers.js, viem 등 표준 이더리움 도구 사용 +- 표준 JSON-RPC 메서드 사용(가스 수수료 관련 일부 메서드 제외. 자세한 내용은 [JSON-RPC API](/tools/rpc/json-rpc) 참조) +- Linea의 롤업 아키텍처에서 상속된 영지식 증명 기반 보안 + +커스텀 VM 없음. 비표준 opcode 없음. 컨트랙트나 백엔드 재작성 불필요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md new file mode 100644 index 0000000..b52aa54 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md @@ -0,0 +1 @@ +# Status Network와 프라이버시 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md index 16d3874..3c5dbd5 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/index.md @@ -42,7 +42,7 @@ Status Network는 Status Wallet, Keycard, Waku, Codex 등 [IFT](https://free.tec 설명 부분을 건너뛰고 바로 구축을 시작하고 싶으신가요? 시작하는 방법은 다음과 같습니다: 1. [Status Network를 지갑에 추가](/overview/general-info/add-status-network) -2. [테스트넷 ETH 받기](/tools/testnet-faucets) +2. [테스트넷 ETH 받기](/tools/core-infrastructure/testnet-faucets) 3. [자산 브릿지하기](/overview/general-info/bridge/bridging-testnet) 4. [첫 번째 컨트랙트 배포하기](/build-for-karma/deploying-contracts/using-remix) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/block-explorers.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/core-infrastructure/block-explorers.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/tools/block-explorers.md rename to i18n/ko/docusaurus-plugin-content-docs/current/tools/core-infrastructure/block-explorers.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/core-infrastructure/bridge.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/tools/bridge.md rename to i18n/ko/docusaurus-plugin-content-docs/current/tools/core-infrastructure/bridge.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/core-infrastructure/rpc-endpoints.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc.md rename to i18n/ko/docusaurus-plugin-content-docs/current/tools/core-infrastructure/rpc-endpoints.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/core-infrastructure/testnet-faucets.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md rename to i18n/ko/docusaurus-plugin-content-docs/current/tools/core-infrastructure/testnet-faucets.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md index fec0b9a..4945296 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/index.md @@ -15,10 +15,10 @@ Status Network에서 빌드 및 테스트에 필요한 필수 서비스: | 도구 | 설명 | 링크 | |---|---|---| -| **RPC 엔드포인트** | 퍼블릭 JSON-RPC 및 WebSocket 액세스 | [RPC →](/tools/rpc) | -| **브릿지** | Ethereum Sepolia와 Status Network 간 자산 전송 | [브릿지 →](/tools/bridge) | -| **테스트넷 파우셋** | 개발용 테스트넷 자산 받기 | [파우셋 →](/tools/testnet-faucets) | -| **블록 익스플로러** | 트랜잭션, 컨트랙트, 네트워크 활동 탐색기 | [익스플로러 →](/tools/block-explorers) | +| **RPC 엔드포인트** | 퍼블릭 JSON-RPC 및 WebSocket 액세스 | [RPC →](/tools/core-infrastructure/rpc-endpoints) | +| **브릿지** | Ethereum Sepolia와 Status Network 간 자산 전송 | [브릿지 →](/tools/core-infrastructure/bridge) | +| **테스트넷 파우셋** | 개발용 테스트넷 자산 받기 | [파우셋 →](/tools/core-infrastructure/testnet-faucets) | +| **블록 익스플로러** | 트랜잭션, 컨트랙트, 네트워크 활동 탐색기 | [익스플로러 →](/tools/core-infrastructure/block-explorers) | ## 인프라 파트너 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tools/infrastructure.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/infrastructure.md index a8fb0a4..27787e1 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tools/infrastructure.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tools/infrastructure.md @@ -15,7 +15,7 @@ Status Network는 아래 카테고리의 인프라 파트너를 적극적으로 |---|---| | **RPC 제공자** | 안정적이고 지연이 적은 노드 액세스를 위한 전용 RPC 인프라 | | **오라클 및 VRF** | 가격 피드, RWA 데이터, 온체인 랜덤성을 위한 VRF, DEX 데이터 피드 | -| **Safe 및 멀티시그** | 재무 관리 및 거버넌스를 위한 멀티시그 지갑 | +| **Safe 및 다중서명** | 재무 관리 및 거버넌스를 위한 다중서명 지갑 | | **인덱서** | 스마트 컨트랙트 이벤트 및 온체인 데이터를 위한 탈중앙화 및 중앙화 인덱싱 | | **계정 추상화** | 스마트 계정, 키 관리, 원활한 사용자 온보딩 | | **개발 도구** | SDK, 배포 도구 및 소셜 로그인 | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc/json-rpc.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md rename to i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc/json-rpc.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md b/i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md rename to i18n/ko/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md diff --git a/i18n/zh/code.json b/i18n/zh/code.json index 08a1b2d..8fce2aa 100644 --- a/i18n/zh/code.json +++ b/i18n/zh/code.json @@ -544,5 +544,445 @@ "homepage.community.official.description": { "message": "网站、社交频道和所有官方资源汇总", "description": "Homepage community card description for official links" + }, + "ideaCatalog.filter.category": { + "message": "分类", + "description": "Filter group label" + }, + "ideaCatalog.filter.statusPrimitives": { + "message": "Status 特色功能", + "description": "Filter group label" + }, + "ideaCatalog.filter.builderProfile": { + "message": "开发者类型", + "description": "Filter group label" + }, + "ideaCatalog.filter.difficulty": { + "message": "难度", + "description": "Filter group label" + }, + "ideaCatalog.filter.fewerFilters": { + "message": "收起筛选", + "description": "Toggle button label" + }, + "ideaCatalog.filter.moreFilters": { + "message": "更多筛选", + "description": "Toggle button label" + }, + "ideaCatalog.filter.domainExpertise": { + "message": "领域专长", + "description": "Filter group label" + }, + "ideaCatalog.filter.userSegment": { + "message": "用户群体", + "description": "Filter group label" + }, + "ideaCatalog.filter.capitalRequirement": { + "message": "资金需求", + "description": "Filter group label" + }, + "ideaCatalog.status.showing": { + "message": "显示 {visibleCount} / {totalCount} 个创意", + "description": "Status text showing filtered count" + }, + "ideaCatalog.status.clearAll": { + "message": "清除全部", + "description": "Clear all filters button" + }, + "ideaCatalog.card.whyStatus": { + "message": "Why Status:", + "description": "Card detail label" + }, + "ideaCatalog.card.mvpScope": { + "message": "MVP 范围:", + "description": "Card detail label" + }, + "ideaCatalog.card.security": { + "message": "安全性", + "description": "Card meta badge label" + }, + "ideaCatalog.card.opsBurden": { + "message": "运维负担", + "description": "Card meta badge label" + }, + "ideaCatalog.empty.message": { + "message": "没有符合当前筛选条件的创意。", + "description": "Empty state message" + }, + "ideaCatalog.empty.clearAll": { + "message": "清除所有筛选", + "description": "Empty state clear button" + }, + "ideaCatalog.category.reputation": { + "message": "声誉", + "description": "Category label" + }, + "ideaCatalog.category.privacy": { + "message": "隐私", + "description": "Category label" + }, + "ideaCatalog.category.social": { + "message": "社交", + "description": "Category label" + }, + "ideaCatalog.category.games": { + "message": "游戏", + "description": "Category label" + }, + "ideaCatalog.category.defi": { + "message": "DeFi", + "description": "Category label" + }, + "ideaCatalog.statusPrimitive.gasless": { + "message": "无Gas", + "description": "Status primitive label" + }, + "ideaCatalog.statusPrimitive.reputation": { + "message": "声誉", + "description": "Status primitive label" + }, + "ideaCatalog.statusPrimitive.privacy": { + "message": "隐私", + "description": "Status primitive label" + }, + "ideaCatalog.builderProfile.frontendDev": { + "message": "Web / 移动端开发", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.contractDev": { + "message": "智能合约开发", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.fullStack": { + "message": "全栈开发", + "description": "Builder profile label" + }, + "ideaCatalog.builderProfile.protocolDev": { + "message": "协议 / 密码学", + "description": "Builder profile label" + }, + "ideaCatalog.difficulty.lowMed": { + "message": "低-中", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.med": { + "message": "中", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.medHigh": { + "message": "中-高", + "description": "Difficulty label" + }, + "ideaCatalog.difficulty.high": { + "message": "高", + "description": "Difficulty label" + }, + "ideaCatalog.userSegment.consumer": { + "message": "消费者", + "description": "User segment label" + }, + "ideaCatalog.userSegment.communityCreator": { + "message": "社区/创作者", + "description": "User segment label" + }, + "ideaCatalog.userSegment.daoOrgOps": { + "message": "DAO/组织运营", + "description": "User segment label" + }, + "ideaCatalog.userSegment.traderDefi": { + "message": "交易者/DeFi", + "description": "User segment label" + }, + "ideaCatalog.domainExpertise.communityDesign": { + "message": "社区设计", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.defiMechanisms": { + "message": "DeFi 机制", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.privacy": { + "message": "隐私", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.paymentsFinops": { + "message": "支付/财务运营", + "description": "Domain expertise label" + }, + "ideaCatalog.domainExpertise.consumerProduct": { + "message": "消费产品", + "description": "Domain expertise label" + }, + "ideaCatalog.capitalReq.none": { + "message": "无", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.operatingTreasury": { + "message": "运营资金", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.seedLiquidity": { + "message": "种子流动性", + "description": "Capital requirement label" + }, + "ideaCatalog.capitalReq.deepLiquidity": { + "message": "深度流动性", + "description": "Capital requirement label" + }, + "ideaCatalog.idea.karmaGatedAccess.title": { + "message": "Karma 门控内容流", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaGatedAccess.what": { + "message": "一个社交信息流,创作者发布的帖子仅对满足最低 Karma 等级的关注者可见 —— 类似 Substack 与链上声誉的结合。", + "description": "Idea summary" + }, + "ideaCatalog.idea.karmaGatedAccess.whyStatus": { + "message": "Karma 等级在链上解析,因此访问控制是去信任的 —— 无需订阅计费,无平台锁定,且天然抗 Sybil 攻击。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.karmaGatedAccess.mvp": { + "message": "包含公开和门控帖子的信息流、等级检查中间件(可能在链上)、显示按 Karma 等级分类受众的创作者仪表板。", + "description": "MVP scope" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.title": { + "message": "Karma 增强收益金库", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.what": { + "message": "一个 DeFi 金库,Karma 等级较高的存款人可获得更高的 APY —— 早期支持者和活跃参与者获得更好的回报。", + "description": "Idea summary" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.whyStatus": { + "message": "原生声誉图谱让金库可以根据经过验证的参与度来分配奖励权重,而非依赖代币加权投票或链下白名单。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.karmaLiquidityProtocol.mvp": { + "message": "单资产金库,含两个收益等级、存款时链上 Karma 等级查询、以及按等级显示有效 APY 的仪表板。", + "description": "MVP scope" + }, + "ideaCatalog.idea.karmaIncentiveMarket.title": { + "message": "Karma 悬赏平台", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaIncentiveMarket.what": { + "message": "一个悬赏市场,只有 Karma 达到阈值的用户才能领取任务 —— 项目团队发布工作(Bug 报告、翻译、引导指南)并向经过验证的贡献者付费。", + "description": "Idea summary" + }, + "ideaCatalog.idea.karmaIncentiveMarket.whyStatus": { + "message": "Karma 门控过滤掉垃圾机器人和低质量提交,让悬赏发布者确信认领者在网络上有真实的记录。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.karmaIncentiveMarket.mvp": { + "message": "悬赏列表页面、Karma 门控认领流程、提交审核面板、以及审批后的链上支付。", + "description": "MVP scope" + }, + "ideaCatalog.idea.karmaDynamicPricing.title": { + "message": "Karma 分级 NFT 市场", + "description": "Idea title" + }, + "ideaCatalog.idea.karmaDynamicPricing.what": { + "message": "一个 NFT 市场,上架费、版税和抢先访问窗口根据买卖双方的 Karma 等级自动调整 —— 受信任的参与者自动获得更好的条件。", + "description": "Idea summary" + }, + "ideaCatalog.idea.karmaDynamicPricing.whyStatus": { + "message": "结账时的链上等级解析意味着动态定价是去信任执行的 —— 无需优惠码,无需后端白名单。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.karmaDynamicPricing.mvp": { + "message": "NFT 上架 + 购买流程(含分级费用方案)、结账时链上等级检查、以及显示按买家等级统计销售的卖家分析。", + "description": "MVP scope" + }, + "ideaCatalog.idea.stealthAddressPayments.title": { + "message": "隐身地址支付", + "description": "Idea title" + }, + "ideaCatalog.idea.stealthAddressPayments.what": { + "message": "带有不可关联支出路径的一次性接收地址。", + "description": "Idea summary" + }, + "ideaCatalog.idea.stealthAddressPayments.whyStatus": { + "message": "隐私原语 + 低摩擦交易体验。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.stealthAddressPayments.mvp": { + "message": "地址生成、接收流程和隐私支出流程。", + "description": "MVP scope" + }, + "ideaCatalog.idea.privatePayroll.title": { + "message": "隐私薪资与储蓄", + "description": "Idea title" + }, + "ideaCatalog.idea.privatePayroll.what": { + "message": "不暴露余额和收款人的薪资和储蓄通道。", + "description": "Idea summary" + }, + "ideaCatalog.idea.privatePayroll.whyStatus": { + "message": "公开账本无法满足预期的现实需求。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.privatePayroll.mvp": { + "message": "雇主批量支付 + 收款人领取 + 屏蔽金库。", + "description": "MVP scope" + }, + "ideaCatalog.idea.shieldedMicrotransactions.title": { + "message": "屏蔽微交易 / 卡层", + "description": "Idea title" + }, + "ideaCatalog.idea.shieldedMicrotransactions.what": { + "message": "隐藏金额/参与者的小额支付和订阅。", + "description": "Idea summary" + }, + "ideaCatalog.idea.shieldedMicrotransactions.whyStatus": { + "message": "无Gas交互使频繁支付变得可行。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.shieldedMicrotransactions.mvp": { + "message": "带有重复授权的隐私打赏/订阅流程。", + "description": "MVP scope" + }, + "ideaCatalog.idea.privateLending.title": { + "message": "隐私借贷", + "description": "Idea title" + }, + "ideaCatalog.idea.privateLending.what": { + "message": "避免公开头寸泄露的借贷流程。", + "description": "Idea summary" + }, + "ideaCatalog.idea.privateLending.whyStatus": { + "message": "隐私 + 基于 Karma 的信任信号。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.privateLending.mvp": { + "message": "一种抵押品类型、一种借贷资产、隐私健康检查。", + "description": "MVP scope" + }, + "ideaCatalog.idea.privateMultisig.title": { + "message": "隐私多重签名", + "description": "Idea title" + }, + "ideaCatalog.idea.privateMultisig.what": { + "message": "签名者、阈值和交易详情被隐藏的多重签名功能。", + "description": "Idea summary" + }, + "ideaCatalog.idea.privateMultisig.whyStatus": { + "message": "注重隐私的组织仍然可以在链上运营。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.privateMultisig.mvp": { + "message": "策略设置 + 签名流程 + 带选择性披露的执行日志。", + "description": "MVP scope" + }, + "ideaCatalog.idea.socialMiniApp.title": { + "message": "无Gas微博平台", + "description": "Idea title" + }, + "ideaCatalog.idea.socialMiniApp.what": { + "message": "一个类 Twitter 的微博,每次发帖、回复和点赞都是用户零成本的链上操作 —— 用 Karma 徽章展示受信任的声音。", + "description": "Idea summary" + }, + "ideaCatalog.idea.socialMiniApp.whyStatus": { + "message": "无Gas交易使按操作计费的经济模型可行;Karma 徽章用通过实际网络参与获得的声誉取代了任意的蓝标系统。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.socialMiniApp.mvp": { + "message": "时间线信息流、发帖/回复/点赞操作、带 Karma 信任徽章的用户个人资料、以及基本内容审核控制。", + "description": "MVP scope" + }, + "ideaCatalog.idea.creatorEconomyToolkit.title": { + "message": "粉丝通行证平台", + "description": "Idea title" + }, + "ideaCatalog.idea.creatorEconomyToolkit.what": { + "message": "一个平台,创作者铸造免费数字通行证来解锁独家内容、群聊和线下活动入场 —— 粉丝以无Gas方式收集通行证。", + "description": "Idea summary" + }, + "ideaCatalog.idea.creatorEconomyToolkit.whyStatus": { + "message": "零成本铸造和领取消除了社区通行证的付费墙摩擦,让创作者无需要求粉丝支付Gas即可扩大受众。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.creatorEconomyToolkit.mvp": { + "message": "创作者页面(含通行证铸造)、粉丝领取流程、通行证门控内容区域、以及通过通行证验证的活动签到。", + "description": "MVP scope" + }, + "ideaCatalog.idea.communityGovernance.title": { + "message": "DAO 提案与 Karma 加权投票应用", + "description": "Idea title" + }, + "ideaCatalog.idea.communityGovernance.what": { + "message": "一个治理应用,社区成员提交提案并按其 Karma 等级的权重投票 —— 活跃贡献者比被动持有者拥有更大的话语权。", + "description": "Idea summary" + }, + "ideaCatalog.idea.communityGovernance.whyStatus": { + "message": "Karma 加权投票奖励真实参与而非代币积累,无Gas投票消除了抑制大多数 DAO 投票率的成本壁垒。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.communityGovernance.mvp": { + "message": "提案提交表单、链上计票的 Karma 加权投票、按等级显示参与分布的结果仪表板。", + "description": "MVP scope" + }, + "ideaCatalog.idea.onchainStrategyGame.title": { + "message": "战争迷雾征服游戏", + "description": "Idea title" + }, + "ideaCatalog.idea.onchainStrategyGame.what": { + "message": "一个六角格领地控制游戏,军队位置通过隐私状态隐藏,每次移动都是无Gas的链上交易 —— 类似带有真正链上战争迷雾的 Risk 桌游。", + "description": "Idea summary" + }, + "ideaCatalog.idea.onchainStrategyGame.whyStatus": { + "message": "隐私原语实现真正的隐藏信息(不仅仅是客户端迷雾),无Gas移动使策略游戏的快速来回在经济上可行。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.onchainStrategyGame.mvp": { + "message": "带战争迷雾的六角地图、一种单位类型、隐私军队部署、回合结算和匹配排行榜。", + "description": "MVP scope" + }, + "ideaCatalog.idea.predictionMarket.title": { + "message": "预测市场", + "description": "Idea title" + }, + "ideaCatalog.idea.predictionMarket.what": { + "message": "低摩擦参与和隐私参与者头寸的市场。", + "description": "Idea summary" + }, + "ideaCatalog.idea.predictionMarket.whyStatus": { + "message": "更好的市场参与度和更少的跟单行为。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.predictionMarket.mvp": { + "message": "市场创建 + 头寸入场 + 结算 + 基础分析。", + "description": "MVP scope" + }, + "ideaCatalog.idea.nativeDexCompanion.title": { + "message": "Karma 分级交换路由器", + "description": "Idea title" + }, + "ideaCatalog.idea.nativeDexCompanion.what": { + "message": "一个交换界面,通过最优链上池路由交易,为高 Karma 用户提供降低的手续费和优先执行 —— 将忠诚计划融入 DEX 层。", + "description": "Idea summary" + }, + "ideaCatalog.idea.nativeDexCompanion.whyStatus": { + "message": "Karma 等级让路由器以去信任方式提供手续费折扣,与原生流动性的紧密集成意味着无需依赖外部聚合器即可获得更好的汇率。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.nativeDexCompanion.mvp": { + "message": "带分级手续费显示的代币交换界面、Karma 感知路由逻辑、LP 头寸面板、以及显示按等级节省手续费的交易历史。", + "description": "MVP scope" + }, + "ideaCatalog.idea.publicFundingInterface.title": { + "message": "公共资助界面", + "description": "Idea title" + }, + "ideaCatalog.idea.publicFundingInterface.what": { + "message": "端到端的资助发现、提案、投票和跟踪仪表板。", + "description": "Idea summary" + }, + "ideaCatalog.idea.publicFundingInterface.whyStatus": { + "message": "直接支持生态系统增长飞轮。", + "description": "Why Status explanation" + }, + "ideaCatalog.idea.publicFundingInterface.mvp": { + "message": "提案面板 + 投票界面 + 资助进度追踪器。", + "description": "MVP scope" } } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current.json b/i18n/zh/docusaurus-plugin-content-docs/current.json index 00dde5f..588eec7 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current.json +++ b/i18n/zh/docusaurus-plugin-content-docs/current.json @@ -23,121 +23,17 @@ "message": "🌉 跨链桥", "description": "The label for category 🌉 Bridge in sidebar homeSidebar" }, - "sidebar.toolsSidebar.category.TOOLS": { - "message": "工具", - "description": "The label for category TOOLS in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.category.PARTNERS": { - "message": "合作伙伴", - "description": "The label for category PARTNERS in sidebar toolsSidebar" - }, - "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { - "message": "Karma 开发", - "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { - "message": "🛠 Karma 开发指南", - "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.USING KARMA": { - "message": "使用 Karma", - "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { - "message": "部署合约", - "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.category.RPC": { - "message": "RPC", - "description": "The label for category RPC in sidebar buildForKarmaSidebar" - }, "sidebar.homeSidebar.category.OTHER DOCS": { "message": "其他文档", "description": "The label for category OTHER DOCS in sidebar homeSidebar" }, "sidebar.homeSidebar.doc.🌴 Home": { "message": "🌴 首页", - "description": "The label for the doc item 🌴 Home in sidebar homeSidebar, linking to the doc index" + "description": "The label for the doc item 🌴 Home in sidebar homeSidebar" }, "sidebar.homeSidebar.doc.⚡ Quick Start": { "message": "⚡ 快速开始", - "description": "The label for the doc item ⚡ Quick Start in sidebar homeSidebar, linking to the doc introduction/quick-start" - }, - "sidebar.homeSidebar.doc.💎 SNT Token": { - "message": "💎 SNT Token", - "description": "The label for the doc item 💎 SNT Token in sidebar homeSidebar, linking to the doc tokenomics/snt-token" - }, - "sidebar.homeSidebar.doc.💠 Karma Token": { - "message": "💠 Karma Token", - "description": "The label for the doc item 💠 Karma Token in sidebar homeSidebar, linking to the doc tokenomics/karma-token" - }, - "sidebar.homeSidebar.doc.🌐 Network Details": { - "message": "🌐 网络详情", - "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.➕ Add Status Network": { - "message": "➕ 添加 Status 网络", - "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.💰 Tokens": { - "message": "💰 代币", - "description": "The label for the doc item 💰 Tokens in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { - "message": "🧪 测试网合约", - "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" - }, - "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { - "message": "🧪 测试网跨链", - "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" - }, - "sidebar.toolsSidebar.doc.🔌 RPC": { - "message": "🔌 RPC", - "description": "The label for the doc item 🔌 RPC in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🌉 Bridge": { - "message": "🌉 跨链桥", - "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { - "message": "🚰 测试网水龙头", - "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🔎 Block Explorers": { - "message": "🔎 区块浏览器", - "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" - }, - "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { - "message": "🤝 基础设施合作伙伴", - "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { - "message": "⛽ 无Gas交易整合", - "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { - "message": "🔰 声誉整合", - "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { - "message": "🎩 使用 Hardhat", - "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { - "message": "⚒️ 使用 Foundry", - "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { - "message": "🎛️ 使用 Remix", - "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" - }, - "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { - "message": "🏗 Scaffold-ETH 2 使用", - "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" - }, - "sidebar.homeSidebar.doc.🔗 Official Links": { - "message": "🔗 官方链接", - "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" + "description": "The label for the doc item ⚡ Quick Start in sidebar homeSidebar" }, "sidebar.homeSidebar.doc.🤝 Economic Model": { "message": "🤝 经济模型", @@ -159,20 +55,128 @@ "message": "💰 预存款", "description": "The label for the doc item 💰 Pre-Deposits in sidebar homeSidebar" }, + "sidebar.homeSidebar.doc.🌐 Network Details": { + "message": "🌐 网络详情", + "description": "The label for the doc item 🌐 Network Details in sidebar homeSidebar" + }, + "sidebar.homeSidebar.doc.⛽ Gasless Transactions": { + "message": "⛽ 无Gas交易", + "description": "The label for the doc item ⛽ Gasless Transactions in sidebar homeSidebar" + }, + "sidebar.homeSidebar.doc.➕ Add Status Network": { + "message": "➕ 添加 Status 网络", + "description": "The label for the doc item ➕ Add Status Network in sidebar homeSidebar" + }, "sidebar.homeSidebar.doc.🪙 Tokens": { "message": "🪙 代币", "description": "The label for the doc item 🪙 Tokens in sidebar homeSidebar" }, + "sidebar.homeSidebar.doc.🧪 Testnet Contracts": { + "message": "🧪 测试网合约", + "description": "The label for the doc item 🧪 Testnet Contracts in sidebar homeSidebar" + }, "sidebar.homeSidebar.doc.💰 Pre-Deposit Vault Contracts": { - "message": "💰 预存金库合同", + "message": "💰 预存金库合约", "description": "The label for the doc item 💰 Pre-Deposit Vault Contracts in sidebar homeSidebar" }, - "sidebar.buildForKarmaSidebar.doc.🔌 JSON-RPC API": { - "message": "🔌 JSON-RPC API", - "description": "The label for the doc item 🔌 JSON-RPC API in sidebar buildForKarmaSidebar" + "sidebar.homeSidebar.doc.🧪 Bridging Testnet": { + "message": "🧪 测试网跨链", + "description": "The label for the doc item 🧪 Bridging Testnet in sidebar homeSidebar" }, - "sidebar.buildForKarmaSidebar.doc.🌐 Running an RPC node": { - "message": "🌐 运行RPC节点", - "description": "The label for the doc item 🌐 Running an RPC node in sidebar buildForKarmaSidebar" + "sidebar.homeSidebar.doc.🔗 Official Links": { + "message": "🔗 官方链接", + "description": "The label for the doc item 🔗 Official Links in sidebar homeSidebar" + }, + "sidebar.buildForKarmaSidebar.category.BUILD FOR KARMA": { + "message": "Karma 开发", + "description": "The label for category BUILD FOR KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🛠 Build for Karma": { + "message": "🛠 Karma 开发指南", + "description": "The label for the doc item 🛠 Build for Karma in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🌟 Why Status Network": { + "message": "🌟 为什么选择 Status Network", + "description": "The label for the doc item 🌟 Why Status Network in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.💡 What to Build": { + "message": "💡 创意目录", + "description": "The label for the doc item 💡 What to Build in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.USING KARMA": { + "message": "使用 Karma", + "description": "The label for category USING KARMA in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.⛽ Gasless Integration": { + "message": "⛽ 无Gas交易整合", + "description": "The label for the doc item ⛽ Gasless Integration in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🔰 Reputation Integration": { + "message": "🔰 声誉整合", + "description": "The label for the doc item 🔰 Reputation Integration in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.category.DEPLOYING CONTRACTS": { + "message": "部署合约", + "description": "The label for category DEPLOYING CONTRACTS in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🎩 Using Hardhat": { + "message": "🎩 使用 Hardhat", + "description": "The label for the doc item 🎩 Using Hardhat in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.⚒️ Using Foundry": { + "message": "⚒️ 使用 Foundry", + "description": "The label for the doc item ⚒️ Using Foundry in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🎛️ Using Remix": { + "message": "🎛️ 使用 Remix", + "description": "The label for the doc item 🎛️ Using Remix in sidebar buildForKarmaSidebar" + }, + "sidebar.buildForKarmaSidebar.doc.🏗 Using Scaffold-ETH 2": { + "message": "🏗 Scaffold-ETH 2 使用", + "description": "The label for the doc item 🏗 Using Scaffold-ETH 2 in sidebar buildForKarmaSidebar" + }, + "sidebar.toolsSidebar.category.TOOLS": { + "message": "工具", + "description": "The label for category TOOLS in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.CORE INFRASTRUCTURE": { + "message": "核心基础设施", + "description": "The label for category CORE INFRASTRUCTURE in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.📡 RPC Endpoints": { + "message": "📡 RPC 端点", + "description": "The label for the doc item 📡 RPC Endpoints in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🌉 Bridge": { + "message": "🌉 跨链桥", + "description": "The label for the doc item 🌉 Bridge in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🚰 Testnet Faucets": { + "message": "🚰 测试网水龙头", + "description": "The label for the doc item 🚰 Testnet Faucets in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🔎 Block Explorers": { + "message": "🔎 区块浏览器", + "description": "The label for the doc item 🔎 Block Explorers in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.RPC": { + "message": "RPC", + "description": "The label for category RPC in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🔌 JSON-RPC API": { + "message": "🔌 JSON-RPC API", + "description": "The label for the doc item 🔌 JSON-RPC API in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🌐 Running an RPC Node": { + "message": "🌐 运行 RPC 节点", + "description": "The label for the doc item 🌐 Running an RPC Node in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.category.PARTNERS": { + "message": "合作伙伴", + "description": "The label for category PARTNERS in sidebar toolsSidebar" + }, + "sidebar.toolsSidebar.doc.🤝 Infrastructure Partners": { + "message": "🤝 基础设施合作伙伴", + "description": "The label for the doc item 🤝 Infrastructure Partners in sidebar toolsSidebar" } } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md new file mode 100644 index 0000000..ad01899 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/index.md @@ -0,0 +1,72 @@ +--- +id: deploying-contracts-index +title: 部署你的第一个合约 +description: 选择你偏好的部署工具,将智能合约部署到 Status Network。提供 Hardhat、Foundry、Remix 和 Scaffold-ETH 2 的指南。 +keywords: [deploy smart contract, Status Network, Hardhat, Foundry, Remix, Scaffold-ETH 2, blockchain deployment, EVM] +slug: /build-for-karma/deploying-contracts +sidebar_position: 1 +--- + +Status Network 完全兼容 EVM,因此你可以使用任何标准以太坊工具链部署合约。选择适合你工作流程的工具,按照分步指南将你的第一个合约部署到测试网。 + +:::tip 开始之前 +请确保你已[将 Status Network 添加到钱包](/overview/general-info/add-status-network),并领取一些[测试网 ETH](/tools/core-infrastructure/testnet-faucets)。 +::: + +## 选择部署工具 + + + +## 不知道选哪个? + +| 工具 | 最适合 | 所需配置 | +|---|---|---| +| **Hardhat** | 具有复杂测试和部署流程的生产项目 | Node.js + npm | +| **Foundry** | 偏好 Solidity 原生测试和快速编译的开发者 | Rust 工具链 | +| **Remix** | 快速实验、学习和简单一次性部署 | 无(浏览器) | +| **Scaffold-ETH 2** | 从一开始就需要前端的全栈 dApp | Node.js + npm | + +## 部署之后 + +合约上线后,以下是你的下一步: + +- 通过 Karma [集成无 Gas 交易](/build-for-karma/guides/gasless-integration),让用户无需支付 Gas +- [阅读声誉集成指南](/build-for-karma/guides/reputation-integration),使用 Karma 构建支持声誉的功能 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md index 9233fe8..7f7d6f5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-foundry.md @@ -9,7 +9,7 @@ - **Foundry**: 从[官方 Foundry 文档](https://book.getfoundry.sh/getting-started/installation)安装 - **以太坊钱包**: Status Network 测试网的私钥 - **测试网 ETH**: 您需要 Status Network 测试网 ETH - - 从我们的[水龙头](/tools/testnet-faucets)获取 Status Network 测试网 ETH + - 从我们的[水龙头](/tools/core-infrastructure/testnet-faucets)获取 Status Network 测试网 ETH - **基础知识**: 熟悉 Solidity 和命令行 ## 您将完成 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md index 78da808..0b2a1a5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-hardhat.md @@ -9,7 +9,7 @@ - **Node.js 和 npm**: 从[官方 Node.js 网站](https://nodejs.org/)下载并安装 - **以太坊钱包**: MetaMask 或其他具有 Status Network 测试网私钥的钱包 - **测试网 ETH**: 您需要 Status Network 测试网 ETH - - 从我们的[水龙头](/tools/testnet-faucets)获取 Status Network 测试网 ETH + - 从我们的[水龙头](/tools/core-infrastructure/testnet-faucets)获取 Status Network 测试网 ETH - **基础知识**: 熟悉 Solidity、Hardhat 和命令行 ## 您将完成 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md index ba68368..07f32b5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-remix.md @@ -9,7 +9,7 @@ - **网络浏览器**: Chrome 或 Firefox 等现代浏览器 - **MetaMask**: 安装 [MetaMask](https://metamask.io) 浏览器扩展 - **测试网 ETH**: 您需要 Status Network 测试网 ETH - - 从我们的[水龙头](/tools/testnet-faucets)获取 Status Network 测试网 ETH + - 从我们的[水龙头](/tools/core-infrastructure/testnet-faucets)获取 Status Network 测试网 ETH - **网络配置**: 按照我们的[添加网络指南](/overview/general-info/add-status-network)将 Status Network 测试网添加到 MetaMask ## 步骤 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md index 940e677..32f6268 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/deploying-contracts/using-se2.md @@ -14,7 +14,7 @@ keywords: [Scaffold-ETH 2, 智能合约部署, Status Network开发, Foundry, Ha - **Foundry** (可选): 如果选择Foundry工作流 - **以太坊钱包** (可选): 用于测试的EVM钱包私钥,但没有也没关系 -> **注意**: Status Network支持无gas交易,因此测试网ETH是可选的。如果您仍然需要测试网ETH,请从我们的[水龙头](/tools/testnet-faucets)获取。 +> **注意**: Status Network支持无gas交易,因此测试网ETH是可选的。如果您仍然需要测试网ETH,请从我们的[水龙头](/tools/core-infrastructure/testnet-faucets)获取。 ## 快速开始 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md index 31550f0..abe98fb 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/guides/gasless-integration.md @@ -15,7 +15,7 @@ Status Network 在协议层面提供无 Gas 交易。你不需要 paymasters 或 使用 `linea_estimateGas` RPC 方法作为准备交易 UX 时 Gas 费用的唯一数据来源。 ::: -其他 JSON-RPC 方法参考,请参阅 [JSON-RPC API](/build-for-karma/rpc/json-rpc)。 +其他 JSON-RPC 方法参考,请参阅 [JSON-RPC API](/tools/rpc/json-rpc)。 ## 具有 Karma 感知能力的费用估算 @@ -361,5 +361,5 @@ console.log({ ## 下一步 -- [JSON-RPC API](/build-for-karma/rpc/json-rpc) +- [JSON-RPC API](/tools/rpc/json-rpc) - [声誉集成](/build-for-karma/guides/reputation-integration) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/index.md index e69de29..9cd20f7 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/index.md @@ -0,0 +1,21 @@ +--- +id: build-for-karma-index +title: Build for Karma +description: 开发者在 Status Network 上构建所需的一切 —— 无Gas交易与声誉整合指南、部署教程和应用创意。 +keywords: [Status Network, builder guides, Karma, gasless integration, reputation, deploy contracts, app ideas, developer documentation] +slug: /build-for-karma +sidebar_position: 1 +--- + +本章节是你在 Status Network 上的开发中心。无论你想了解在这里构建的优势、探索可以构建的项目、学习如何实现无Gas交易,还是部署你的第一个智能合约 —— 以 Karma 为核心的开发所需的一切都在这里。 + +## 从哪里开始 + +- [**为什么选择 Status Network**](/build-for-karma/why-status-network):在这里构建的理由 —— 无Gas经济模型、Karma、公共资金,以及与其他 L2 的对比。 +- [**构建什么**](/build-for-karma/what-to-build):可筛选的交互式创意目录,帮助你激发灵感。 +- [**使用 Karma**](/build-for-karma/guides):将无Gas交易和声誉感知功能整合到应用中的技术指南。 +- [**部署你的第一个合约**](/build-for-karma/deploying-contracts):使用 Hardhat、Foundry、Remix 或 Scaffold-ETH 2 进行分步合约部署。 + +## 社区 + +- 加入 [Telegram 开发者社区](https://t.me/statusl2),获取在 Status Network 上构建的帮助 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md deleted file mode 100644 index 11086f0..0000000 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/running-an-rpc.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -title: 运行自己的RPC节点 -description: 使用官方RPC工具为Status Network设置和运行自己的RPC节点的完整指南。了解节点设置、配置和维护。 -keywords: [RPC节点, Status Network RPC, 区块链节点, WebSocket, wss, 自托管RPC, 网络基础设施, Status L2 RPC工具] ---- - -# 运行自己的RPC节点 - -本教程将指导您完成为Status Network设置和运行自己的Remote Procedure Call (RPC)节点的过程。通过运行自己的RPC节点,您可以更好地控制与Status Network的交互,增强隐私性,并减少对第三方服务的依赖。 - -## 入门 - -[Status Network RPC Tools仓库](https://github.com/status-im/status-l2-rpc-tools)提供了运行自己的RPC节点所需的所有工具、创世文件和设置脚本。 - -### 完整设置指南 -有关详细的设置说明、先决条件、系统要求和分步指导,请参阅仓库中的**[官方README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)**。 - -## 节点选项 - -设置脚本提供两种节点实现供选择: - -- **Besu节点**: 在端口`8545`上运行 (http://localhost:8545) -- **Geth节点**: 在端口`8445`上运行 (http://localhost:8445) - -根据需要,您可以运行其中一个或同时运行两个。 - -## 验证节点 -在下面的示例中,如果使用Besu,请将``替换为`8545`;如果使用Geth,则替换为`8445`。 - -### 基本验证 - -节点运行后,验证其正常工作: - -```bash -# 您应该收到包含当前区块号的响应。 -curl -X POST \ - -H "Content-Type: application/json" \ - -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \ - http://localhost: -``` - -### 健康状态和同步验证 - -进行全面的节点健康检查: - -```bash -# 检查节点的同步状态。如果节点已同步,则返回false。 -curl -X POST \ - -H "Content-Type: application/json" \ - -d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' \ - http://localhost: - -# 验证节点连接的对等节点数量(应该大于0) -curl -X POST \ - -H "Content-Type: application/json" \ - -d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' \ - http://localhost: -``` - -最新且健康的节点应显示: -- `eth_blockNumber`与可信参考(如公共RPC或区块浏览器)匹配 -- `eth_syncing`返回`false`(完全同步) -- `net_peerCount`大于0(已连接到对等节点) - -## WebSocket支持 - -您的节点还支持WebSocket连接以进行实时事件订阅: - -```bash -# WebSocket端点 -ws://localhost:8546 # Besu -ws://localhost:8446 # Geth -``` - -### WebSocket连接 - -### 订阅示例 - -```json -// 订阅新区块头 -{"jsonrpc":"2.0","method":"eth_subscribe","params":["newHeads"],"id":1} - -// 订阅匹配过滤器的日志 -{"jsonrpc":"2.0","method":"eth_subscribe","params":["logs",{"address":"0x..."}],"id":1} - -// 取消订阅 -{"jsonrpc":"2.0","method":"eth_unsubscribe","params":["0x..."],"id":1} -``` - -## 高级功能 - -### 批量请求 - -您的节点支持批量JSON-RPC请求以提高效率: - -- **默认批量上限**: 每批1,024个请求 -- **配置**: 可通过`--rpc-http-max-batch-size`调整(设置为`1`表示无限制) -- **最大请求大小**: 5 MB(默认`--rpc-http-max-request-content-length`) - -### 资源密集型方法 - -注意可能需要较长响应时间的方法: - -| 方法 | 响应时间 | 备注 | -|--------|---------------|-------| -| `eth_getLogs`(大范围) | 200毫秒至几秒 | 使用有界范围和布隆过滤器 | -| `eth_estimateGas` | 200毫秒至几秒 | 在负载下或使用复杂合约时可能较慢 | - -::::tip 性能提示 -对于生产使用,从低数千读取RPS开始,并根据您的特定工作负载和硬件测试进行水平扩展。 -:::: - -## 故障排除 - -### 常见问题 - -1. **端口已被占用** - ```bash - # 检查什么正在使用端口8545(Besu)或8445(Geth) - lsof -i :8545 - lsof -i :8445 - - # 如需要,终止进程 - kill -9 - ``` - -2. **Docker容器问题** - ```bash - # 检查运行中的容器 - docker ps - - # 查看容器日志 - docker compose logs -f - - # 重启容器 - docker compose restart - ``` - -3. **节点未同步** - - 检查您的互联网连接 - - 验证是否有足够的磁盘空间 - - 检查Docker容器日志:`docker compose logs` - - 确保您的系统满足最低要求 - -4. **RPC端点无响应** - - 验证容器正在运行:`docker ps` - - 检查防火墙设置 - - 确保RPC端口(8545、8445)可访问 - - 查看容器日志中的错误 - -### 监控节点 - -```bash -# 检查Docker容器状态 -docker compose ps - -# 监控容器日志 -docker compose logs -f - -# 监控磁盘使用 -df -h - -# 检查网络连接 -netstat -tulpn | grep :8545 -netstat -tulpn | grep :8445 -``` - -## 存储规划 - -### 磁盘空间要求 - -根据增长规划存储容量: - -- 初始大小:约200 GB(6个月后,2秒区块约12M笔交易) -- 增长率:中等,取决于网络活动 -- 建议:2 TB Gen4 NVMe以留有余地 - -::::warning 规划增长 -始终提供超出当前需求的额外存储容量以确保持续运行。 -:::: - -## 安全考虑 - -运行自己的RPC节点时: - -1. **防火墙配置**: 仅暴露必要的端口(8545、8445) -2. **访问控制**: 考虑为生产使用实施身份验证 -3. **网络隔离**: 避免将RPC端点直接暴露到互联网 -4. **定期更新**: 保持节点软件和Docker镜像更新 -5. **备份**: 定期备份节点配置(数据可在需要时重新同步) -6. **速率限制**: 如果暴露给多个用户,实施速率限制 - -::::caution 生产部署 -对于生产使用,由于速率限制,避免依赖公共RPC端点。运行自己的私有RPC节点可提供更好的可靠性和性能。 -:::: - -## 性能优化 - -优化RPC节点性能: - -1. **SSD存储**: 使用Gen4 NVMe存储以获得更好的I/O性能 -2. **充足的RAM**: 确保有足够的内存用于缓存(建议32-48 GB) -3. **网络带宽**: 用于同步和对等通信的稳定1+ Gbps连接 -4. **CPU资源**: 用于交易验证的充足处理能力(建议8-12核) -5. **水平扩展**: 对于高流量应用,在负载均衡器后运行多个节点 - -## 支持 - -如果遇到任何问题: - -- 查看[官方README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)获取最新更新 -- 查看我们的[网络详情](/overview/general-info/network-details)和文档 -- 加入我们的[Telegram社区](https://t.me/statusl2)寻求支持 - -## 其他资源 - -- [Status Network RPC Tools仓库](https://github.com/status-im/status-l2-rpc-tools) - 包含设置指南和脚本的官方仓库 -- [Status Network文档](https://docs.status.network/) - 官方文档 -- [Status Network区块浏览器](https://sepoliascan.status.network) - Sepolia测试网浏览器 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md new file mode 100644 index 0000000..c4d165d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/what-to-build.md @@ -0,0 +1,31 @@ +--- +title: 在 Status Network 上构建什么 +description: 按类别、投入和交付形态整理的 Status Network 高杠杆应用创意扫描目录。 +keywords: [Status Network, app ideas, builder ideas, Karma apps, privacy apps, gasless apps, DeFi, social apps, games, MVP] +sidebar_position: 3 +--- + +import IdeaCatalog from '@site/src/components/IdeaCatalog/IdeaCatalog'; + +Status Network 结合了无 Gas 体验、Karma 声誉和隐私原语。 +这解锁了在其他链上难以做好的产品。 + +以下是一些我们认为非常适合 Status Network 的示例产品,当然你不限于这些创意。 + +使用筛选器找到与你的专长和目标相符的创意。点击任意卡片查看完整范围。 + + + +## 立即开始构建 + +- [快速入门](/overview/introduction/quick-start) +- [如何使用 Karma 实现无 Gas 和声誉](/build-for-karma/guides) +- [在 Status Network 上部署合约](/build-for-karma/deploying-contracts) +- [Telegram 构建者社区](https://t.me/statusl2) + +## 生态与资金 + +构建者可从 Karma 持有者治理的公共资金池获得持续资金。 +随着应用增长,你将获得更多 Karma 以及对未来分配的更大影响力。 + +了解更多 → [生态与资金](/overview/tokenomics/public-funding) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md new file mode 100644 index 0000000..1a82d7b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md @@ -0,0 +1,138 @@ +--- +title: 为什么在 Status Network 上构建 +description: 在 Status Network 上构建的理由 —— 无 Gas 交易、Karma 声誉、可持续公共资金,以及与其他 L2 的对比。 +keywords: [Status Network, why build, L2 comparison, gasless, Karma, public funding, developer advantages, Linea zkEVM] +sidebar_position: 2 +--- + +有数十个 L2 可供选择。以下是 Status Network 值得你关注的原因。 + + + +## 可持续公共资金 + +Status Network 不依赖一次性资助或基金会金库。相反,它拥有一个持续的公共资金池,资金来源于: + +- **原生收益**:来自桥接的收益型资产(初期为 ETH 和稳定币) +- **DEX 交易费**:来自原生去中心化交易所 +- **溢价 Gas 费**:来自列入黑名单的用户 +- **未来原生应用费用**(借贷、NFT、启动板等) + +了解更多 → [经济模型](/overview/tokenomics/economic-model) + +Karma 持有者投票决定如何将公共资金池分配给应用和构建者。你的应用通过产生活动和交易量对网络贡献越多,你和用户获得的 Karma 就越多,你对未来分配的影响力就越大。 + +**对构建者意味着什么:** + +- 不仅是每隔几个月需要重新申请的一次性资助,而是持续收入流 +- 资金随应用增长而扩展 —— 用户越多,Karma 越多,你获得的激励越多 +- 社区治理分配,无基金会把关 + +了解更多 → [公共资金](/overview/tokenomics/public-funding) + +## 默认无 Gas + +在大多数链上,“无 Gas”意味着配置 paymaster、运行 relayer 或集成账户抽象 SDK。在 Status Network 上,无 Gas 是默认行为。 + +每个 Karma 余额为正的地址都享有免费交易配额。无需 paymaster。无需 relayer。无需特殊钱包配置。你的应用对符合条件的用户直接免 Gas 运行。 + +**对构建者意味着什么:** + +- 无 Gas 带来的 UX 摩擦。你的 onboarding 漏斗不会在“桥接一些 ETH 用于 Gas”这一步流失用户 +- 无需集成 ERC-4337、元交易或 Gas 中继模式 +- 无需为用户承担 Gas 的基础设施成本 + +无 Gas 系统通过 [Rate Limiting Nullifiers (RLN)](/overview/general-info/gasless-transactions/#rln) 在 sequencer 层面强制执行,这是一种零知识防垃圾机制。 + +## 内置 Karma 声誉 + +Karma 是一种灵魂绑定(不可转让)代币,每个用户通过真实的网络参与获得,如质押、桥接、提供流动性、使用应用或支付溢价 Gas。它无法购买或转让。 + +**对构建者意味着什么:** + +- **信任信号**:高 Karma 用户是经过验证的活跃参与者,而非空投农民或女巫 +- **功能准入**:构建者可根据用户 Karma 等级设置功能准入,如高级功能、优先访问或更优费率 +- **防垃圾**:网络本身通过 RLN 机制限制垃圾,Karma 等级直接控制无 Gas 交易配额,意味着高 Karma 用户天然更不易发起垃圾 +- **无冷启动问题**:你的应用受益于生态系统中全网建立的声誉 + +了解更多 → [Karmic 代币经济学](/overview/tokenomics/karmic-tokenomics) + +## 注重隐私的公共产品 + +Status Network 采用 [自由技术研究所 (IFT)](https://free.technology) 的技术构建。最值得一提的是,无 Gas 交易系统使用 [RLN (Rate Limiting Nullifiers)](https://vac.dev/rln),这是由 IFT 研究部门 [Vac](https://vac.dev) 开发的零知识防垃圾机制。 + +我们与 IFT 在技术愿景上一致,致力于构建保障数字时代公民自由的公共产品。Status Network 将基于我们的无 Gas 特性增加注重隐私的模块。 + +了解更多 → [Status Network 与隐私](/overview/general-info/privacy) + +## 完全 EVM 等效 + +Status Network 基于 [Linea zkEVM](https://linea.build) 技术栈构建。这意味着构建者可以: + +- 无需修改即可部署现有 Solidity 合约 +- 使用标准以太坊工具如 Hardhat、Foundry、ethers.js、viem 等 +- 使用标准 JSON-RPC 方法(部分与 Gas 费相关的方法除外。详见 [JSON-RPC API](/tools/rpc/json-rpc)) +- 继承 Linea rollup 架构的零知识证明安全 + +无自定义 VM。无非标准操作码。无需重写合约或后端。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md new file mode 100644 index 0000000..7c2953e --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/privacy.md @@ -0,0 +1 @@ +# Status Network 如何连接隐私 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md index fac5952..ed2fa9f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/index.md @@ -42,7 +42,7 @@ Status Network 原生集成了 Status Wallet、Keycard、Waku 和 Codex,这些 想跳过解释部分直接开始构建吗?以下是开始的方法: 1. [将 Status Network 添加到您的钱包](/overview/general-info/add-status-network) -2. [获取测试网 ETH](/tools/testnet-faucets) +2. [获取测试网 ETH](/tools/core-infrastructure/testnet-faucets) 3. [跨链资产](/overview/general-info/bridge/bridging-testnet) 4. [部署您的第一个合约](/build-for-karma/deploying-contracts/using-remix) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/block-explorers.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/block-explorers.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/tools/block-explorers.md rename to i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/block-explorers.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/bridge.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/tools/bridge.md rename to i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/bridge.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/rpc-endpoints.md similarity index 96% rename from i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md rename to i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/rpc-endpoints.md index 4bef2d5..fb7b8d9 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/rpc-endpoints.md @@ -1,3 +1,7 @@ +--- +slug: /tools/core-infrastructure/rpc-endpoints +--- + # RPC 端点 Status Network 提供公共 RPC(远程过程调用)端点,允许您与网络进行交互。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/testnet-faucets.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md rename to i18n/zh/docusaurus-plugin-content-docs/current/tools/core-infrastructure/testnet-faucets.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/index.md index 8e68c24..793c08d 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/index.md @@ -15,10 +15,10 @@ Status Network 上可用的开发者工具、基础设施服务和集成的完 | 工具 | 描述 | 链接 | |---|---|---| -| **RPC 端点** | 公共 JSON-RPC 和 WebSocket 访问 | [RPC →](/tools/rpc) | -| **跨链桥** | 在 Ethereum Sepolia 和 Status Network 之间转移资产 | [跨链桥 →](/tools/bridge) | -| **测试网水龙头** | 获取用于开发的测试网资产 | [水龙头 →](/tools/testnet-faucets) | -| **区块浏览器** | 浏览交易、合约和网络活动 | [浏览器 →](/tools/block-explorers) | +| **RPC 端点** | 公共 JSON-RPC 和 WebSocket 访问 | [RPC →](/tools/core-infrastructure/rpc-endpoints) | +| **跨链桥** | 在 Ethereum Sepolia 和 Status Network 之间转移资产 | [跨链桥 →](/tools/core-infrastructure/bridge) | +| **测试网水龙头** | 获取用于开发的测试网资产 | [水龙头 →](/tools/core-infrastructure/testnet-faucets) | +| **区块浏览器** | 浏览交易、合约和网络活动 | [浏览器 →](/tools/core-infrastructure/block-explorers) | ## 基础设施合作伙伴 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/infrastructure.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/infrastructure.md index 911ff79..15fd716 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tools/infrastructure.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/infrastructure.md @@ -17,7 +17,7 @@ Status Network 正在积极引入以下类别的基础设施合作伙伴。此 |---|---| | **RPC 提供商** | 专用 RPC 基础设施,提供可靠、低延迟的节点访问 | | **预言机和 VRF** | 价格信息、RWA 数据、链上随机数 VRF、DEX 数据源 | -| **Safe 和多签** | 用于资金管理和治理的多签钱包 | +| **Safe 和多重签名** | 用于资金管理和治理的多重签名钱包 | | **索引器** | 去中心化和中心化索引,用于智能合约事件和链上数据 | | **账户抽象** | 智能账户、密钥管理和无缝用户入门 | | **开发工具** | SDK、部署工具和 Status Network 社交登录 | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc/json-rpc.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/rpc/json-rpc.md rename to i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc/json-rpc.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md b/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md new file mode 100644 index 0000000..d467aea --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tools/rpc/running-an-rpc.md @@ -0,0 +1,219 @@ +--- +title: 运行你自己的 RPC 节点 +description: 使用官方 RPC 工具为 Status Network 设置和运行自有 RPC 节点的完整指南。了解节点配置、设置和维护。 +keywords: [RPC node, Status Network RPC, blockchain node, WebSocket, wss, self-hosted RPC, network infrastructure, Status L2 RPC tools] +--- + +本教程将指导你为 Status Network 设置和运行自己的远程过程调用 (RPC) 节点。运行自有 RPC 节点可以更好地控制与 Status Network 的交互、增强隐私并减少对第三方服务的依赖。 + +## 入门 + +[Status Network RPC Tools 仓库](https://github.com/status-im/status-l2-rpc-tools) 提供运行自有 RPC 节点所需的全部工具、创世文件和设置脚本。 + +### 完整设置指南 + +有关详细设置说明、前置条件、系统要求和分步指导,请参阅仓库中的 [**官方 README**](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md)。 + +## 节点选项 + +设置脚本提供两种节点实现供选择: + +- **Besu 节点**:运行在端口 `8545` (http://localhost:8545) +- **Geth 节点**:运行在端口 `8445` (http://localhost:8445) + +可根据需要运行其中一种或同时运行两种。 + +## 验证你的节点 + +在以下示例中,若使用 Besu 则将 `` 替换为 `8545`,若使用 Geth 则替换为 `8445`。 + +### 基本验证 + +节点运行后,验证其是否正常工作: + +```bash +# 你应该会收到包含当前区块号的响应。 +curl -X POST \ + -H "Content-Type: application/json" \ + -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \ + http://localhost: +``` + +### 健康与同步验证 + +进行全面的节点健康检查: + +```bash +# 检查节点同步状态。若节点已同步则返回 false。 +curl -X POST \ + -H "Content-Type: application/json" \ + -d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' \ + http://localhost: + +# 验证节点连接的对等点数量(应大于 0) +curl -X POST \ + -H "Content-Type: application/json" \ + -d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' \ + http://localhost: +``` + +最新且健康的节点应显示: +- `eth_blockNumber` 与可信参考(如公共 RPC 或区块浏览器)一致 +- `eth_syncing` 返回 `false`(已完全同步) +- `net_peerCount` 大于 0(已连接对等点) + +## WebSocket 支持 + +你的节点还支持用于实时事件订阅的 WebSocket 连接: + +```bash +# WebSocket 端点 +ws://localhost:8546 # Besu +ws://localhost:8446 # Geth +``` + +### WebSocket 连接 + +### 订阅示例 + +```json +// 订阅新区块头 +{"jsonrpc":"2.0","method":"eth_subscribe","params":["newHeads"],"id":1} + +// 订阅匹配过滤器的日志 +{"jsonrpc":"2.0","method":"eth_subscribe","params":["logs",{"address":"0x..."}],"id":1} + +// 取消订阅 +{"jsonrpc":"2.0","method":"eth_unsubscribe","params":["0x..."],"id":1} +``` + +## 高级功能 + +### 批量请求 + +你的节点支持批量 JSON-RPC 请求以提高效率: + +- **默认批量上限**:每批 1,024 个请求 +- **配置**:可通过 `--rpc-http-max-batch-size` 调整(设为 `1` 表示无限制) +- **最大请求大小**:5 MB(默认 `--rpc-http-max-request-content-length`) + +### 资源密集型方法 + +注意以下方法可能需要较长响应时间: + +| 方法 | 响应时间 | 说明 | +|--------|---------------|-------| +| `eth_getLogs`(大范围) | 200ms 至数秒 | 使用有界范围和 bloom 过滤器 | +| `eth_estimateGas` | 200ms 至数秒 | 高负载或复杂合约下可能更慢 | + +:::tip 性能提示 +生产环境中,建议从数千级读 RPS 起步,并根据具体工作负载和硬件测试水平扩展。 +::: + +## 故障排除 + +### 常见问题 + +1. **端口已被占用** + ```bash + # 检查占用 8545(Besu)或 8445(Geth)端口的进程 + lsof -i :8545 + lsof -i :8445 + + # 如需要可终止进程 + kill -9 + ``` + +2. **Docker 容器问题** + ```bash + # 检查运行中的容器 + docker ps + + # 查看容器日志 + docker compose logs -f + + # 重启容器 + docker compose restart + ``` + +3. **节点未同步** + - 检查网络连接 + - 确认磁盘空间充足 + - 查看 Docker 容器日志:`docker compose logs` + - 确保系统满足最低要求 + +4. **RPC 端点无响应** + - 确认容器在运行:`docker ps` + - 检查防火墙设置 + - 确保 RPC 端口(8545、8445)可访问 + - 查看容器日志中的错误 + +### 监控你的节点 + +```bash +# 检查 Docker 容器状态 +docker compose ps + +# 监控容器日志 +docker compose logs -f + +# 监控磁盘使用 +df -h + +# 检查网络连接 +netstat -tulpn | grep :8545 +netstat -tulpn | grep :8445 +``` + +## 存储规划 + +### 磁盘空间要求 + +根据增长规划存储容量: + +- 初始大小:约 200 GB(6 个月后,约 1200 万笔交易,2 秒出块) +- 增长率:中等,取决于网络活动 +- 推荐:2 TB Gen4 NVMe 以留有余量 + +:::warning 为增长做规划 +始终预留超出当前需求的额外存储容量,以确保持续运行。 +::: + +## 安全注意事项 + +运行自有 RPC 节点时: + +1. **防火墙配置**:仅开放必要端口(8545、8445) +2. **访问控制**:生产环境考虑实施身份验证 +3. **网络隔离**:避免将 RPC 端点直接暴露到互联网 +4. **定期更新**:保持节点软件和 Docker 镜像更新 +5. **备份**:定期备份节点配置(数据可在需要时重新同步) +6. **速率限制**:若向多用户开放,实施速率限制 + +:::caution 生产部署 +生产环境中,避免依赖公共 RPC 端点,因其有速率限制。运行自有私有 RPC 节点可提供更好的可靠性和性能。 +::: + +## 性能优化 + +优化 RPC 节点性能: + +1. **SSD 存储**:使用 Gen4 NVMe 存储以获得更好的 I/O 性能 +2. **充足内存**:确保足够的缓存内存(推荐 32–48 GB) +3. **网络带宽**:稳定的 1+ Gbps 连接用于同步和对等通信 +4. **CPU 资源**:足够的处理能力用于交易验证(推荐 8–12 核) +5. **水平扩展**:高流量应用可在负载均衡器后运行多个节点 + +## 支持 + +如遇问题: + +- 查看 [官方 README](https://github.com/status-im/status-l2-rpc-tools/blob/master/README.md) 获取最新更新 +- 查阅我们的[网络详情](/overview/general-info/network-details)及整体文档 +- 加入我们的 [Telegram 社区](https://t.me/statusl2) 获取支持 + +## 更多资源 + +- [Status Network RPC Tools 仓库](https://github.com/status-im/status-l2-rpc-tools) - 含设置指南和脚本的官方仓库 +- [Status Network 文档](https://docs.status.network/) - 官方文档 +- [Status Network 区块浏览器](https://sepoliascan.status.network) - Sepolia 测试网浏览器 diff --git a/src/components/IdeaCatalog/FilterBar.tsx b/src/components/IdeaCatalog/FilterBar.tsx index 551b552..9997662 100644 --- a/src/components/IdeaCatalog/FilterBar.tsx +++ b/src/components/IdeaCatalog/FilterBar.tsx @@ -1,4 +1,5 @@ import React, { useState } from 'react'; +import Translate, {translate} from '@docusaurus/Translate'; import type { Category, StatusPrimitive, @@ -9,13 +10,13 @@ import type { CapitalReq, } from './types'; import { - categoryLabels, - statusPrimitiveLabels, - builderProfileLabels, - difficultyLabels, - userSegmentLabels, - domainExpertiseLabels, - capitalReqLabels, + getCategoryLabels, + getStatusPrimitiveLabels, + getBuilderProfileLabels, + getDifficultyLabels, + getUserSegmentLabels, + getDomainExpertiseLabels, + getCapitalReqLabels, } from './types'; export interface Filters { @@ -67,26 +68,26 @@ export default function FilterBar({
{/* Primary filters */} toggle('categories', v)} /> toggle('superpowers', v)} /> toggle('builderProfiles', v)} /> toggle('difficulties', v)} /> @@ -99,27 +100,29 @@ export default function FilterBar({ aria-expanded={showAdvanced} aria-controls="idea-catalog-advanced-filters" > - {showAdvanced ? 'Fewer filters' : 'More filters'} + {showAdvanced + ? translate({id: 'ideaCatalog.filter.fewerFilters', message: 'Fewer filters'}) + : translate({id: 'ideaCatalog.filter.moreFilters', message: 'More filters'})} {/* Advanced filters */} {showAdvanced && (
toggle('domainExpertises', v)} /> toggle('userSegments', v)} /> toggle('capitalReqs', v)} /> @@ -129,7 +132,12 @@ export default function FilterBar({ {/* Result count + clear */}
- Showing {visibleCount} of {totalCount} ideas + + {'Showing {visibleCount} of {totalCount} ideas'} + {hasAnyFilter && ( )}
diff --git a/src/components/IdeaCatalog/IdeaCard.tsx b/src/components/IdeaCatalog/IdeaCard.tsx index dc6ea76..a15ec99 100644 --- a/src/components/IdeaCatalog/IdeaCard.tsx +++ b/src/components/IdeaCatalog/IdeaCard.tsx @@ -1,13 +1,14 @@ import React, { useState } from 'react'; +import {translate} from '@docusaurus/Translate'; import type { Idea, Difficulty } from './types'; import { - categoryLabels, + getCategoryLabels, categoryColors, - statusPrimitiveLabels, + getStatusPrimitiveLabels, statusPrimitiveColors, - builderProfileLabels, - domainExpertiseLabels, - userSegmentLabels, + getBuilderProfileLabels, + getDomainExpertiseLabels, + getUserSegmentLabels, } from './types'; interface IdeaCardProps { @@ -25,6 +26,12 @@ export default function IdeaCard({ idea }: IdeaCardProps): JSX.Element { const [expanded, setExpanded] = useState(false); const detailId = `idea-card-detail-${idea.id}`; + const categoryLabels = getCategoryLabels(); + const statusPrimitiveLabels = getStatusPrimitiveLabels(); + const builderProfileLabels = getBuilderProfileLabels(); + const domainExpertiseLabels = getDomainExpertiseLabels(); + const userSegmentLabels = getUserSegmentLabels(); + return (
- Why Status: {idea.whyStatus} + {translate({id: 'ideaCatalog.card.whyStatus', message: 'Why Status:'})} {idea.whyStatus}
- MVP Scope: {idea.mvp} + {translate({id: 'ideaCatalog.card.mvpScope', message: 'MVP Scope:'})} {idea.mvp}
- - + +
)} diff --git a/src/components/IdeaCatalog/IdeaCatalog.tsx b/src/components/IdeaCatalog/IdeaCatalog.tsx index 89230c2..96e3cff 100644 --- a/src/components/IdeaCatalog/IdeaCatalog.tsx +++ b/src/components/IdeaCatalog/IdeaCatalog.tsx @@ -1,11 +1,11 @@ import React, { useState, useMemo } from 'react'; +import Translate, {translate} from '@docusaurus/Translate'; import { ideas } from './ideaData'; import type { Idea } from './types'; import FilterBar, { emptyFilters, type Filters } from './FilterBar'; import IdeaCard from './IdeaCard'; function matchesFilters(idea: Idea, filters: Filters): boolean { - // AND across dimensions, OR within a dimension if (filters.categories.length > 0 && !filters.categories.includes(idea.category)) return false; if ( filters.superpowers.length > 0 && @@ -51,13 +51,17 @@ export default function IdeaCatalog(): JSX.Element {
{filtered.length === 0 && (

- No ideas match the current filters.{' '} + + No ideas match the current filters. + {' '}

)} diff --git a/src/components/IdeaCatalog/ideaData.ts b/src/components/IdeaCatalog/ideaData.ts index 5d1b065..96b5291 100644 --- a/src/components/IdeaCatalog/ideaData.ts +++ b/src/components/IdeaCatalog/ideaData.ts @@ -1,3 +1,4 @@ +import {translate} from '@docusaurus/Translate'; import type { Idea } from './types'; import { Category, @@ -15,13 +16,13 @@ export const ideas: Idea[] = [ // ── Karma ────────────────────────────────────────────── { id: 'karma-gated-access', - title: 'Karma-Gated Content Feed', + title: translate({id: 'ideaCatalog.idea.karmaGatedAccess.title', message: 'Karma-Gated Content Feed'}), category: Category.reputation, - superpowers: [StatusPrimitive.karma], + superpowers: [StatusPrimitive.reputation], builderProfiles: [BuilderProfile.frontendDev], - what: 'A social feed where creators publish posts visible only to followers who meet a minimum Karma tier — think Substack meets on-chain reputation.', - whyStatus: 'Karma tiers are resolved on-chain, so access control is trustless — no subscription billing, no platform lock-in, and Sybil-resistant by design.', - mvp: 'Feed with public + gated posts, tier-check middleware (possibly on-chain), creator dashboard showing audience breakdown by Karma tier.', + what: translate({id: 'ideaCatalog.idea.karmaGatedAccess.what', message: 'A social feed where creators publish posts visible only to followers who meet a minimum Karma tier — think Substack meets on-chain reputation'}), + whyStatus: translate({id: 'ideaCatalog.idea.karmaGatedAccess.whyStatus', message: 'Karma tiers are resolved on-chain, so access control is trustless — no subscription billing, no platform lock-in, and Sybil-resistant by design'}), + mvp: translate({id: 'ideaCatalog.idea.karmaGatedAccess.mvp', message: 'Feed with public + gated posts, tier-check middleware (possibly on-chain), creator dashboard showing audience breakdown by Karma tier'}), difficulty: Difficulty.lowMed, userSegment: UserSegment.communityCreator, domainExpertise: DomainExpertise.communityDesign, @@ -31,13 +32,13 @@ export const ideas: Idea[] = [ }, { id: 'karma-liquidity-protocol', - title: 'Karma-Boosted Yield Vault', + title: translate({id: 'ideaCatalog.idea.karmaLiquidityProtocol.title', message: 'Karma-Boosted Yield Vault'}), category: Category.reputation, - superpowers: [StatusPrimitive.karma], + superpowers: [StatusPrimitive.reputation], builderProfiles: [BuilderProfile.contractDev], - what: 'A DeFi vault where depositors with higher Karma tiers receive boosted APY — early supporters and active participants earn better returns.', - whyStatus: 'The native reputation graph lets the vault weight rewards by proven participation instead of token-weighted voting or off-chain allowlists.', - mvp: 'Single-asset vault with two yield tiers, on-chain Karma tier lookup at deposit, and a dashboard showing effective APY per tier.', + what: translate({id: 'ideaCatalog.idea.karmaLiquidityProtocol.what', message: 'A DeFi vault where depositors with higher Karma tiers receive boosted APY — early supporters and active participants earn better returns'}), + whyStatus: translate({id: 'ideaCatalog.idea.karmaLiquidityProtocol.whyStatus', message: 'The native reputation graph lets the vault weight rewards by proven participation instead of token-weighted voting or off-chain allowlists'}), + mvp: translate({id: 'ideaCatalog.idea.karmaLiquidityProtocol.mvp', message: 'Single-asset vault with two yield tiers, on-chain Karma tier lookup at deposit, and a dashboard showing effective APY per tier'}), difficulty: Difficulty.medHigh, userSegment: UserSegment.traderDefi, domainExpertise: DomainExpertise.defiMechanisms, @@ -47,13 +48,13 @@ export const ideas: Idea[] = [ }, { id: 'karma-incentive-market', - title: 'Karma Bounty Board', + title: translate({id: 'ideaCatalog.idea.karmaIncentiveMarket.title', message: 'Karma Bounty Board'}), category: Category.reputation, - superpowers: [StatusPrimitive.karma], + superpowers: [StatusPrimitive.reputation], builderProfiles: [BuilderProfile.fullStack], - what: 'A bounty marketplace where only users above a Karma threshold can claim tasks — project teams post work (bug reports, translations, onboarding guides) and pay verified contributors.', - whyStatus: 'Karma-gating filters out spamming bots and low-effort submissions, giving bounty issuers confidence that claimants have a real track record on the network.', - mvp: 'Bounty listing page, Karma-gated claim flow, submission review panel, and on-chain payout on approval.', + what: translate({id: 'ideaCatalog.idea.karmaIncentiveMarket.what', message: 'A bounty marketplace where only users above a Karma threshold can claim tasks — project teams post work (bug reports, translations, onboarding guides) and pay verified contributors'}), + whyStatus: translate({id: 'ideaCatalog.idea.karmaIncentiveMarket.whyStatus', message: 'Karma-gating filters out spamming bots and low-effort submissions, giving bounty issuers confidence that claimants have a real track record on the network'}), + mvp: translate({id: 'ideaCatalog.idea.karmaIncentiveMarket.mvp', message: 'Bounty listing page, Karma-gated claim flow, submission review panel, and on-chain payout on approval'}), difficulty: Difficulty.med, userSegment: UserSegment.communityCreator, domainExpertise: DomainExpertise.communityDesign, @@ -63,13 +64,13 @@ export const ideas: Idea[] = [ }, { id: 'karma-dynamic-pricing', - title: 'Karma-Tiered NFT Marketplace', + title: translate({id: 'ideaCatalog.idea.karmaDynamicPricing.title', message: 'Karma-Tiered NFT Marketplace'}), category: Category.reputation, - superpowers: [StatusPrimitive.karma], + superpowers: [StatusPrimitive.reputation], builderProfiles: [BuilderProfile.frontendDev], - what: 'An NFT marketplace where listing fees, royalties, and early-access windows adjust based on the buyer\'s and seller\'s Karma tier — trusted participants get better terms automatically.', - whyStatus: 'On-chain tier resolution at checkout means dynamic pricing is enforced trustlessly — no coupon codes, no backend allowlists.', - mvp: 'NFT listing + purchase flow with tiered fee schedule, on-chain tier check at checkout, and seller analytics showing sales by buyer tier.', + what: translate({id: 'ideaCatalog.idea.karmaDynamicPricing.what', message: 'An NFT marketplace where listing fees, royalties, and early-access windows adjust based on the buyer\'s and seller\'s Karma tier — trusted participants get better terms automatically'}), + whyStatus: translate({id: 'ideaCatalog.idea.karmaDynamicPricing.whyStatus', message: 'On-chain tier resolution at checkout means dynamic pricing is enforced trustlessly — no coupon codes, no backend allowlists'}), + mvp: translate({id: 'ideaCatalog.idea.karmaDynamicPricing.mvp', message: 'NFT listing + purchase flow with tiered fee schedule, on-chain tier check at checkout, and seller analytics showing sales by buyer tier'}), difficulty: Difficulty.lowMed, userSegment: UserSegment.communityCreator, domainExpertise: DomainExpertise.consumerProduct, @@ -81,13 +82,13 @@ export const ideas: Idea[] = [ // ── Privacy ─────────────────────────────────────────── { id: 'stealth-address-payments', - title: 'Stealth Address Payments', + title: translate({id: 'ideaCatalog.idea.stealthAddressPayments.title', message: 'Stealth Address Payments'}), category: Category.privacy, superpowers: [StatusPrimitive.privacy, StatusPrimitive.gasless], builderProfiles: [BuilderProfile.protocolDev], - what: 'One-time receiving addresses with unlinkable spend paths.', - whyStatus: 'Privacy primitives + low-friction transaction UX.', - mvp: 'Address generation, receive flow, and private spend flow.', + what: translate({id: 'ideaCatalog.idea.stealthAddressPayments.what', message: 'One-time receiving addresses with unlinkable spend paths'}), + whyStatus: translate({id: 'ideaCatalog.idea.stealthAddressPayments.whyStatus', message: 'Privacy primitives + low-friction transaction UX'}), + mvp: translate({id: 'ideaCatalog.idea.stealthAddressPayments.mvp', message: 'Address generation, receive flow, and private spend flow'}), difficulty: Difficulty.medHigh, userSegment: UserSegment.consumer, domainExpertise: DomainExpertise.privacy, @@ -97,13 +98,13 @@ export const ideas: Idea[] = [ }, { id: 'private-payroll', - title: 'Private Payroll & Savings', + title: translate({id: 'ideaCatalog.idea.privatePayroll.title', message: 'Private Payroll & Savings'}), category: Category.privacy, superpowers: [StatusPrimitive.privacy], builderProfiles: [BuilderProfile.fullStack], - what: 'Salary and savings rails that do not expose balances and recipients.', - whyStatus: 'Real-world demand where public ledgers fail expectations.', - mvp: 'Employer payout batch + recipient claim + shielded vault.', + what: translate({id: 'ideaCatalog.idea.privatePayroll.what', message: 'Salary and savings rails that do not expose balances and recipients'}), + whyStatus: translate({id: 'ideaCatalog.idea.privatePayroll.whyStatus', message: 'Real-world demand requires privacy for payroll and savings, but current public ledgers do not meet the needs'}), + mvp: translate({id: 'ideaCatalog.idea.privatePayroll.mvp', message: 'Employer payout batch + recipient claim + shielded vault'}), difficulty: Difficulty.med, userSegment: UserSegment.daoOrgOps, domainExpertise: DomainExpertise.paymentsFinops, @@ -113,13 +114,13 @@ export const ideas: Idea[] = [ }, { id: 'shielded-microtransactions', - title: 'Shielded Microtransactions / Card Layer', + title: translate({id: 'ideaCatalog.idea.shieldedMicrotransactions.title', message: 'Shielded Microtransactions / Card Layer'}), category: Category.privacy, superpowers: [StatusPrimitive.privacy, StatusPrimitive.gasless], builderProfiles: [BuilderProfile.fullStack], - what: 'Low-value payments and subscriptions with hidden amounts/participants.', - whyStatus: 'Gasless interactions make frequent payments viable.', - mvp: 'Private tip/subscription flow with recurring authorization.', + what: translate({id: 'ideaCatalog.idea.shieldedMicrotransactions.what', message: 'Low-value payments and subscriptions with hidden amounts/participants'}), + whyStatus: translate({id: 'ideaCatalog.idea.shieldedMicrotransactions.whyStatus', message: 'Gasless interactions make frequent payments viable'}), + mvp: translate({id: 'ideaCatalog.idea.shieldedMicrotransactions.mvp', message: 'Private tip/subscription flow with recurring authorization'}), difficulty: Difficulty.medHigh, userSegment: UserSegment.consumer, domainExpertise: DomainExpertise.paymentsFinops, @@ -129,13 +130,13 @@ export const ideas: Idea[] = [ }, { id: 'private-lending', - title: 'Private Lending & Borrowing', + title: translate({id: 'ideaCatalog.idea.privateLending.title', message: 'Private Lending & Borrowing'}), category: Category.privacy, - superpowers: [StatusPrimitive.privacy, StatusPrimitive.karma], + superpowers: [StatusPrimitive.privacy, StatusPrimitive.reputation], builderProfiles: [BuilderProfile.contractDev, BuilderProfile.protocolDev], - what: 'Borrow/lend flows that avoid public position leakage.', - whyStatus: 'Privacy + Karma-based trust signals.', - mvp: 'One collateral type, one borrow asset, private health checks.', + what: translate({id: 'ideaCatalog.idea.privateLending.what', message: 'Borrow/lend flows that avoid public position leakage'}), + whyStatus: translate({id: 'ideaCatalog.idea.privateLending.whyStatus', message: 'Privacy + Karma-based trust signals'}), + mvp: translate({id: 'ideaCatalog.idea.privateLending.mvp', message: 'One collateral type, one borrow asset, private health checks'}), difficulty: Difficulty.high, userSegment: UserSegment.traderDefi, domainExpertise: DomainExpertise.defiMechanisms, @@ -145,13 +146,13 @@ export const ideas: Idea[] = [ }, { id: 'private-multisig', - title: 'Private Multisig', + title: translate({id: 'ideaCatalog.idea.privateMultisig.title', message: 'Private Multisig'}), category: Category.privacy, superpowers: [StatusPrimitive.privacy], builderProfiles: [BuilderProfile.contractDev, BuilderProfile.protocolDev], - what: 'Multisig ops where signers, threshold, and tx details are obscured.', - whyStatus: 'Privacy-sensitive orgs can still operate on-chain.', - mvp: 'Policy setup + signing flow + execution log with selective disclosure.', + what: translate({id: 'ideaCatalog.idea.privateMultisig.what', message: 'Multisig ops where signers, threshold, and tx details are obscured'}), + whyStatus: translate({id: 'ideaCatalog.idea.privateMultisig.whyStatus', message: 'Privacy-sensitive orgs can still operate on-chain'}), + mvp: translate({id: 'ideaCatalog.idea.privateMultisig.mvp', message: 'Policy setup + signing flow + execution log with selective disclosure'}), difficulty: Difficulty.high, userSegment: UserSegment.daoOrgOps, domainExpertise: DomainExpertise.privacy, @@ -163,13 +164,13 @@ export const ideas: Idea[] = [ // ── Social ───────────────────────────────────────────── { id: 'social-mini-app', - title: 'Gasless Micro-Blogging Platform', + title: translate({id: 'ideaCatalog.idea.socialMiniApp.title', message: 'Gasless Micro-Blogging Platform'}), category: Category.social, - superpowers: [StatusPrimitive.karma, StatusPrimitive.gasless], + superpowers: [StatusPrimitive.reputation, StatusPrimitive.gasless], builderProfiles: [BuilderProfile.frontendDev], - what: 'A Twitter-style micro-blog where every post, reply, and like is an on-chain action that costs the user nothing — with Karma badges that surface trusted voices.', - whyStatus: 'Gasless transactions make post-per-action economics viable; Karma badges replace arbitrary blue-check systems with reputation earned through actual network participation.', - mvp: 'Timeline feed, post/reply/like actions, user profiles with Karma trust badges, and basic content moderation controls.', + what: translate({id: 'ideaCatalog.idea.socialMiniApp.what', message: 'A Twitter-style micro-blog where every post, reply, and like is an on-chain action that costs the user nothing — with Karma badges that surface trusted voices'}), + whyStatus: translate({id: 'ideaCatalog.idea.socialMiniApp.whyStatus', message: 'Gasless transactions make post-per-action economics viable; Karma badges replace arbitrary blue-check systems with reputation earned through actual network participation'}), + mvp: translate({id: 'ideaCatalog.idea.socialMiniApp.mvp', message: 'Timeline feed, post/reply/like actions, user profiles with Karma trust badges, and basic content moderation controls'}), difficulty: Difficulty.lowMed, userSegment: UserSegment.consumer, domainExpertise: DomainExpertise.consumerProduct, @@ -179,13 +180,13 @@ export const ideas: Idea[] = [ }, { id: 'creator-economy-toolkit', - title: 'Fan Pass Platform', + title: translate({id: 'ideaCatalog.idea.creatorEconomyToolkit.title', message: 'Fan Pass Platform'}), category: Category.social, superpowers: [StatusPrimitive.gasless], builderProfiles: [BuilderProfile.frontendDev], - what: 'A platform where creators mint free digital passes that unlock exclusive content, group chats, and IRL event access — fans collect passes gaslessly.', - whyStatus: 'Zero-cost minting and claiming removes the paywall friction from community passes, letting creators grow audiences without asking fans to pay gas.', - mvp: 'Creator page with pass minting, fan claim flow, pass-gated content section, and event check-in via pass verification.', + what: translate({id: 'ideaCatalog.idea.creatorEconomyToolkit.what', message: 'A platform where creators mint free digital passes that unlock exclusive content, group chats, and IRL event access — fans collect passes gaslessly'}), + whyStatus: translate({id: 'ideaCatalog.idea.creatorEconomyToolkit.whyStatus', message: 'Zero-cost minting and claiming removes the paywall friction from community passes, letting creators grow audiences without asking fans to pay gas'}), + mvp: translate({id: 'ideaCatalog.idea.creatorEconomyToolkit.mvp', message: 'Creator page with pass minting, fan claim flow, pass-gated content section, and event check-in via pass verification'}), difficulty: Difficulty.med, userSegment: UserSegment.communityCreator, domainExpertise: DomainExpertise.consumerProduct, @@ -195,13 +196,13 @@ export const ideas: Idea[] = [ }, { id: 'community-governance', - title: 'DAO Proposal & Karma-Weighted Voting App', + title: translate({id: 'ideaCatalog.idea.communityGovernance.title', message: 'DAO Proposal & Karma-Weighted Voting App'}), category: Category.social, - superpowers: [StatusPrimitive.karma, StatusPrimitive.gasless], + superpowers: [StatusPrimitive.reputation, StatusPrimitive.gasless], builderProfiles: [BuilderProfile.fullStack], - what: 'A governance app where community members submit proposals and vote with weight proportional to their Karma tier — active contributors have a louder voice than passive holders.', - whyStatus: 'Karma-weighted voting rewards real participation over token accumulation, and gasless voting removes the cost barrier that suppresses turnout in most DAOs.', - mvp: 'Proposal submission form, Karma-weighted voting with on-chain tallying, results dashboard with participation breakdown by tier.', + what: translate({id: 'ideaCatalog.idea.communityGovernance.what', message: 'A governance app where community members submit proposals and vote with weight proportional to their Karma tier — active contributors have a louder voice than passive holders'}), + whyStatus: translate({id: 'ideaCatalog.idea.communityGovernance.whyStatus', message: 'Karma-weighted voting rewards real participation over token accumulation, and gasless voting removes the cost barrier that suppresses turnout in most DAOs'}), + mvp: translate({id: 'ideaCatalog.idea.communityGovernance.mvp', message: 'Proposal submission form, Karma-weighted voting with on-chain tallying, results dashboard with participation breakdown by tier'}), difficulty: Difficulty.med, userSegment: UserSegment.daoOrgOps, domainExpertise: DomainExpertise.communityDesign, @@ -213,13 +214,13 @@ export const ideas: Idea[] = [ // ── Games ────────────────────────────────────────────── { id: 'onchain-strategy-game', - title: 'Fog-of-War Conquest Game', + title: translate({id: 'ideaCatalog.idea.onchainStrategyGame.title', message: 'Fog-of-War Conquest Game'}), category: Category.games, superpowers: [StatusPrimitive.privacy, StatusPrimitive.gasless], builderProfiles: [BuilderProfile.fullStack], - what: 'A hex-grid territory control game where troop positions are hidden via private state and every move is a gasless on-chain transaction — think Risk board game with real fog of war on-chain.', - whyStatus: 'Privacy primitives enable genuine hidden information (not just client-side fog), while gasless moves make the rapid back-and-forth of strategy games economically feasible.', - mvp: 'Hex map with fog-of-war, one unit type, private troop placement, turn resolution, and a match leaderboard.', + what: translate({id: 'ideaCatalog.idea.onchainStrategyGame.what', message: 'A hex-grid territory control game where troop positions are hidden via private state and every move is a gasless on-chain transaction — think Risk board game with real fog of war on-chain'}), + whyStatus: translate({id: 'ideaCatalog.idea.onchainStrategyGame.whyStatus', message: 'Privacy primitives enable genuine hidden information (not just client-side fog), while gasless moves make the rapid back-and-forth of strategy games economically feasible'}), + mvp: translate({id: 'ideaCatalog.idea.onchainStrategyGame.mvp', message: 'Hex map with fog-of-war, one unit type, private troop placement, turn resolution, and a match leaderboard'}), difficulty: Difficulty.medHigh, userSegment: UserSegment.consumer, domainExpertise: DomainExpertise.consumerProduct, @@ -229,13 +230,13 @@ export const ideas: Idea[] = [ }, { id: 'prediction-market', - title: 'Prediction Market', + title: translate({id: 'ideaCatalog.idea.predictionMarket.title', message: 'Prediction Market'}), category: Category.games, superpowers: [StatusPrimitive.privacy, StatusPrimitive.gasless], builderProfiles: [BuilderProfile.fullStack], - what: 'Markets with low-friction entries and private participant positions.', - whyStatus: 'Better market participation and less copy-trading behavior.', - mvp: 'Market creation + position entry + settlement + basic analytics.', + what: translate({id: 'ideaCatalog.idea.predictionMarket.what', message: 'Markets with low-friction entries and private participant positions.'}), + whyStatus: translate({id: 'ideaCatalog.idea.predictionMarket.whyStatus', message: 'Better market participation and less copy-trading behavior.'}), + mvp: translate({id: 'ideaCatalog.idea.predictionMarket.mvp', message: 'Market creation + position entry + settlement + basic analytics.'}), difficulty: Difficulty.medHigh, userSegment: UserSegment.traderDefi, domainExpertise: DomainExpertise.defiMechanisms, @@ -247,13 +248,13 @@ export const ideas: Idea[] = [ // ── DeFi ─────────────────────────────────────────────── { id: 'native-dex-companion', - title: 'Karma-Tiered Swap Router', + title: translate({id: 'ideaCatalog.idea.nativeDexCompanion.title', message: 'Karma-Tiered Swap Router'}), category: Category.defi, - superpowers: [StatusPrimitive.karma], + superpowers: [StatusPrimitive.reputation], builderProfiles: [BuilderProfile.contractDev], - what: 'A swap interface that routes trades through the best on-chain pools and gives high-Karma users reduced fees and priority execution — a loyalty program baked into the DEX layer.', - whyStatus: 'Karma tiers let the router offer fee discounts trustlessly, and tight integration with native liquidity means better rates without external aggregator dependencies.', - mvp: 'Token swap UI with tiered fee display, Karma-aware routing logic, LP position panel, and trade history showing fees saved by tier.', + what: translate({id: 'ideaCatalog.idea.nativeDexCompanion.what', message: 'A swap interface that routes trades through the best on-chain pools and gives high-Karma users reduced fees and priority execution — a loyalty program baked into the DEX layer'}), + whyStatus: translate({id: 'ideaCatalog.idea.nativeDexCompanion.whyStatus', message: 'Karma tiers let the router offer fee discounts trustlessly, and tight integration with native liquidity means better rates without external aggregator dependencies'}), + mvp: translate({id: 'ideaCatalog.idea.nativeDexCompanion.mvp', message: 'Token swap UI with tiered fee display, Karma-aware routing logic, LP position panel, and trade history showing fees saved by tier'}), difficulty: Difficulty.med, userSegment: UserSegment.traderDefi, domainExpertise: DomainExpertise.defiMechanisms, @@ -263,13 +264,13 @@ export const ideas: Idea[] = [ }, { id: 'public-funding-interface', - title: 'Public Funding Interface', + title: translate({id: 'ideaCatalog.idea.publicFundingInterface.title', message: 'Public Funding Interface'}), category: Category.defi, - superpowers: [StatusPrimitive.karma, StatusPrimitive.gasless], + superpowers: [StatusPrimitive.reputation, StatusPrimitive.gasless], builderProfiles: [BuilderProfile.frontendDev], - what: 'End-to-end grant discovery, proposal, voting, and tracking dashboard.', - whyStatus: 'Directly supports ecosystem growth flywheel.', - mvp: 'Proposal board + vote screen + grant progress tracker.', + what: translate({id: 'ideaCatalog.idea.publicFundingInterface.what', message: 'End-to-end grant discovery, proposal, voting, and tracking dashboard'}), + whyStatus: translate({id: 'ideaCatalog.idea.publicFundingInterface.whyStatus', message: 'Directly supports ecosystem growth flywheel'}), + mvp: translate({id: 'ideaCatalog.idea.publicFundingInterface.mvp', message: 'Proposal board + vote screen + grant progress tracker'}), difficulty: Difficulty.med, userSegment: UserSegment.daoOrgOps, domainExpertise: DomainExpertise.communityDesign, diff --git a/src/components/IdeaCatalog/types.ts b/src/components/IdeaCatalog/types.ts index 84643dd..00f3ae1 100644 --- a/src/components/IdeaCatalog/types.ts +++ b/src/components/IdeaCatalog/types.ts @@ -1,3 +1,5 @@ +import {translate} from '@docusaurus/Translate'; + export const Category = { reputation: 'reputation', privacy: 'privacy', @@ -9,7 +11,7 @@ export type Category = (typeof Category)[keyof typeof Category]; export const StatusPrimitive = { gasless: 'gasless', - karma: 'karma', + reputation: 'reputation', privacy: 'privacy', } as const; export type StatusPrimitive = (typeof StatusPrimitive)[keyof typeof StatusPrimitive]; @@ -88,56 +90,84 @@ export interface Idea { opsBurden: OpsBurden; } -export const categoryLabels: Record = { - reputation: 'Reputation', - privacy: 'Privacy', - social: 'Social', - games: 'Games', - defi: 'DeFi', +const categoryLabels: Record = { + reputation: translate({id: 'ideaCatalog.category.reputation', message: 'Reputation'}), + privacy: translate({id: 'ideaCatalog.category.privacy', message: 'Privacy'}), + social: translate({id: 'ideaCatalog.category.social', message: 'Social'}), + games: translate({id: 'ideaCatalog.category.games', message: 'Games'}), + defi: translate({id: 'ideaCatalog.category.defi', message: 'DeFi'}), }; -export const difficultyLabels: Record = { - 'Low-Med': 'Low-Med', - Med: 'Med', - 'Med-High': 'Med-High', - High: 'High', +const difficultyLabels: Record = { + 'Low-Med': translate({id: 'ideaCatalog.difficulty.lowMed', message: 'Low-Med'}), + Med: translate({id: 'ideaCatalog.difficulty.med', message: 'Med'}), + 'Med-High': translate({id: 'ideaCatalog.difficulty.medHigh', message: 'Med-High'}), + High: translate({id: 'ideaCatalog.difficulty.high', message: 'High'}), }; -export const userSegmentLabels: Record = { - consumer: 'Consumer', - 'community-creator': 'Community/Creator', - 'dao-org-ops': 'DAO/Org Ops', - 'trader-defi': 'Trader/DeFi', +const userSegmentLabels: Record = { + consumer: translate({id: 'ideaCatalog.userSegment.consumer', message: 'Consumer'}), + 'community-creator': translate({id: 'ideaCatalog.userSegment.communityCreator', message: 'Community/Creator'}), + 'dao-org-ops': translate({id: 'ideaCatalog.userSegment.daoOrgOps', message: 'DAO/Org Ops'}), + 'trader-defi': translate({id: 'ideaCatalog.userSegment.traderDefi', message: 'Trader/DeFi'}), }; -export const domainExpertiseLabels: Record = { - 'community-design': 'Community Design', - 'defi-mechanisms': 'DeFi Mechanisms', - privacy: 'Privacy', - 'payments-finops': 'Payments/FinOps', - 'consumer-product': 'Consumer Product', +const domainExpertiseLabels: Record = { + 'community-design': translate({id: 'ideaCatalog.domainExpertise.communityDesign', message: 'Community Design'}), + 'defi-mechanisms': translate({id: 'ideaCatalog.domainExpertise.defiMechanisms', message: 'DeFi Mechanisms'}), + privacy: translate({id: 'ideaCatalog.domainExpertise.privacy', message: 'Privacy'}), + 'payments-finops': translate({id: 'ideaCatalog.domainExpertise.paymentsFinops', message: 'Payments/FinOps'}), + 'consumer-product': translate({id: 'ideaCatalog.domainExpertise.consumerProduct', message: 'Consumer Product'}), }; -export const capitalReqLabels: Record = { - none: 'None', - 'operating-treasury': 'Operating Treasury', - 'seed-liquidity': 'Seed Liquidity', - 'deep-liquidity': 'Deep Liquidity', +const capitalReqLabels: Record = { + none: translate({id: 'ideaCatalog.capitalReq.none', message: 'None'}), + 'operating-treasury': translate({id: 'ideaCatalog.capitalReq.operatingTreasury', message: 'Operating Treasury'}), + 'seed-liquidity': translate({id: 'ideaCatalog.capitalReq.seedLiquidity', message: 'Seed Liquidity'}), + 'deep-liquidity': translate({id: 'ideaCatalog.capitalReq.deepLiquidity', message: 'Deep Liquidity'}), }; -export const statusPrimitiveLabels: Record = { - gasless: 'Gasless UX', - karma: 'Karma Reputation', - privacy: 'Privacy Primitives', +const statusPrimitiveLabels: Record = { + gasless: translate({id: 'ideaCatalog.statusPrimitive.gasless', message: 'Gasless UX'}), + reputation: translate({id: 'ideaCatalog.statusPrimitive.reputation', message: 'Reputation'}), + privacy: translate({id: 'ideaCatalog.statusPrimitive.privacy', message: 'Privacy Primitives'}), }; -export const builderProfileLabels: Record = { - 'frontend-dev': 'Frontend / App Dev', - 'contract-dev': 'Smart Contract Dev', - 'full-stack': 'Full-Stack', - 'protocol-dev': 'Protocol / Cryptography', +const builderProfileLabels: Record = { + 'frontend-dev': translate({id: 'ideaCatalog.builderProfile.frontendDev', message: 'Frontend / App Dev'}), + 'contract-dev': translate({id: 'ideaCatalog.builderProfile.contractDev', message: 'Smart Contract Dev'}), + 'full-stack': translate({id: 'ideaCatalog.builderProfile.fullStack', message: 'Full-Stack'}), + 'protocol-dev': translate({id: 'ideaCatalog.builderProfile.protocolDev', message: 'Protocol / Cryptography'}), }; +export function getCategoryLabels(): Record { + return categoryLabels; +} + +export function getDifficultyLabels(): Record { + return difficultyLabels; +} + +export function getUserSegmentLabels(): Record { + return userSegmentLabels; +} + +export function getDomainExpertiseLabels(): Record { + return domainExpertiseLabels; +} + +export function getCapitalReqLabels(): Record { + return capitalReqLabels; +} + +export function getStatusPrimitiveLabels(): Record { + return statusPrimitiveLabels; +} + +export function getBuilderProfileLabels(): Record { + return builderProfileLabels; +} + export const categoryColors: Record = { reputation: 'var(--status-purple)', privacy: 'var(--status-green)', @@ -148,6 +178,6 @@ export const categoryColors: Record = { export const statusPrimitiveColors: Record = { gasless: 'var(--status-blue)', - karma: 'var(--status-purple)', + reputation: 'var(--status-purple)', privacy: 'var(--status-green)', }; From 425d04e9d797c0cd9987a63ac066ec9d437eeccc Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Mar 2026 17:49:02 +0100 Subject: [PATCH 33/36] Update i18n translations on gasless transactions documentation Signed-off-by: yjkellyjoo --- .../general-info/gasless-transactions.md | 66 ++++++++++++------- .../general-info/gasless-transactions.md | 66 ++++++++++++------- .../general-info/gasless-transactions.md | 66 ++++++++++++------- yarn.lock | 8 +-- 4 files changed, 127 insertions(+), 79 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md index cb454c6..22686e4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md @@ -9,9 +9,11 @@ keywords: [Status Network, ガスレストランザクション, Linea, RLN, Rat Status Networkは大規模なガスレストランザクションの導入を目指しています。このガスレスアプローチの主要コンポーネントは、VacのRate Limiting Nullifierで、従来のガス手数料を必要とせずにトランザクション速度制限を可能にします。この文書では、ガスレストランザクションを安全に有効にするために必要なアーキテクチャと統合要素について説明します。 -これらのガスレストランザクションの実装コードは、[Status Networkモノレポ](https://github.com/status-im/status-network-monorepo)で利用可能です。 +ガスレストランザクションの実装コードは、[Status Networkモノレポ](https://github.com/status-im/status-network-monorepo?tab=readme-ov-file#architecture-components)で利用可能です。 -### 1.2 RLN +ガスレスの運用レベルの実装についての詳細は、[Karma統合ガイド](/build-for-karma/guides)を参照してください。 + +## RLN RLNは、違反が発生しない限りユーザーのプライバシーを損なうことなくスパムを防ぐように設計されたゼロ知識システムです。ZKPとShamirの秘密分散を通じて実行される暗号化速度制限で従来のガス手数料を置き換えます。 @@ -21,7 +23,7 @@ RLNの特徴: - **Shamirの秘密分散とNullifier:** ユーザーはトランザクションの一意のnullifierを生成するために使用される秘密鍵を保持します。ユーザーがエポック(ブロックやタイムスタンプなど)内でトランザクション制限を超えると、秘密鍵が回復可能になり、露出します。 - **スパム検出:** 制限を超えるユーザーは効果的に自分の秘密を明かすことになり、拒否リストへの追加、将来の高いガス費用、または潜在的なトークンスラッシングなどのペナルティを受けます。 -### 1.3. RLNメンバーシップ管理 +### RLNメンバーシップ管理 RLNは大規模なメンバーシップ証明を効率的に処理するためにスパースマークルツリーを使用します。ベンチマーク研究により、100万アカウントをサポートする高さ20のツリーが証明生成と検証に最適なパフォーマンスを提供することが判明しました。100万アカウントを超えるスケーラビリティのために、レジストリと共に複数のSMTを使用してユーザーを適切なツリーに誘導できます。 @@ -34,20 +36,28 @@ graph TD B -->|ソウルバウンドトークン| C{ティア割り当て} subgraph "ティア制限" - D[Basic] - E[Active] - F[Regular] - G[Power User] - H[High-Throughput] - I[S-Tier] + T1[Entry] + T2[Newbie] + T3[Basic] + T4[Active] + T5[Regular] + T6[Power User] + T7[Pro User] + T8[High-Throughput] + T9[S-Tier] + T10[Legendary] end - C --> D - C --> E - C --> F - C --> G - C --> H - C --> I + C --> T1 + C --> T2 + C --> T3 + C --> T4 + C --> T5 + C --> T6 + C --> T7 + C --> T8 + C --> T9 + C --> T10 %% RLNフロー A -->|ガスレスTx送信| J[RPCノード] @@ -96,15 +106,15 @@ graph TD class A wallet class B,L karma class C tier - class D,E,F,G,H,I tierNode + class T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 tierNode class J,K,K1,K2,K3,M,N,O rln class P,Q,R,S,T,U,V,W sequencer class X,Y,Z,AA gas ``` -## 3. システムコンポーネント +## システムコンポーネント -### 3.1 Prover +### Prover Proverは3つのサービスで構成されるシステムです: @@ -114,7 +124,7 @@ Proverは3つのサービスで構成されるシステムです: これらのサービスは安全な認証情報管理、証明生成、トランザクション追跡を保証し、gRPCがSequencerとの低遅延通信を可能にします。 -### 3.2 RLN Verifier +### RLN Verifier RLN Verifierはsequencer内のbesuプラグインで、Java Native Interfaceを介してRLNのZerokit Rustライブラリを活用します。 Verifierは: @@ -125,7 +135,7 @@ Verifierは: 検証に失敗したトランザクションは拒否され、ユーザーは一時的に拒否リストに追加される場合があります。 -### 3.3 拒否リスト +### 拒否リスト 拒否リストはクォータを超過したりスパムに関与したりするユーザーを一時的に制限します: @@ -133,10 +143,16 @@ Verifierは: - ユーザーはプレミアムガス手数料を支払うことで制限を回避できます - プレミアム手数料を支払うとユーザーがリストから削除され、追加のKarmaを獲得します -### 3.4 `linea_estimateGas` RPC修正 +## `linea_estimateGas` RPC修正 -linea_estimateGasメソッドは拒否リストのユーザーを考慮するようにカスタマイズされています: +Status Networkは、ベースのLinea `linea_estimateGas`をKarma対応の動作で拡張しており、返される**手数料フィールド**は送信者アドレス`from`のKarma残高に依存する場合があります。 +`gasLimit`の計算は、ベースのLinea実装(内部的に標準の`eth_estimateGas`ロジックを使用)から変更されていません。 -- ユーザーの拒否リストステータスをチェックします -- 必要に応じてプレミアムガス倍率を追加します -- ユーザーに透明性と正確なガス推定を提供します +具体的には、Status Networkの`linea_estimateGas`は: + +- **拒否リストプレミアムの適用**: 送信者が拒否リストに掲載されている場合、ノードは通常の手数料見積もりを計算し、**手数料フィールド**にプレミアム倍率を適用します。 +- **対象ユーザーへのガスレス見積もりの返却**: 送信者に利用可能なKarmaクォータがある場合、メソッドはゼロの`baseFeePerGas`と`priorityFeePerGas`を返します。 + +上記のロジックは、[Status Networkモノレポのこのセクション](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218)でオープンソース化されている修正版`LineaEstimateGas`実装に含まれています。 + +Karma対応の手数料見積もり動作と`linea_estimateGas`の詳細については、[JSON-RPC API](/tools/rpc/json-rpc)を参照してください。 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md index 27fc994..c90e839 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md @@ -9,9 +9,11 @@ keywords: [Status Network, 가스리스 트랜잭션, Linea, RLN, Rate Limiting Status Network는 대규모 가스리스 트랜잭션 도입을 목표로 합니다. 이 가스리스 접근 방식의 핵심 구성 요소는 Vac의 Rate Limiting Nullifier로, 기존 가스 수수료 없이도 트랜잭션 속도 제한을 가능하게 합니다. 이 문서는 가스리스 트랜잭션을 안전하게 활성화하는 데 필요한 아키텍처와 통합 요소를 설명합니다. -이러한 가스리스 트랜잭션의 구현 코드는 [Status Network 모노레포](https://github.com/status-im/status-network-monorepo)에서 확인할 수 있습니다. +가스리스 트랜잭션의 구현 코드는 [Status Network 모노레포](https://github.com/status-im/status-network-monorepo?tab=readme-ov-file#architecture-components)에서 확인할 수 있습니다. -### 1.2 RLN +가스리스의 운영 수준 구현에 대한 자세한 내용은 [Karma 통합 가이드](/build-for-karma/guides)를 참조하세요. + +## RLN RLN은 위반이 발생하지 않는 한 사용자 프라이버시를 손상시키지 않으면서 스팸을 방지하도록 설계된 영지식 시스템입니다. ZKP와 Shamir의 비밀 공유를 통해 시행되는 암호화 속도 제한으로 기존 가스 수수료를 대체합니다. @@ -21,7 +23,7 @@ RLN 특성: - **Shamir의 비밀 공유 및 Nullifier:** 사용자는 트랜잭션에 대한 고유한 nullifier를 생성하는 데 사용되는 비밀 키를 보유합니다. 사용자가 에포크(예: 블록 또는 타임스탬프) 내에서 트랜잭션 제한을 초과하면 비밀 키가 복구 가능해져 노출됩니다. - **스팸 탐지:** 제한을 초과하는 사용자는 효과적으로 자신의 비밀을 공개하게 되어 거부 목록 포함, 향후 높은 가스 비용 또는 잠재적인 토큰 슬래싱과 같은 처벌을 받게 됩니다. -### 1.3. RLN 멤버십 관리 +### RLN 멤버십 관리 RLN은 대규모 멤버십 증명을 효율적으로 처리하기 위해 희소 머클 트리를 사용합니다. 벤치마킹 연구에 따르면 100만 계정을 지원하는 높이 20의 트리가 증명 생성 및 검증에 최적의 성능을 제공합니다. 100만 계정을 초과하는 확장성을 위해 레지스트리와 함께 여러 SMT를 사용하여 사용자를 적절한 트리로 안내할 수 있습니다. @@ -34,20 +36,28 @@ graph TD B -->|소울바운드 토큰| C{티어 할당} subgraph "티어 제한" - D[Basic] - E[Active] - F[Regular] - G[Power User] - H[High-Throughput] - I[S-Tier] + T1[Entry] + T2[Newbie] + T3[Basic] + T4[Active] + T5[Regular] + T6[Power User] + T7[Pro User] + T8[High-Throughput] + T9[S-Tier] + T10[Legendary] end - C --> D - C --> E - C --> F - C --> G - C --> H - C --> I + C --> T1 + C --> T2 + C --> T3 + C --> T4 + C --> T5 + C --> T6 + C --> T7 + C --> T8 + C --> T9 + C --> T10 %% RLN 플로우 A -->|가스리스 Tx 제출| J[RPC 노드] @@ -96,15 +106,15 @@ graph TD class A wallet class B,L karma class C tier - class D,E,F,G,H,I tierNode + class T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 tierNode class J,K,K1,K2,K3,M,N,O rln class P,Q,R,S,T,U,V,W sequencer class X,Y,Z,AA gas ``` -## 3. 시스템 구성 요소 +## 시스템 구성 요소 -### 3.1 Prover +### Prover Prover는 세 가지 서비스로 구성된 시스템입니다: @@ -114,7 +124,7 @@ Prover는 세 가지 서비스로 구성된 시스템입니다: 이러한 서비스는 안전한 자격 증명 관리, 증명 생성 및 트랜잭션 추적을 보장하며, gRPC는 Sequencer와의 저지연 통신을 가능하게 합니다. -### 3.2 RLN Verifier +### RLN Verifier RLN Verifier는 sequencer 내부의 besu 플러그인으로, Java Native Interface를 통해 RLN의 Zerokit Rust 라이브러리를 활용합니다. Verifier는: @@ -125,7 +135,7 @@ Verifier는: 검증에 실패한 트랜잭션은 거부되며, 사용자는 일시적으로 거부 목록에 추가될 수 있습니다. -### 3.3 거부 목록 +### 거부 목록 거부 목록은 할당량을 초과하거나 스팸에 참여하는 사용자를 일시적으로 제한합니다: @@ -133,10 +143,16 @@ Verifier는: - 사용자는 프리미엄 가스 수수료를 지불하여 제한을 우회할 수 있습니다 - 프리미엄 수수료를 지불하면 사용자가 목록에서 제거되고 추가 Karma를 획득합니다 -### 3.4 `linea_estimateGas` RPC 수정 +## `linea_estimateGas` RPC 수정 -linea_estimateGas 메서드는 거부 목록의 사용자를 고려하도록 사용자 정의됩니다: +Status Network는 기본 Linea `linea_estimateGas`를 Karma 인식 동작으로 확장하여, 반환되는 **수수료 필드**가 발신자 주소 `from`의 Karma 잔액에 따라 달라질 수 있습니다. +`gasLimit` 계산은 기본 Linea 구현(내부적으로 표준 `eth_estimateGas` 로직을 사용)에서 변경되지 않았습니다. -- 사용자의 거부 목록 상태를 확인합니다 -- 필요한 경우 프리미엄 가스 배수를 추가합니다 -- 사용자에게 투명성과 정확한 가스 추정을 제공합니다 \ No newline at end of file +구체적으로, Status Network의 `linea_estimateGas`는: + +- **거부 목록 프리미엄 적용**: 발신자가 거부 목록에 있는 경우, 노드는 정상 수수료 추정을 계산한 다음 **수수료 필드**에 프리미엄 배수를 적용합니다. +- **적격 사용자에게 가스리스 추정 반환**: 발신자에게 사용 가능한 Karma 할당량이 있는 경우, 메서드는 0의 `baseFeePerGas`와 `priorityFeePerGas`를 반환합니다. + +위 로직은 [Status Network 모노레포의 이 섹션](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218)에서 오픈소스로 공개된 수정된 `LineaEstimateGas` 구현에 포함되어 있습니다. + +Karma 인식 수수료 추정 동작과 `linea_estimateGas` 세부 사항은 [JSON-RPC API](/tools/rpc/json-rpc)를 참조하세요. diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md index 630f6b2..32f545a 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/overview/general-info/gasless-transactions.md @@ -9,9 +9,11 @@ keywords: [Status Network, 无Gas交易, Linea, RLN, Rate Limiting Nullifier, Ka Status Network旨在大规模引入无Gas交易。这种无Gas方法的关键组件是Vac的速率限制无效器(Rate Limiting Nullifier),它允许在不需要传统Gas费用的情况下进行交易速率限制。本文档描述了安全启用无Gas交易所需的架构和集成元素。 -这些无Gas交易的实现代码可在[Status Network代码库](https://github.com/status-im/status-network-monorepo)中找到。 +无Gas交易的实现代码可在[Status Network代码库](https://github.com/status-im/status-network-monorepo?tab=readme-ov-file#architecture-components)中找到。 -### 1.2 RLN +有关无Gas运营级别实现的更多信息,请参阅[Karma集成指南](/build-for-karma/guides)。 + +## RLN RLN是一个零知识系统,旨在在不违规的情况下防止垃圾邮件而不损害用户隐私。它通过ZKP和Shamir秘密共享执行的加密速率限制来替代传统的Gas费用。 @@ -21,7 +23,7 @@ RLN特征: - **Shamir秘密共享和无效器:** 用户持有用于为交易生成唯一无效器的秘密密钥。如果用户在一个时期(例如,区块或时间戳)内超过其交易限制,他们的秘密密钥将变得可恢复,从而暴露他们。 - **垃圾邮件检测:** 超过限制的用户有效地泄露了他们的秘密,导致诸如拒绝列表包含、未来更高的Gas成本或潜在的代币削减等惩罚。 -### 1.3. RLN成员管理 +### RLN成员管理 RLN使用稀疏默克尔树来高效处理大规模成员证明。基准研究确定,支持100万账户的高度为20的树为证明生成和验证提供了最佳性能。对于超过100万账户的可扩展性,可以使用多个SMT和注册表来引导用户到适当的树。 @@ -34,20 +36,28 @@ graph TD B -->|灵魂绑定代币| C{等级分配} subgraph "等级限制" - D[Basic] - E[Active] - F[Regular] - G[Power User] - H[High-Throughput] - I[S-Tier] + T1[Entry] + T2[Newbie] + T3[Basic] + T4[Active] + T5[Regular] + T6[Power User] + T7[Pro User] + T8[High-Throughput] + T9[S-Tier] + T10[Legendary] end - C --> D - C --> E - C --> F - C --> G - C --> H - C --> I + C --> T1 + C --> T2 + C --> T3 + C --> T4 + C --> T5 + C --> T6 + C --> T7 + C --> T8 + C --> T9 + C --> T10 %% RLN流程 A -->|提交无Gas交易| J[RPC节点] @@ -96,15 +106,15 @@ graph TD class A wallet class B,L karma class C tier - class D,E,F,G,H,I tierNode + class T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 tierNode class J,K,K1,K2,K3,M,N,O rln class P,Q,R,S,T,U,V,W sequencer class X,Y,Z,AA gas ``` -## 3. 系统组件 +## 系统组件 -### 3.1 Prover +### Prover Prover是一个由三个服务组成的系统: @@ -114,7 +124,7 @@ Prover是一个由三个服务组成的系统: 这些服务确保安全的凭据管理、证明生成和交易跟踪,gRPC使与Sequencer的低延迟通信成为可能。 -### 3.2 RLN验证器 +### RLN验证器 RLN验证器是sequencer内部的besu插件,通过Java本机接口利用RLN的Zerokit Rust库。 验证器: @@ -125,7 +135,7 @@ RLN验证器是sequencer内部的besu插件,通过Java本机接口利用RLN的 验证失败的交易将被拒绝,用户可能会被临时添加到拒绝列表中。 -### 3.3 拒绝列表 +### 拒绝列表 拒绝列表临时限制超过配额或参与垃圾邮件的用户: @@ -133,10 +143,16 @@ RLN验证器是sequencer内部的besu插件,通过Java本机接口利用RLN的 - 用户可以通过支付高级Gas费用来绕过限制 - 支付高级费用会将用户从列表中移除并获得额外的Karma -### 3.4 `linea_estimateGas` RPC修改 +## `linea_estimateGas` RPC修改 -linea_estimateGas方法被定制以考虑拒绝列表上的用户: +Status Network扩展了基础Linea `linea_estimateGas`,使其具备Karma感知行为,因此返回的**手续费字段**可能取决于发送者地址`from`的Karma余额。 +`gasLimit`的计算与基础Linea实现保持不变(其内部使用标准的`eth_estimateGas`逻辑)。 -- 检查用户的拒绝列表状态 -- 根据需要添加高级Gas倍数 -- 为用户提供透明度和准确的Gas估算 +具体来说,Status Network的`linea_estimateGas`: + +- **应用拒绝列表溢价**:如果发送者在拒绝列表上,节点会计算正常的费用估算,然后对**手续费字段**应用溢价倍数。 +- **为符合条件的用户返回无Gas估算**:如果发送者有可用的Karma配额,该方法返回零`baseFeePerGas`和`priorityFeePerGas`。 + +上述逻辑包含在我们修改的`LineaEstimateGas`实现中,开源于[Status Network代码库的这一部分](https://github.com/status-im/status-network-monorepo/blob/v1.0.1/besu-plugins/linea-sequencer/sequencer/src/main/java/net/consensys/linea/rpc/methods/LineaEstimateGas.java#L218)。 + +有关Karma感知费用估算行为和`linea_estimateGas`的详细信息,请参阅[JSON-RPC API](/tools/rpc/json-rpc)。 diff --git a/yarn.lock b/yarn.lock index 1783791..f2f6a21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4859,10 +4859,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669, caniuse-lite@^1.0.30001716: - version "1.0.30001743" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001743.tgz" - integrity sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669, caniuse-lite@^1.0.30001716, caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001766: + version "1.0.30001776" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001776.tgz" + integrity sha512-sg01JDPzZ9jGshqKSckOQthXnYwOEP50jeVFhaSFbZcOy05TiuuaffDOfcwtCisJ9kNQuLBFibYywv2Bgm9osw== caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001766: version "1.0.30001767" From 13f834cd7d2a3afdc7eb5c7254dd770495432956 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Mar 2026 21:14:37 +0100 Subject: [PATCH 34/36] Fix light mode hover text color issue and refactor custom.css - Defined status colors for purple, blue, and green, including soft and text variants. - Introduced shared surface styles for cards, backgrounds, and borders to improve consistency. - Updated dark mode styles to align with new surface variables. - Refined code block visibility and menu hover effects for better user experience. Signed-off-by: yjkellyjoo --- src/css/custom.css | 375 +++++++++++++++------------------------------ 1 file changed, 123 insertions(+), 252 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 5540b98..c5f1b62 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -53,6 +53,14 @@ --status-yellow: #FFD506; --status-orange: #FF8F6B; --status-pink: #FF6B8F; + --status-purple-soft: rgba(113, 64, 253, 0.08); + --status-purple-glow: rgba(113, 64, 253, 0.12); + --status-purple-text: var(--status-purple); + --status-purple-border: var(--status-purple); + --status-blue-text: var(--status-blue); + --status-blue-soft: rgba(51, 153, 255, 0.1); + --status-green-text: var(--status-green); + --status-green-soft: rgba(94, 174, 164, 0.1); /* Neutral Colors with Alpha Support */ --status-gray-100: hsla(210, 33%, 98%, 1); @@ -88,6 +96,29 @@ --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); --transition-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1); --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1); + + /* Shared surfaces */ + --page-background: #ffffff; + --page-background-rgb: 255, 255, 255; + --page-border-soft: rgba(229, 231, 235, 0.8); + --surface-card: #ffffff; + --surface-card-border: var(--status-gray-200); + --surface-muted: #f6f7f8; + --surface-muted-strong: #f6f7f8; + --surface-code-text: #374151; + --surface-table: rgba(255, 255, 255, 0.5); + --surface-us-card: rgba(113, 64, 253, 0.05); + --surface-them-card: rgba(0, 0, 0, 0.015); + --surface-them-card-border: var(--status-gray-300); + --surface-meta-badge: var(--status-gray-100); + --surface-meta-badge-border: var(--status-gray-200); + --text-muted: var(--status-gray-500); + --text-subtle: var(--status-gray-400); + --interactive-accent: #a78bfa; + --menu-hover-bg: rgba(94, 174, 164, 0.08); + --menu-active-bg: rgba(94, 174, 164, 0.1); + --table-border-color: var(--status-gray-200); + --chip-border-color: var(--status-gray-300); } /* Dark Mode Overrides */ @@ -96,6 +127,33 @@ --ifm-color-primary-dark: #5EAEA4; --ifm-background-color: #09101c; --ifm-background-surface-color: #0f1729; + --page-background: #09101c; + --page-background-rgb: 9, 16, 28; + --page-border-soft: rgba(38, 48, 68, 0.8); + --surface-card: var(--ifm-background-surface-color); + --surface-card-border: var(--status-gray-700); + --surface-muted: #1e1e1e; + --surface-muted-strong: #1e1e1e; + --surface-code-text: #e5e7eb; + --surface-table: rgba(15, 23, 41, 0.5); + --surface-us-card: rgba(113, 64, 253, 0.08); + --surface-them-card: rgba(255, 255, 255, 0.02); + --surface-them-card-border: var(--status-gray-600); + --surface-meta-badge: rgba(255, 255, 255, 0.04); + --surface-meta-badge-border: var(--status-gray-700); + --text-muted: var(--status-gray-400); + --text-subtle: var(--status-gray-500); + --interactive-accent: #a78bfa; + --status-purple-text: #a78bfa; + --status-purple-border: #a78bfa; + --status-blue-text: #60a5fa; + --status-blue-soft: rgba(51, 153, 255, 0.15); + --status-green-text: var(--ifm-color-primary); + --status-green-soft: rgba(94, 174, 164, 0.15); + --menu-hover-bg: rgba(94, 174, 164, 0.15); + --menu-active-bg: rgba(94, 174, 164, 0.2); + --table-border-color: var(--status-gray-700); + --chip-border-color: var(--status-gray-600); /* Dark mode specific shadows */ --shadow-sm: 0 2px 4px rgba(94, 174, 164, 0.2); @@ -106,12 +164,7 @@ /* Base background colors - removing gradient */ html, html body { - background: #ffffff !important; -} - -html[data-theme='dark'], -html[data-theme='dark'] body { - background: #09101c !important; + background: var(--page-background) !important; } /* Remove gradient background */ @@ -139,38 +192,24 @@ html[data-theme='dark']::before { /* Fix for code block visibility */ [class*='codeBlockContainer_'] { - background-color: #f6f7f8 !important; + background-color: var(--surface-muted-strong) !important; } [class*='codeBlockContent_'] { - background-color: #f6f7f8 !important; + background-color: var(--surface-muted-strong) !important; } [class*='codeBlockLines_'] { - color: #374151 !important; -} - -[data-theme='dark'] [class*='codeBlockContainer_'], -[data-theme='dark'] [class*='codeBlockContent_'] { - background-color: #1e1e1e !important; -} - -[data-theme='dark'] [class*='codeBlockLines_'] { - color: #e5e7eb !important; + color: var(--surface-code-text) !important; } :not(pre) > code { - background-color: #f6f7f8 !important; - color: #374151 !important; + background-color: var(--surface-muted) !important; + color: var(--surface-code-text) !important; padding: 0.2rem 0.4rem !important; border-radius: 4px !important; } -[data-theme='dark'] :not(pre) > code { - background-color: #1e1e1e !important; - color: #e5e7eb !important; -} - /* Global Typography Refinements */ html { font-size: var(--ifm-font-size-base); @@ -184,8 +223,7 @@ body { -moz-osx-font-smoothing: grayscale; } -[data-theme='dark'] .DocSearch, -[data-theme='light'] .DocSearch { +.DocSearch { font-family: 'Inter', -apple-system, sans-serif; } @@ -197,29 +235,19 @@ h1, h2, h3, h4, h5, h6 { /* Enhanced Navbar */ .navbar { - background: rgba(255, 255, 255, 0.95); - border-bottom: 1px solid rgba(229, 231, 235, 0.8); + background: rgba(var(--page-background-rgb), 0.95); + border-bottom: 1px solid var(--page-border-soft); animation: navbarFadeIn 0.5s ease-out; } -[data-theme='dark'] .navbar { - background: rgba(9, 16, 28, 0.95); - border-bottom: 1px solid rgba(38, 48, 68, 0.8); -} - /* Enhanced Card Styling */ .card { - border: 1px solid var(--status-gray-200); + border: 1px solid var(--surface-card-border); border-radius: 16px; - background: white; + background: var(--surface-card); transition: var(--transition-normal); } -[data-theme='dark'] .card { - background: var(--ifm-background-surface-color); - border-color: var(--status-gray-700); -} - .card:hover { transform: translateY(-4px) scale(1.01); box-shadow: var(--shadow-lg); @@ -296,17 +324,11 @@ table { } th, td { - border: 1px solid var(--status-gray-200); - background: rgba(255, 255, 255, 0.5); + border: 1px solid var(--table-border-color); + background: var(--surface-table); backdrop-filter: blur(4px); } -[data-theme='dark'] th, -[data-theme='dark'] td { - border-color: var(--status-gray-700); - background: rgba(15, 23, 41, 0.5); -} - /* Animations */ @keyframes navbarFadeIn { from { @@ -350,23 +372,15 @@ main { } .menu__link:hover { - background: rgba(94, 174, 164, 0.08); + background: var(--menu-hover-bg); transform: translateX(4px); } -[data-theme='dark'] .menu__link:hover { - background: rgba(94, 174, 164, 0.15); -} - .menu__link--active { - background: rgba(94, 174, 164, 0.1) !important; + background: var(--menu-active-bg) !important; font-weight: 500; } -[data-theme='dark'] .menu__link--active { - background: rgba(94, 174, 164, 0.2) !important; -} - /* Remove all sidebar borders */ .main-wrapper > div, aside, @@ -432,30 +446,21 @@ div[class*='sidebarViewport'] { align-items: flex-start; gap: 1rem; padding: 1.25rem 1.5rem; - border: 1px solid var(--status-gray-200); + border: 1px solid var(--surface-card-border); border-radius: 16px; - background: white; + background: var(--surface-card); text-decoration: none !important; color: inherit !important; transition: var(--transition-normal); } -[data-theme='dark'] .deploy-card { - background: var(--ifm-background-surface-color); - border-color: var(--status-gray-700); -} - .deploy-card:hover { transform: translateY(-4px); - box-shadow: 0 10px 20px rgba(113, 64, 253, 0.12); - border-color: var(--status-purple); + box-shadow: 0 10px 20px var(--status-purple-glow); + border-color: var(--status-purple-border); text-decoration: none !important; } -[data-theme='dark'] .deploy-card:hover { - box-shadow: 0 10px 20px rgba(113, 64, 253, 0.25); -} - .deploy-card-icon { font-size: 2rem; line-height: 1; @@ -479,28 +484,19 @@ div[class*='sidebarViewport'] { margin: 0 0 0.6rem; font-size: 0.9rem; line-height: 1.5; - color: var(--status-gray-500); -} - -[data-theme='dark'] .deploy-card-content p { - color: var(--status-gray-400); + color: var(--text-muted); } .deploy-card-tag { display: inline-block; font-size: 0.75rem; font-weight: 500; - color: var(--status-purple); - background: rgba(113, 64, 253, 0.08); + color: var(--status-purple-text); + background: var(--status-purple-soft); padding: 0.2rem 0.6rem; border-radius: 6px; } -[data-theme='dark'] .deploy-card-tag { - color: #a78bfa; - background: rgba(113, 64, 253, 0.15); -} - /* Comparison Grid (Us vs Them) */ .comparison-grid { display: flex; @@ -523,13 +519,8 @@ div[class*='sidebarViewport'] { } .comparison-row-link:hover .comparison-card--us { - border-color: var(--status-purple); - box-shadow: 0 4px 12px rgba(113, 64, 253, 0.15); -} - -[data-theme='dark'] .comparison-row-link:hover .comparison-card--us { - border-color: #a78bfa; - box-shadow: 0 4px 12px rgba(113, 64, 253, 0.25); + border-color: var(--status-purple-border); + box-shadow: 0 4px 12px var(--status-purple-glow); } .comparison-row { @@ -544,14 +535,10 @@ div[class*='sidebarViewport'] { font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; - color: var(--status-gray-500); + color: var(--text-muted); padding-left: 0.25rem; } -[data-theme='dark'] .comparison-label { - color: var(--status-gray-400); -} - .comparison-cards { display: grid; grid-template-columns: 1fr 1fr; @@ -567,33 +554,19 @@ div[class*='sidebarViewport'] { .comparison-card { padding: 1rem 1.25rem; border-radius: 12px; - border: 1px solid var(--status-gray-200); + border: 1px solid var(--surface-card-border); transition: var(--transition-normal); } -[data-theme='dark'] .comparison-card { - border-color: var(--status-gray-700); -} - .comparison-card--us { border-left: 3px solid var(--status-purple); - background: rgba(113, 64, 253, 0.05); -} - -[data-theme='dark'] .comparison-card--us { - background: rgba(113, 64, 253, 0.08); + background: var(--surface-us-card); } .comparison-card--them { - border-left: 3px solid var(--status-gray-300); - background: rgba(0, 0, 0, 0.015); - color: var(--status-gray-500); -} - -[data-theme='dark'] .comparison-card--them { - border-left-color: var(--status-gray-600); - background: rgba(255, 255, 255, 0.02); - color: var(--status-gray-400); + border-left: 3px solid var(--surface-them-card-border); + background: var(--surface-them-card); + color: var(--text-muted); } .comparison-card-heading { @@ -605,19 +578,11 @@ div[class*='sidebarViewport'] { } .comparison-card--us .comparison-card-heading { - color: var(--status-purple); -} - -[data-theme='dark'] .comparison-card--us .comparison-card-heading { - color: #a78bfa; + color: var(--status-purple-text); } .comparison-card--them .comparison-card-heading { - color: var(--status-gray-400); -} - -[data-theme='dark'] .comparison-card--them .comparison-card-heading { - color: var(--status-gray-500); + color: var(--text-subtle); } .comparison-card p { @@ -632,16 +597,11 @@ div[class*='sidebarViewport'] { /* Footer Enhancements */ .footer { - background: rgba(255, 255, 255, 0.95) !important; - border-top: 1px solid rgba(229, 231, 235, 0.8); + background: rgba(var(--page-background-rgb), 0.95) !important; + border-top: 1px solid var(--page-border-soft); backdrop-filter: blur(8px); } -[data-theme='dark'] .footer { - background: rgba(9, 16, 28, 0.95) !important; - border-top: 1px solid rgba(38, 48, 68, 0.8); -} - /* Remove default footer background */ .footer--dark { background: none; @@ -674,15 +634,11 @@ div[class*='sidebarViewport'] { .idea-catalog-filter-label { font-size: 0.8rem; font-weight: 600; - color: var(--status-gray-500); + color: var(--text-muted); min-width: 6.5rem; flex-shrink: 0; } -[data-theme='dark'] .idea-catalog-filter-label { - color: var(--status-gray-400); -} - .idea-catalog-chips { display: flex; flex-wrap: wrap; @@ -693,20 +649,20 @@ div[class*='sidebarViewport'] { display: inline-flex; align-items: center; padding: 0.25rem 0.7rem; - border: 1px solid var(--status-gray-300); + border: 1px solid var(--chip-border-color); border-radius: 99px; background: transparent; font-size: 0.8rem; font-weight: 500; - color: var(--status-gray-500); + color: var(--text-muted); cursor: pointer; transition: var(--transition-fast); font-family: var(--ifm-font-family-base); } .idea-catalog-chip:hover { - border-color: var(--status-purple); - color: var(--status-purple); + border-color: var(--interactive-accent); + color: var(--interactive-accent); } .idea-catalog-chip--active { @@ -715,40 +671,25 @@ div[class*='sidebarViewport'] { color: #fff; } -[data-theme='dark'] .idea-catalog-chip { - border-color: var(--status-gray-600); - color: var(--status-gray-400); -} - -[data-theme='dark'] .idea-catalog-chip:hover { - border-color: #a78bfa; - color: #a78bfa; -} - -[data-theme='dark'] .idea-catalog-chip--active { - background: #7140fd; - border-color: #7140fd; - color: #fff; -} - -.idea-catalog-advanced-toggle { +.idea-catalog-advanced-toggle, +.idea-catalog-clear { background: none; border: none; - color: var(--status-purple); + color: var(--status-purple-text); font-size: 0.85rem; font-weight: 500; cursor: pointer; padding: 0; - text-align: left; font-family: var(--ifm-font-family-base); } -.idea-catalog-advanced-toggle:hover { - text-decoration: underline; +.idea-catalog-advanced-toggle { + text-align: left; } -[data-theme='dark'] .idea-catalog-advanced-toggle { - color: #a78bfa; +.idea-catalog-advanced-toggle:hover, +.idea-catalog-clear:hover { + text-decoration: underline; } .idea-catalog-advanced { @@ -756,11 +697,7 @@ div[class*='sidebarViewport'] { flex-direction: column; gap: 0.75rem; padding: 0.75rem 0; - border-top: 1px solid var(--status-gray-200); -} - -[data-theme='dark'] .idea-catalog-advanced { - border-top-color: var(--status-gray-700); + border-top: 1px solid var(--surface-card-border); } .idea-catalog-status { @@ -768,33 +705,9 @@ div[class*='sidebarViewport'] { align-items: center; gap: 0.75rem; font-size: 0.85rem; - color: var(--status-gray-500); + color: var(--text-muted); padding-top: 0.5rem; - border-top: 1px solid var(--status-gray-200); -} - -[data-theme='dark'] .idea-catalog-status { - color: var(--status-gray-400); - border-top-color: var(--status-gray-700); -} - -.idea-catalog-clear { - background: none; - border: none; - color: var(--status-purple); - font-size: 0.85rem; - font-weight: 500; - cursor: pointer; - padding: 0; - font-family: var(--ifm-font-family-base); -} - -.idea-catalog-clear:hover { - text-decoration: underline; -} - -[data-theme='dark'] .idea-catalog-clear { - color: #a78bfa; + border-top: 1px solid var(--surface-card-border); } .idea-catalog-empty { @@ -831,9 +744,9 @@ div[class*='sidebarViewport'] { .idea-card { position: relative; padding: 1.25rem 1.5rem; - border: 1px solid var(--status-gray-200); + border: 1px solid var(--surface-card-border); border-radius: 16px; - background: white; + background: var(--surface-card); cursor: pointer; transition: var(--transition-normal); display: flex; @@ -841,20 +754,10 @@ div[class*='sidebarViewport'] { gap: 0.5rem; } -[data-theme='dark'] .idea-card { - background: var(--ifm-background-surface-color); - border-color: var(--status-gray-700); -} - .idea-card:hover { transform: translateY(-4px); - box-shadow: 0 10px 20px rgba(113, 64, 253, 0.12); - border-color: var(--status-purple); -} - -[data-theme='dark'] .idea-card:hover { - box-shadow: 0 10px 20px rgba(113, 64, 253, 0.25); - border-color: #a78bfa; + box-shadow: 0 10px 20px var(--status-purple-glow); + border-color: var(--status-purple-border); } .idea-card__header { @@ -894,24 +797,15 @@ div[class*='sidebarViewport'] { } .idea-card__tag--builder { - color: var(--status-blue); - background: rgba(51, 153, 255, 0.1); -} - -[data-theme='dark'] .idea-card__tag--builder { - color: #60a5fa; - background: rgba(51, 153, 255, 0.15); + color: var(--status-blue-text); + background: var(--status-blue-soft); } .idea-card__what { margin: 0; font-size: 0.88rem; line-height: 1.5; - color: var(--status-gray-500); -} - -[data-theme='dark'] .idea-card__what { - color: var(--status-gray-400); + color: var(--text-muted); } .idea-card__badges { @@ -938,23 +832,13 @@ div[class*='sidebarViewport'] { font-weight: 500; padding: 0.12rem 0.45rem; border-radius: 4px; - color: var(--status-purple); - background: rgba(113, 64, 253, 0.08); -} - -[data-theme='dark'] .idea-card__tag { - color: #a78bfa; - background: rgba(113, 64, 253, 0.15); + color: var(--status-purple-text); + background: var(--status-purple-soft); } .idea-card__tag--segment { - color: var(--status-green); - background: rgba(94, 174, 164, 0.1); -} - -[data-theme='dark'] .idea-card__tag--segment { - color: var(--ifm-color-primary); - background: rgba(94, 174, 164, 0.15); + color: var(--status-green-text); + background: var(--status-green-soft); } .idea-card__expand-icon { @@ -972,14 +856,10 @@ div[class*='sidebarViewport'] { flex-direction: column; gap: 0.6rem; padding-top: 0.6rem; - border-top: 1px solid var(--status-gray-200); + border-top: 1px solid var(--surface-card-border); animation: ideaDetailFadeIn 200ms ease-out; } -[data-theme='dark'] .idea-card__detail { - border-top-color: var(--status-gray-700); -} - @keyframes ideaDetailFadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } @@ -1007,13 +887,8 @@ div[class*='sidebarViewport'] { flex-direction: column; padding: 0.3rem 0.55rem; border-radius: 8px; - background: var(--status-gray-100); - border: 1px solid var(--status-gray-200); -} - -[data-theme='dark'] .idea-card__meta-badge { - background: rgba(255, 255, 255, 0.04); - border-color: var(--status-gray-700); + background: var(--surface-meta-badge); + border: 1px solid var(--surface-meta-badge-border); } .idea-card__meta-label { @@ -1021,11 +896,7 @@ div[class*='sidebarViewport'] { font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; - color: var(--status-gray-400); -} - -[data-theme='dark'] .idea-card__meta-label { - color: var(--status-gray-500); + color: var(--text-subtle); } .idea-card__meta-value { From 9253c2c54b2d08b7651061073f13762b8942abe3 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Mar 2026 22:10:10 +0100 Subject: [PATCH 35/36] Remove privacy page for future work - Ensured consistency across language versions regarding the privacy module information. Signed-off-by: yjkellyjoo --- docs/build-for-karma/why-status-network.md | 2 +- .../current/build-for-karma/why-status-network.md | 2 +- .../current/build-for-karma/why-status-network.md | 2 +- .../current/build-for-karma/why-status-network.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/build-for-karma/why-status-network.md b/docs/build-for-karma/why-status-network.md index 0460292..efc9c5e 100644 --- a/docs/build-for-karma/why-status-network.md +++ b/docs/build-for-karma/why-status-network.md @@ -124,7 +124,7 @@ Status Network is built with technology from the [Institute of Free Technology ( We align with IFT's vision in technology to build public goods to safegauard civil liberties in the digital age. Status Network will add on privacy focused modules leveraging our gaslessness. -Read more → [Status Network and Privacy](/overview/general-info/privacy) + ## Full EVM Equivalence diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md index a7c0f7e..dac946a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md @@ -124,7 +124,7 @@ Status Networkは[Institute of Free Technology(IFT)](https://free.technology 私たちは、デジタル時代の市民的自由を守る公共財を構築するというIFTの技術ビジョンに沿っています。Status Networkはガスレス性を活かしたプライバシー重視モジュールを追加していきます。 -詳細 → [Status Networkとプライバシー](/overview/general-info/privacy) + ## 完全なEVM等価性 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md index 9673f97..f6ff4bf 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md @@ -124,7 +124,7 @@ Karma를 보유한 주소는 일정량의 무료 트랜잭션을 할당 받습 우리는 디지털 시대의 시민권을 보호하는 공공재를 구축하고자 하는 IFT의 기술 비전과 함께합니다. 스테이터스 네트워크는 가스리스 특성을 활용하여 프라이버시 중심 모듈을 추가할 예정입니다. -자세히 보기 → [Status Network and Privacy](/overview/general-info/privacy) + ## EVM 호환성 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md index 1a82d7b..74c7839 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/build-for-karma/why-status-network.md @@ -124,7 +124,7 @@ Status Network 采用 [自由技术研究所 (IFT)](https://free.technology) 的 我们与 IFT 在技术愿景上一致,致力于构建保障数字时代公民自由的公共产品。Status Network 将基于我们的无 Gas 特性增加注重隐私的模块。 -了解更多 → [Status Network 与隐私](/overview/general-info/privacy) + ## 完全 EVM 等效 From bac5c966e4622c1946945e535321325019f9aa85 Mon Sep 17 00:00:00 2001 From: yjkellyjoo Date: Fri, 13 Mar 2026 22:55:17 +0100 Subject: [PATCH 36/36] Refactor IdeaCatalog components Signed-off-by: yjkellyjoo --- i18n/ja/code.json | 34 ++++- i18n/ko/code.json | 34 ++++- i18n/zh/code.json | 34 ++++- src/components/IdeaCatalog/FilterBar.tsx | 28 ++-- src/components/IdeaCatalog/IdeaCard.tsx | 45 +++---- src/components/IdeaCatalog/types.ts | 165 ++++++++++++----------- 6 files changed, 218 insertions(+), 122 deletions(-) diff --git a/i18n/ja/code.json b/i18n/ja/code.json index 5096ed5..368e359 100644 --- a/i18n/ja/code.json +++ b/i18n/ja/code.json @@ -613,6 +613,38 @@ "message": "すべてのフィルターをクリア", "description": "Empty state clear button" }, + "ideaCatalog.securityCriticality.low": { + "message": "低", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.medium": { + "message": "中", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.high": { + "message": "高", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.critical": { + "message": "重大", + "description": "Security criticality label" + }, + "ideaCatalog.opsBurden.low": { + "message": "低", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.medium": { + "message": "中", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.high": { + "message": "高", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.veryHigh": { + "message": "非常に高い", + "description": "Ops burden label" + }, "ideaCatalog.category.reputation": { "message": "レピュテーション", "description": "Category label" @@ -646,7 +678,7 @@ "description": "Status primitive label" }, "ideaCatalog.builderProfile.frontendDev": { - "message": "Web / モバイル開発", + "message": "Web / アプリ開発", "description": "Builder profile label" }, "ideaCatalog.builderProfile.contractDev": { diff --git a/i18n/ko/code.json b/i18n/ko/code.json index c814352..0f0632c 100644 --- a/i18n/ko/code.json +++ b/i18n/ko/code.json @@ -613,6 +613,38 @@ "message": "모든 필터 지우기", "description": "Empty state clear button" }, + "ideaCatalog.securityCriticality.low": { + "message": "낮음", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.medium": { + "message": "중간", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.high": { + "message": "높음", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.critical": { + "message": "중요", + "description": "Security criticality label" + }, + "ideaCatalog.opsBurden.low": { + "message": "낮음", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.medium": { + "message": "중간", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.high": { + "message": "높음", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.veryHigh": { + "message": "매우 높음", + "description": "Ops burden label" + }, "ideaCatalog.category.reputation": { "message": "평판", "description": "Category label" @@ -646,7 +678,7 @@ "description": "Status primitive label" }, "ideaCatalog.builderProfile.frontendDev": { - "message": "웹 / 모바일 개발", + "message": "웹 / 앱 개발", "description": "Builder profile label" }, "ideaCatalog.builderProfile.contractDev": { diff --git a/i18n/zh/code.json b/i18n/zh/code.json index 8fce2aa..c57f5d6 100644 --- a/i18n/zh/code.json +++ b/i18n/zh/code.json @@ -613,6 +613,38 @@ "message": "清除所有筛选", "description": "Empty state clear button" }, + "ideaCatalog.securityCriticality.low": { + "message": "低", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.medium": { + "message": "中", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.high": { + "message": "高", + "description": "Security criticality label" + }, + "ideaCatalog.securityCriticality.critical": { + "message": "关键", + "description": "Security criticality label" + }, + "ideaCatalog.opsBurden.low": { + "message": "低", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.medium": { + "message": "中", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.high": { + "message": "高", + "description": "Ops burden label" + }, + "ideaCatalog.opsBurden.veryHigh": { + "message": "非常高", + "description": "Ops burden label" + }, "ideaCatalog.category.reputation": { "message": "声誉", "description": "Category label" @@ -646,7 +678,7 @@ "description": "Status primitive label" }, "ideaCatalog.builderProfile.frontendDev": { - "message": "Web / 移动端开发", + "message": "Web / 应用开发", "description": "Builder profile label" }, "ideaCatalog.builderProfile.contractDev": { diff --git a/src/components/IdeaCatalog/FilterBar.tsx b/src/components/IdeaCatalog/FilterBar.tsx index 9997662..1cf3cd0 100644 --- a/src/components/IdeaCatalog/FilterBar.tsx +++ b/src/components/IdeaCatalog/FilterBar.tsx @@ -10,13 +10,13 @@ import type { CapitalReq, } from './types'; import { - getCategoryLabels, - getStatusPrimitiveLabels, - getBuilderProfileLabels, - getDifficultyLabels, - getUserSegmentLabels, - getDomainExpertiseLabels, - getCapitalReqLabels, + builderProfileLabels, + capitalReqLabels, + categoryLabels, + difficultyLabels, + domainExpertiseLabels, + statusPrimitiveLabels, + userSegmentLabels, } from './types'; export interface Filters { @@ -69,25 +69,25 @@ export default function FilterBar({ {/* Primary filters */} toggle('categories', v)} /> toggle('superpowers', v)} /> toggle('builderProfiles', v)} /> toggle('difficulties', v)} /> @@ -110,19 +110,19 @@ export default function FilterBar({
toggle('domainExpertises', v)} /> toggle('userSegments', v)} /> toggle('capitalReqs', v)} /> diff --git a/src/components/IdeaCatalog/IdeaCard.tsx b/src/components/IdeaCatalog/IdeaCard.tsx index a15ec99..3f993e3 100644 --- a/src/components/IdeaCatalog/IdeaCard.tsx +++ b/src/components/IdeaCatalog/IdeaCard.tsx @@ -1,37 +1,28 @@ import React, { useState } from 'react'; import {translate} from '@docusaurus/Translate'; -import type { Idea, Difficulty } from './types'; import { - getCategoryLabels, + Idea, + builderProfileLabels, categoryColors, - getStatusPrimitiveLabels, + categoryLabels, + difficultyColors, + difficultyLabels, + domainExpertiseLabels, + opsBurdenLabels, + securityCriticalityLabels, statusPrimitiveColors, - getBuilderProfileLabels, - getDomainExpertiseLabels, - getUserSegmentLabels, + statusPrimitiveLabels, + userSegmentLabels, } from './types'; interface IdeaCardProps { idea: Idea; } -const difficultyColor: Record = { - 'Low-Med': 'var(--status-green)', - Med: 'var(--status-blue)', - 'Med-High': 'var(--status-orange)', - High: 'var(--status-pink)', -}; - export default function IdeaCard({ idea }: IdeaCardProps): JSX.Element { const [expanded, setExpanded] = useState(false); const detailId = `idea-card-detail-${idea.id}`; - const categoryLabels = getCategoryLabels(); - const statusPrimitiveLabels = getStatusPrimitiveLabels(); - const builderProfileLabels = getBuilderProfileLabels(); - const domainExpertiseLabels = getDomainExpertiseLabels(); - const userSegmentLabels = getUserSegmentLabels(); - return (
- {idea.difficulty} + {difficultyLabels[idea.difficulty]}
@@ -123,8 +114,14 @@ export default function IdeaCard({ idea }: IdeaCardProps): JSX.Element { {translate({id: 'ideaCatalog.card.mvpScope', message: 'MVP Scope:'})} {idea.mvp}
- - + +
)} diff --git a/src/components/IdeaCatalog/types.ts b/src/components/IdeaCatalog/types.ts index 00f3ae1..f1c82c2 100644 --- a/src/components/IdeaCatalog/types.ts +++ b/src/components/IdeaCatalog/types.ts @@ -7,6 +7,7 @@ export const Category = { games: 'games', defi: 'defi', } as const; + export type Category = (typeof Category)[keyof typeof Category]; export const StatusPrimitive = { @@ -14,6 +15,7 @@ export const StatusPrimitive = { reputation: 'reputation', privacy: 'privacy', } as const; + export type StatusPrimitive = (typeof StatusPrimitive)[keyof typeof StatusPrimitive]; export const BuilderProfile = { @@ -22,6 +24,7 @@ export const BuilderProfile = { fullStack: 'full-stack', protocolDev: 'protocol-dev', } as const; + export type BuilderProfile = (typeof BuilderProfile)[keyof typeof BuilderProfile]; export const Difficulty = { @@ -30,6 +33,7 @@ export const Difficulty = { medHigh: 'Med-High', high: 'High', } as const; + export type Difficulty = (typeof Difficulty)[keyof typeof Difficulty]; export const UserSegment = { @@ -38,6 +42,7 @@ export const UserSegment = { daoOrgOps: 'dao-org-ops', traderDefi: 'trader-defi', } as const; + export type UserSegment = (typeof UserSegment)[keyof typeof UserSegment]; export const DomainExpertise = { @@ -47,6 +52,7 @@ export const DomainExpertise = { paymentsFinops: 'payments-finops', consumerProduct: 'consumer-product', } as const; + export type DomainExpertise = (typeof DomainExpertise)[keyof typeof DomainExpertise]; export const CapitalReq = { @@ -55,6 +61,7 @@ export const CapitalReq = { seedLiquidity: 'seed-liquidity', deepLiquidity: 'deep-liquidity', } as const; + export type CapitalReq = (typeof CapitalReq)[keyof typeof CapitalReq]; export const SecurityCriticality = { @@ -63,7 +70,9 @@ export const SecurityCriticality = { high: 'High', critical: 'Critical', } as const; -export type SecurityCriticality = (typeof SecurityCriticality)[keyof typeof SecurityCriticality]; + +export type SecurityCriticality = + (typeof SecurityCriticality)[keyof typeof SecurityCriticality]; export const OpsBurden = { low: 'Low', @@ -71,6 +80,7 @@ export const OpsBurden = { high: 'High', veryHigh: 'Very High', } as const; + export type OpsBurden = (typeof OpsBurden)[keyof typeof OpsBurden]; export interface Idea { @@ -90,94 +100,87 @@ export interface Idea { opsBurden: OpsBurden; } -const categoryLabels: Record = { - reputation: translate({id: 'ideaCatalog.category.reputation', message: 'Reputation'}), - privacy: translate({id: 'ideaCatalog.category.privacy', message: 'Privacy'}), - social: translate({id: 'ideaCatalog.category.social', message: 'Social'}), - games: translate({id: 'ideaCatalog.category.games', message: 'Games'}), - defi: translate({id: 'ideaCatalog.category.defi', message: 'DeFi'}), -}; +export const categoryLabels = { + [Category.reputation]: translate({id: 'ideaCatalog.category.reputation', message: 'Reputation'}), + [Category.privacy]: translate({id: 'ideaCatalog.category.privacy', message: 'Privacy'}), + [Category.social]: translate({id: 'ideaCatalog.category.social', message: 'Social'}), + [Category.games]: translate({id: 'ideaCatalog.category.games', message: 'Games'}), + [Category.defi]: translate({id: 'ideaCatalog.category.defi', message: 'DeFi'}), +} satisfies Record; -const difficultyLabels: Record = { - 'Low-Med': translate({id: 'ideaCatalog.difficulty.lowMed', message: 'Low-Med'}), - Med: translate({id: 'ideaCatalog.difficulty.med', message: 'Med'}), - 'Med-High': translate({id: 'ideaCatalog.difficulty.medHigh', message: 'Med-High'}), - High: translate({id: 'ideaCatalog.difficulty.high', message: 'High'}), -}; +export const difficultyLabels = { + [Difficulty.lowMed]: translate({id: 'ideaCatalog.difficulty.lowMed', message: 'Low-Med'}), + [Difficulty.med]: translate({id: 'ideaCatalog.difficulty.med', message: 'Med'}), + [Difficulty.medHigh]: translate({id: 'ideaCatalog.difficulty.medHigh', message: 'Med-High'}), + [Difficulty.high]: translate({id: 'ideaCatalog.difficulty.high', message: 'High'}), +} satisfies Record; -const userSegmentLabels: Record = { - consumer: translate({id: 'ideaCatalog.userSegment.consumer', message: 'Consumer'}), - 'community-creator': translate({id: 'ideaCatalog.userSegment.communityCreator', message: 'Community/Creator'}), - 'dao-org-ops': translate({id: 'ideaCatalog.userSegment.daoOrgOps', message: 'DAO/Org Ops'}), - 'trader-defi': translate({id: 'ideaCatalog.userSegment.traderDefi', message: 'Trader/DeFi'}), -}; +export const userSegmentLabels = { + [UserSegment.consumer]: translate({id: 'ideaCatalog.userSegment.consumer', message: 'Consumer'}), + [UserSegment.communityCreator]: translate({id: 'ideaCatalog.userSegment.communityCreator', message: 'Community/Creator'}), + [UserSegment.daoOrgOps]: translate({id: 'ideaCatalog.userSegment.daoOrgOps', message: 'DAO/Org Ops'}), + [UserSegment.traderDefi]: translate({id: 'ideaCatalog.userSegment.traderDefi', message: 'Trader/DeFi'}), +} satisfies Record; -const domainExpertiseLabels: Record = { - 'community-design': translate({id: 'ideaCatalog.domainExpertise.communityDesign', message: 'Community Design'}), - 'defi-mechanisms': translate({id: 'ideaCatalog.domainExpertise.defiMechanisms', message: 'DeFi Mechanisms'}), - privacy: translate({id: 'ideaCatalog.domainExpertise.privacy', message: 'Privacy'}), - 'payments-finops': translate({id: 'ideaCatalog.domainExpertise.paymentsFinops', message: 'Payments/FinOps'}), - 'consumer-product': translate({id: 'ideaCatalog.domainExpertise.consumerProduct', message: 'Consumer Product'}), -}; +export const domainExpertiseLabels = { + [DomainExpertise.communityDesign]: translate({id: 'ideaCatalog.domainExpertise.communityDesign', message: 'Community Design'}), + [DomainExpertise.defiMechanisms]: translate({id: 'ideaCatalog.domainExpertise.defiMechanisms', message: 'DeFi Mechanisms'}), + [DomainExpertise.privacy]: translate({id: 'ideaCatalog.domainExpertise.privacy', message: 'Privacy'}), + [DomainExpertise.paymentsFinops]: translate({id: 'ideaCatalog.domainExpertise.paymentsFinops', message: 'Payments/FinOps'}), + [DomainExpertise.consumerProduct]: translate({id: 'ideaCatalog.domainExpertise.consumerProduct', message: 'Consumer Product'}), +} satisfies Record; -const capitalReqLabels: Record = { - none: translate({id: 'ideaCatalog.capitalReq.none', message: 'None'}), - 'operating-treasury': translate({id: 'ideaCatalog.capitalReq.operatingTreasury', message: 'Operating Treasury'}), - 'seed-liquidity': translate({id: 'ideaCatalog.capitalReq.seedLiquidity', message: 'Seed Liquidity'}), - 'deep-liquidity': translate({id: 'ideaCatalog.capitalReq.deepLiquidity', message: 'Deep Liquidity'}), -}; +export const capitalReqLabels = { + [CapitalReq.none]: translate({id: 'ideaCatalog.capitalReq.none', message: 'None'}), + [CapitalReq.operatingTreasury]: translate({id: 'ideaCatalog.capitalReq.operatingTreasury', message: 'Operating Treasury'}), + [CapitalReq.seedLiquidity]: translate({id: 'ideaCatalog.capitalReq.seedLiquidity', message: 'Seed Liquidity'}), + [CapitalReq.deepLiquidity]: translate({id: 'ideaCatalog.capitalReq.deepLiquidity', message: 'Deep Liquidity'}), +} satisfies Record; -const statusPrimitiveLabels: Record = { - gasless: translate({id: 'ideaCatalog.statusPrimitive.gasless', message: 'Gasless UX'}), - reputation: translate({id: 'ideaCatalog.statusPrimitive.reputation', message: 'Reputation'}), - privacy: translate({id: 'ideaCatalog.statusPrimitive.privacy', message: 'Privacy Primitives'}), -}; +export const statusPrimitiveLabels = { + [StatusPrimitive.gasless]: translate({id: 'ideaCatalog.statusPrimitive.gasless', message: 'Gasless UX'}), + [StatusPrimitive.reputation]: translate({id: 'ideaCatalog.statusPrimitive.reputation', message: 'Reputation'}), + [StatusPrimitive.privacy]: translate({id: 'ideaCatalog.statusPrimitive.privacy', message: 'Privacy Primitives'}), +} satisfies Record; -const builderProfileLabels: Record = { - 'frontend-dev': translate({id: 'ideaCatalog.builderProfile.frontendDev', message: 'Frontend / App Dev'}), - 'contract-dev': translate({id: 'ideaCatalog.builderProfile.contractDev', message: 'Smart Contract Dev'}), - 'full-stack': translate({id: 'ideaCatalog.builderProfile.fullStack', message: 'Full-Stack'}), - 'protocol-dev': translate({id: 'ideaCatalog.builderProfile.protocolDev', message: 'Protocol / Cryptography'}), -}; +export const builderProfileLabels = { + [BuilderProfile.frontendDev]: translate({id: 'ideaCatalog.builderProfile.frontendDev', message: 'Web / Mobile Dev'}), + [BuilderProfile.contractDev]: translate({id: 'ideaCatalog.builderProfile.contractDev', message: 'Smart Contract Dev'}), + [BuilderProfile.fullStack]: translate({id: 'ideaCatalog.builderProfile.fullStack', message: 'Full-Stack'}), + [BuilderProfile.protocolDev]: translate({id: 'ideaCatalog.builderProfile.protocolDev', message: 'Protocol / Cryptography'}), +} satisfies Record; -export function getCategoryLabels(): Record { - return categoryLabels; -} +export const securityCriticalityLabels = { + [SecurityCriticality.low]: translate({id: 'ideaCatalog.securityCriticality.low', message: 'Low'}), + [SecurityCriticality.medium]: translate({id: 'ideaCatalog.securityCriticality.medium', message: 'Medium'}), + [SecurityCriticality.high]: translate({id: 'ideaCatalog.securityCriticality.high', message: 'High'}), + [SecurityCriticality.critical]: translate({id: 'ideaCatalog.securityCriticality.critical', message: 'Critical'}), +} satisfies Record; -export function getDifficultyLabels(): Record { - return difficultyLabels; -} +export const opsBurdenLabels = { + [OpsBurden.low]: translate({id: 'ideaCatalog.opsBurden.low', message: 'Low'}), + [OpsBurden.medium]: translate({id: 'ideaCatalog.opsBurden.medium', message: 'Medium'}), + [OpsBurden.high]: translate({id: 'ideaCatalog.opsBurden.high', message: 'High'}), + [OpsBurden.veryHigh]: translate({id: 'ideaCatalog.opsBurden.veryHigh', message: 'Very High'}), +} satisfies Record; -export function getUserSegmentLabels(): Record { - return userSegmentLabels; -} +export const difficultyColors = { + [Difficulty.lowMed]: 'var(--status-green)', + [Difficulty.med]: 'var(--status-blue)', + [Difficulty.medHigh]: 'var(--status-orange)', + [Difficulty.high]: 'var(--status-pink)', +} satisfies Record; -export function getDomainExpertiseLabels(): Record { - return domainExpertiseLabels; -} +export const categoryColors = { + [Category.reputation]: 'var(--status-purple)', + [Category.privacy]: 'var(--status-green)', + [Category.social]: 'var(--status-blue)', + [Category.games]: 'var(--status-orange)', + [Category.defi]: 'var(--status-yellow)', +} satisfies Record; -export function getCapitalReqLabels(): Record { - return capitalReqLabels; -} - -export function getStatusPrimitiveLabels(): Record { - return statusPrimitiveLabels; -} - -export function getBuilderProfileLabels(): Record { - return builderProfileLabels; -} - -export const categoryColors: Record = { - reputation: 'var(--status-purple)', - privacy: 'var(--status-green)', - social: 'var(--status-blue)', - games: 'var(--status-orange)', - defi: 'var(--status-yellow)', -}; - -export const statusPrimitiveColors: Record = { - gasless: 'var(--status-blue)', - reputation: 'var(--status-purple)', - privacy: 'var(--status-green)', -}; +export const statusPrimitiveColors = { + [StatusPrimitive.gasless]: 'var(--status-blue)', + [StatusPrimitive.reputation]: 'var(--status-purple)', + [StatusPrimitive.privacy]: 'var(--status-green)', +} satisfies Record;