Compare commits
43
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
37bb80da2f | ||
|
|
162f4a23d2 | ||
|
|
133db356bb | ||
|
|
979af9eb9a | ||
|
|
e81ce21209 | ||
|
|
96bd3274fd | ||
|
|
8593a66224 | ||
|
|
3ad562166d | ||
|
|
b13dabebe5 | ||
|
|
8d082b3b35 | ||
|
|
ce75da3f7e | ||
|
|
3dfb3bedf9 | ||
|
|
f42086a06b | ||
|
|
ac9fadf395 | ||
|
|
f0db245421 | ||
|
|
d03c991f4f | ||
|
|
73f2993efb | ||
|
|
bff5bfe421 | ||
|
|
0bee754eba | ||
|
|
822c4f1272 | ||
|
|
628d5f31e2 | ||
|
|
7cd2f7876e | ||
|
|
9a758e719c | ||
|
|
1087d68b1f | ||
|
|
c5ebe1187b | ||
|
|
e1525d392f | ||
|
|
65055cd8f3 | ||
|
|
ac6fdf101f | ||
|
|
bc7084cf67 | ||
|
|
439e219084 | ||
|
|
2298a68dfb | ||
|
|
81315288b8 | ||
|
|
a42f6acc4e | ||
|
|
ade89f42c0 | ||
|
|
d09abb23f6 | ||
|
|
31464fdeae | ||
|
|
4d5b23a7d5 | ||
|
|
da204b0737 | ||
|
|
73ce629f93 | ||
|
|
85dd3089b7 | ||
|
|
231c577fcf | ||
|
|
24a3023288 | ||
|
|
b38c3be3c0 |
Vendored
+7
-3
@@ -42,8 +42,8 @@ pipeline {
|
|||||||
script {
|
script {
|
||||||
nix.develop("""
|
nix.develop("""
|
||||||
ghp-import \
|
ghp-import \
|
||||||
-b deploy-master \
|
-b ${deployBranch()} \
|
||||||
-c docs.status.network \
|
-c ${deployDomain()} \
|
||||||
-p build
|
-p build
|
||||||
""",
|
""",
|
||||||
pure: false
|
pure: false
|
||||||
@@ -57,4 +57,8 @@ pipeline {
|
|||||||
post {
|
post {
|
||||||
cleanup { cleanWs() }
|
cleanup { cleanWs() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def isMasterBranch() { GIT_BRANCH ==~ /.*master/ }
|
||||||
|
def deployBranch() { isMasterBranch() ? 'deploy-master' : 'deploy-develop' }
|
||||||
|
def deployDomain() { isMasterBranch() ? 'docs.status.network' : 'dev-docs.status.network' }
|
||||||
@@ -16,8 +16,8 @@ If you are familiar with using [Nix shell](https://nix.dev/manual/nix/2.17/comma
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the repository
|
# Clone the repository
|
||||||
git clone https://github.com/status-network/docs.git
|
git clone https://github.com/status-im/docs.status.network
|
||||||
cd docs
|
cd docs.status.network
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
yarn
|
yarn
|
||||||
@@ -45,6 +45,7 @@ This command generates static content into the `build` directory and can be serv
|
|||||||
## CI/CD
|
## CI/CD
|
||||||
|
|
||||||
- [CI builds](https://ci.infra.status.im/job/website/job/docs.status.network/) `master` and pushes to `deploy-master` branch, which is hosted at <https://docs.status.network/>.
|
- [CI builds](https://ci.infra.status.im/job/website/job/docs.status.network/) `master` and pushes to `deploy-master` branch, which is hosted at <https://docs.status.network/>.
|
||||||
|
- [CI builds dev](https://ci.infra.status.im/job/website/job/dev-docs.status.network/) `develop` and pushes to `deploy-develop` branch, which is hosted at <https://dev-docs.status.network/>.
|
||||||
|
|
||||||
The hosting is done using [Caddy server with Git plugin for handling GitHub webhooks](https://github.com/status-im/infra-misc/blob/master/ansible/roles/caddy-git).
|
The hosting is done using [Caddy server with Git plugin for handling GitHub webhooks](https://github.com/status-im/infra-misc/blob/master/ansible/roles/caddy-git).
|
||||||
|
|
||||||
@@ -68,15 +69,14 @@ We welcome contributions from the community! Here's how you can help improve our
|
|||||||
|
|
||||||
```
|
```
|
||||||
docs/
|
docs/
|
||||||
├── introduction/ # Introduction and getting started
|
├── introduction/ # Introduction and getting started
|
||||||
├── tokenomics/ # SNT and AURA token documentation
|
├── tokenomics/ # Economic model and Karmic Tokenomics
|
||||||
├── general-info/ # Network details and contracts
|
├── general-info/ # Network details and contracts
|
||||||
├── tools/ # Development tools and resources
|
├── tools/ # Development tools and resources
|
||||||
├── tutorials/ # Step-by-step guides
|
├── tutorials/ # Step-by-step guides
|
||||||
├── security/ # Security information
|
|
||||||
└── other/ # Additional resources
|
└── other/ # Additional resources
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Made with ❤️ by the Status Network community
|
Made with ❤️ by the Status Network team
|
||||||
Executable
+33
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Define languages
|
||||||
|
langs=("ko" "zh" "ja")
|
||||||
|
|
||||||
|
# Define the file structure
|
||||||
|
files=(
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/general-info/bridge/bridging-testnet.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/general-info/contract-addresses/testnet-contracts.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/general-info/contract-addresses/tokens.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/add-status-network.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/network-details.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/introduction/quick-start.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/other/official-links.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tokenomics/karma-token.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tokenomics/snt-token.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tools/block-explorers.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tools/bridge.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tools/rpc.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tools/testnet-faucets.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-foundry.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-hardhat.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/tutorials/deploying-contracts/using-remix.md"
|
||||||
|
"docs/i18n/LANG/docusaurus-plugin-content-docs/current/index.md"
|
||||||
|
)
|
||||||
|
|
||||||
|
for lang in "${langs[@]}"; do
|
||||||
|
for file in "${files[@]}"; do
|
||||||
|
path=${file/LANG/$lang}
|
||||||
|
mkdir -p "$(dirname "$path")"
|
||||||
|
touch "$path"
|
||||||
|
done
|
||||||
|
done
|
||||||
@@ -1,8 +1,21 @@
|
|||||||
|
---
|
||||||
|
title: Add Status Network
|
||||||
|
description: Step-by-step guide on how to add Status Network to MetaMask and other wallets. Learn how to configure network settings for both desktop and mobile wallets.
|
||||||
|
keywords: [Status Network, MetaMask setup, add network, wallet configuration, RPC settings, Chain ID, blockchain network setup]
|
||||||
|
---
|
||||||
|
|
||||||
|
import AddToMetaMask from '@site/src/components/AddToMetaMask';
|
||||||
|
|
||||||
# Add Status Network
|
# Add Status Network
|
||||||
|
|
||||||
This guide shows how to add the **Status Network** to your wallet.
|
This guide shows how to add the **Status Network** to your wallet.
|
||||||
|
|
||||||
## Testnet
|
You can add Status Network Testnet directly by clicking on the button below:
|
||||||
|
|
||||||
|
<AddToMetaMask />
|
||||||
|
|
||||||
|
|
||||||
|
## Manual Configuration
|
||||||
|
|
||||||
To add **Status Network Testnet** as a custom network to MetaMask:
|
To add **Status Network Testnet** as a custom network to MetaMask:
|
||||||
|
|
||||||
@@ -26,10 +39,10 @@ To add **Status Network Testnet** as a custom network to MetaMask:
|
|||||||
| Name | Value |
|
| Name | Value |
|
||||||
|------------------|------------------------------------------|
|
|------------------|------------------------------------------|
|
||||||
| **Network Name** | Status Network Testnet |
|
| **Network Name** | Status Network Testnet |
|
||||||
| **RPC URL** | |
|
| **RPC URL** | https://public.sepolia.rpc.status.network |
|
||||||
| **Chain ID** | |
|
| **Chain ID** | 1660990954 |
|
||||||
| **Currency Symbol** | `ETH` |
|
| **Currency Symbol** | `ETH` |
|
||||||
| **Block Explorer URL** | |
|
| **Block Explorer URL** | https://sepoliascan.status.network |
|
||||||
|
|
||||||
5. **Save the Network**:
|
5. **Save the Network**:
|
||||||
|
|
||||||
@@ -73,11 +86,11 @@ You should now be able to connect to the Status Network Testnet by selecting it
|
|||||||
|
|
||||||
- [Status Network Website](https://status.network/)
|
- [Status Network Website](https://status.network/)
|
||||||
- [Status Network Documentation](https://docs.status.network/)
|
- [Status Network Documentation](https://docs.status.network/)
|
||||||
- [Status Network Explorer](#)
|
- [Status Network Testnet Explorer](https://sepoliascan.status.network)
|
||||||
|
|
||||||
- **Need Help?**
|
- **Need Help?**
|
||||||
|
|
||||||
- If you encounter any issues, please join our [Community Discord](https://discord.gg/status_im).
|
- If you encounter any issues, please join our [Telegram](https://t.me/statusl2) for support.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
# Bridge From Status
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Bridge To Status
|
|
||||||
@@ -1 +1,38 @@
|
|||||||
# Bridging Testnet
|
---
|
||||||
|
title: Bridging to Status Network Testnet
|
||||||
|
description: Learn how to bridge tokens between Sepolia and Status Network testnet using the official Status Network bridge. Complete guide with prerequisites and step-by-step instructions.
|
||||||
|
keywords: [Status Network bridge, token bridge, cross-chain bridge, Sepolia bridge, L2 bridge, testnet bridge, blockchain bridge]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Bridging to Status Network Testnet
|
||||||
|
|
||||||
|
The Status Network bridge allows you to transfer tokens between Sepolia and Status Network testnet. The bridge is deployed at [bridge.status.network](https://bridge.status.network).
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- MetaMask or another Web3 wallet installed
|
||||||
|
- Some testnet ETH on Sepolia network
|
||||||
|
- The token you want to bridge on Sepolia network
|
||||||
|
|
||||||
|
## Bridging Process
|
||||||
|
|
||||||
|
1. Visit [bridge.status.network](https://bridge.status.network)
|
||||||
|
|
||||||
|
2. Connect your wallet by clicking the "Connect Wallet" button in the top right corner
|
||||||
|
|
||||||
|
3. Select the token you want to bridge from the dropdown menu
|
||||||
|
|
||||||
|
4. Enter the amount you want to bridge
|
||||||
|
|
||||||
|
5. Click "Bridge" and confirm the transaction in your wallet
|
||||||
|
|
||||||
|
6. Wait for the bridging process to complete
|
||||||
|
- Bridging typically takes about 5-10 minutes
|
||||||
|
- You can track the status of your bridge transaction on the bridge interface
|
||||||
|
|
||||||
|
## Important Notes
|
||||||
|
|
||||||
|
- Always verify you're on the correct website (bridge.status.network) before initiating any transactions
|
||||||
|
- Start with a small amount to test the bridge before transferring larger amounts
|
||||||
|
- Make sure you have enough ETH in your wallet to cover gas fees
|
||||||
|
- If you encounter any issues, join our [Telegram](https://t.me/statusl2) for support
|
||||||
|
|||||||
@@ -1 +1,50 @@
|
|||||||
# Testnet Contracts
|
---
|
||||||
|
title: Testnet Contracts
|
||||||
|
description: Comprehensive list of Status Network testnet contract addresses, including bridge contracts, core infrastructure, and L2 contracts with their purposes and links to block explorers.
|
||||||
|
keywords: [Status Network contracts, testnet addresses, smart contracts, bridge contracts, L1 contracts, L2 contracts, blockchain infrastructure]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Testnet Contracts
|
||||||
|
|
||||||
|
This page lists all the important contract addresses for the Status Network testnet infrastructure.
|
||||||
|
|
||||||
|
## Layer 1 Contracts (Sepolia)
|
||||||
|
|
||||||
|
These contracts are deployed on the Sepolia testnet. You can view them on [Sepolia Etherscan](https://sepolia.etherscan.io).
|
||||||
|
|
||||||
|
### Bridge Contracts
|
||||||
|
- **L1 Token Bridge Proxy**
|
||||||
|
- Address: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548)
|
||||||
|
- Purpose: Manages token bridging operations on L1
|
||||||
|
|
||||||
|
### Core Infrastructure
|
||||||
|
- **L1 Postman**
|
||||||
|
- Address: [`0xB15725119b917d348FfEB365B43bCDeEbfb65C5d`](https://sepolia.etherscan.io/address/0xB15725119b917d348FfEB365B43bCDeEbfb65C5d)
|
||||||
|
- Purpose: Handles message passing between L1 and L2
|
||||||
|
|
||||||
|
- **L1 Data Submission**
|
||||||
|
- Address: [`0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d`](https://sepolia.etherscan.io/address/0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d)
|
||||||
|
- Purpose: Manages data submission from L2 to L1
|
||||||
|
|
||||||
|
- **L1 Finalization**
|
||||||
|
- Address: [`0xb91CB39b3b9F015b0aC88616A463B35568052AEF`](https://sepolia.etherscan.io/address/0xb91CB39b3b9F015b0aC88616A463B35568052AEF)
|
||||||
|
- Purpose: Handles finalization of L2 blocks on L1
|
||||||
|
|
||||||
|
## Layer 2 Contracts (Status Network Testnet)
|
||||||
|
|
||||||
|
These contracts are deployed on the Status Network testnet. You can view them on [Status Network Explorer](https://sepoliascan.status.network).
|
||||||
|
|
||||||
|
### Bridge Contracts
|
||||||
|
- **L2 Token Bridge Proxy**
|
||||||
|
- Address: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||||
|
- Purpose: Manages token bridging operations on L2
|
||||||
|
|
||||||
|
### Infrastructure Contracts
|
||||||
|
- **L2 Faucet**
|
||||||
|
- Address: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||||
|
- Purpose: Distributes testnet tokens to users
|
||||||
|
|
||||||
|
- **L2 Anchoring**
|
||||||
|
- Address: [`0x24B5eD2763129D6cBDEfE32e08558D2095132560`](https://sepoliascan.status.network/address/0x24B5eD2763129D6cBDEfE32e08558D2095132560)
|
||||||
|
- Purpose: Manages state anchoring between L1 and L2
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1,18 @@
|
|||||||
# Tokens
|
---
|
||||||
|
title: Tokens
|
||||||
|
description: Official list of supported tokens and their contract addresses on Status Network, including both L1 and L2 token addresses and bridge mappings.
|
||||||
|
keywords: [Status Network tokens, token list, supported tokens, token addresses, L2 tokens, bridge tokens]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Tokens
|
||||||
|
|
||||||
|
For the most up-to-date list of supported tokens and their contract addresses on Status Network, please refer to our official [Status Network Token List repository](https://github.com/status-im/status-network-token-list).
|
||||||
|
|
||||||
|
This repository contains:
|
||||||
|
- Token addresses for both L1 (Sepolia) and L2 (Status Network)
|
||||||
|
- Token metadata (decimals, symbols, etc.)
|
||||||
|
- Bridge contract mappings
|
||||||
|
- App tokens deployed on Status Network
|
||||||
|
|
||||||
|
The token list is maintained and updated regularly to ensure accuracy and security of token bridging operations.
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,32 @@
|
|||||||
|
---
|
||||||
|
id: network-details
|
||||||
|
title: Status Network Details & Configuration
|
||||||
|
description: Official network details for Status Network testnet including RPC endpoints, Chain ID, and configuration information for wallets and development environments.
|
||||||
|
keywords: [Status Network, network details, RPC endpoint, Chain ID, testnet configuration, blockchain network, MetaMask setup]
|
||||||
|
---
|
||||||
|
|
||||||
|
import AddToMetaMask from '@site/src/components/AddToMetaMask';
|
||||||
|
|
||||||
# Network Details
|
# Network Details
|
||||||
|
|
||||||
## Status Testnet
|
## Status Testnet
|
||||||
|
|
||||||
| Name | Value |
|
| Name | Value |
|
||||||
|---------------------|-------|
|
|---------------------|-------------------------------------------|
|
||||||
| **Network Name** | |
|
| **Network Name** | Status Network Testnet |
|
||||||
| **RPC Endpoint** | |
|
| **RPC Endpoint** | https://public.sepolia.rpc.status.network |
|
||||||
| **Chain ID** | |
|
| **Chain ID** | 1660990954 |
|
||||||
| **Currency Symbol** | |
|
| **Currency Symbol** | ETH |
|
||||||
| **Block Explorer** | |
|
| **Block Explorer** | https://sepoliascan.status.network |
|
||||||
| **Bridge** | |
|
| **Bridge** | https://bridge.status.network |
|
||||||
|
|
||||||
|
<AddToMetaMask />
|
||||||
|
<div style={{height: '2rem'}} />
|
||||||
|
|
||||||
|
These are the official network details for the Status Network testnet. You can use these details to:
|
||||||
|
- Add the network to your wallet
|
||||||
|
- Configure development environments
|
||||||
|
- 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).
|
||||||
+40
-12
@@ -1,28 +1,56 @@
|
|||||||
---
|
---
|
||||||
id: index
|
id: index
|
||||||
title: Introducing Status Network
|
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: /
|
||||||
sidebar_position: 1
|
sidebar_position: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
# Welcome to Status Network
|
# Status Network: The Gasless Layer 2
|
||||||
|
|
||||||
Welcome to **Status Network**, the crypto social playground that reimagines your blockchain experience! Built as an **EVM-equivalent Ethereum Layer 2 rollup** on [Linea's cutting-edge ZK-EVM technology](https://docs.linea.build/architecture), Status Network offers unique features that set us apart from other platforms.
|
Status Network is the first natively gasless Ethereum L2, optimized for social apps and games, featuring sustainable public funding for developers through native yield and DEX fees. Built on the Linea zkEVM stack, it provides high-performance, gas-free transactions while ensuring economic sustainability through a novel funding model.
|
||||||
|
|
||||||
## What Makes Us Unique?
|
## Key Features
|
||||||
|
|
||||||
### 💰 Native ETH and DAI Yield
|
- **Gasless Transactions**
|
||||||
|
|
||||||
Enjoy sustainable and attractive yields on your **ETH** and **DAI** assets! We offer native yield generation, a distinctive feature among Layer 2 solutions, allowing you to enhance your crypto holdings effortlessly while participating in the network.
|
Developers can create seamless experiences and users can transact freely without worrying about gas fees.
|
||||||
|
|
||||||
### 🏆 Earn $AURA Tokens
|
- **Native Yield and Fees**
|
||||||
|
|
||||||
Get rewarded for your engagement in **real time**! Participate in network activities and **stake $SNT** to earn **$AURA tokens**. The more you interact—be it through transactions, staking, or community involvement—the more influence you gain within our vibrant community. Your $AURA amplifies your voice in shaping the future of the network.
|
To sustain the L2 operation and support developers, Status Network is funded through a combinaison of native yield and fees coming from its native apps, starting with a DEX.
|
||||||
|
|
||||||
### 🔒 Privacy with a Playful Twist
|
- **Sustainable Public Funding**
|
||||||
|
|
||||||
Experience privacy features that are both **secure and fun**! We believe that privacy is a fundamental right and should be accessible to everyone without the complexity. Our user-friendly privacy tools make secure interactions enjoyable, breaking away from traditional notions of complicated privacy tech.
|
The apps funding pool, governed by token holders, continuously allocates capital from native yield and fees to onchain builders.
|
||||||
|
|
||||||
---
|
- **High-Performance Execution**
|
||||||
|
|
||||||
Join Status Network and be part of a unique, privacy-focused, and rewarding crypto community where **your active participation truly shapes the future**! Let's build the crypto playground together!
|
Status Network is built on Linea’s zkEVM rollup stack, ensuring fast and secure transactions.
|
||||||
|
|
||||||
|
- **Spam Protection via RLN**
|
||||||
|
|
||||||
|
Rate-Limiting Nullifiers (RLN) prevent spam and DDoS attacks while maintaining a fair allocation of free transactions per user and apps.
|
||||||
|
|
||||||
|
- **Deep Integration with IFT**
|
||||||
|
|
||||||
|
Status Network is natively integrated with Status Wallet, Keycard, Waku and Codex, all part of [IFT](https://free.technology).
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
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)
|
||||||
|
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)
|
||||||
|
|
||||||
|
## 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)
|
||||||
|
|
||||||
|
Ready to build something amazing? Start your journey on the free network today!
|
||||||
@@ -1,38 +1,43 @@
|
|||||||
|
---
|
||||||
|
title: Quick Start
|
||||||
|
description: Get started with Status Network in under 10 minutes. Learn how to deploy your first smart contract using Remix IDE, get test ETH, and interact with the network.
|
||||||
|
keywords: [Status Network tutorial, quick start, smart contract deployment, Remix IDE, blockchain development, testnet setup, MetaMask configuration]
|
||||||
|
---
|
||||||
|
|
||||||
# Quick Start
|
# Quick Start
|
||||||
|
|
||||||
In this section, we'll get you deploying a sample contract on **Status Network Testnet** in less than 10 minutes.
|
In this section, we'll get you deploying a sample contract on **Status Network Testnet** in less than 10 minutes.
|
||||||
|
|
||||||
Let’s see how to deploy a smart contract on Status Network using the Remix IDE for simplicity.
|
Let's see how to deploy a smart contract on Status Network using the Remix IDE for simplicity.
|
||||||
|
|
||||||
## Get Everything Ready
|
## Get Everything Ready
|
||||||
|
|
||||||
Before getting started:
|
Before getting started:
|
||||||
|
|
||||||
- **Add Status Network Testnet to MetaMask**:
|
1. **Add Status Network Testnet to MetaMask**:
|
||||||
|
|
||||||
Follow the [Status Network documentation](/general-info/add-status-network) for step-by-step instructions on how to add the Status Network testnet to MetaMask. You'll need the network's RPC URL, Chain ID, and other details.
|
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.
|
||||||
|
|
||||||
- **Obtain Testnet Tokens**:
|
2. **Get Test ETH**:
|
||||||
|
|
||||||
This guide assumes you have obtained testnet ETH on the Status Network. You can use the [Status Network Testnet Faucet](#) to request test tokens.
|
You'll need both Sepolia ETH and Status Network ETH:
|
||||||
|
- First get Sepolia ETH from [Sepolia Faucet](https://faucet.status.network)
|
||||||
|
- Then bridge some ETH to Status Network using the [Status Bridge](https://bridge.status.network)
|
||||||
|
- Alternatively, get Status Network ETH directly from our [Testnet Faucet](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||||
|
|
||||||
We are ready to get started!
|
We are ready to get started!
|
||||||
|
|
||||||
## Remix & Sample Code
|
## Remix & Sample Code
|
||||||
|
|
||||||
**Remix** is a no-setup tool for developing smart contracts. It’s easy to get started, allowing a simple deployment process, debugging, interacting with smart contracts, and more. It’s a great tool to test quick changes and interact with deployed smart contracts.
|
**Remix** is a no-setup tool for developing smart contracts. It's easy to get started, allowing a simple deployment process, debugging, interacting with smart contracts, and more.
|
||||||
|
|
||||||
For the sake of this tutorial, we will be deploying the `SimpleStorage.sol` smart contract that comes as an example in Remix, but you can use any of your code.
|
For this tutorial, we will deploy a simple `SimpleStorage.sol` contract:
|
||||||
|
|
||||||
Here's the sample code:
|
|
||||||
|
|
||||||
```solidity
|
```solidity
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.0;
|
||||||
pragma solidity ^0.8.24;
|
|
||||||
|
|
||||||
contract SimpleStorage {
|
contract SimpleStorage {
|
||||||
|
|
||||||
uint256 number;
|
uint256 number;
|
||||||
|
|
||||||
function store(uint256 num) public {
|
function store(uint256 num) public {
|
||||||
@@ -56,21 +61,26 @@ contract SimpleStorage {
|
|||||||
2. **Compile the Smart Contract**:
|
2. **Compile the Smart Contract**:
|
||||||
|
|
||||||
- Go to the **Solidity Compiler** tab (on the left sidebar).
|
- Go to the **Solidity Compiler** tab (on the left sidebar).
|
||||||
- Ensure the compiler version matches the pragma statement in your contract (`0.8.24`).
|
- Ensure the compiler version is 0.8.0 or higher.
|
||||||
- Click **"Compile SimpleStorage.sol"**.
|
- Click **"Compile SimpleStorage.sol"**.
|
||||||
- You can enable **"Auto compile"** for automatic compilation whenever you change the contract code.
|
- You can enable **"Auto compile"** for automatic compilation whenever you change the contract code.
|
||||||
|
|
||||||
3. **Deploy the Smart Contract**:
|
3. **Deploy the Smart Contract**:
|
||||||
|
|
||||||
- Switch to the **Deploy & Run Transactions** tab.
|
- Switch to the **Deploy & Run Transactions** tab.
|
||||||
- In the **"Environment"** dropdown menu, select **"Injected Provider - MetaMask"**. This connects Remix to your MetaMask wallet.
|
- In the **"Environment"** dropdown menu, select **"Injected Provider - MetaMask"**.
|
||||||
- MetaMask may prompt you to connect to Remix. Confirm the connection.
|
- MetaMask may prompt you to connect to Remix. Confirm the connection.
|
||||||
- Ensure that **Status Network Testnet** is selected in MetaMask.
|
- Ensure that **Status Network Testnet** is selected in MetaMask.
|
||||||
- Under **"Contract"**, make sure `SimpleStorage` is selected.
|
- Under **"Contract"**, make sure `SimpleStorage` is selected.
|
||||||
- Click **"Deploy"**.
|
- Click **"Deploy"**.
|
||||||
- MetaMask will pop up, asking you to confirm the transaction.
|
- MetaMask will pop up, asking you to confirm the transaction. Gas fees will be paid in ETH.
|
||||||
- Review the transaction details and click **"Confirm"**.
|
- Review the transaction details and click **"Confirm"**.
|
||||||
- Wait for the transaction to be mined. You can track the status in Remix or MetaMask.
|
- Wait for the transaction to be mined.
|
||||||
|
|
||||||
|
4. **Verify Deployment**:
|
||||||
|
|
||||||
|
- Once deployed, copy your contract's address from Remix
|
||||||
|
- View it on [Status Network Explorer](https://sepoliascan.status.network)
|
||||||
|
|
||||||
**CONGRATULATIONS!** You just deployed your first smart contract on Status Network.
|
**CONGRATULATIONS!** You just deployed your first smart contract on Status Network.
|
||||||
|
|
||||||
@@ -85,30 +95,30 @@ contract SimpleStorage {
|
|||||||
- Expand the deployed contract to view its functions.
|
- Expand the deployed contract to view its functions.
|
||||||
- In the **"store"** function input field, enter a number (e.g., `42`).
|
- In the **"store"** function input field, enter a number (e.g., `42`).
|
||||||
- Click **"transact"**.
|
- Click **"transact"**.
|
||||||
- MetaMask will prompt you to confirm the transaction. Click **"Confirm"**.
|
- MetaMask will prompt you to confirm the transaction. Gas fees will be paid in ETH.
|
||||||
- Wait for the transaction to be confirmed.
|
- Wait for the transaction to be confirmed.
|
||||||
|
|
||||||
3. **Retrieve the Number**:
|
3. **Retrieve the Number**:
|
||||||
|
|
||||||
- Click on the **"retrieve"** function.
|
- Click on the **"retrieve"** function.
|
||||||
- The stored number will display below the button.
|
- The stored number will display below the button.
|
||||||
|
- This is a view function, so no gas fees are required.
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
- **Get Support**:
|
- **Get Support**:
|
||||||
|
- Join our [Telegram Community](https://t.me/statusl2) for assistance
|
||||||
- If you encounter any issues or have questions, join the community channels 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
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
You've successfully:
|
You've successfully:
|
||||||
|
- Set up your environment to interact with Status Network Testnet
|
||||||
|
- Obtained testnet ETH through bridging or faucet
|
||||||
|
- Deployed a smart contract using Remix IDE and MetaMask
|
||||||
|
- Interacted with your deployed contract by storing and retrieving a number
|
||||||
|
|
||||||
- Set up your environment to interact with Status Network Testnet.
|
For more advanced development, check out our guides for deploying with:
|
||||||
- Deployed a smart contract using Remix IDE and MetaMask.
|
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||||
- Interacted with your deployed contract by storing and retrieving a number.
|
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
If you want to dive deeper, consider exploring more complex smart contracts. Checkout more tutorials [here](/tutorials/ethers-tutorial).
|
|
||||||
|
|
||||||
**Happy Coding!**
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Audits
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Branding Guidelines
|
|
||||||
@@ -1 +1,30 @@
|
|||||||
|
---
|
||||||
|
title: Official Links
|
||||||
|
description: Complete directory of official Status Network resources, including main website, tools, development resources, and community links.
|
||||||
|
keywords: [Status Network links, official resources, network tools, development resources, community links, blockchain explorer, bridge, faucet]
|
||||||
|
---
|
||||||
|
|
||||||
# Official Links
|
# Official Links
|
||||||
|
|
||||||
|
This page contains all the official links for the Status Network ecosystem.
|
||||||
|
|
||||||
|
## Main Resources
|
||||||
|
- **Website**: [status.network](https://status.network)
|
||||||
|
- **Documentation**: [docs.status.network](https://docs.status.network)
|
||||||
|
- **GitHub**: [github.com/status-im](https://github.com/status-im)
|
||||||
|
|
||||||
|
## Network Tools
|
||||||
|
- **Bridge**: [bridge.status.network](https://bridge.status.network)
|
||||||
|
- **Block Explorer**: [sepoliascan.status.network](https://sepoliascan.status.network)
|
||||||
|
- **RPC Endpoint**: `https://public.sepolia.rpc.status.network`
|
||||||
|
- **Faucet**: [faucet.status.network](https://faucet.status.network)
|
||||||
|
|
||||||
|
## Development Resources
|
||||||
|
- **Token List Repository**: [github.com/status-im/status-network-token-list](https://github.com/status-im/status-network-token-list)
|
||||||
|
- **Contract Verification**: [sepoliascan.status.network/verify-contract](https://sepoliascan.status.network/contract-verification)
|
||||||
|
|
||||||
|
## Community & Support
|
||||||
|
- **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).
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
# Status Network - Website Privacy Policy
|
||||||
|
|
||||||
|
*Last updated: 12 February 2025*
|
||||||
|
|
||||||
|
This Privacy Policy is intended to inform users of our approach to privacy in respect of this website (“**Website**”). In this regard, if you are visiting our Website, this Privacy Policy applies to you.
|
||||||
|
|
||||||
|
## Who we are
|
||||||
|
|
||||||
|
For the purposes of this Privacy Policy and the collection and processing of personal data as a controller, the relevant entity is the Status Research & Development GmbH, a Swiss company with its registered office at Baarerstrasse 10, Zug, Switzerland.
|
||||||
|
|
||||||
|
Whenever we refer to “Status”, “we”, “us” or any other similar references, we are referring to Status Research & Development GmbH.
|
||||||
|
|
||||||
|
## We limit the collection and processing of personal data from your use of the Website
|
||||||
|
|
||||||
|
We aim to limit the collection and processing of personal data from users of the Website. We only collect and process certain personal data for specific purposes and where we have the legal basis to do so under applicable data protection law. We will not collect or process any personal data that we don’t need and where we do store any personal data, we will only store it for the least amount of time needed for the indicated purpose.
|
||||||
|
|
||||||
|
In this regard, we collect and process the following personal data from your use of the Website:
|
||||||
|
|
||||||
|
* **IP address**: As part of such use of the Website and from our use of Fathom Analytics we briefly process your IP address but we have no way of identifying you. We however have a legitimate interest in processing such IP addresses to ensure the technical functionality and enhance the security measures of the Website. This IP address is not stored by us over time.
|
||||||
|
|
||||||
|
* **Fathom Analytics**: We note that we make use of Fathom Analytics, which you can read more about here: https://usefathom.com/. In short, Fathom Analytics is an alternative to Google Analytics, that doesn’t compromise visitor privacy for data. Fathom Analytics collects trends and insights, not personal details about specific website visitors. Fathom Analytics offers simple traffic insights such as top pages, top referrers, bounce rate, and average time people spend on a site.
|
||||||
|
|
||||||
|
## Third party processing of personal data
|
||||||
|
|
||||||
|
In addition to our limited and collection of personal data, third parties may collect or process personal data as a result of the Website making use of certain features or to provide certain content. To the extent you interact with such third party content or features, their respective privacy policies will apply.
|
||||||
|
|
||||||
|
## Security measures we take in respect of the Website
|
||||||
|
|
||||||
|
As a general approach, we take data security seriously and we have implemented a variety of security measures on the Website to maintain the safety of your personal data when you submit such information to us.
|
||||||
|
|
||||||
|
## Exporting data outside the European Union and Switzerland
|
||||||
|
|
||||||
|
We are obliged to protect the privacy of personal data that you may have submitted in the unlikely event that we export your personal data to places outside the European Union or Switzerland. This means that personal data will only be processed in countries or by parties that provide an adequate level of protection as deemed by Switzerland or the European Commission. Otherwise, we will use other forms of protections, such as specific forms of contractual clauses to ensure such personal data is provided the same protection as required in Switzerland or Europe. In any event, the transmission of personal data outside the European Union and Switzerland will always occur in conformity with applicable data protection law.
|
||||||
|
|
||||||
|
## Your choices and rights
|
||||||
|
|
||||||
|
As explained in this Privacy Policy, we limit our collection and processing of your personal data wherever possible. Nonetheless, you still have certain choices and rights in respect of the personal data which we do collect and process. As laid out in relevant applicable data protection law, you have the right to:
|
||||||
|
|
||||||
|
* Ask us to correct or update your personal data (where reasonably possible);
|
||||||
|
* Ask us to remove your personal data from our systems;
|
||||||
|
* Ask us for a copy of your personal data, which may also be transferred to another data controller at your request;
|
||||||
|
* Withdraw your consent to process your personal data (only if consent was asked for a processing activity), which only affects processing activities that are based on your consent and doesn’t affect the validity of such processing activities before you have withdrawn your consent;
|
||||||
|
* Object to the processing of your personal data; and
|
||||||
|
* File a complaint with the Federal Data Protection and Information Commissioner (FDPIC), if you believe that your personal data has been processed unlawfully.
|
||||||
|
|
||||||
|
## Third party links
|
||||||
|
|
||||||
|
On this Website, you may come across links to third party websites. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these third party websites.
|
||||||
|
|
||||||
|
## This Privacy Policy might change
|
||||||
|
|
||||||
|
We may modify or replace any part of this Privacy Policy at any time and without notice. Please check the Website periodically for any changes. The new Privacy Policy will be effective immediately upon its posting on our Website.
|
||||||
|
|
||||||
|
## Contact information
|
||||||
|
|
||||||
|
To the extent that you have any questions about the Privacy Policy, please contact us at legal@status.im
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*This document is licensed under CC-BY-SA.*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Status Network Security Model
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Security Upgrades
|
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
# Status Network - Website Terms of Use
|
||||||
|
|
||||||
|
*Last updated: 29 January 2025*
|
||||||
|
|
||||||
|
These website terms of use ("Website Terms of Use") are entered into by you and us, and they govern your access and use of this Website, including any content and functionality contained in the Website.
|
||||||
|
|
||||||
|
It is your responsibility to read the Website Terms of Use carefully before your use of the Website and your use of the Website means you have agreed to be bound and comply with these Website Terms of Use.
|
||||||
|
|
||||||
|
If you do not agree with these Website Terms of Use, you must not access or use the Website.
|
||||||
|
|
||||||
|
## Who we are
|
||||||
|
|
||||||
|
For the purposes of these Website Terms of Use, the relevant entity is the Status Research & Development GmbH, a Swiss company with its registered office at Baarerstrasse 10, Zug, Switzerland, and includes its "representatives", which means Status' affiliates, directors, officers, employees, agents and any other representatives of Status.
|
||||||
|
|
||||||
|
For the purposes of these terms, "representatives" also includes Status core contributors without prejudice to the other legal categories mentioned. Our contact information can be found at the end of the Website Terms of Use.
|
||||||
|
|
||||||
|
Whenever we refer to "Status", "we", "us" or any other similar references, we are referring to Status Research & Development GmbH.
|
||||||
|
|
||||||
|
## Disclaimers
|
||||||
|
|
||||||
|
The Website is provided by us on an 'as is' basis and you use the Website at your own sole discretion and risk.
|
||||||
|
|
||||||
|
We disclaim all warranties of any kind, express or implied, including without limitation the warranties of merchantability, fitness for a particular purpose, and non-infringement of intellectual property or other violation of rights. We do not warrant or make any representations concerning the completeness, accuracy, legality, utility, reliability, suitability or availability of the use of the Website, the content on this Website or otherwise relating to the Website, such content or on any sites linked to this site. These disclaimers will apply to the maximum extent permitted by applicable law.
|
||||||
|
|
||||||
|
We make no claims that the Website or any of its content is accessible, legally compliant or appropriate in your jurisdiction. Your access or use of the Website is at your own sole discretion and you are solely responsible for complying with any applicable local laws.
|
||||||
|
|
||||||
|
The content herein or as accessible through the Website is intended to be made available for informational purposes only and should not be considered as creating any expectations or forming the basis of any contract, commitment or binding obligation with us. No information herein shall be considered to contain or be relied upon as a promise, representation, warranty or guarantee, whether express or implied and whether as to the past, present or the future in relation to the projects and matters described herein.
|
||||||
|
|
||||||
|
The information contained herein does not constitute financial, legal, tax, or other advice and should not be treated as such.
|
||||||
|
|
||||||
|
## Forward looking statements
|
||||||
|
|
||||||
|
The Website may also contain forward-looking statements that are based on current expectations, estimates, forecasts, assumptions and projections about the technology, industry and markets in general.
|
||||||
|
|
||||||
|
The forward looking statements, which may include statements about the roadmap, project descriptions, technical details, functionalities, features, the development and use of tokens by projects, and any other statements related to such matters or as accessible through this website are subject to a high degree of risk and uncertainty. The forward looking statements are subject to change based on, among other things, market conditions, technical developments, and regulatory environment. The actual development and results, including the order and the timeline, might vary from what's presented. The information contained herein is a summary and does not purport to be accurate, reliable or complete and we bear no responsibility for the accuracy, reliability or completeness of information contained herein. Because of the high degree of risk and uncertainty described above, you should not place undue reliance on any matters described in this website or as accessible through this website.
|
||||||
|
|
||||||
|
To the extent tokens are referenced on this Website, we note that they have not been registered under any securities laws and must not be offered or sold in any jurisdiction where such offer or sale would be prohibited. The information contained on this Website does not constitute a prospectus, nor an offer to buy, a solicitation or an invitation to buy, or a recommendation for any token or any security.
|
||||||
|
|
||||||
|
While we aim to update the Website regularly, all information, including the timeline and the specifics of each stage, is subject to change and may be amended or supplemented at any time, without notice and at our sole discretion.
|
||||||
|
|
||||||
|
## Intellectual property rights
|
||||||
|
|
||||||
|
Unless indicated otherwise, the Website, its materials and functionality (including but not limited to information, text, images, the design, selection and arrangement thereof) are owned by Status, its licensors or other providers of such materials and are protected by copyright, trademark or any other intellectual property or proprietary rights laws.
|
||||||
|
|
||||||
|
## Third party website links
|
||||||
|
|
||||||
|
To the extent the Website provides any links to a third party website, then their terms and conditions, including privacy policies, govern your use of those third party websites. By linking such third party websites, we do not represent or imply that we endorse or support such third party websites or content therein, or that we believe such third party websites and content therein to be accurate, useful or non-harmful. We have no control over such third party websites and will not be liable for your use of or activities on any third party websites accessed through the Website. If you access such third party websites through the Website, it is at your own risk and you are solely responsible for your activities on such third party websites.
|
||||||
|
|
||||||
|
## Limitation of liability
|
||||||
|
|
||||||
|
We will not be held liable to you under any contract, negligence, strict liability, or other legal or equitable theory for any lost profits, cost of procurement for substitute services, or any special, incidental, or consequential damages related to, arising from, or in any way connected with these Website Terms of Use, the Website, the content on the Website, or your use of the Website, even if we have been advised of the possibility of such damages. In any event, our aggregate liability for such claims is limited to EUR 100 (one hundred Euros). This limitation of liability will apply to the maximum extent permitted by applicable law.
|
||||||
|
|
||||||
|
## Indemnity
|
||||||
|
|
||||||
|
You shall indemnify us and hold us harmless from and against any and all claims, damages and expenses, including attorneys' fees, arising from or related to your use of the Website, the content on the Website, including without limitation your violation of these Website Terms of Use.
|
||||||
|
|
||||||
|
## Modifications
|
||||||
|
|
||||||
|
We may modify or replace any part of this Website Terms of Use at any time and without notice. You are responsible for checking the Website periodically for any changes. The new Website Terms of Use will be effective immediately upon its posting on the Website.
|
||||||
|
|
||||||
|
## Governing law
|
||||||
|
|
||||||
|
Swiss law governs these Website Terms of Use and any disputes between you and us, whether in court or arbitration, without regard to conflict of laws provisions.
|
||||||
|
|
||||||
|
## Disputes
|
||||||
|
|
||||||
|
In these terms, "dispute" has the broadest meaning enforceable by law and includes any claim you make against or controversy you may have in relation to these Website Terms of Use, the Website, the content on the Website, or your use of the Website.
|
||||||
|
|
||||||
|
We prefer arbitration over litigation as we believe it meets our principle of resolving disputes in the most effective and cost effective manner. You are bound by the following arbitration clause, which waives your right to litigation and to be heard by a judge. Please note that court review of an arbitration award is limited. You also waive all your rights to a jury trial (if any) in any and all jurisdictions.
|
||||||
|
|
||||||
|
If a (potential) dispute arises, you must first use your reasonable efforts to resolve it amicably with us. If these efforts do not result in a resolution of such dispute, you shall then send us a written notice of dispute setting out (i) the nature of the dispute, and the claim you are making; and (ii) the remedy you are seeking.
|
||||||
|
|
||||||
|
If we and you are unable to further resolve this dispute within sixty (60) calendar days of us receiving this notice of dispute, then any such dispute will be referred to and finally resolved by you and us through an arbitration administered by the Swiss Chambers' Arbitration Institution in accordance with the Swiss Rules of International Arbitration for the time being in force, which rules are deemed to be incorporated herein by reference. The arbitral decision may be enforced in any court. The arbitration will be held in Zug, Switzerland, and may be conducted via video conference virtual/online methods if possible. The tribunal will consist of one arbitrator, and all proceedings as well as communications between the parties will be kept confidential. The language of the arbitration will be in English. Payment of all relevant fees in respect of the arbitration, including filing, administration and arbitrator fees will be in accordance with the Swiss Rules of International Arbitration.
|
||||||
|
|
||||||
|
Regardless of any applicable statute of limitations, you must bring any claims within one year after the claim arose or the time when you should have reasonably known about the claim. You also waive the right to participate in a class action lawsuit or a classwide arbitration against us.
|
||||||
|
|
||||||
|
## About these Website Terms of Use
|
||||||
|
|
||||||
|
These Website Terms of Use cover the entire agreement between you and us regarding the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website.
|
||||||
|
|
||||||
|
The captions and headings identifying sections and subsections of these Website Terms of Use are for reference only and do not define, modify, expand, limit, or affect the interpretation of any provisions of these Website Terms of Use.
|
||||||
|
|
||||||
|
If any part of these Website Terms of Use is held invalid or unenforceable, that part will be severable from these Website Terms of Use, and the remaining portions will remain in full force and effect. If we fail to enforce any of these Website Terms of Use, that does not mean that we have waived our right to enforce them.
|
||||||
|
|
||||||
|
If you have any specific questions about these Website Terms of Use, please contact us at legal@status.im.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*This document is licensed under CC-BY-SA.*
|
||||||
|
|
||||||
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# $AURA token
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Economic Model
|
||||||
|
|
||||||
|
Unlike traditional L2s that generate revenue from gas fees, Status Network operates on a radically different paradigm: users and applications do not pay transaction fees. This necessitates alternative revenue sources to maintain and sustain the network. As gas fees trend toward zero and rollups move toward decentralization, the business model of L2s must shift from execution-based revenue (sequencer fees) to monetizing asset trading volume and yield-bearing total value locked (TVL) on the network.
|
||||||
|
|
||||||
|
## Revenue Streams
|
||||||
|
|
||||||
|
To achieve sustainability, Status Network derives revenue from the following sources:
|
||||||
|
|
||||||
|
- **Native Yield Commission**: Assets bridged to Status Network (ETH and DAI initially) are rehypothecated into yield-bearing equivalents (stETH and sDAI). A portion of the yield generated (30%) is allocated to the network's operational costs.
|
||||||
|
|
||||||
|
- **Native DEX Swap Fees**: Status Network features a native DEX where trading fees contribute to network operation. Native DEX liquidity providers can earn extra incentives from the native yield on top of the usual LP fees.
|
||||||
|
|
||||||
|
- **Premium Gas Fees**: Users exceeding their free transaction quota must pay a premium fee, which is split between Status Network and RLN (the spam prevention mechanism), incentivizing fair usage and discouraging abuse.
|
||||||
|
|
||||||
|
- **Future Native Apps**: The network will later introduce additional revenue streams, such as a lending market, NFT marketplace, and token launchpad, each contributing a percentage of generated fees back into the L2 operation.
|
||||||
|
|
||||||
|
This model ensures that Status Network remains economically sustainable while offering free transactions. By leveraging TVL and its associated native yield as well as transaction volume, Status Network aligns incentives between users, liquidity providers, and developers, creating a self-sustaining ecosystem without reliance on inflationary token emissions.
|
||||||
|
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
Karma is minted through six primary mechanisms and cannot be aquired, 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:
|
||||||
|
|
||||||
|
1. **Staking SNT** – Anyone staking SNT receives Karma rewards proportionally. The longer one stakes or locks their SNT, the higher the Karma earning rate.
|
||||||
|
|
||||||
|
2. **Bridging Yield-Bearing Assets** – Bridging ETH and DAI (initially, with more assets to be added later) to Status Network earns Karma.
|
||||||
|
|
||||||
|
3. **Providing Liquidity** – On the native DEX, anyone can provide liquidity to curated pools to earn fees, native yield rewards, and Karma
|
||||||
|
|
||||||
|
4. **Building and Using Applications** – Users and developers earn Karma through transaction volume and app traction. The more successful an app is, the higher Karma is allocated to its developers and users.
|
||||||
|
|
||||||
|
5. **Paying Premium Gas Fees** – Users and apps exceeding their gasless throughput limit pay a premium gas fee that serves as a penalty but also earns them some Karma in return. Increasing their Karma might actually allow them to unlock higher gas-free transaction limits.
|
||||||
|
|
||||||
|
6. **Direct Donations** – Anyone contributing directly to the public funding pool receives Karma.
|
||||||
|
|
||||||
|
The initialization parameters of Karma minting allocations will be announced soon. In the future, Karma holders will be able to modify those parameters through a vote if needed. The ultimate objective is to maximize alignment among stakeholders for a more sustainable growth of the network.
|
||||||
|
|
||||||
|
## Utility of Karma
|
||||||
|
|
||||||
|
- **Gasless Transactions**: As soon as an account has a positive Karma balance, it gains access to a certain throughput of free transactions. A tiered system allows users and apps with higher Karma to enjoy more free transactions per day. A dynamic rate-limiting mechanism prevents spam and ensures fair usage of the network.
|
||||||
|
|
||||||
|
- **Governance Token**: Karma holders vote on the allocation of the apps funding pool. Higher Karma scores have more weight in funding distribution - they can decide to prioritize their favourite applications or protocols.
|
||||||
|
|
||||||
|
- **Native DEX Liquidity Incentives**: Karma holders vote on the incentive gauges for all curated liquidity pools on the native DEX.
|
||||||
|
|
||||||
|
- **Network Policy Decisions**: Karma holders vote on the L2 economic and operational parameters, inlcuding native yield and fees distribution, Karma minting rate and allocation, etc.
|
||||||
|
|
||||||
|
- **Loyalty and Reputation System**: Since Karma is soulbound, high Karma scores signal power users and key contributors within the ecosystem. The users progressively accumulate influence and may gain access to extra incentives and perks (e.g. rewards from apps building on the network and seeking to attract high-quality users).
|
||||||
|
|
||||||
|
- **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.
|
||||||
|
|
||||||
|
2. Higher app funding attracts new apps to deploy on the network.
|
||||||
|
|
||||||
|
3. Funded apps onboard more users, increasing transaction volume on the native DEX.
|
||||||
|
|
||||||
|
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.
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Public Funding
|
||||||
|
|
||||||
|
## Apps Funding Pool and Public Funding Mechanism
|
||||||
|
|
||||||
|
One of the most critical components of Status Network is the apps funding pool, designed to provide sustainable financial support for applications built on the network. Unlike traditional blockchain ecosystems where developers rely on grants or short-term incentives, Status Network ensures continuous funding through a self-sustaining mechanism driven by network activity and TVL.
|
||||||
|
|
||||||
|
### Why Public Funding Matters
|
||||||
|
|
||||||
|
Public funding is essential to ensure that builders have access to capital without dependence on extractive external funding mechanisms. The Status organisation has a long-standing history of investing in open-source projects and decentralised infrastructure, reinforcing its commitment to public goods. The apps funding pool extends this ethos by providing a decentralized, community-driven allocation mechanism where developers can receive financial support directly from the network itself.
|
||||||
|
|
||||||
|
### How the Apps Funding Pool Works
|
||||||
|
|
||||||
|
- **Funded by Native Yield and Fees**: A significant part of the yield generated from bridged assets (ETH and DAI initially) and from the native DEX swap fees flows directly into the funding pool.
|
||||||
|
|
||||||
|
- **Governed by Karma Holders**: Allocation of funds is determined by Karma token holders, ensuring a community-led decision-making process: if the community loves your app, you'll get funding.
|
||||||
|
|
||||||
|
- **Transparent and Fair Distribution**: Initially, funding will be capped at a limited number of recipients to maintain quality control, but as the pool grows, more projects will be supported.
|
||||||
|
|
||||||
|
- **Aligning Builders with Network Growth**: Developers who actively contribute to network usage and adoption will receive more voting power in the form of Karma, allowing them to vote for themselves and reinforcing the incentive to create valuable applications.
|
||||||
|
|
||||||
|
This mechanism ensures a continuous, non-extractive source of capital for builders, allowing them to focus on creating successful applications.
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# SNT Staking
|
||||||
|
|
||||||
|
## Status Network Token (SNT)
|
||||||
|
|
||||||
|
Launched in June 2017, the Status Network Token (SNT) serves as the native utility token of the Status ecosystem, a decentralized platform combining a messenger, web3 wallet, and gateway to decentralized applications on the Ethereum blockchain. SNT was designed to promote a decentralized and user-governed ecosystem, enabling holders to participate in governance, access features, and engage in various activities within the network. Over the years, SNT has facilitated user interactions within the Status app, allowing for voting on proposals, creating Ethereum Name Service (ENS) names, and accessing exclusive features.
|
||||||
|
|
||||||
|
With the upcoming deployment of the SNT staking contract on Status Network testnet, SNT holders will soon have the opportunity to stake their tokens, earning rewards and contributing to the network's governance and incentivization.
|
||||||
|
|
||||||
|
## Staking Contract
|
||||||
|
|
||||||
|
The staking contract will introduce Multiplier Points, which reward long-term commitment. SNT holders will have two staking options:
|
||||||
|
|
||||||
|
1. **Standard Staking**
|
||||||
|
|
||||||
|
Users can stake SNT without a lock-up period.
|
||||||
|
They receive Multiplier Points gradually over time.
|
||||||
|
If a user stakes for 4 years without unstaking, they achieve a maximum 4x Multiplier.
|
||||||
|
|
||||||
|
2. **Locked Staking**
|
||||||
|
|
||||||
|
Users can lock their SNT for a predetermined period (up to 4 years).
|
||||||
|
They immediately receive a bonus Multiplier Point as well as a bonus Multiplier for each year they lock in advance.
|
||||||
|
For example, locking for 4 years grants an instant 5x Multiplier (1x base + 4x for locking).
|
||||||
|
Over the four-year period, they continue accumulating additional Multiplier Points, similar to standard staking, until they reach a maximum 9x total Multiplier
|
||||||
|
|
||||||
|
### Benefits of Staking SNT
|
||||||
|
|
||||||
|
- **Earning Karma**: Stakers accumulate Karma, which grants governance power and access to gasless transactions.
|
||||||
|
- **Higher Free Transaction Quotas**: Users with more Karma enjoy greater gasless transaction limits.
|
||||||
|
- **Boosted Governance Influence**: As they accumulate Karma, SNT stakers can play a critical role in public funding allocation, liquidity incentivization and network policy decisions.
|
||||||
|
- **Higher Reputation**: By staking their SNT, holders can signal alignment with the ecosystem and showcase a reputation score in the form of Karma. Apps in the ecosystem have a strong incentive to attract users with high reputation.
|
||||||
@@ -1 +0,0 @@
|
|||||||
# $SNT Token
|
|
||||||
@@ -1 +1,41 @@
|
|||||||
# Block Explorers
|
---
|
||||||
|
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]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Status Network Testnet Explorer
|
||||||
|
|
||||||
|
The Status Network block explorer is available at [sepoliascan.status.network](https://sepoliascan.status.network).
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
## Sepolia Explorer (Layer 1)
|
||||||
|
|
||||||
|
For tracking transactions on Sepolia (Layer 1), use [Sepolia Etherscan](https://sepolia.etherscan.io).
|
||||||
|
|
||||||
|
This is particularly useful for:
|
||||||
|
- Monitoring bridge transactions from L1 to L2
|
||||||
|
- Tracking token deposits and withdrawals
|
||||||
|
- Verifying L1 contract interactions
|
||||||
|
|
||||||
|
## Contract Verification
|
||||||
|
|
||||||
|
To verify your smart contract on Status Network Explorer:
|
||||||
|
|
||||||
|
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.
|
||||||
|
|||||||
+51
-1
@@ -1 +1,51 @@
|
|||||||
# Bridge
|
---
|
||||||
|
title: Status Network 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 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
|
||||||
|
|
||||||
|
## Bridge Contracts
|
||||||
|
|
||||||
|
### Layer 1 (Sepolia)
|
||||||
|
- **Token Bridge**: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548)
|
||||||
|
|
||||||
|
### Layer 2 (Status Network)
|
||||||
|
- **Token Bridge**: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Token Bridging**: Transfer ERC-20 tokens between networks
|
||||||
|
- **ETH Bridging**: Bridge ETH between Sepolia and Status Network
|
||||||
|
- **Transaction Tracking**: Monitor the status of your bridge transactions
|
||||||
|
- **Gas Estimation**: See estimated gas costs before bridging
|
||||||
|
|
||||||
|
## Supported Tokens
|
||||||
|
|
||||||
|
For the most up-to-date list of supported tokens and their contract addresses, please refer to our [Token List Repository](https://github.com/status-im/status-network-token-list).
|
||||||
|
|
||||||
|
## 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).
|
||||||
|
|
||||||
|
## Monitoring Bridge Transactions
|
||||||
|
|
||||||
|
You can monitor your bridge transactions using:
|
||||||
|
- [Status Network Explorer](https://sepoliascan.status.network) for L2 transactions
|
||||||
|
- [Sepolia Etherscan](https://sepolia.etherscan.io) for L1 transactions
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If you encounter any issues while using the bridge:
|
||||||
|
- Check our [Bridging Guide](../general-info/bridge/bridging-testnet.md) for common solutions
|
||||||
|
- Join our [Telegram Community](https://t.me/statusl2) for assistance
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
# Data Indexers
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# General Tooling
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Interoperability
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Multisig Wallets
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Node Operators
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Oracles
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Randomness
|
|
||||||
+58
-1
@@ -1 +1,58 @@
|
|||||||
# RPCs
|
---
|
||||||
|
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]
|
||||||
|
---
|
||||||
|
|
||||||
|
# RPC Endpoints
|
||||||
|
|
||||||
|
The Status Network provides public RPC (Remote Procedure Call) endpoints that allow you to interact with the network.
|
||||||
|
|
||||||
|
## Public RPC URL
|
||||||
|
|
||||||
|
```
|
||||||
|
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.md).
|
||||||
|
|
||||||
|
### Web3 Library Configuration
|
||||||
|
|
||||||
|
```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');
|
||||||
|
```
|
||||||
|
|
||||||
|
## Available Methods
|
||||||
|
|
||||||
|
The RPC endpoint supports standard Ethereum JSON-RPC methods, including:
|
||||||
|
|
||||||
|
- `eth_blockNumber`: Get the latest block number
|
||||||
|
- `eth_getBalance`: Get account balance
|
||||||
|
- `eth_sendRawTransaction`: Send signed transactions
|
||||||
|
- `eth_call`: Execute a call without creating a transaction
|
||||||
|
- `eth_getLogs`: Get event logs
|
||||||
|
- `eth_getTransactionByHash`: Get transaction details
|
||||||
|
- `eth_getBlockByNumber`: Get block information
|
||||||
|
|
||||||
|
For a complete list of supported RPC methods and detailed specifications, refer to the [Linea API Reference](https://docs.linea.build/api/reference), as Status Network is based on Linea technology.
|
||||||
|
|
||||||
|
## Rate Limits
|
||||||
|
|
||||||
|
The public RPC endpoint has rate limiting to ensure fair usage:
|
||||||
|
- 10 requests per second per IP
|
||||||
|
- 100,000 requests per day per IP
|
||||||
|
|
||||||
|
For higher limits, get in touch with us on Telegram.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
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
|
||||||
@@ -1 +1,40 @@
|
|||||||
# Testnet Faucets
|
---
|
||||||
|
title: Testnet Faucets
|
||||||
|
description: Get testnet ETH for Status Network development. Complete guide to obtaining test tokens through Status Network faucet and Sepolia faucets for bridging.
|
||||||
|
keywords: [Status Network faucet, testnet ETH, test tokens, Sepolia faucet, blockchain testing, development tokens]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Testnet Faucets
|
||||||
|
|
||||||
|
To get started on Status Network testnet, you'll need both Sepolia ETH and Status Network testnet ETH.
|
||||||
|
|
||||||
|
## Status Network Testnet Faucet
|
||||||
|
|
||||||
|
The Status Network testnet faucet is available at [faucet.status.network](https://faucet.status.network).
|
||||||
|
|
||||||
|
### Details
|
||||||
|
- **Faucet Contract**: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||||
|
- **Amount**: 0.1 ETH per request
|
||||||
|
- **Cooldown**: One request per address per day
|
||||||
|
|
||||||
|
### How to Get Testnet ETH
|
||||||
|
|
||||||
|
1. Visit [faucet.status.network](https://faucet.status.network)
|
||||||
|
2. Connect your wallet
|
||||||
|
3. Click "Request Funds"
|
||||||
|
4. Confirm the transaction in your wallet
|
||||||
|
5. Wait for the ETH to appear in your wallet (usually takes a few seconds)
|
||||||
|
|
||||||
|
## Sepolia ETH (Required for Bridging)
|
||||||
|
|
||||||
|
To bridge assets to Status Network testnet, you'll first need Sepolia ETH. You can get it from:
|
||||||
|
|
||||||
|
2. [Alchemy Sepolia Faucet](https://www.alchemy.com/faucets/ethereum-sepolia)
|
||||||
|
3. [Metamask Sepolia Faucet](https://docs.metamask.io/developer-tools/faucet/)
|
||||||
|
|
||||||
|
Once you have Sepolia ETH, you can bridge it to Status Network testnet using the [Status Network Bridge](https://bridge.status.network).
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If you encounter any issues with the faucet:
|
||||||
|
- Join our [Telegram Community](https://t.me/statusl2) for support
|
||||||
@@ -1 +1,214 @@
|
|||||||
# Using Foundry
|
---
|
||||||
|
title: Using Foundry with Status Network
|
||||||
|
description: Comprehensive guide to deploying and testing smart contracts on Status Network using Foundry. Learn about project setup, deployment scripts, testing, and contract interaction using Cast.
|
||||||
|
keywords: [Foundry tutorial, smart contract deployment, Status Network development, blockchain testing, Solidity development, web3 development, Foundry testing]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Using Foundry to Deploy Smart Contracts
|
||||||
|
|
||||||
|
This tutorial will guide you through the process of deploying a smart contract on Status Network testnet using Foundry.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
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)
|
||||||
|
- **Basic Knowledge**: Familiarity with Solidity and command line
|
||||||
|
|
||||||
|
## What You'll Accomplish
|
||||||
|
|
||||||
|
- Initialize a Foundry project
|
||||||
|
- Write a basic Ethereum smart contract
|
||||||
|
- Configure Foundry for Status Network testnet deployment
|
||||||
|
- Deploy your smart contract
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
### 1. Initialize a Foundry Project
|
||||||
|
|
||||||
|
First, create a new Foundry project:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create a new project
|
||||||
|
forge init hello_status
|
||||||
|
cd hello_status
|
||||||
|
|
||||||
|
# Create .env file for private key
|
||||||
|
touch .env
|
||||||
|
echo "PRIVATE_KEY=your_private_key_here" >> .env
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Writing the Smart Contract
|
||||||
|
|
||||||
|
Replace `src/Counter.sol` with our `HelloWorld.sol`:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
contract HelloWorld {
|
||||||
|
string public greet = "Hello, Status Network!";
|
||||||
|
|
||||||
|
function setGreet(string memory _greet) public {
|
||||||
|
greet = _greet;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGreet() public view returns (string memory) {
|
||||||
|
return greet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Configure Foundry for Status Network
|
||||||
|
|
||||||
|
Create or update `foundry.toml`:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[profile.default]
|
||||||
|
src = "src"
|
||||||
|
out = "out"
|
||||||
|
libs = ["lib"]
|
||||||
|
solc = "0.8.24"
|
||||||
|
|
||||||
|
[rpc_endpoints]
|
||||||
|
status_testnet = "https://public.sepolia.rpc.status.network"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Deploy the Contract
|
||||||
|
|
||||||
|
Create a deployment script `script/Deploy.s.sol`:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
import "forge-std/Script.sol";
|
||||||
|
import "../src/HelloWorld.sol";
|
||||||
|
|
||||||
|
contract DeployScript is Script {
|
||||||
|
function run() external {
|
||||||
|
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||||
|
|
||||||
|
vm.startBroadcast(deployerPrivateKey);
|
||||||
|
|
||||||
|
HelloWorld hello = new HelloWorld();
|
||||||
|
console.log("HelloWorld deployed to:", address(hello));
|
||||||
|
|
||||||
|
vm.stopBroadcast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Deploy using forge:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Load environment variables
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# Deploy to Status Network testnet
|
||||||
|
forge script script/Deploy.s.sol:DeployScript \
|
||||||
|
--rpc-url https://public.sepolia.rpc.status.network \
|
||||||
|
--broadcast \
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Interact with the Contract
|
||||||
|
|
||||||
|
Create a script to interact with your contract `script/Interact.s.sol`:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
import "forge-std/Script.sol";
|
||||||
|
import "../src/HelloWorld.sol";
|
||||||
|
|
||||||
|
contract InteractScript is Script {
|
||||||
|
function run() external {
|
||||||
|
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||||
|
address contractAddress = address(0x...); // Replace with your contract address
|
||||||
|
|
||||||
|
vm.startBroadcast(deployerPrivateKey);
|
||||||
|
|
||||||
|
HelloWorld hello = HelloWorld(contractAddress);
|
||||||
|
|
||||||
|
// Read current greeting
|
||||||
|
string memory currentGreeting = hello.getGreet();
|
||||||
|
console.log("Current greeting:", currentGreeting);
|
||||||
|
|
||||||
|
// Update greeting
|
||||||
|
hello.setGreet("Hello from Foundry!");
|
||||||
|
|
||||||
|
vm.stopBroadcast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Run the interaction script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
forge script script/Interact.s.sol:InteractScript \
|
||||||
|
--rpc-url https://public.sepolia.rpc.status.network \
|
||||||
|
--broadcast
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Cast Commands for Quick Interactions
|
||||||
|
|
||||||
|
You can also use `cast` to interact with your contract:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Read the greeting
|
||||||
|
cast call <CONTRACT_ADDRESS> "getGreet()" \
|
||||||
|
--rpc-url https://public.sepolia.rpc.status.network
|
||||||
|
|
||||||
|
# Set a new greeting
|
||||||
|
cast send <CONTRACT_ADDRESS> "setGreet(string)" "New greeting!" \
|
||||||
|
--private-key $PRIVATE_KEY \
|
||||||
|
--rpc-url https://public.sepolia.rpc.status.network
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7. Testing
|
||||||
|
|
||||||
|
Create a test file `test/HelloWorld.t.sol`:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
import "forge-std/Test.sol";
|
||||||
|
import "../src/HelloWorld.sol";
|
||||||
|
|
||||||
|
contract HelloWorldTest is Test {
|
||||||
|
HelloWorld hello;
|
||||||
|
|
||||||
|
function setUp() public {
|
||||||
|
hello = new HelloWorld();
|
||||||
|
}
|
||||||
|
|
||||||
|
function testGreeting() public {
|
||||||
|
assertEq(hello.getGreet(), "Hello, Status Network!");
|
||||||
|
|
||||||
|
hello.setGreet("New greeting");
|
||||||
|
assertEq(hello.getGreet(), "New greeting");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Run the tests:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
forge test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If you encounter any issues:
|
||||||
|
- Join our [Telegram Community](https://t.me/statusl2)
|
||||||
|
- View our [Network Details](/general-info/network-details)
|
||||||
|
|
||||||
|
## Additional Resources
|
||||||
|
|
||||||
|
- [Foundry Book](https://book.getfoundry.sh/)
|
||||||
|
- [Status Network Explorer](https://sepoliascan.status.network)
|
||||||
@@ -1,89 +1,58 @@
|
|||||||
|
---
|
||||||
|
title: Using Hardhat with Status Network
|
||||||
|
description: Step-by-step tutorial for deploying smart contracts on Status Network using Hardhat and TypeScript. Learn about project setup, configuration, and contract deployment.
|
||||||
|
keywords: [Hardhat tutorial, smart contract deployment, Status Network development, TypeScript, blockchain development, web3 development]
|
||||||
|
---
|
||||||
|
|
||||||
# Using Hardhat to Deploy Smart Contracts
|
# Using Hardhat to Deploy Smart Contracts
|
||||||
|
|
||||||
This tutorial will guide you through the process of deploying a smart contract on **Status Network's Ethereum Layer 2** using **Hardhat** and **TypeScript**.
|
This tutorial will guide you through the process of deploying a smart contract on Status Network testnet using Hardhat, Hardhat Ignition, and TypeScript.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
Before you begin, ensure you have the following:
|
Before you begin, ensure you have the following:
|
||||||
|
|
||||||
- **Node.js and npm**: Download and install from the [official Node.js website](https://nodejs.org/).
|
- **Node.js and npm**: Download and install from the [official Node.js website](https://nodejs.org/)
|
||||||
- **Ethereum Wallet**: A private key for the **Status Network Testnet** that has testnet ETH.
|
- **Ethereum Wallet**: MetaMask or another wallet with a private key for Status Network testnet
|
||||||
- Obtain testnet ETH from the [Status Network Testnet Faucet](/tools/testnet-faucets).
|
- **Testnet ETH**: You'll need Status Network testnet ETH
|
||||||
- **Important**: Use a new wallet without real funds to ensure security in case the private key gets compromised.
|
- Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets)
|
||||||
- **Basic Knowledge**: Familiarity with **Solidity**, **Hardhat**, and the command line is helpful but not mandatory.
|
- **Basic Knowledge**: Familiarity with Solidity, Hardhat, and command line
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## What You'll Accomplish
|
## What You'll Accomplish
|
||||||
|
|
||||||
- Initialize a TypeScript-based Hardhat project.
|
- Initialize a TypeScript-based Hardhat project
|
||||||
- Write a basic Ethereum smart contract.
|
- Write a basic Ethereum smart contract
|
||||||
- Configure Hardhat for Status Network Testnet deployment.
|
- Configure Hardhat for Status Network testnet deployment
|
||||||
- Deploy your smart contract on Status Network.
|
- Deploy your smart contract using Hardhat Ignition
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
### 1. Initialize a Hardhat TypeScript Project
|
### 1. Initialize a Hardhat TypeScript Project
|
||||||
|
|
||||||
Open your terminal and create a new directory for your project, then navigate into it:
|
First, create and set up your project:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir my-hardhat-project && cd my-hardhat-project
|
mkdir my-hardhat-project && cd my-hardhat-project
|
||||||
```
|
|
||||||
|
|
||||||
Initialize an npm project:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm init -y
|
npm init -y
|
||||||
|
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox dotenv
|
||||||
|
npx hardhat init
|
||||||
```
|
```
|
||||||
|
|
||||||
Install the necessary packages for Hardhat and TypeScript:
|
When prompted, select "Create a TypeScript project" to set up a TypeScript-based Hardhat project.
|
||||||
|
|
||||||
|
Set up your environment variables:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install --save-dev hardhat ts-node typescript @nomiclabs/hardhat-ethers ethers @typechain/ethers-v5 @typechain/hardhat typechain
|
# Create a .env file
|
||||||
|
touch .env
|
||||||
|
|
||||||
|
# Add your private key (never commit this file!)
|
||||||
|
echo "PRIVATE_KEY=your_private_key_here" >> .env
|
||||||
```
|
```
|
||||||
|
|
||||||
Start a new Hardhat project with TypeScript:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npx hardhat
|
|
||||||
```
|
|
||||||
|
|
||||||
When prompted, make the following selections:
|
|
||||||
|
|
||||||
- Choose **"Create a TypeScript project"**.
|
|
||||||
- For the `.gitignore` prompt, select **"Yes"**.
|
|
||||||
- For installing the project's dependencies, select **"Yes"**.
|
|
||||||
|
|
||||||
Example interaction:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
888 888 888 888 888
|
|
||||||
888 888 888 888 888
|
|
||||||
888 888 888 888 888
|
|
||||||
8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888
|
|
||||||
888 888 88b 888P d88 888 888 88b 88b 888
|
|
||||||
888 888 .d888888 888 888 888 888 888 .d888888 888
|
|
||||||
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
|
|
||||||
888 888 Y888888 888 Y88888 888 888 Y888888 Y888
|
|
||||||
|
|
||||||
👷 Welcome to Hardhat v2.18.2 👷
|
|
||||||
|
|
||||||
✔ What do you want to do? · Create a TypeScript project
|
|
||||||
✔ Hardhat project root: · /Users/username/my-hardhat-project
|
|
||||||
✔ Do you want to add a .gitignore? (Y/n) · y
|
|
||||||
✔ Do you want to install this sample project's dependencies with npm (@nomicfoundation/hardhat-toolbox)? (Y/n) · y
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 2. Writing the Smart Contract
|
### 2. Writing the Smart Contract
|
||||||
|
|
||||||
In the `contracts` directory, delete the sample smart contract `Lock.sol` and create a new file named `HelloWorld.sol`:
|
Create `contracts/HelloWorld.sol`:
|
||||||
|
|
||||||
```solidity
|
```solidity
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
@@ -102,128 +71,81 @@ contract HelloWorld {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 3. Configuring Hardhat for Status Network
|
### 3. Configuring Hardhat for Status Network
|
||||||
|
|
||||||
Edit the `hardhat.config.ts` file to include Status Network Testnet settings:
|
Update `hardhat.config.ts`:
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
import { HardhatUserConfig } from "hardhat/config";
|
import { HardhatUserConfig } from "hardhat/config";
|
||||||
import "@nomicfoundation/hardhat-toolbox";
|
import "@nomicfoundation/hardhat-toolbox";
|
||||||
|
import * as dotenv from "dotenv";
|
||||||
|
|
||||||
|
dotenv.config();
|
||||||
|
|
||||||
|
const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
|
||||||
|
|
||||||
const config: HardhatUserConfig = {
|
const config: HardhatUserConfig = {
|
||||||
|
solidity: "0.8.24",
|
||||||
networks: {
|
networks: {
|
||||||
statusTestnet: {
|
statusTestnet: {
|
||||||
url: "https://testnet.status.network",
|
url: "https://public.sepolia.rpc.status.network",
|
||||||
chainId: 2020,
|
chainId: 1660990954,
|
||||||
accounts: ["YOUR_PRIVATE_KEY_HERE"], // BE VERY CAREFUL, DO NOT SHARE THIS
|
accounts: [PRIVATE_KEY],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
solidity: "0.8.24",
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
```
|
```
|
||||||
|
|
||||||
- Replace `YOUR_PRIVATE_KEY_HERE` with your Status Network Testnet private key (without quotes).
|
### 4. Create Ignition Deployment Module
|
||||||
|
|
||||||
> **Important:** Do not push your `hardhat.config.ts` file to any public repository or share your private key with anyone. To prevent accidental exposure, ensure your `.gitignore` file includes `hardhat.config.ts`.
|
Create `ignition/modules/HelloWorld.ts`:
|
||||||
|
|
||||||
---
|
```typescript
|
||||||
|
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
|
||||||
|
|
||||||
### 4. Compilation
|
export default buildModule("HelloWorld", (m) => {
|
||||||
|
const helloWorld = m.contract("HelloWorld");
|
||||||
|
|
||||||
|
return { helloWorld };
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
Compile the smart contract:
|
### 5. Deploy the Contract
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx hardhat compile
|
npx hardhat compile
|
||||||
|
npx hardhat ignition deploy ignition/modules/HelloWorld.ts --network statusTestnet
|
||||||
```
|
```
|
||||||
|
|
||||||
You should see output indicating that the compilation was successful.
|
The deployment will create a new directory `ignition/deployments` containing your deployment artifacts and history.
|
||||||
|
|
||||||
---
|
### 7. Interact with Your Contract
|
||||||
|
|
||||||
### 5. Deployment
|
Create `scripts/interact.ts`:
|
||||||
|
|
||||||
In the `scripts` directory, create a new file named `deploy.ts`:
|
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
import { ethers } from "hardhat";
|
import { ethers } from "hardhat";
|
||||||
|
import { HelloWorld } from "../typechain-types";
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
const contractAddress = "0x0d8a93870494Fa21ec39602f31Aa67C9Fed5604f";
|
||||||
const HelloWorld = await ethers.getContractFactory("HelloWorld");
|
const HelloWorld = await ethers.getContractFactory("HelloWorld");
|
||||||
|
const contract = HelloWorld.attach(contractAddress) as HelloWorld;
|
||||||
|
|
||||||
const helloWorld = await HelloWorld.deploy();
|
// Read current greeting
|
||||||
|
const greeting = await contract.getGreet();
|
||||||
|
console.log("Current greeting:", greeting);
|
||||||
|
|
||||||
await helloWorld.deployed();
|
// Update greeting
|
||||||
|
const tx = await contract.setGreet("Hello from Status Network!");
|
||||||
console.log("HelloWorld deployed to:", helloWorld.address);
|
|
||||||
}
|
|
||||||
|
|
||||||
main().catch((error) => {
|
|
||||||
console.error(error);
|
|
||||||
process.exitCode = 1;
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Note:** If you encounter gas-related issues, you can specify `gasPrice` and `gasLimit` when deploying:
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
const gasPrice = ethers.utils.parseUnits('10', 'gwei'); // Adjust as needed
|
|
||||||
const gasLimit = 500000; // Adjust based on your contract
|
|
||||||
|
|
||||||
const helloWorld = await HelloWorld.deploy({ gasPrice, gasLimit });
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Deploy the smart contract to the Status Network Testnet:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npx hardhat run scripts/deploy.ts --network statusTestnet
|
|
||||||
```
|
|
||||||
|
|
||||||
Upon successful deployment, you should see an output similar to:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
HelloWorld deployed to: 0xYourContractAddressHere
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 6. Verify Your Contract on the Block Explorer
|
|
||||||
|
|
||||||
Visit the [Status Network Testnet Explorer](https://testnet.statusscan.io/) and search for your contract address to view its details.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 7. Interacting with Your Smart Contract
|
|
||||||
|
|
||||||
You can interact with your deployed contract using Hardhat scripts, tests, or via a frontend application.
|
|
||||||
|
|
||||||
#### Example: Interacting via a Script
|
|
||||||
|
|
||||||
Create a new script `interact.ts` in the `scripts` directory:
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
import { ethers } from "hardhat";
|
|
||||||
|
|
||||||
async function main() {
|
|
||||||
const contractAddress = "0xYourContractAddressHere"; // Replace with your contract address
|
|
||||||
|
|
||||||
const HelloWorld = await ethers.getContractFactory("HelloWorld");
|
|
||||||
const helloWorld = HelloWorld.attach(contractAddress);
|
|
||||||
|
|
||||||
// Read the current greeting
|
|
||||||
const currentGreet = await helloWorld.getGreet();
|
|
||||||
console.log("Current Greet:", currentGreet);
|
|
||||||
|
|
||||||
// Update the greeting
|
|
||||||
const tx = await helloWorld.setGreet("Hello from Hardhat!");
|
|
||||||
await tx.wait();
|
await tx.wait();
|
||||||
|
console.log("Greeting updated!");
|
||||||
|
|
||||||
// Read the updated greeting
|
// Read updated greeting
|
||||||
const newGreet = await helloWorld.getGreet();
|
const newGreeting = await contract.getGreet();
|
||||||
console.log("Updated Greet:", newGreet);
|
console.log("New greeting:", newGreeting);
|
||||||
}
|
}
|
||||||
|
|
||||||
main().catch((error) => {
|
main().catch((error) => {
|
||||||
@@ -232,88 +154,14 @@ main().catch((error) => {
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
Run the script:
|
Run the interaction script:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx hardhat run scripts/interact.ts --network statusTestnet
|
npx hardhat run scripts/interact.ts --network statusTestnet
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
## Support
|
||||||
|
|
||||||
## Conclusion
|
If you encounter any issues:
|
||||||
|
- Join our [Telegram Community](https://t.me/statusl2)
|
||||||
Congratulations! You've successfully deployed a smart contract on the **Status Network Testnet** using **Hardhat** and **TypeScript**.
|
- View our [Network Details](/general-info/network-details)
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
|
|
||||||
- **Explore More Tutorials**:
|
|
||||||
|
|
||||||
- Check out other tutorials in the [Status Network Documentation](/tutorials/ethers-tutorial).
|
|
||||||
|
|
||||||
- **Deploy to Mainnet**:
|
|
||||||
|
|
||||||
- Once you're comfortable with the testnet, consider deploying to the Status Network Mainnet. Update your `hardhat.config.ts` with the mainnet RPC URL and Chain ID.
|
|
||||||
|
|
||||||
- **Secure Your Private Keys**:
|
|
||||||
|
|
||||||
- Use environment variables to store your private keys securely.
|
|
||||||
- Install `dotenv` package:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install dotenv
|
|
||||||
```
|
|
||||||
|
|
||||||
- Update your `hardhat.config.ts`:
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
import { HardhatUserConfig } from "hardhat/config";
|
|
||||||
import "@nomicfoundation/hardhat-toolbox";
|
|
||||||
import * as dotenv from "dotenv";
|
|
||||||
|
|
||||||
dotenv.config();
|
|
||||||
|
|
||||||
const config: HardhatUserConfig = {
|
|
||||||
networks: {
|
|
||||||
statusTestnet: {
|
|
||||||
url: "https://testnet.status.network",
|
|
||||||
chainId: 2020,
|
|
||||||
accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
solidity: "0.8.24",
|
|
||||||
};
|
|
||||||
|
|
||||||
export default config;
|
|
||||||
```
|
|
||||||
|
|
||||||
- Create a `.env` file in the root of your project:
|
|
||||||
|
|
||||||
```
|
|
||||||
PRIVATE_KEY=your_private_key_without_quotes
|
|
||||||
```
|
|
||||||
|
|
||||||
- Update your `.gitignore` to include `.env`.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
- [Status Network Official Website](https://status.network/)
|
|
||||||
- [Status Network Documentation](https://docs.status.network/)
|
|
||||||
- [Hardhat Documentation](https://hardhat.org/getting-started/)
|
|
||||||
- [TypeScript Documentation](https://www.typescriptlang.org/docs/)
|
|
||||||
- [Ethers.js Documentation](https://docs.ethers.io/)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Need Help?**
|
|
||||||
|
|
||||||
If you encounter any issues or have questions, feel free to reach out:
|
|
||||||
|
|
||||||
- **Community Discord**: [Join Our Discord](https://discord.gg/status_im)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Happy Coding!**
|
|
||||||
@@ -1 +1,104 @@
|
|||||||
# Using Remix
|
---
|
||||||
|
title: Using Remix with Status Network
|
||||||
|
description: Learn how to deploy smart contracts on Status Network using Remix IDE. Beginner-friendly guide with step-by-step instructions for contract deployment and interaction.
|
||||||
|
keywords: [Remix IDE, smart contract deployment, Status Network development, blockchain tutorial, web3 development, solidity]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Using Remix to Deploy Smart Contracts
|
||||||
|
|
||||||
|
This tutorial will guide you through deploying a smart contract on Status Network testnet using the Remix IDE. Remix is a browser-based IDE that's perfect for quick development and testing.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
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)
|
||||||
|
- **Network Configuration**: Add Status Network testnet to MetaMask following our [Add Network guide](/general-info/add-status-network)
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
### 1. Open Remix IDE
|
||||||
|
|
||||||
|
Visit [remix.ethereum.org](https://remix.ethereum.org) in your browser.
|
||||||
|
|
||||||
|
### 2. Create a New File
|
||||||
|
|
||||||
|
1. Click the "File Explorer" icon (first icon on the left sidebar)
|
||||||
|
2. Click the "+" button to create a new file
|
||||||
|
3. Name it `HelloWorld.sol`
|
||||||
|
|
||||||
|
### 3. Write the Smart Contract
|
||||||
|
|
||||||
|
Copy and paste the following code into `HelloWorld.sol`:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
contract HelloWorld {
|
||||||
|
string public greet = "Hello, Status Network!";
|
||||||
|
|
||||||
|
function setGreet(string memory _greet) public {
|
||||||
|
greet = _greet;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGreet() public view returns (string memory) {
|
||||||
|
return greet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Compile the Contract
|
||||||
|
|
||||||
|
1. Click the "Solidity Compiler" icon (second icon on the left sidebar)
|
||||||
|
2. Select compiler version "0.8.24"
|
||||||
|
3. Click "Compile HelloWorld.sol"
|
||||||
|
4. Ensure compilation succeeds (you'll see a green checkmark)
|
||||||
|
|
||||||
|
### 5. Deploy the Contract
|
||||||
|
|
||||||
|
1. Click the "Deploy & Run Transactions" icon (fourth icon on the left sidebar)
|
||||||
|
2. In the "Environment" dropdown, select "Injected Provider - MetaMask"
|
||||||
|
3. MetaMask will prompt you to connect - ensure Status Network testnet is selected
|
||||||
|
4. Click "Deploy"
|
||||||
|
5. Confirm the transaction in MetaMask
|
||||||
|
6. Wait for the transaction to be confirmed
|
||||||
|
|
||||||
|
### 6. Interact with Your Contract
|
||||||
|
|
||||||
|
Once deployed, you'll see your contract under "Deployed Contracts":
|
||||||
|
|
||||||
|
1. Expand the contract interface
|
||||||
|
2. You can:
|
||||||
|
- Click "greet" to read the current greeting
|
||||||
|
- Enter a new greeting in the "setGreet" field and click the button to update it
|
||||||
|
- Click "getGreet" to read the greeting again
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
1. **Transaction Failed**
|
||||||
|
- Check that you're connected to Status Network testnet
|
||||||
|
|
||||||
|
2. **Contract Not Found**
|
||||||
|
- Wait a few minutes for the explorer to index your contract
|
||||||
|
- Double-check the contract address
|
||||||
|
|
||||||
|
3. **Compilation Errors**
|
||||||
|
- Verify the compiler version matches the pragma statement
|
||||||
|
- Check for any syntax errors highlighted in Remix
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If you encounter any issues:
|
||||||
|
- Join our [Telegram Community](https://t.me/statusl2)
|
||||||
|
- View our [Network Details](/general-info/network-details)
|
||||||
|
|
||||||
|
## Additional Resources
|
||||||
|
|
||||||
|
- [Remix Documentation](https://remix-ide.readthedocs.io/)
|
||||||
|
- [Status Network Explorer](https://sepoliascan.status.network)
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
# Using Thirdweb
|
|
||||||
@@ -1,407 +0,0 @@
|
|||||||
# Interacting with Smart Contracts Using ethers.js
|
|
||||||
|
|
||||||
Learn how to interact with smart contracts deployed on **Status Network** from a frontend using **ethers.js**.
|
|
||||||
|
|
||||||
In this tutorial, we'll walk through setting up a basic web application, deploying a smart contract on the **Status Network Testnet**, and interacting with it using **ethers.js**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
Before you begin, ensure you have the following:
|
|
||||||
|
|
||||||
- **MetaMask** installed in your browser.
|
|
||||||
- **Node.js** and **npm** installed on your computer.
|
|
||||||
- Basic understanding of **React.js** and how **blockchains** work.
|
|
||||||
|
|
||||||
### Set Up Status Network Testnet
|
|
||||||
|
|
||||||
1. **Add Status Network Testnet to MetaMask**:
|
|
||||||
|
|
||||||
- Follow the guide [Adding Status Network to MetaMask](/general-info/add-status-network) to add the testnet network to your wallet.
|
|
||||||
|
|
||||||
2. **Obtain Test ETH**:
|
|
||||||
|
|
||||||
- Use the [Status Network Testnet Faucet](/tools/testnet-faucets) to get test ETH for deploying and interacting with contracts.
|
|
||||||
|
|
||||||
3. **Bridge Assets (Optional)**:
|
|
||||||
|
|
||||||
- If needed, bridge assets to the Status Network Testnet using the [Testnet Bridge](/general-info/bridge/bridging-testnet).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Smart Contract Deployment on Status Network
|
|
||||||
|
|
||||||
We'll use a simple smart contract called **BidBoard** for this tutorial. The contract allows advertisers to bid for space on an advertising board.
|
|
||||||
|
|
||||||
### BidBoard Smart Contract
|
|
||||||
|
|
||||||
Here's the `BidBoard.sol` contract code:
|
|
||||||
|
|
||||||
```solidity
|
|
||||||
// SPDX-License-Identifier: MIT
|
|
||||||
pragma solidity ^0.8.0;
|
|
||||||
|
|
||||||
contract BidBoard {
|
|
||||||
string public currentAd;
|
|
||||||
address public advertiser;
|
|
||||||
uint256 public currentBid;
|
|
||||||
|
|
||||||
event AdUpdated(string newAd, address newAdvertiser, uint256 newBid);
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
currentAd = "Welcome to Status Network!";
|
|
||||||
advertiser = msg.sender;
|
|
||||||
currentBid = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateAd(string memory newAd) public payable {
|
|
||||||
require(msg.value > currentBid, "Bid must be higher than current bid");
|
|
||||||
currentAd = newAd;
|
|
||||||
advertiser = msg.sender;
|
|
||||||
currentBid = msg.value;
|
|
||||||
emit AdUpdated(newAd, msg.sender, msg.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getCurrentAd() public view returns (string memory, address, uint256) {
|
|
||||||
return (currentAd, advertiser, currentBid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Note:** You can use your own smart contract if you prefer.
|
|
||||||
|
|
||||||
### Deploying the Contract
|
|
||||||
|
|
||||||
Follow the guide [Deploying a Smart Contract Using Remix](/tutorials/deploying-contracts/using-remix) to deploy the `BidBoard.sol` contract to the Status Network Testnet.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Setting Up the Frontend Application
|
|
||||||
|
|
||||||
We'll create a React.js application to interact with the deployed smart contract.
|
|
||||||
|
|
||||||
### Step 1: Create a React App
|
|
||||||
|
|
||||||
Open your terminal and run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npx create-react-app bidboard-ui
|
|
||||||
```
|
|
||||||
|
|
||||||
This command creates a new React application named `bidboard-ui`.
|
|
||||||
|
|
||||||
### Step 2: Install ethers.js
|
|
||||||
|
|
||||||
Navigate to the project directory and install **ethers.js**:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd bidboard-ui
|
|
||||||
npm install ethers
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Building the Main Application Component
|
|
||||||
|
|
||||||
Open the project in your code editor and navigate to `src/App.js`.
|
|
||||||
|
|
||||||
### Import Required Libraries
|
|
||||||
|
|
||||||
Replace the content of `App.js` with the following code:
|
|
||||||
|
|
||||||
```jsx
|
|
||||||
import React, { useState, useEffect } from "react";
|
|
||||||
import { ethers } from "ethers";
|
|
||||||
import "./App.css";
|
|
||||||
|
|
||||||
const App = () => {
|
|
||||||
// Contract details
|
|
||||||
const contractAddress = "YOUR_CONTRACT_ADDRESS";
|
|
||||||
const abi = [/* ABI JSON CODE */];
|
|
||||||
|
|
||||||
// State variables
|
|
||||||
const [currentAd, setCurrentAd] = useState("");
|
|
||||||
const [currentBid, setCurrentBid] = useState(0);
|
|
||||||
const [advertiser, setAdvertiser] = useState("");
|
|
||||||
const [newAd, setNewAd] = useState("");
|
|
||||||
const [bidAmount, setBidAmount] = useState("");
|
|
||||||
const [provider, setProvider] = useState(null);
|
|
||||||
const [status, setStatus] = useState("");
|
|
||||||
|
|
||||||
// Rest of the code...
|
|
||||||
};
|
|
||||||
|
|
||||||
export default App;
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Important:** Replace `"YOUR_CONTRACT_ADDRESS"` with the address of your deployed `BidBoard` contract. Paste the ABI of your contract in the `abi` array.
|
|
||||||
|
|
||||||
### Setting Up the Provider
|
|
||||||
|
|
||||||
Add the following code inside the `App` component to set up the provider:
|
|
||||||
|
|
||||||
```jsx
|
|
||||||
useEffect(() => {
|
|
||||||
if (typeof window.ethereum !== "undefined") {
|
|
||||||
const newProvider = new ethers.providers.Web3Provider(window.ethereum);
|
|
||||||
setProvider(newProvider);
|
|
||||||
} else {
|
|
||||||
console.error("Please install MetaMask!");
|
|
||||||
}
|
|
||||||
}, []);
|
|
||||||
```
|
|
||||||
|
|
||||||
### Fetch Current Advertisement Data
|
|
||||||
|
|
||||||
Add a function to fetch the current advertisement data:
|
|
||||||
|
|
||||||
```jsx
|
|
||||||
const fetchCurrentAd = async () => {
|
|
||||||
try {
|
|
||||||
const contract = new ethers.Contract(contractAddress, abi, provider);
|
|
||||||
const adData = await contract.getCurrentAd();
|
|
||||||
setCurrentAd(adData[0]);
|
|
||||||
setAdvertiser(adData[1]);
|
|
||||||
setCurrentBid(ethers.utils.formatEther(adData[2]));
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Error fetching current ad:", error);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (provider) {
|
|
||||||
fetchCurrentAd();
|
|
||||||
}
|
|
||||||
}, [provider]);
|
|
||||||
```
|
|
||||||
|
|
||||||
### Submit a New Bid
|
|
||||||
|
|
||||||
Add a function to submit a new bid:
|
|
||||||
|
|
||||||
```jsx
|
|
||||||
const submitBid = async () => {
|
|
||||||
if (!newAd || !bidAmount) {
|
|
||||||
setStatus("Please enter an ad message and bid amount.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const signer = provider.getSigner();
|
|
||||||
const contract = new ethers.Contract(contractAddress, abi, signer);
|
|
||||||
const tx = await contract.updateAd(newAd, {
|
|
||||||
value: ethers.utils.parseEther(bidAmount),
|
|
||||||
});
|
|
||||||
setStatus("Transaction sent, waiting for confirmation...");
|
|
||||||
await tx.wait();
|
|
||||||
setStatus("Transaction confirmed!");
|
|
||||||
setNewAd("");
|
|
||||||
setBidAmount("");
|
|
||||||
fetchCurrentAd();
|
|
||||||
} catch (err) {
|
|
||||||
console.error(err);
|
|
||||||
setStatus("Error: " + err.message);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
### Listen to Contract Events
|
|
||||||
|
|
||||||
Add code to listen to the `AdUpdated` event:
|
|
||||||
|
|
||||||
```jsx
|
|
||||||
useEffect(() => {
|
|
||||||
let contract;
|
|
||||||
|
|
||||||
const setupEventListener = async () => {
|
|
||||||
if (provider) {
|
|
||||||
contract = new ethers.Contract(contractAddress, abi, provider);
|
|
||||||
contract.on("AdUpdated", (newAd, newAdvertiser, newBid) => {
|
|
||||||
setCurrentAd(newAd);
|
|
||||||
setAdvertiser(newAdvertiser);
|
|
||||||
setCurrentBid(ethers.utils.formatEther(newBid));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
setupEventListener();
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
if (contract) {
|
|
||||||
contract.removeAllListeners("AdUpdated");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}, [provider]);
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Creating the User Interface
|
|
||||||
|
|
||||||
Update the `return` statement in the `App` component:
|
|
||||||
|
|
||||||
```jsx
|
|
||||||
return (
|
|
||||||
<div className="app">
|
|
||||||
{/* Header */}
|
|
||||||
<header>
|
|
||||||
<h1>BidBoard</h1>
|
|
||||||
<p>Status: {status}</p>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
{/* Current Advertisement */}
|
|
||||||
<section className="current-ad-section">
|
|
||||||
<h2>Current Advertisement</h2>
|
|
||||||
<p className="ad-message">"{currentAd}"</p>
|
|
||||||
<p className="ad-details">
|
|
||||||
<strong>Advertiser:</strong> {advertiser}
|
|
||||||
</p>
|
|
||||||
<p className="ad-details">
|
|
||||||
<strong>Current Bid:</strong> {currentBid} ETH
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
{/* Submit a New Bid */}
|
|
||||||
<section className="new-bid-section">
|
|
||||||
<h2>Submit a New Bid</h2>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
value={newAd}
|
|
||||||
onChange={(e) => setNewAd(e.target.value)}
|
|
||||||
placeholder="Your Ad Message"
|
|
||||||
/>
|
|
||||||
<input
|
|
||||||
type="number"
|
|
||||||
value={bidAmount}
|
|
||||||
onChange={(e) => setBidAmount(e.target.value)}
|
|
||||||
placeholder="Bid Amount in ETH"
|
|
||||||
/>
|
|
||||||
<button onClick={submitBid}>Submit Bid</button>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
{/* Footer */}
|
|
||||||
<footer>
|
|
||||||
<p>
|
|
||||||
<a
|
|
||||||
href="https://github.com/your-repo"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
GitHub Repository
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Styling the Application
|
|
||||||
|
|
||||||
Create a `App.css` file in the `src` directory and add your preferred styles. Here's a basic example:
|
|
||||||
|
|
||||||
```css
|
|
||||||
.app {
|
|
||||||
text-align: center;
|
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
|
||||||
background-color: #282c34;
|
|
||||||
padding: 20px;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
section {
|
|
||||||
margin: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
width: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
padding: 10px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
margin-top: 40px;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Running the Application
|
|
||||||
|
|
||||||
In your terminal, navigate to your project directory and run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm start
|
|
||||||
```
|
|
||||||
|
|
||||||
This command starts the development server. Open [http://localhost:3000](http://localhost:3000) in your browser to view the application.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Testing the Application
|
|
||||||
|
|
||||||
1. **View Current Advertisement**:
|
|
||||||
|
|
||||||
- The application should display the current ad message, advertiser address, and current bid.
|
|
||||||
|
|
||||||
2. **Submit a New Bid**:
|
|
||||||
|
|
||||||
- Enter a new ad message and a bid amount higher than the current bid.
|
|
||||||
- Click **"Submit Bid"**.
|
|
||||||
- MetaMask will prompt you to confirm the transaction.
|
|
||||||
- Wait for the transaction to be confirmed.
|
|
||||||
|
|
||||||
3. **Observe Real-Time Updates**:
|
|
||||||
|
|
||||||
- Upon confirmation, the application should automatically update with the new ad, advertiser, and bid amount.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Conclusion
|
|
||||||
|
|
||||||
You've successfully created a web application that interacts with a smart contract deployed on the Status Network Testnet using **ethers.js**. This tutorial covered:
|
|
||||||
|
|
||||||
- Setting up a React application.
|
|
||||||
- Deploying a smart contract to the Status Network.
|
|
||||||
- Connecting the frontend to the smart contract using ethers.js.
|
|
||||||
- Handling user interactions and real-time updates via events.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
|
|
||||||
- **Explore More Tutorials**:
|
|
||||||
|
|
||||||
- Check out other tutorials in the [Status Network Documentation](/tutorials/ethers-tutorial).
|
|
||||||
|
|
||||||
- **Enhance the Application**:
|
|
||||||
|
|
||||||
- Add error handling for edge cases.
|
|
||||||
- Improve the UI/UX design.
|
|
||||||
- Implement additional features like user authentication.
|
|
||||||
|
|
||||||
- **Deploy to Production**:
|
|
||||||
|
|
||||||
- Learn how to deploy your application for production use.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
- [Status Network Official Website](https://status.network/)
|
|
||||||
- [Status Network Documentation](https://docs.status.network/)
|
|
||||||
- [ethers.js Documentation](https://docs.ethers.io/)
|
|
||||||
- [React.js Documentation](https://reactjs.org/)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Happy Coding!**
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Using Foundry
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Using Hardhat
|
|
||||||
+105
-62
@@ -39,24 +39,27 @@ const config: Config = {
|
|||||||
{
|
{
|
||||||
docs: {
|
docs: {
|
||||||
sidebarPath: './sidebars.ts',
|
sidebarPath: './sidebars.ts',
|
||||||
editUrl: 'https://github.com/status-im/status-network-docs/tree/main/',
|
editUrl: 'https://github.com/status-im/docs.status.network/tree/develop',
|
||||||
routeBasePath: '/',
|
routeBasePath: '/',
|
||||||
|
showLastUpdateTime: true,
|
||||||
},
|
},
|
||||||
blog: false,
|
blog: false,
|
||||||
pages: false,
|
pages: false,
|
||||||
theme: {
|
theme: {
|
||||||
customCss: './src/css/custom.css',
|
customCss: './src/css/custom.css',
|
||||||
},
|
},
|
||||||
|
sitemap: {
|
||||||
|
changefreq: 'weekly',
|
||||||
|
priority: 0.5,
|
||||||
|
ignorePatterns: ['/tags/**'],
|
||||||
|
filename: 'sitemap.xml',
|
||||||
|
},
|
||||||
} satisfies Preset.Options,
|
} satisfies Preset.Options,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
themeConfig: {
|
themeConfig: {
|
||||||
image: 'https://docs.status.network/img/sn_logo.png',
|
image: 'img/sn-social-card.png',
|
||||||
colorMode: {
|
|
||||||
defaultMode: 'dark',
|
|
||||||
respectPrefersColorScheme: true,
|
|
||||||
},
|
|
||||||
navbar: {
|
navbar: {
|
||||||
title: 'Status Network Docs',
|
title: 'Status Network Docs',
|
||||||
logo: {
|
logo: {
|
||||||
@@ -64,78 +67,118 @@ const config: Config = {
|
|||||||
src: 'img/sn_logo.svg',
|
src: 'img/sn_logo.svg',
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
{
|
|
||||||
type: 'dropdown',
|
|
||||||
label: 'Tools',
|
|
||||||
position: 'left',
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
label: '🔌 RPC',
|
|
||||||
to: '/tools/rpc',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '👥 Multisig Wallets',
|
|
||||||
to: '/tools/multisig-wallets',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '🌉 Bridge',
|
|
||||||
to: '/tools/bridge',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '🚰 Testnet Faucets',
|
|
||||||
to: '/tools/testnet-faucets',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '🔎 Block Explorers',
|
|
||||||
to: '/tools/block-explorers',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '📊 Data Indexers',
|
|
||||||
to: '/tools/data-indexers',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '🔮 Oracles',
|
|
||||||
to: '/tools/oracles',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '🔗 Interoperability',
|
|
||||||
to: '/tools/interoperability',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '🎲 Randomness',
|
|
||||||
to: '/tools/randomness',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '🛠️ General Tooling',
|
|
||||||
to: '/tools/general-tooling',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '🖥️ Node Operators',
|
|
||||||
to: '/tools/node-operators',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
type: 'localeDropdown',
|
type: 'localeDropdown',
|
||||||
position: 'right',
|
position: 'right',
|
||||||
className: 'language-dropdown',
|
className: 'language-dropdown',
|
||||||
},
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
|
metadata: [
|
||||||
|
// General SEO
|
||||||
|
{
|
||||||
|
name: 'description',
|
||||||
|
content: 'Documentation for Status Network - The gasless network with sustainable funding for app builders. Launch and scale your social apps and games with truly free transactions.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'keywords',
|
||||||
|
content: 'status network, blockchain, web3, documentation, gasless transactions, social network, cryptocurrency',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'author',
|
||||||
|
content: 'Status Network',
|
||||||
|
},
|
||||||
|
|
||||||
|
// OpenGraph tags
|
||||||
|
{
|
||||||
|
property: 'og:title',
|
||||||
|
content: 'Status Network Documentation',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:description',
|
||||||
|
content: 'Documentation for Status Network - The gasless network with sustainable funding for app builders. Launch and scale your social apps and games with truly free transactions.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:image',
|
||||||
|
content: 'https://docs.status.network/img/sn-social-card.png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:url',
|
||||||
|
content: 'https://docs.status.network',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:type',
|
||||||
|
content: 'website',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:site_name',
|
||||||
|
content: 'Status Network Documentation',
|
||||||
|
},
|
||||||
|
|
||||||
|
// Twitter Card tags
|
||||||
|
{
|
||||||
|
name: 'twitter:card',
|
||||||
|
content: 'summary_large_image',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'twitter:site',
|
||||||
|
content: '@statusL2',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'twitter:title',
|
||||||
|
content: 'Status Network Documentation',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'twitter:description',
|
||||||
|
content: 'Documentation for Status Network - The gasless network with sustainable funding for app builders. Launch and scale your social apps and games with truly free transactions.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'twitter:image',
|
||||||
|
content: 'https://docs.status.network/img/sn-social-card.png',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
colorMode: {
|
||||||
|
defaultMode: 'dark',
|
||||||
|
respectPrefersColorScheme: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
footer: {
|
||||||
|
links: [
|
||||||
{
|
{
|
||||||
href: 'https://hub.status.network',
|
title: 'Legal',
|
||||||
label: 'Hub',
|
items: [
|
||||||
position: 'right',
|
{
|
||||||
className: 'hub-button',
|
label: 'Terms of use',
|
||||||
|
to: '/terms-of-use',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Privacy policy',
|
||||||
|
to: '/privacy-policy',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
algolia: {
|
algolia: {
|
||||||
// it is safe to commit these
|
|
||||||
appId: 'M7J93TRPJ9',
|
appId: 'M7J93TRPJ9',
|
||||||
apiKey: '17befa84094fd9acddd40cbb64012976',
|
apiKey: '17befa84094fd9acddd40cbb64012976',
|
||||||
indexName: 'status',
|
indexName: 'status',
|
||||||
contextualSearch: true,
|
contextualSearch: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
plugins: [
|
||||||
|
[
|
||||||
|
'@acid-info/docusaurus-fathom',
|
||||||
|
{
|
||||||
|
siteId: 'SMSOL',
|
||||||
|
scriptUrl: 'https://fathom.bi.status.im/tracker.js',
|
||||||
|
hostnames: ['docs.status.network'],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
]
|
||||||
} satisfies Config;
|
} satisfies Config;
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
+139
-8
@@ -122,14 +122,14 @@
|
|||||||
"message": "{atDate}{byUser}最終更新",
|
"message": "{atDate}{byUser}最終更新",
|
||||||
"description": "The sentence used to display when a page has been last updated, and by who"
|
"description": "The sentence used to display when a page has been last updated, and by who"
|
||||||
},
|
},
|
||||||
"theme.NotFound.title": {
|
|
||||||
"message": "ページが見つかりません",
|
|
||||||
"description": "The title of the 404 page"
|
|
||||||
},
|
|
||||||
"theme.navbar.mobileVersionsDropdown.label": {
|
"theme.navbar.mobileVersionsDropdown.label": {
|
||||||
"message": "他のバージョン",
|
"message": "他のバージョン",
|
||||||
"description": "The label for the navbar versions dropdown on mobile view"
|
"description": "The label for the navbar versions dropdown on mobile view"
|
||||||
},
|
},
|
||||||
|
"theme.NotFound.title": {
|
||||||
|
"message": "ページが見つかりません",
|
||||||
|
"description": "The title of the 404 page"
|
||||||
|
},
|
||||||
"theme.tags.tagsListLabel": {
|
"theme.tags.tagsListLabel": {
|
||||||
"message": "タグ:",
|
"message": "タグ:",
|
||||||
"description": "The label alongside a tag list"
|
"description": "The label alongside a tag list"
|
||||||
@@ -194,6 +194,10 @@
|
|||||||
"message": "ナビゲーション",
|
"message": "ナビゲーション",
|
||||||
"description": "The ARIA label for the main navigation"
|
"description": "The ARIA label for the main navigation"
|
||||||
},
|
},
|
||||||
|
"theme.navbar.mobileLanguageDropdown.label": {
|
||||||
|
"message": "他の言語",
|
||||||
|
"description": "The label for the mobile language switcher dropdown"
|
||||||
|
},
|
||||||
"theme.NotFound.p1": {
|
"theme.NotFound.p1": {
|
||||||
"message": "お探しのページが見つかりませんでした",
|
"message": "お探しのページが見つかりませんでした",
|
||||||
"description": "The first paragraph of the 404 page"
|
"description": "The first paragraph of the 404 page"
|
||||||
@@ -202,10 +206,6 @@
|
|||||||
"message": "このページにリンクしているサイトの所有者にリンクが壊れていることを伝えてください",
|
"message": "このページにリンクしているサイトの所有者にリンクが壊れていることを伝えてください",
|
||||||
"description": "The 2nd paragraph of the 404 page"
|
"description": "The 2nd paragraph of the 404 page"
|
||||||
},
|
},
|
||||||
"theme.navbar.mobileLanguageDropdown.label": {
|
|
||||||
"message": "他の言語",
|
|
||||||
"description": "The label for the mobile language switcher dropdown"
|
|
||||||
},
|
|
||||||
"theme.TOCCollapsible.toggleButtonLabel": {
|
"theme.TOCCollapsible.toggleButtonLabel": {
|
||||||
"message": "このページの見出し",
|
"message": "このページの見出し",
|
||||||
"description": "The label used by the button on the collapsible TOC component"
|
"description": "The label used by the button on the collapsible TOC component"
|
||||||
@@ -258,6 +258,137 @@
|
|||||||
"message": "サイドバーを開く",
|
"message": "サイドバーを開く",
|
||||||
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
||||||
},
|
},
|
||||||
|
"theme.SearchBar.seeAll": {
|
||||||
|
"message": "検索結果{count}件をすべて見る"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.documentsFound.plurals": {
|
||||||
|
"message": "{count}件のドキュメントが見つかりました",
|
||||||
|
"description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.existingResultsTitle": {
|
||||||
|
"message": "『{query}』の検索結果",
|
||||||
|
"description": "The search page title for non-empty query"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.emptyResultsTitle": {
|
||||||
|
"message": "ドキュメントを検索",
|
||||||
|
"description": "The search page title for empty query"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.inputPlaceholder": {
|
||||||
|
"message": "検索するキーワードを入力してください",
|
||||||
|
"description": "The placeholder for search page input"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.inputLabel": {
|
||||||
|
"message": "検索",
|
||||||
|
"description": "The ARIA label for search page input"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.algoliaLabel": {
|
||||||
|
"message": "Algoliaで検索",
|
||||||
|
"description": "The ARIA label for Algolia mention"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.noResultsText": {
|
||||||
|
"message": "検索結果が見つかりませんでした",
|
||||||
|
"description": "The paragraph for empty search result"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.fetchingNewResults": {
|
||||||
|
"message": "新しい検索結果を取得しています...",
|
||||||
|
"description": "The paragraph for fetching new search results"
|
||||||
|
},
|
||||||
|
"theme.SearchBar.label": {
|
||||||
|
"message": "検索",
|
||||||
|
"description": "The ARIA label and placeholder for search button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.searchBox.resetButtonTitle": {
|
||||||
|
"message": "クリア",
|
||||||
|
"description": "The label and ARIA label for search box reset button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.searchBox.cancelButtonText": {
|
||||||
|
"message": "キャンセル",
|
||||||
|
"description": "The label and ARIA label for search box cancel button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.recentSearchesTitle": {
|
||||||
|
"message": "最近の検索",
|
||||||
|
"description": "The title for recent searches"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.noRecentSearchesText": {
|
||||||
|
"message": "最近の検索履歴はありません",
|
||||||
|
"description": "The text when no recent searches"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.saveRecentSearchButtonTitle": {
|
||||||
|
"message": "この検索をお気に入りに追加",
|
||||||
|
"description": "The label for save recent search button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.removeRecentSearchButtonTitle": {
|
||||||
|
"message": "この検索を履歴から削除",
|
||||||
|
"description": "The label for remove recent search button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.favoriteSearchesTitle": {
|
||||||
|
"message": "お気に入り",
|
||||||
|
"description": "The title for favorite searches"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": {
|
||||||
|
"message": "この検索をお気に入りから削除",
|
||||||
|
"description": "The label for remove favorite search button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.errorScreen.titleText": {
|
||||||
|
"message": "検索結果の取得に失敗しました",
|
||||||
|
"description": "The title for error screen of search modal"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.errorScreen.helpText": {
|
||||||
|
"message": "ネットワーク接続を確認してください",
|
||||||
|
"description": "The help text for error screen of search modal"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.selectText": {
|
||||||
|
"message": "選ぶ",
|
||||||
|
"description": "The explanatory text of the action for the enter key"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.selectKeyAriaLabel": {
|
||||||
|
"message": "エンターキー",
|
||||||
|
"description": "The ARIA label for the Enter key button that makes the selection"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.navigateText": {
|
||||||
|
"message": "移動",
|
||||||
|
"description": "The explanatory text of the action for the Arrow up and Arrow down key"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.navigateUpKeyAriaLabel": {
|
||||||
|
"message": "上矢印キー",
|
||||||
|
"description": "The ARIA label for the Arrow up key button that makes the navigation"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.navigateDownKeyAriaLabel": {
|
||||||
|
"message": "下矢印キー",
|
||||||
|
"description": "The ARIA label for the Arrow down key button that makes the navigation"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.closeText": {
|
||||||
|
"message": "閉じる",
|
||||||
|
"description": "The explanatory text of the action for Escape key"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.closeKeyAriaLabel": {
|
||||||
|
"message": "エスケープキー",
|
||||||
|
"description": "The ARIA label for the Escape key button that close the modal"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.searchByText": {
|
||||||
|
"message": "検索",
|
||||||
|
"description": "The text explain that the search is making by Algolia"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.noResultsScreen.noResultsText": {
|
||||||
|
"message": "見つかりませんでした",
|
||||||
|
"description": "The text explains that there are no results for the following search"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.noResultsScreen.suggestedQueryText": {
|
||||||
|
"message": "次の検索を試す:",
|
||||||
|
"description": "The text for the suggested query when no results are found for the following search"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.noResultsScreen.reportMissingResultsText": {
|
||||||
|
"message": "よりよい検索結果がありますか?",
|
||||||
|
"description": "The text for the question where the user thinks there are missing results"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": {
|
||||||
|
"message": "報告する",
|
||||||
|
"description": "The text for the link to report missing results"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.placeholder": {
|
||||||
|
"message": "ドキュメントを検索",
|
||||||
|
"description": "The placeholder of the input of the DocSearch pop-up modal"
|
||||||
|
},
|
||||||
"theme.blog.post.plurals": {
|
"theme.blog.post.plurals": {
|
||||||
"message": "{count}件",
|
"message": "{count}件",
|
||||||
"description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
"description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"version.label": {
|
"version.label": {
|
||||||
"message": "次へ",
|
"message": "Next",
|
||||||
"description": "The label for version current"
|
"description": "The label for version current"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.INTRODUCTION": {
|
"sidebar.tutorialSidebar.category.INTRODUCTION": {
|
||||||
"message": "イントロダクション",
|
"message": "はじめに",
|
||||||
"description": "The label for category INTRODUCTION in sidebar tutorialSidebar"
|
"description": "The label for category INTRODUCTION in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.TOKENOMICS": {
|
"sidebar.tutorialSidebar.category.TOKENOMICS": {
|
||||||
@@ -35,14 +35,6 @@
|
|||||||
"message": "🚀 スマートコントラクトのデプロイ",
|
"message": "🚀 スマートコントラクトのデプロイ",
|
||||||
"description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar"
|
"description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.🔍 Verifying Your Smart Contract": {
|
|
||||||
"message": "🔍 スマートコントラクトの検証",
|
|
||||||
"description": "The label for category 🔍 Verifying Your Smart Contract in sidebar tutorialSidebar"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.category.SECURITY": {
|
|
||||||
"message": "セキュリティ",
|
|
||||||
"description": "The label for category SECURITY in sidebar tutorialSidebar"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||||
"message": "その他のドキュメント",
|
"message": "その他のドキュメント",
|
||||||
"description": "The label for category OTHER DOCS in sidebar tutorialSidebar"
|
"description": "The label for category OTHER DOCS in sidebar tutorialSidebar"
|
||||||
@@ -53,126 +45,90 @@
|
|||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.⚡ Quick Start": {
|
"sidebar.tutorialSidebar.doc.⚡ Quick Start": {
|
||||||
"message": "⚡ クイックスタート",
|
"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 tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.💎 SNT Token": {
|
"sidebar.tutorialSidebar.doc.💎 SNT Token": {
|
||||||
"message": "💎 SNTトークン",
|
"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 tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.💠 Aura Token": {
|
"sidebar.tutorialSidebar.doc.💠 Karma Token": {
|
||||||
"message": "💠 オーラトークン",
|
"message": "💠 Karma Token",
|
||||||
"description": "The label for the doc item 💠 Aura Token in sidebar tutorialSidebar, linking to the doc tokenomics/aura-token"
|
"description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||||
"message": "🌐 ネットワーク詳細",
|
"message": "🌐 ネットワーク詳細",
|
||||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar, linking to the doc general-info/network-details"
|
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||||
"message": "➕ ステータスネットワークを追加",
|
"message": "➕ Status ネットワークの追加",
|
||||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar, linking to the doc general-info/add-status-network"
|
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||||
"message": "💰 トークン",
|
"message": "💰 トークン",
|
||||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/tokens"
|
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||||
"message": "🧪 テストネットコントラクト",
|
"message": "🧪 テストネットコントラクト",
|
||||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/testnet-contracts"
|
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.➡️ Bridge to Status": {
|
|
||||||
"message": "➡️ ステータスへのブリッジ",
|
|
||||||
"description": "The label for the doc item ➡️ Bridge to Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-to-status"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.⬅️ Bridge from Status": {
|
|
||||||
"message": "⬅️ ステータスからのブリッジ",
|
|
||||||
"description": "The label for the doc item ⬅️ Bridge from Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-from-status"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||||
"message": "🧪 テストネットのブリッジ",
|
"message": "🧪 テストネットブリッジ",
|
||||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridging-testnet"
|
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||||
"message": "🔌 RPC",
|
"message": "🔌 RPC",
|
||||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar, linking to the doc tools/rpc"
|
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.👥 Multisig Wallets": {
|
|
||||||
"message": "👥 マルチシグウォレット",
|
|
||||||
"description": "The label for the doc item 👥 Multisig Wallets in sidebar tutorialSidebar, linking to the doc tools/multisig-wallets"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||||
"message": "🌉 ブリッジ",
|
"message": "🌉 ブリッジ",
|
||||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar, linking to the doc tools/bridge"
|
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||||
"message": "🚰 テストネットファウセット",
|
"message": "🚰 テストネットフォーセット",
|
||||||
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar, linking to the doc tools/testnet-faucets"
|
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||||
"message": "🔎 ブロックエクスプローラー",
|
"message": "🔎 ブロックエクスプローラー",
|
||||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar, linking to the doc tools/block-explorers"
|
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.📊 Data Indexers": {
|
|
||||||
"message": "📊 データインデクサー",
|
|
||||||
"description": "The label for the doc item 📊 Data Indexers in sidebar tutorialSidebar, linking to the doc tools/data-indexers"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🔮 Oracles": {
|
|
||||||
"message": "🔮 オラクル",
|
|
||||||
"description": "The label for the doc item 🔮 Oracles in sidebar tutorialSidebar, linking to the doc tools/oracles"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🔗 Interoperability": {
|
|
||||||
"message": "🔗 相互運用性",
|
|
||||||
"description": "The label for the doc item 🔗 Interoperability in sidebar tutorialSidebar, linking to the doc tools/interoperability"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🎲 Randomness": {
|
|
||||||
"message": "🎲 ランダムネス",
|
|
||||||
"description": "The label for the doc item 🎲 Randomness in sidebar tutorialSidebar, linking to the doc tools/randomness"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🛠️ General Tooling": {
|
|
||||||
"message": "🛠️ 一般的なツール",
|
|
||||||
"description": "The label for the doc item 🛠️ General Tooling in sidebar tutorialSidebar, linking to the doc tools/general-tooling"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🖥️ Node Operators": {
|
|
||||||
"message": "🖥️ ノードオペレーター",
|
|
||||||
"description": "The label for the doc item 🖥️ Node Operators in sidebar tutorialSidebar, linking to the doc tools/node-operators"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.📘 Ethers Tutorial": {
|
|
||||||
"message": "📘 Ethersチュートリアル",
|
|
||||||
"description": "The label for the doc item 📘 Ethers Tutorial in sidebar tutorialSidebar, linking to the doc tutorials/ethers-tutorial"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||||
"message": "🎩 Hardhatの使用",
|
"message": "🎩 Hardhatの使用",
|
||||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-hardhat"
|
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🌐 Using Thirdweb": {
|
|
||||||
"message": "🌐 Thirdwebの使用",
|
|
||||||
"description": "The label for the doc item 🌐 Using Thirdweb in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-thirdweb"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||||
"message": "⚒️ Foundryの使用",
|
"message": "⚒️ Foundryの使用",
|
||||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-foundry"
|
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||||
"message": "🎛️ Remixの使用",
|
"message": "🎛️ Remixの使用",
|
||||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-remix"
|
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🛡️ Security Model": {
|
|
||||||
"message": "🛡️ セキュリティモデル",
|
|
||||||
"description": "The label for the doc item 🛡️ Security Model in sidebar tutorialSidebar, linking to the doc security/security-model"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.⬆️ Security Upgrades": {
|
|
||||||
"message": "⬆️ セキュリティアップグレード",
|
|
||||||
"description": "The label for the doc item ⬆️ Security Upgrades in sidebar tutorialSidebar, linking to the doc security/security-upgrades"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🔒 Audits": {
|
|
||||||
"message": "🔒 監査",
|
|
||||||
"description": "The label for the doc item 🔒 Audits in sidebar tutorialSidebar, linking to the doc other/audits"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||||
"message": "🔗 公式リンク",
|
"message": "🔗 公式リンク",
|
||||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar, linking to the doc other/official-links"
|
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🎨 Branding Guidelines": {
|
"sidebar.tutorialSidebar.doc.🌴 Home": {
|
||||||
"message": "🎨 ブランディングガイドライン",
|
"message": "🌴 Home",
|
||||||
"description": "The label for the doc item 🎨 Branding Guidelines in sidebar tutorialSidebar, linking to the doc other/branding-guidelines"
|
"description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.🤝 Economic Model": {
|
||||||
|
"message": "🤝 経済モデル",
|
||||||
|
"description": "The label for the doc item 🤝 Economic Model in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.💰 Public Funding": {
|
||||||
|
"message": "💰 公募資金",
|
||||||
|
"description": "The label for the doc item 💰 Public Funding in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.🐉 Karmic Tokenomics": {
|
||||||
|
"message": "🐉 カルミックトークノミクス",
|
||||||
|
"description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.💎 SNT Staking": {
|
||||||
|
"message": "💎 SNTステーキング",
|
||||||
|
"description": "The label for the doc item 💎 SNT Staking in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.🪙 Tokens": {
|
||||||
|
"message": "🪙 トークン",
|
||||||
|
"description": "The label for the doc item 🪙 Tokens in sidebar tutorialSidebar"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,84 @@
|
|||||||
# Add Status Network
|
# Status Networkの追加
|
||||||
|
|
||||||
|
このガイドでは、ウォレットに**Status Network**を追加する方法を説明します。
|
||||||
|
|
||||||
|
## テストネット
|
||||||
|
|
||||||
|
MetaMaskにカスタムネットワークとして**Status Networkテストネット**を追加するには:
|
||||||
|
|
||||||
|
1. **MetaMaskを開く**:
|
||||||
|
|
||||||
|
- ブラウザでMetaMask拡張機能のアイコンをクリックして開きます。
|
||||||
|
|
||||||
|
2. **ネットワーク設定にアクセス**:
|
||||||
|
|
||||||
|
- MetaMaskウィンドウ上部のネットワーク選択ドロップダウンをクリックします。
|
||||||
|
|
||||||
|
3. **新しいネットワークを追加**:
|
||||||
|
|
||||||
|
- **「ネットワークを追加」**をクリックします。
|
||||||
|
- 新しいウィンドウで**「ネットワークを手動で追加」**をクリックします。
|
||||||
|
|
||||||
|
4. **ネットワークの詳細を入力**:
|
||||||
|
|
||||||
|
- 以下の情報を入力します:
|
||||||
|
|
||||||
|
| 名前 | 値 |
|
||||||
|
|------------------|------------------------------------------|
|
||||||
|
| **ネットワーク名** | Status Network Testnet |
|
||||||
|
| **RPC URL** | https://public.sepolia.rpc.status.network |
|
||||||
|
| **チェーンID** | 1660990954 |
|
||||||
|
| **通貨シンボル** | `ETH` |
|
||||||
|
| **ブロックエクスプローラーURL** | https://sepoliascan.status.network |
|
||||||
|
|
||||||
|
5. **ネットワークを保存**:
|
||||||
|
|
||||||
|
- **「保存」**をクリックしてStatus NetworkテストネットをMetaMaskウォレットに追加します。
|
||||||
|
|
||||||
|
これで、ネットワークドロップダウンメニューからStatus Networkテストネットを選択して接続できるようになりました。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## モバイルウォレット
|
||||||
|
|
||||||
|
### MetaMaskモバイルにStatus Networkを追加する
|
||||||
|
|
||||||
|
1. **MetaMaskモバイルアプリを開く**:
|
||||||
|
|
||||||
|
- モバイルデバイスでMetaMaskアプリを起動します。
|
||||||
|
|
||||||
|
2. **設定にアクセス**:
|
||||||
|
|
||||||
|
- 左上のハンバーガーメニュー(三本の横線)をタップします。
|
||||||
|
- **「設定」**を選択します。
|
||||||
|
|
||||||
|
3. **新しいネットワークを追加**:
|
||||||
|
|
||||||
|
- **「ネットワーク」**をタップします。
|
||||||
|
- **「ネットワークを追加」**をタップします。
|
||||||
|
|
||||||
|
4. **ネットワークの詳細を入力**:
|
||||||
|
|
||||||
|
- 上記のテストネットと同じネットワーク詳細を入力します。
|
||||||
|
|
||||||
|
5. **ネットワークを保存**:
|
||||||
|
|
||||||
|
- **「追加」**をタップして新しいネットワークを保存します。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 追加情報
|
||||||
|
|
||||||
|
- **公式リンク**:
|
||||||
|
|
||||||
|
- [Status Networkウェブサイト](https://status.network/)
|
||||||
|
- [Status Networkドキュメント](https://docs.status.network/)
|
||||||
|
- [Status Networkテストネットエクスプローラー](https://sepoliascan.status.network)
|
||||||
|
|
||||||
|
- **サポートが必要な場合**:
|
||||||
|
|
||||||
|
- 問題が発生した場合は、サポート用の[Telegram](https://t.me/statusl2)にご参加ください。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
このガイドに従うことで、MetaMaskウォレットにStatus Networkを正常に追加できました!
|
||||||
|
|||||||
-1
@@ -1 +0,0 @@
|
|||||||
# Bridge From Status
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Bridge To Status
|
|
||||||
+32
-1
@@ -1 +1,32 @@
|
|||||||
# Bridging Testnet
|
# Status Network テストネットへのブリッジング
|
||||||
|
|
||||||
|
Status Network ブリッジを使用すると、SepoliaとStatus Networkテストネット間でトークンを転送することができます。ブリッジは[bridge.status.network](https://bridge.status.network)にデプロイされています。
|
||||||
|
|
||||||
|
## 前提条件
|
||||||
|
|
||||||
|
- MetaMaskまたは他のWeb3ウォレットがインストールされていること
|
||||||
|
- Sepoliaネットワーク上にテストネットETHを保有していること
|
||||||
|
- Sepoliaネットワーク上でブリッジしたいトークンを保有していること
|
||||||
|
|
||||||
|
## ブリッジの手順
|
||||||
|
|
||||||
|
1. [bridge.status.network](https://bridge.status.network)にアクセス
|
||||||
|
|
||||||
|
2. 右上の「ウォレットを接続」ボタンをクリックしてウォレットを接続
|
||||||
|
|
||||||
|
3. ドロップダウンメニューからブリッジしたいトークンを選択
|
||||||
|
|
||||||
|
4. ブリッジしたい金額を入力
|
||||||
|
|
||||||
|
5. 「ブリッジ」をクリックし、ウォレットで取引を承認
|
||||||
|
|
||||||
|
6. ブリッジングプロセスが完了するまで待機
|
||||||
|
- ブリッジングには通常5-10分程度かかります
|
||||||
|
- ブリッジインターフェース上で取引状況を確認できます
|
||||||
|
|
||||||
|
## 重要な注意事項
|
||||||
|
|
||||||
|
- 取引を開始する前に、正しいウェブサイト(bridge.status.network)にアクセスしていることを必ず確認してください
|
||||||
|
- 大きな金額を転送する前に、少額でテストすることをお勧めします
|
||||||
|
- ガス代を支払うのに十分なETHをウォレットに保有していることを確認してください
|
||||||
|
- 問題が発生した場合は、サポート用の[Telegram](https://t.me/statusl2)にご参加ください
|
||||||
|
|||||||
+43
-1
@@ -1 +1,43 @@
|
|||||||
# Testnet Contracts
|
# テストネットのコントラクト
|
||||||
|
|
||||||
|
このページでは、Status Networkテストネットインフラストラクチャの重要なコントラクトアドレスを全て掲載しています。
|
||||||
|
|
||||||
|
## レイヤー1コントラクト(Sepolia)
|
||||||
|
|
||||||
|
これらのコントラクトはSepoliaテストネットにデプロイされています。[Sepolia Etherscan](https://sepolia.etherscan.io)で確認できます。
|
||||||
|
|
||||||
|
### ブリッジコントラクト
|
||||||
|
- **L1トークンブリッジプロキシ**
|
||||||
|
- アドレス: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548)
|
||||||
|
- 目的: L1上のトークンブリッジング操作を管理
|
||||||
|
|
||||||
|
### コアインフラストラクチャ
|
||||||
|
- **L1ポストマン**
|
||||||
|
- アドレス: [`0xB15725119b917d348FfEB365B43bCDeEbfb65C5d`](https://sepolia.etherscan.io/address/0xB15725119b917d348FfEB365B43bCDeEbfb65C5d)
|
||||||
|
- 目的: L1とL2間のメッセージ受け渡しを処理
|
||||||
|
|
||||||
|
- **L1データ送信**
|
||||||
|
- アドレス: [`0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d`](https://sepolia.etherscan.io/address/0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d)
|
||||||
|
- 目的: L2からL1へのデータ送信を管理
|
||||||
|
|
||||||
|
- **L1ファイナライゼーション**
|
||||||
|
- アドレス: [`0xb91CB39b3b9F015b0aC88616A463B35568052AEF`](https://sepolia.etherscan.io/address/0xb91CB39b3b9F015b0aC88616A463B35568052AEF)
|
||||||
|
- 目的: L1上のL2ブロックのファイナライゼーションを処理
|
||||||
|
|
||||||
|
## レイヤー2コントラクト(Status Networkテストネット)
|
||||||
|
|
||||||
|
これらのコントラクトはStatus Networkテストネットにデプロイされています。[Status Network Explorer](https://sepoliascan.status.network)で確認できます。
|
||||||
|
|
||||||
|
### ブリッジコントラクト
|
||||||
|
- **L2トークンブリッジプロキシ**
|
||||||
|
- アドレス: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||||
|
- 目的: L2上のトークンブリッジング操作を管理
|
||||||
|
|
||||||
|
### インフラストラクチャコントラクト
|
||||||
|
- **L2フォーセット**
|
||||||
|
- アドレス: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||||
|
- 目的: ユーザーにテストネットトークンを配布
|
||||||
|
|
||||||
|
- **L2アンカリング**
|
||||||
|
- アドレス: [`0x24B5eD2763129D6cBDEfE32e08558D2095132560`](https://sepoliascan.status.network/address/0x24B5eD2763129D6cBDEfE32e08558D2095132560)
|
||||||
|
- 目的: L1とL2間の状態アンカリングを管理
|
||||||
|
|||||||
+11
-1
@@ -1 +1,11 @@
|
|||||||
# Tokens
|
# トークン
|
||||||
|
|
||||||
|
Status Network上でサポートされているトークンとそのコントラクトアドレスの最新リストについては、公式の[Status Networkトークンリストリポジトリ](https://github.com/status-im/status-network-token-list)をご参照ください。
|
||||||
|
|
||||||
|
このリポジトリには以下が含まれています:
|
||||||
|
- L1(Sepolia)とL2(Status Network)両方のトークンアドレス
|
||||||
|
- トークンのメタデータ(小数点以下の桁数、シンボルなど)
|
||||||
|
- ブリッジコントラクトのマッピング
|
||||||
|
- Status Networkにデプロイされているアプリケーショントークン
|
||||||
|
|
||||||
|
トークンリストは、トークンブリッジング操作の正確性とセキュリティを確保するため、定期的に維持・更新されています。
|
||||||
|
|||||||
@@ -1,12 +1,20 @@
|
|||||||
# Network Details
|
# ネットワークの詳細
|
||||||
|
|
||||||
## Status Testnet
|
## Status テストネット
|
||||||
|
|
||||||
| Name | Value |
|
| 名前 | 値 |
|
||||||
|---------------------|-------|
|
|---------------------|------------------------------------------|
|
||||||
| **Network Name** | |
|
| **ネットワーク名** | Status Network Testnet |
|
||||||
| **RPC Endpoint** | |
|
| **RPC エンドポイント** | https://public.sepolia.rpc.status.network |
|
||||||
| **Chain ID** | |
|
| **チェーンID** | 1660990954 |
|
||||||
| **Currency Symbol** | |
|
| **通貨シンボル** | ETH |
|
||||||
| **Block Explorer** | |
|
| **ブロックエクスプローラー** | https://sepoliascan.status.network |
|
||||||
| **Bridge** | |
|
| **ブリッジ** | https://bridge.status.network |
|
||||||
|
|
||||||
|
これらはStatus Networkテストネットの公式ネットワーク詳細です。これらの詳細は以下の用途に使用できます:
|
||||||
|
- ウォレットへのネットワークの追加
|
||||||
|
- 開発環境の設定
|
||||||
|
- ネットワークへのdAppsの接続
|
||||||
|
- スマートコントラクトの検証
|
||||||
|
|
||||||
|
ウォレットへのネットワークの追加方法については、[Status Network追加ガイド](./add-status-network.md)をご参照ください。
|
||||||
|
|||||||
@@ -1,28 +1,56 @@
|
|||||||
---
|
---
|
||||||
id: index
|
id: index
|
||||||
title: ステータスネットワークの紹介
|
title: Status Networkへようこそ
|
||||||
|
description: Status Networkは、シームレスで手数料無料の分散型アプリケーションを実現するガスレスなレイヤー2ブロックチェーンネットワークです。簡単なウォレット設定、フォーセット、デプロイメントツールで開発を始めましょう。
|
||||||
|
keywords: [Status Network, レイヤー2, ガスレスブロックチェーン, イーサリアムスケーリング, L2, バリディウム, web3開発, dapp開発, ブロックチェーン開発]
|
||||||
slug: /
|
slug: /
|
||||||
sidebar_position: 1
|
sidebar_position: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
# ステータスネットワークへようこそ
|
# Status Network: ガスレスなレイヤー2ネットワーク
|
||||||
|
|
||||||
ブロックチェーン体験を再構築する暗号ソーシャルプレイグラウンド、**ステータスネットワーク**へようこそ!最先端の[LineaのZK-EVM技術](https://docs.linea.build/architecture)上に構築された**EVMと同等のイーサリアムレイヤー2ロールアップ**として、ステータスネットワークは他のプラットフォームとは一線を画すユニークな機能を提供します。
|
Status Networkは、ソーシャルアプリとゲームに最適化された初のネイティブガスレスイーサリアムL2で、ネイティブ収益とDEX手数料を通じて開発者向けの持続可能な公的資金を提供します。Linea zkEVMスタック上に構築され、革新的な資金調達モデルを通じて経済的持続可能性を確保しながら、ガスフリーの高性能トランザクションを提供します。
|
||||||
|
|
||||||
## 私たちのユニークな点は?
|
## 主な特徴
|
||||||
|
|
||||||
### 💰 ネイティブなETHとDAIのイールド
|
- **ガスレストランザクション**
|
||||||
|
|
||||||
あなたの**ETH**と**DAI**資産で持続的で魅力的なイールドをお楽しみください!私たちはレイヤー2ソリューションの中でも独特な機能であるネイティブなイールド生成を提供しており、ネットワークに参加しながら暗号資産を手軽に増やすことができます。
|
開発者はシームレスな体験を作成でき、ユーザーはガス料金を気にすることなく取引できます。
|
||||||
|
|
||||||
### 🏆 $AURAトークンを獲得
|
- **ネイティブ収益と手数料**
|
||||||
|
|
||||||
**リアルタイム**でのエンゲージメントに対して報酬を獲得しましょう!ネットワーク活動に参加し、**$SNTをステーキング**して**$AURAトークン**を獲得できます。取引、ステーキング、コミュニティへの関与を通じて、より多くの相互作用をするほど、活気あるコミュニティ内での影響力が増します。あなたの$AURAは、ネットワークの未来を形作る上であなたの声を強めます。
|
L2の運営と開発者をサポートするため、Status NetworkはDEXから始まるネイティブアプリからの収益と手数料の組み合わせによって資金を調達します。
|
||||||
|
|
||||||
### 🔒 遊び心あるプライバシー
|
- **持続可能な公的資金**
|
||||||
|
|
||||||
**安全で楽しい**プライバシー機能を体験してください!私たちはプライバシーは基本的な権利であり、複雑さなしに誰もがアクセスできるべきだと信じています。使いやすいプライバシーツールにより、安全なやり取りを楽しくし、従来の複雑なプライバシー技術の概念から脱却します。
|
トークン保有者によって管理されるアプリ資金プールは、ネイティブ収益と手数料からオンチェーンビルダーに継続的に資本を配分します。
|
||||||
|
|
||||||
---
|
- **高性能な実行**
|
||||||
|
|
||||||
ステータスネットワークに参加して、**あなたの積極的な参加が本当に未来を形作る**、ユニークでプライバシー重視のやりがいのある暗号コミュニティの一員になりましょう!一緒に暗号の遊び場を作りましょう!
|
Status NetworkはLineaのzkEVMロールアップスタック上に構築され、高速で安全なトランザクションを保証します。
|
||||||
|
|
||||||
|
- **RLNによるスパム保護**
|
||||||
|
|
||||||
|
Rate-Limiting Nullifiers (RLN)は、ユーザーとアプリケーションごとの無料トランザクションの公平な割り当てを維持しながら、スパムとDDoS攻撃を防止します。
|
||||||
|
|
||||||
|
- **IFTとの深い統合**
|
||||||
|
|
||||||
|
Status NetworkはStatus Wallet、Keycard、Waku、Codexなど、[IFT](https://free.technology)の一部と自然に統合されています。
|
||||||
|
|
||||||
|
## 今すぐ開発を始めましょう
|
||||||
|
|
||||||
|
説明部分をスキップして直接開発を始めたいですか?以下が始め方です:
|
||||||
|
|
||||||
|
1. [Status NetworkをウォレットへAdd](/general-info/add-status-network)
|
||||||
|
2. [テストネットETHを入手](/tools/testnet-faucets)
|
||||||
|
3. [アセットをブリッジ](/general-info/bridge/bridging-testnet)
|
||||||
|
4. [最初のコントラクトをデプロイ](/tutorials/deploying-contracts/using-remix)
|
||||||
|
|
||||||
|
## サポート&リソース
|
||||||
|
|
||||||
|
コミュニティに参加し、必要なリソースにアクセスしましょう:
|
||||||
|
- [Telegramビルダーズコミュニティ](https://t.me/statusl2)に参加
|
||||||
|
- [ネットワーク詳細](/general-info/network-details)を確認
|
||||||
|
- [コントラクトアドレス](/general-info/contract-addresses/testnet-contracts)を閲覧
|
||||||
|
|
||||||
|
素晴らしいものを作る準備はできていますか?今すぐフリーネットワークでの旅を始めましょう!
|
||||||
|
|||||||
@@ -1,38 +1,37 @@
|
|||||||
# クイックスタート
|
# クイックスタート
|
||||||
|
|
||||||
このセクションでは、**Status Network テストネット**で10分以内にサンプルコントラクトをデプロイする方法を紹介します。
|
このセクションでは、10分以内に**Status Networkテストネット**にサンプルコントラクトをデプロイする方法を説明します。
|
||||||
|
|
||||||
シンプルさのために、Remix IDEを使用してStatus Network上でスマートコントラクトをデプロイする方法を見てみましょう。
|
簡単のため、Remix IDEを使用してStatus Networkにスマートコントラクトをデプロイする方法を見ていきましょう。
|
||||||
|
|
||||||
## 準備を整える
|
## 準備
|
||||||
|
|
||||||
始める前に:
|
始める前に:
|
||||||
|
|
||||||
- **MetaMaskにStatus Network テストネットを追加する**:
|
1. **Status NetworkテストネットをMetaMaskに追加**:
|
||||||
|
|
||||||
MetaMaskにStatus Network テストネットを追加する手順については、[Status Network ドキュメント](/general-info/add-status-network)をご覧ください。ネットワークのRPC URL、チェーンID、その他の詳細が必要です。
|
MetaMaskにStatus Networkテストネットを追加する方法については、[Status Network追加ガイド](/general-info/add-status-network)の手順に従ってください。
|
||||||
|
|
||||||
- **テストネットトークンを取得する**:
|
2. **テストETHを入手**:
|
||||||
|
|
||||||
このガイドでは、Status NetworkでテストネットETHを取得していることを前提としています。テストトークンをリクエストするには、[Status Network テストネットファウセット](#)を使用できます。
|
SepoliaのETHとStatus NetworkのETHの両方が必要です:
|
||||||
|
- まず[Sepoliaフォーセット](https://faucet.status.network)からSepolia ETHを入手
|
||||||
|
- 次に[Statusブリッジ](https://bridge.status.network)を使用してETHをStatus Networkにブリッジ
|
||||||
|
- または、[テストネットフォーセット](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)から直接Status Network ETHを入手
|
||||||
|
|
||||||
準備ができました!
|
これで準備完了です!
|
||||||
|
|
||||||
## Remixとサンプルコード
|
## Remixとサンプルコード
|
||||||
|
|
||||||
**Remix**は、スマートコントラクトを開発するためのセットアップ不要のツールです。簡単に始められ、シンプルなデプロイプロセス、デバッグ、スマートコントラクトとのやり取りなどが可能です。デプロイされたスマートコントラクトと対話し、迅速な変更をテストするのに最適なツールです。
|
**Remix**は、セットアップ不要のスマートコントラクト開発ツールです。簡単に始められ、シンプルなデプロイプロセス、デバッグ、スマートコントラクトとの対話などが可能です。
|
||||||
|
|
||||||
このチュートリアルでは、Remixのサンプルとして提供されている`SimpleStorage.sol`スマートコントラクトをデプロイしますが、ご自身のコードを使用することもできます。
|
このチュートリアルでは、シンプルな`SimpleStorage.sol`コントラクトをデプロイします:
|
||||||
|
|
||||||
サンプルコードはこちらです:
|
|
||||||
|
|
||||||
```solidity
|
```solidity
|
||||||
// SPDX-License-Identifier: GPL-3.0
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.0;
|
||||||
pragma solidity ^0.8.24;
|
|
||||||
|
|
||||||
contract SimpleStorage {
|
contract SimpleStorage {
|
||||||
|
|
||||||
uint256 number;
|
uint256 number;
|
||||||
|
|
||||||
function store(uint256 num) public {
|
function store(uint256 num) public {
|
||||||
@@ -45,70 +44,75 @@ contract SimpleStorage {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> **注意:** このコントラクトは、数値を保存し、その数値を読み取ることができます。
|
> **注意:** このコントラクトは数値を保存し、その数値を読み取ることができます。
|
||||||
|
|
||||||
## デプロイの手順
|
## デプロイの手順
|
||||||
|
|
||||||
1. **サンプルコードをコピーする**:
|
1. **サンプルコードをコピー**:
|
||||||
|
|
||||||
- サンプルコードをコピーし、Remixで`SimpleStorage.sol`という新しいファイルに貼り付けます。
|
- サンプルコードをコピーし、Remixで`SimpleStorage.sol`という新しいファイルに貼り付けます。
|
||||||
|
|
||||||
2. **スマートコントラクトをコンパイルする**:
|
2. **スマートコントラクトをコンパイル**:
|
||||||
|
|
||||||
- **Solidity Compiler**タブ(左のサイドバー)に移動します。
|
- 左サイドバーの**Solidityコンパイラー**タブに移動。
|
||||||
- コンパイラのバージョンがコントラクトのプラグマ文(`0.8.24`)と一致していることを確認します。
|
- コンパイラーバージョンが0.8.0以上であることを確認。
|
||||||
- **「Compile SimpleStorage.sol」**をクリックします。
|
- **「SimpleStorage.solをコンパイル」**をクリック。
|
||||||
- コントラクトコードを変更するたびに自動的にコンパイルするには、**「Auto compile」**を有効にできます。
|
- コントラクトコードを変更するたびに自動コンパイルするには**「自動コンパイル」**を有効にできます。
|
||||||
|
|
||||||
3. **スマートコントラクトをデプロイする**:
|
3. **スマートコントラクトをデプロイ**:
|
||||||
|
|
||||||
- **Deploy & Run Transactions**タブに切り替えます。
|
- **デプロイ&実行トランザクション**タブに切り替え。
|
||||||
- **「Environment」**ドロップダウンメニューで、**「Injected Provider - MetaMask」**を選択します。これにより、RemixがMetaMaskウォレットに接続されます。
|
- **「環境」**ドロップダウンメニューで**「Injected Provider - MetaMask」**を選択。
|
||||||
- MetaMaskがRemixへの接続を求める場合があります。接続を確認してください。
|
- MetaMaskがRemixへの接続を求めることがあります。接続を確認してください。
|
||||||
- MetaMaskで**Status Network テストネット**が選択されていることを確認します。
|
- MetaMaskで**Status Networkテストネット**が選択されていることを確認。
|
||||||
- **「Contract」**の下で、`SimpleStorage`が選択されていることを確認します。
|
- **「コントラクト」**で`SimpleStorage`が選択されていることを確認。
|
||||||
- **「Deploy」**をクリックします。
|
- **「デプロイ」**をクリック。
|
||||||
- MetaMaskがポップアップし、トランザクションの確認を求めます。
|
- MetaMaskがポップアップし、トランザクションの確認を求めます。ガス代はETHで支払われます。
|
||||||
- トランザクションの詳細を確認し、**「Confirm」**をクリックします。
|
- トランザクションの詳細を確認し、**「確認」**をクリック。
|
||||||
- トランザクションがマイニングされるのを待ちます。RemixやMetaMaskでステータスを追跡できます。
|
- トランザクションがマイニングされるのを待ちます。
|
||||||
|
|
||||||
**おめでとうございます!** Status Network上で初めてのスマートコントラクトをデプロイしました。
|
4. **デプロイを確認**:
|
||||||
|
|
||||||
|
- デプロイ後、Remixからコントラクトのアドレスをコピー
|
||||||
|
- [Status Networkエクスプローラー](https://sepoliascan.status.network)で確認
|
||||||
|
|
||||||
|
**おめでとうございます!** Status Networkに最初のスマートコントラクトをデプロイしました。
|
||||||
|
|
||||||
## デプロイしたスマートコントラクトと対話する
|
## デプロイしたスマートコントラクトと対話する
|
||||||
|
|
||||||
1. **デプロイされたコントラクトにアクセスする**:
|
1. **デプロイしたコントラクトにアクセス**:
|
||||||
|
|
||||||
- Remixで、**「Deployed Contracts」**セクションの下に、デプロイされた`SimpleStorage`コントラクトが表示されます。
|
- Remixの**「デプロイされたコントラクト」**セクションで、デプロイした`SimpleStorage`コントラクトが表示されます。
|
||||||
|
|
||||||
2. **数値を保存する**:
|
2. **数値を保存**:
|
||||||
|
|
||||||
- デプロイされたコントラクトを展開し、その関数を表示します。
|
- デプロイされたコントラクトを展開して関数を表示。
|
||||||
- **「store」**関数の入力フィールドに、数値(例:`42`)を入力します。
|
- **「store」**関数の入力フィールドに数値(例:`42`)を入力。
|
||||||
- **「transact」**をクリックします。
|
- **「transact」**をクリック。
|
||||||
- MetaMaskがトランザクションの確認を求めます。**「Confirm」**をクリックします。
|
- MetaMaskがトランザクションの確認を求めます。ガス代はETHで支払われます。
|
||||||
- トランザクションが確認されるのを待ちます。
|
- トランザクションが確認されるのを待ちます。
|
||||||
|
|
||||||
3. **数値を取得する**:
|
3. **数値を取得**:
|
||||||
|
|
||||||
- **「retrieve」**関数をクリックします。
|
- **「retrieve」**関数をクリック。
|
||||||
- 保存された数値がボタンの下に表示されます。
|
- ボタンの下に保存された数値が表示されます。
|
||||||
|
- これはview関数なので、ガス代は不要です。
|
||||||
|
|
||||||
## 次のステップ
|
## 次のステップ
|
||||||
|
|
||||||
- **サポートを受ける**:
|
- **サポートを受ける**:
|
||||||
|
- サポートが必要な場合は[Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||||
- 問題が発生したり質問がある場合は、[Status Network サポート](https://status.app)を訪れるか、コミュニティチャンネルに参加して支援を受けてください。
|
- 詳細については[ネットワークの詳細](/general-info/network-details)をチェック
|
||||||
|
- Status Networkへの[トークンのブリッジ](/general-info/bridge/bridging-testnet)について学ぶ
|
||||||
|
|
||||||
## まとめ
|
## まとめ
|
||||||
|
|
||||||
あなたは次のことに成功しました:
|
以下のことを達成しました:
|
||||||
|
- Status Networkテストネットと対話するための環境設定
|
||||||
|
- ブリッジまたはフォーセットを通じてテストネットETHを入手
|
||||||
|
- Remix IDEとMetaMaskを使用してスマートコントラクトをデプロイ
|
||||||
|
- 数値の保存と取得によってデプロイしたコントラクトと対話
|
||||||
|
|
||||||
- Status Network テストネットと対話するための環境を設定しました。
|
より高度な開発については、以下を使用したデプロイのガイドをチェックしてください:
|
||||||
- Remix IDEとMetaMaskを使用してスマートコントラクトをデプロイしました。
|
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||||
- 数値の保存と取得によって、デプロイしたコントラクトと対話しました。
|
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
もっと深く学びたい場合は、より複雑なスマートコントラクトを探求してみてください。追加のチュートリアルは[こちら](/tutorials/ethers-tutorial)からご覧いただけます。
|
|
||||||
|
|
||||||
**楽しいコーディングを!**
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
# Audits
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Branding Guidelines
|
|
||||||
@@ -1 +1,24 @@
|
|||||||
# Official Links
|
# 公式リンク
|
||||||
|
|
||||||
|
このページにはStatus Networkエコシステムの全ての公式リンクが掲載されています。
|
||||||
|
|
||||||
|
## 主要リソース
|
||||||
|
- **ウェブサイト**: [status.network](https://status.network)
|
||||||
|
- **ドキュメント**: [docs.status.network](https://docs.status.network)
|
||||||
|
- **GitHub**: [github.com/status-im](https://github.com/status-im)
|
||||||
|
|
||||||
|
## ネットワークツール
|
||||||
|
- **ブリッジ**: [bridge.status.network](https://bridge.status.network)
|
||||||
|
- **ブロックエクスプローラー**: [sepoliascan.status.network](https://sepoliascan.status.network)
|
||||||
|
- **RPCエンドポイント**: `https://public.sepolia.rpc.status.network`
|
||||||
|
- **フォーセット**: [faucet.status.network](https://faucet.status.network)
|
||||||
|
|
||||||
|
## 開発リソース
|
||||||
|
- **トークンリストリポジトリ**: [github.com/status-im/status-network-token-list](https://github.com/status-im/status-network-token-list)
|
||||||
|
- **コントラクト検証**: [sepoliascan.status.network/verify-contract](https://sepoliascan.status.network/contract-verification)
|
||||||
|
|
||||||
|
## コミュニティ&サポート
|
||||||
|
- **Telegramコミュニティ**: [t.me/statusl2](https://t.me/statusl2)
|
||||||
|
- **X/twitter**: [x.com/statusL2](https://x.com/statusL2)
|
||||||
|
|
||||||
|
ウォレットへのネットワークの追加方法については、[ネットワーク追加ガイド](/general-info/add-status-network)をご参照ください。
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
# Status Network Security Model
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Security Upgrades
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# $AURA token
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# 経済モデル
|
||||||
|
|
||||||
|
従来のL2がガス料金から収益を生み出すのとは異なり、Status Networkは根本的に異なるパラダイムで運営されています:ユーザーとアプリケーションは取引手数料を支払いません。これにより、ネットワークの維持と持続のために代替的な収入源が必要となります。ガス料金がゼロに向かい、ロールアップが分散化に向かう中、L2のビジネスモデルは実行ベースの収益(シーケンサー手数料)からネットワーク上の資産取引量と利回り生成型の総ロック値(TVL)の収益化へとシフトする必要があります。
|
||||||
|
|
||||||
|
## 収益源
|
||||||
|
|
||||||
|
持続可能性を達成するため、Status Networkは以下の収入源から収益を得ています:
|
||||||
|
|
||||||
|
- **ネイティブ収益手数料**: Status Networkにブリッジされた資産(当初はETHとDAI)は、利回り生成型の等価物(stETHとsDAI)に再活用されます。生成された利回りの一部(30%)がネットワークの運営コストに割り当てられます。
|
||||||
|
|
||||||
|
- **ネイティブDEX取引手数料**: Status Networkには、取引手数料がネットワーク運営に貢献するネイティブDEXが搭載されています。ネイティブDEXの流動性提供者は、通常のLP手数料に加えてネイティブ収益から追加のインセンティブを得ることができます。
|
||||||
|
|
||||||
|
- **プレミアムガス料金**: 無料取引枠を超えるユーザーは、プレミアム料金を支払う必要があり、これはStatus NetworkとRLN(スパム防止メカニズム)の間で分配され、公平な利用を促進し、乱用を防止します。
|
||||||
|
|
||||||
|
- **将来のネイティブアプリ**: ネットワークは後に、レンディングマーケット、NFTマーケットプレイス、トークンローンチパッドなどの追加の収益源を導入し、それぞれが生成された手数料の一部をL2の運営に還元します。
|
||||||
|
|
||||||
|
このモデルにより、Status Networkは無料取引を提供しながら、経済的な持続可能性を確保します。TVLとそれに関連するネイティブ収益、および取引量を活用することで、Status Networkはユーザー、流動性提供者、開発者間のインセンティブを調整し、インフレ的なトークン発行に依存しない自己持続的なエコシステムを作り出します。
|
||||||
|
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# カルミックトークノミクス
|
||||||
|
|
||||||
|
東洋の伝統では、カルマは過去の行動が未来の状態を形作るという原理を表します。同様に、Status Networkでは、すべての前向きな行動と貢献がカルマを蓄積し、ネットワークの資金調達とインセンティブに対するより大きな影響力を与えます。カルマ($KARMA)は、ステーキング、ブリッジング、流動性提供、構築に報酬を与える譲渡不可能なガバナンストークンです。ユーザーやアプリがL2の流動性や活動に貢献すればするほど、資金配分、流動性インセンティブ、ネットワークのロードマップとパラメータに対する投票力を獲得します。
|
||||||
|
|
||||||
|
## カルマの獲得方法
|
||||||
|
|
||||||
|
カルマは6つの主要なメカニズムを通じて発行され、取得することはできません。これにより、Statusチームを含むいかなる組織も、アクセスにおいて優位性を持つことはありません。全員が同じルールの下でカルマを獲得し、それはネットワークへの貢献のみに基づいており、ネットワーク内での意味のある関与の純粋な表現であることを保証します:
|
||||||
|
|
||||||
|
1. **SNTのステーキング** – SNTをステーキングする人は誰でも、比例的にカルマ報酬を受け取ります。SNTをステーキングまたはロックする期間が長いほど、カルマの獲得率が高くなります。
|
||||||
|
|
||||||
|
2. **利回り生成資産のブリッジング** – ETHとDAI(初期段階で、後に他の資産が追加される予定)をStatus Networkにブリッジすることでカルマを獲得できます。
|
||||||
|
|
||||||
|
3. **流動性の提供** – ネイティブDEXでは、誰でもキュレートされたプールに流動性を提供して、手数料、ネイティブ収益報酬、およびカルマを獲得できます。
|
||||||
|
|
||||||
|
4. **アプリケーションの構築と使用** – ユーザーと開発者は、取引量とアプリの牽引力を通じてカルマを獲得します。アプリの成功度が高いほど、その開発者とユーザーに割り当てられるカルマが多くなります。
|
||||||
|
|
||||||
|
5. **プレミアムガス料金の支払い** – ガスレススループット制限を超えるユーザーとアプリは、ペナルティとしてプレミアムガス料金を支払う必要がありますが、その見返りとしてカルマも獲得します。カルマを増やすことで、実際にはより高いガスフリー取引制限を解除できる可能性があります。
|
||||||
|
|
||||||
|
6. **直接寄付** – 公的資金プールに直接貢献する人は誰でもカルマを受け取ります。
|
||||||
|
|
||||||
|
カルマ発行配分の初期化パラメータは近日中に発表される予定です。将来的に、カルマ保有者は必要に応じてこれらのパラメータを投票によって修正することができます。最終的な目標は、ネットワークのより持続可能な成長のために、ステークホルダー間の連携を最大化することです。
|
||||||
|
|
||||||
|
## カルマの用途
|
||||||
|
|
||||||
|
- **ガスレス取引**: アカウントがプラスのカルマ残高を持つと同時に、一定量の無料取引へのアクセスが可能になります。階層システムにより、より高いカルマを持つユーザーとアプリは1日あたりより多くの無料取引を享受できます。動的なレート制限メカニズムがスパムを防止し、ネットワークの公平な使用を確保します。
|
||||||
|
|
||||||
|
- **ガバナンストークン**: カルマ保有者はアプリ資金プールの配分について投票します。より高いカルマスコアは資金配分においてより大きな重みを持ち、お気に入りのアプリケーションやプロトコルを優先することができます。
|
||||||
|
|
||||||
|
- **ネイティブDEX流動性インセンティブ**: カルマ保有者は、ネイティブDEX上のすべてのキュレートされた流動性プールのインセンティブゲージについて投票します。
|
||||||
|
|
||||||
|
- **ネットワークポリシーの決定**: カルマ保有者は、ネイティブ収益と手数料の分配、カルマの発行率と配分などを含むL2の経済的および運営パラメータについて投票します。
|
||||||
|
|
||||||
|
- **ロイヤルティと評価システム**: カルマはソウルバウンドであるため、高いカルマスコアはエコシステム内のパワーユーザーと主要な貢献者を示します。ユーザーは徐々に影響力を蓄積し、追加のインセンティブと特典(例:ネットワーク上に構築されるアプリからの報酬や、質の高いユーザーを引き付けようとするアプリからの報酬)にアクセスできるようになる可能性があります。
|
||||||
|
|
||||||
|
- **投票のための流動的な助成金**: 将来的に、アプリ、プロトコル、流動性提供者は、投票インセンティブとしてカルマ保有者に流動的な助成金を提供することができるようになります。
|
||||||
|
|
||||||
|
## フライホイール効果
|
||||||
|
|
||||||
|
1. ユーザーは利回り生成資産をブリッジし、カルマを獲得し、アプリと流動性提供者への資金を増やします。
|
||||||
|
|
||||||
|
2. より高いアプリ資金がより多くの新しいアプリをネットワークにデプロイするよう引き付けます。
|
||||||
|
|
||||||
|
3. 資金を受けたアプリがより多くのユーザーを獲得し、ネイティブDEXの取引量を増加させます。
|
||||||
|
|
||||||
|
4. より高いネイティブ収益と手数料が、ユーザーが追加の利回り生成資産をブリッジすることでより多くのTVLを引き付けます。
|
||||||
|
|
||||||
|
TVLと採用が成長するにつれて、資金調達の機会も増加し、ネットワークの持続可能性を強化します。
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# パブリックファンディング
|
||||||
|
|
||||||
|
## アプリ資金プールと公的資金調達メカニズム
|
||||||
|
|
||||||
|
Status Networkの最も重要なコンポーネントの1つは、ネットワーク上に構築されたアプリケーションに持続可能な財政支援を提供するように設計されたアプリ資金プールです。開発者が助成金や短期的なインセンティブに依存する従来のブロックチェーンエコシステムとは異なり、Status Networkはネットワークの活動とTVLによって駆動される自己持続的なメカニズムを通じて継続的な資金提供を確保します。
|
||||||
|
|
||||||
|
### なぜパブリックファンディングが重要か
|
||||||
|
|
||||||
|
パブリックファンディングは、ビルダーが搾取的な外部資金調達メカニズムに依存することなく資本にアクセスできることを確保するために不可欠です。Status組織は、オープンソースプロジェクトと分散型インフラストラクチャへの投資において長い歴史を持ち、パブリックグッズへのコミットメントを強化しています。アプリ資金プールは、開発者がネットワーク自体から直接財政支援を受けることができる分散型のコミュニティ主導の配分メカニズムを提供することで、この精神を拡張します。
|
||||||
|
|
||||||
|
### アプリ資金プールの仕組み
|
||||||
|
|
||||||
|
- **ネイティブ収益と手数料による資金提供**: ブリッジされた資産(当初はETHとDAI)から生成される収益とネイティブDEXスワップ手数料の大部分が、直接資金プールに流れ込みます。
|
||||||
|
|
||||||
|
- **カルマ保有者による管理**: 資金の配分はカルマトークン保有者によって決定され、コミュニティ主導の意思決定プロセスを確保します:コミュニティがあなたのアプリを気に入れば、資金を得ることができます。
|
||||||
|
|
||||||
|
- **透明で公平な配分**: 初期段階では、品質管理を維持するために資金受領者の数は制限されますが、プールが成長するにつれて、より多くのプロジェクトがサポートされるようになります。
|
||||||
|
|
||||||
|
- **ビルダーとネットワークの成長の連携**: ネットワークの利用と採用に積極的に貢献する開発者は、カルマの形でより多くの投票力を受け取り、自分たちに投票することができ、価値のあるアプリケーションを作成するインセンティブを強化します。
|
||||||
|
|
||||||
|
このメカニズムにより、ビルダーは継続的で非搾取的な資本源を確保でき、成功するアプリケーションの作成に集中することができます。
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# SNTステーキング
|
||||||
|
|
||||||
|
## Status Network Token (SNT)
|
||||||
|
|
||||||
|
2017年6月に立ち上げられたStatus Network Token (SNT)は、メッセンジャー、web3ウォレット、イーサリアムブロックチェーン上の分散型アプリケーションへのゲートウェイを組み合わせた分散型プラットフォームであるStatusエコシステムのネイティブユーティリティトークンとして機能しています。SNTは、分散型でユーザー主導のエコシステムを促進するように設計され、保有者がガバナンスに参加し、機能にアクセスし、ネットワーク内のさまざまな活動に参加することを可能にします。長年にわたり、SNTはStatusアプリ内でのユーザーインタラクションを促進し、提案への投票、Ethereum Name Service(ENS)名の作成、独占機能へのアクセスを可能にしてきました。
|
||||||
|
|
||||||
|
Status NetworkテストネットでのSNTステーキング契約の展開が近づく中、SNT保有者はまもなくトークンをステーキングし、報酬を獲得し、ネットワークのガバナンスとインセンティブ付与に貢献する機会を得ることができます。
|
||||||
|
|
||||||
|
## ステーキング契約
|
||||||
|
|
||||||
|
ステーキング契約は、長期的なコミットメントに報酬を与えるマルチプライヤーポイントを導入します。SNT保有者には2つのステーキングオプションがあります:
|
||||||
|
|
||||||
|
1. **標準ステーキング**
|
||||||
|
|
||||||
|
ユーザーはロックアップ期間なしでSNTをステーキングできます。
|
||||||
|
時間とともに徐々にマルチプライヤーポイントを受け取ります。
|
||||||
|
ユーザーが4年間アンステーキングせずにステーキングを続けると、最大4倍のマルチプライヤーを達成します。
|
||||||
|
|
||||||
|
2. **ロックドステーキング**
|
||||||
|
|
||||||
|
ユーザーは事前に決められた期間(最大4年)SNTをロックできます。
|
||||||
|
ボーナスマルチプライヤーポイントと、事前にロックする年数ごとのボーナスマルチプライヤーを即座に受け取ります。
|
||||||
|
例えば、4年間ロックすると、即座に5倍のマルチプライヤー(基本1倍+ロックによる4倍)が付与されます。
|
||||||
|
4年間の期間中、標準ステーキングと同様に追加のマルチプライヤーポイントを蓄積し続け、最終的に最大9倍の総マルチプライヤーに達します。
|
||||||
|
|
||||||
|
### SNTステーキングの利点
|
||||||
|
|
||||||
|
- **カルマの獲得**: ステーカーはカルマを蓄積し、これによりガバナンス力とガスレス取引へのアクセスが付与されます。
|
||||||
|
- **より高い無料取引枠**: より多くのカルマを持つユーザーは、より大きなガスレス取引制限を享受できます。
|
||||||
|
- **強化されたガバナンスの影響力**: カルマを蓄積することで、SNTステーカーは公的資金の配分、流動性インセンティブ付与、ネットワークポリシーの決定において重要な役割を果たすことができます。
|
||||||
|
- **より高い評価**: SNTをステーキングすることで、保有者はエコシステムとの連携を示し、カルマの形で評価スコアを示すことができます。エコシステム内のアプリは、高い評価を持つユーザーを引き付ける強いインセンティブを持っています。
|
||||||
@@ -1 +0,0 @@
|
|||||||
# $SNT Token
|
|
||||||
@@ -1 +1,35 @@
|
|||||||
# Block Explorers
|
# Status Networkテストネットエクスプローラー
|
||||||
|
|
||||||
|
Status Networkブロックエクスプローラーは[sepoliascan.status.network](https://sepoliascan.status.network)で利用できます。
|
||||||
|
|
||||||
|
### 機能
|
||||||
|
- トランザクションの詳細とステータスの確認
|
||||||
|
- トークンの転送と残高の追跡
|
||||||
|
- スマートコントラクトのソースコード検証
|
||||||
|
- ガス価格とネットワークアクティビティの監視
|
||||||
|
- 検証済みスマートコントラクトの表示と対話
|
||||||
|
- 任意のアドレスのトークン保有状況の追跡
|
||||||
|
|
||||||
|
## Sepoliaエクスプローラー(レイヤー1)
|
||||||
|
|
||||||
|
Sepolia(レイヤー1)上のトランザクションを追跡するには、[Sepolia Etherscan](https://sepolia.etherscan.io)を使用します。
|
||||||
|
|
||||||
|
これは特に以下の用途に便利です:
|
||||||
|
- L1からL2へのブリッジトランザクションの監視
|
||||||
|
- トークンの入出金の追跡
|
||||||
|
- L1コントラクトの対話の確認
|
||||||
|
|
||||||
|
## コントラクト検証
|
||||||
|
|
||||||
|
Status Networkエクスプローラーでスマートコントラクトを検証するには:
|
||||||
|
|
||||||
|
1. [コントラクト検証](https://sepoliascan.status.network/contract-verification)に移動
|
||||||
|
2. コントラクトアドレスを入力
|
||||||
|
3. ソースコードをアップロードしコンパイル詳細を提供
|
||||||
|
4. 検証のために送信
|
||||||
|
|
||||||
|
検証が完了すると、コントラクトのソースコードが公開され、ユーザーはエクスプローラーを通じて直接対話できるようになります。
|
||||||
|
|
||||||
|
## API アクセス
|
||||||
|
|
||||||
|
Status Networkエクスプローラーは開発者向けにAPIエンドポイントを提供しています。APIのドキュメントは近日公開予定です。
|
||||||
|
|||||||
@@ -1 +1,45 @@
|
|||||||
# Bridge
|
# 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)
|
||||||
|
|
||||||
|
### レイヤー2(Status Network)
|
||||||
|
- **トークンブリッジ**: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||||
|
|
||||||
|
## 機能
|
||||||
|
|
||||||
|
- **トークンブリッジング**: ネットワーク間でERC-20トークンを転送
|
||||||
|
- **ETHブリッジング**: SepoliaとStatus Network間でETHをブリッジ
|
||||||
|
- **トランザクション追跡**: ブリッジトランザクションのステータスを監視
|
||||||
|
- **ガス見積もり**: ブリッジ前に推定ガスコストを確認
|
||||||
|
|
||||||
|
## サポートされているトークン
|
||||||
|
|
||||||
|
サポートされているトークンとそのコントラクトアドレスの最新リストについては、[トークンリストリポジトリ](https://github.com/status-im/status-network-token-list)をご参照ください。
|
||||||
|
|
||||||
|
## ブリッジの使用
|
||||||
|
|
||||||
|
ブリッジの使用方法の詳細な手順や重要なセキュリティ上の考慮事項については、[ブリッジングガイド](../general-info/bridge/bridging-testnet.md)をご参照ください。
|
||||||
|
|
||||||
|
## ブリッジトランザクションの監視
|
||||||
|
|
||||||
|
以下を使用してブリッジトランザクションを監視できます:
|
||||||
|
- L2トランザクションには[Status Networkエクスプローラー](https://sepoliascan.status.network)
|
||||||
|
- L1トランザクションには[Sepolia Etherscan](https://sepolia.etherscan.io)
|
||||||
|
|
||||||
|
## サポート
|
||||||
|
|
||||||
|
ブリッジ使用中に問題が発生した場合:
|
||||||
|
- 一般的な解決策については[ブリッジングガイド](../general-info/bridge/bridging-testnet.md)をチェック
|
||||||
|
- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
# Data Indexers
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# General Tooling
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Interoperability
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Multisig Wallets
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Node Operators
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Oracles
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Randomness
|
|
||||||
@@ -1 +1,52 @@
|
|||||||
# RPCs
|
# RPCエンドポイント
|
||||||
|
|
||||||
|
Status Networkは、ネットワークとの対話を可能にする公開RPC(Remote Procedure Call)エンドポイントを提供しています。
|
||||||
|
|
||||||
|
## 公開RPC URL
|
||||||
|
|
||||||
|
```
|
||||||
|
https://public.sepolia.rpc.status.network
|
||||||
|
```
|
||||||
|
|
||||||
|
## RPCの使用
|
||||||
|
|
||||||
|
### MetaMaskへの追加
|
||||||
|
このRPCを使用してStatus Networkをウォレットに追加する方法については、[ネットワーク追加ガイド](../general-info/add-status-network.md)をご参照ください。
|
||||||
|
|
||||||
|
### 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戦略の実装を検討
|
||||||
|
|||||||
@@ -1 +1,34 @@
|
|||||||
# Testnet Faucets
|
# テストネットフォーセット
|
||||||
|
|
||||||
|
Status Networkテストネットを始めるには、SepoliaのETHとStatus Networkテストネットの両方のETHが必要です。
|
||||||
|
|
||||||
|
## Status Networkテストネットフォーセット
|
||||||
|
|
||||||
|
Status Networkテストネットフォーセットは[faucet.status.network](https://faucet.status.network)で利用できます。
|
||||||
|
|
||||||
|
### 詳細
|
||||||
|
- **フォーセットコントラクト**: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||||
|
- **配布量**: リクエストあたり0.1 ETH
|
||||||
|
- **クールダウン**: アドレスあたり1日1回のリクエスト
|
||||||
|
|
||||||
|
### テストネットETHの入手方法
|
||||||
|
|
||||||
|
1. [faucet.status.network](https://faucet.status.network)にアクセス
|
||||||
|
2. ウォレットを接続
|
||||||
|
3. 「資金をリクエスト」をクリック
|
||||||
|
4. ウォレットでトランザクションを確認
|
||||||
|
5. ETHがウォレットに表示されるのを待つ(通常数秒かかります)
|
||||||
|
|
||||||
|
## Sepolia ETH(ブリッジに必要)
|
||||||
|
|
||||||
|
Status Networkテストネットにアセットをブリッジするには、まずSepolia ETHが必要です。以下から入手できます:
|
||||||
|
|
||||||
|
2. [Alchemy Sepoliaフォーセット](https://www.alchemy.com/faucets/ethereum-sepolia)
|
||||||
|
3. [Metamask Sepoliaフォーセット](https://docs.metamask.io/developer-tools/faucet/)
|
||||||
|
|
||||||
|
Sepolia ETHを入手したら、[Status Networkブリッジ](https://bridge.status.network)を使用してStatus Networkテストネットにブリッジできます。
|
||||||
|
|
||||||
|
## サポート
|
||||||
|
|
||||||
|
フォーセットに問題が発生した場合:
|
||||||
|
- サポートについては[Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||||
|
|||||||
+208
-1
@@ -1 +1,208 @@
|
|||||||
# Using Foundry
|
# Foundryを使用したスマートコントラクトのデプロイ
|
||||||
|
|
||||||
|
このチュートリアルでは、Foundryを使用してStatus Networkテストネットにスマートコントラクトをデプロイする手順を説明します。
|
||||||
|
|
||||||
|
## 前提条件
|
||||||
|
|
||||||
|
開始する前に、以下が必要です:
|
||||||
|
|
||||||
|
- **Foundry**: [公式Foundryブック](https://book.getfoundry.sh/getting-started/installation)からインストール
|
||||||
|
- **Ethereumウォレット**: Status Networkテストネット用のプライベートキー
|
||||||
|
- **テストネットETH**: Status NetworkテストネットのETHが必要です
|
||||||
|
- Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます
|
||||||
|
- **基本知識**: Solidityとコマンドラインの基礎知識
|
||||||
|
|
||||||
|
## 達成目標
|
||||||
|
|
||||||
|
- Foundryプロジェクトの初期化
|
||||||
|
- 基本的なEthereumスマートコントラクトの作成
|
||||||
|
- Status Networkテストネットデプロイ用のFoundryの設定
|
||||||
|
- スマートコントラクトのデプロイ
|
||||||
|
|
||||||
|
## 手順
|
||||||
|
|
||||||
|
### 1. Foundryプロジェクトの初期化
|
||||||
|
|
||||||
|
まず、新しいFoundryプロジェクトを作成します:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 新規プロジェクトの作成
|
||||||
|
forge init hello_status
|
||||||
|
cd hello_status
|
||||||
|
|
||||||
|
# プライベートキー用の.envファイルを作成
|
||||||
|
touch .env
|
||||||
|
echo "PRIVATE_KEY=your_private_key_here" >> .env
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. スマートコントラクトの作成
|
||||||
|
|
||||||
|
`src/Counter.sol`を`HelloWorld.sol`に置き換えます:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
contract HelloWorld {
|
||||||
|
string public greet = "Hello, Status Network!";
|
||||||
|
|
||||||
|
function setGreet(string memory _greet) public {
|
||||||
|
greet = _greet;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGreet() public view returns (string memory) {
|
||||||
|
return greet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Status Network用のFoundryの設定
|
||||||
|
|
||||||
|
`foundry.toml`を作成または更新します:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[profile.default]
|
||||||
|
src = "src"
|
||||||
|
out = "out"
|
||||||
|
libs = ["lib"]
|
||||||
|
solc = "0.8.24"
|
||||||
|
|
||||||
|
[rpc_endpoints]
|
||||||
|
status_testnet = "https://public.sepolia.rpc.status.network"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. コントラクトのデプロイ
|
||||||
|
|
||||||
|
デプロイメントスクリプト`script/Deploy.s.sol`を作成します:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
import "forge-std/Script.sol";
|
||||||
|
import "../src/HelloWorld.sol";
|
||||||
|
|
||||||
|
contract DeployScript is Script {
|
||||||
|
function run() external {
|
||||||
|
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||||
|
|
||||||
|
vm.startBroadcast(deployerPrivateKey);
|
||||||
|
|
||||||
|
HelloWorld hello = new HelloWorld();
|
||||||
|
console.log("HelloWorld deployed to:", address(hello));
|
||||||
|
|
||||||
|
vm.stopBroadcast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
forgeを使用してデプロイします:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 環境変数の読み込み
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# Status Networkテストネットにデプロイ
|
||||||
|
forge script script/Deploy.s.sol:DeployScript \
|
||||||
|
--rpc-url https://public.sepolia.rpc.status.network \
|
||||||
|
--broadcast \
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. コントラクトとの対話
|
||||||
|
|
||||||
|
コントラクトと対話するスクリプト`script/Interact.s.sol`を作成します:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
import "forge-std/Script.sol";
|
||||||
|
import "../src/HelloWorld.sol";
|
||||||
|
|
||||||
|
contract InteractScript is Script {
|
||||||
|
function run() external {
|
||||||
|
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||||
|
address contractAddress = address(0x...); // コントラクトアドレスに置き換えてください
|
||||||
|
|
||||||
|
vm.startBroadcast(deployerPrivateKey);
|
||||||
|
|
||||||
|
HelloWorld hello = HelloWorld(contractAddress);
|
||||||
|
|
||||||
|
// 現在の挨拶を読み取り
|
||||||
|
string memory currentGreeting = hello.getGreet();
|
||||||
|
console.log("Current greeting:", currentGreeting);
|
||||||
|
|
||||||
|
// 挨拶を更新
|
||||||
|
hello.setGreet("Hello from Foundry!");
|
||||||
|
|
||||||
|
vm.stopBroadcast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
対話スクリプトを実行します:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
forge script script/Interact.s.sol:InteractScript \
|
||||||
|
--rpc-url https://public.sepolia.rpc.status.network \
|
||||||
|
--broadcast
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. 簡単な対話のためのCastコマンド
|
||||||
|
|
||||||
|
`cast`を使用してコントラクトと対話することもできます:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 挨拶を読み取り
|
||||||
|
cast call <CONTRACT_ADDRESS> "getGreet()" \
|
||||||
|
--rpc-url https://public.sepolia.rpc.status.network
|
||||||
|
|
||||||
|
# 新しい挨拶を設定
|
||||||
|
cast send <CONTRACT_ADDRESS> "setGreet(string)" "New greeting!" \
|
||||||
|
--private-key $PRIVATE_KEY \
|
||||||
|
--rpc-url https://public.sepolia.rpc.status.network
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7. テスト
|
||||||
|
|
||||||
|
テストファイル`test/HelloWorld.t.sol`を作成します:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
import "forge-std/Test.sol";
|
||||||
|
import "../src/HelloWorld.sol";
|
||||||
|
|
||||||
|
contract HelloWorldTest is Test {
|
||||||
|
HelloWorld hello;
|
||||||
|
|
||||||
|
function setUp() public {
|
||||||
|
hello = new HelloWorld();
|
||||||
|
}
|
||||||
|
|
||||||
|
function testGreeting() public {
|
||||||
|
assertEq(hello.getGreet(), "Hello, Status Network!");
|
||||||
|
|
||||||
|
hello.setGreet("New greeting");
|
||||||
|
assertEq(hello.getGreet(), "New greeting");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
テストを実行します:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
forge test
|
||||||
|
```
|
||||||
|
|
||||||
|
## サポート
|
||||||
|
|
||||||
|
問題が発生した場合:
|
||||||
|
- [Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||||
|
- [ネットワーク詳細](/general-info/network-details)を参照
|
||||||
|
|
||||||
|
## 追加リソース
|
||||||
|
|
||||||
|
- [Foundryブック](https://book.getfoundry.sh/)
|
||||||
|
- [Status Networkエクスプローラー](https://sepoliascan.status.network)
|
||||||
|
|||||||
+161
-1
@@ -1 +1,161 @@
|
|||||||
# Using Hardhat
|
# Hardhatを使用したスマートコントラクトのデプロイ
|
||||||
|
|
||||||
|
このチュートリアルでは、Hardhat、Hardhat Ignition、およびTypeScriptを使用してStatus Networkテストネットにスマートコントラクトをデプロイする手順を説明します。
|
||||||
|
|
||||||
|
## 前提条件
|
||||||
|
|
||||||
|
開始する前に、以下が必要です:
|
||||||
|
|
||||||
|
- **Node.jsとnpm**: [公式Node.jsウェブサイト](https://nodejs.org/)からダウンロードしてインストール
|
||||||
|
- **Ethereumウォレット**: Status Networkテストネット用のプライベートキーを持つMetaMaskまたは他のウォレット
|
||||||
|
- **テストネットETH**: Status NetworkテストネットのETHが必要です
|
||||||
|
- Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます
|
||||||
|
- **基本知識**: Solidity、Hardhat、コマンドラインの基礎知識
|
||||||
|
|
||||||
|
## 達成目標
|
||||||
|
|
||||||
|
- TypeScriptベースのHardhatプロジェクトの初期化
|
||||||
|
- 基本的なEthereumスマートコントラクトの作成
|
||||||
|
- Status Networkテストネットデプロイ用のHardhatの設定
|
||||||
|
- Hardhat Ignitionを使用したスマートコントラクトのデプロイ
|
||||||
|
|
||||||
|
## 手順
|
||||||
|
|
||||||
|
### 1. HardhatのTypeScriptプロジェクトの初期化
|
||||||
|
|
||||||
|
まず、プロジェクトを作成し設定します:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir my-hardhat-project && cd my-hardhat-project
|
||||||
|
npm init -y
|
||||||
|
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox dotenv
|
||||||
|
npx hardhat init
|
||||||
|
```
|
||||||
|
|
||||||
|
プロンプトが表示されたら、「Create a TypeScript project」を選択してTypeScriptベースのHardhatプロジェクトを設定します。
|
||||||
|
|
||||||
|
環境変数を設定します:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# .envファイルを作成
|
||||||
|
touch .env
|
||||||
|
|
||||||
|
# プライベートキーを追加(このファイルは絶対にコミットしないでください!)
|
||||||
|
echo "PRIVATE_KEY=your_private_key_here" >> .env
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. スマートコントラクトの作成
|
||||||
|
|
||||||
|
`contracts/HelloWorld.sol`を作成します:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
contract HelloWorld {
|
||||||
|
string public greet = "Hello, Status Network!";
|
||||||
|
|
||||||
|
function setGreet(string memory _greet) public {
|
||||||
|
greet = _greet;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGreet() public view returns (string memory) {
|
||||||
|
return greet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Status Network用のHardhatの設定
|
||||||
|
|
||||||
|
`hardhat.config.ts`を更新します:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { HardhatUserConfig } from "hardhat/config";
|
||||||
|
import "@nomicfoundation/hardhat-toolbox";
|
||||||
|
import * as dotenv from "dotenv";
|
||||||
|
|
||||||
|
dotenv.config();
|
||||||
|
|
||||||
|
const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
|
||||||
|
|
||||||
|
const config: HardhatUserConfig = {
|
||||||
|
solidity: "0.8.24",
|
||||||
|
networks: {
|
||||||
|
statusTestnet: {
|
||||||
|
url: "https://public.sepolia.rpc.status.network",
|
||||||
|
chainId: 1660990954,
|
||||||
|
accounts: [PRIVATE_KEY],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Ignitionデプロイメントモジュールの作成
|
||||||
|
|
||||||
|
`ignition/modules/HelloWorld.ts`を作成します:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
|
||||||
|
|
||||||
|
export default buildModule("HelloWorld", (m) => {
|
||||||
|
const helloWorld = m.contract("HelloWorld");
|
||||||
|
|
||||||
|
return { helloWorld };
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. コントラクトのデプロイ
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npx hardhat compile
|
||||||
|
npx hardhat ignition deploy ignition/modules/HelloWorld.ts --network statusTestnet
|
||||||
|
```
|
||||||
|
|
||||||
|
デプロイメントにより、デプロイメントの成果物と履歴を含む新しいディレクトリ`ignition/deployments`が作成されます。
|
||||||
|
|
||||||
|
### 7. コントラクトとの対話
|
||||||
|
|
||||||
|
`scripts/interact.ts`を作成します:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { ethers } from "hardhat";
|
||||||
|
import { HelloWorld } from "../typechain-types";
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const contractAddress = "0x0d8a93870494Fa21ec39602f31Aa67C9Fed5604f";
|
||||||
|
const HelloWorld = await ethers.getContractFactory("HelloWorld");
|
||||||
|
const contract = HelloWorld.attach(contractAddress) as HelloWorld;
|
||||||
|
|
||||||
|
// 現在の挨拶を読み取り
|
||||||
|
const greeting = await contract.getGreet();
|
||||||
|
console.log("Current greeting:", greeting);
|
||||||
|
|
||||||
|
// 挨拶を更新
|
||||||
|
const tx = await contract.setGreet("Hello from Status Network!");
|
||||||
|
await tx.wait();
|
||||||
|
console.log("Greeting updated!");
|
||||||
|
|
||||||
|
// 更新された挨拶を読み取り
|
||||||
|
const newGreeting = await contract.getGreet();
|
||||||
|
console.log("New greeting:", newGreeting);
|
||||||
|
}
|
||||||
|
|
||||||
|
main().catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
process.exitCode = 1;
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
対話スクリプトを実行します:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npx hardhat run scripts/interact.ts --network statusTestnet
|
||||||
|
```
|
||||||
|
|
||||||
|
## サポート
|
||||||
|
|
||||||
|
問題が発生した場合:
|
||||||
|
- [Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||||
|
- [ネットワーク詳細](/general-info/network-details)を参照
|
||||||
|
|||||||
+98
-1
@@ -1 +1,98 @@
|
|||||||
# Using Remix
|
# Remixを使用したスマートコントラクトのデプロイ
|
||||||
|
|
||||||
|
このチュートリアルでは、Remix IDEを使用してStatus Networkテストネットにスマートコントラクトをデプロイする手順を説明します。Remixは、迅速な開発とテストに最適なブラウザベースのIDEです。
|
||||||
|
|
||||||
|
## 前提条件
|
||||||
|
|
||||||
|
開始する前に、以下が必要です:
|
||||||
|
|
||||||
|
- **Webブラウザ**: ChromeやFirefoxなどの最新のブラウザ
|
||||||
|
- **MetaMask**: [MetaMask](https://metamask.io)ブラウザ拡張機能をインストール
|
||||||
|
- **テストネットETH**: Status NetworkテストネットのETHが必要です
|
||||||
|
- Status NetworkテストネットのETHは[フォーセット](/tools/testnet-faucets)から入手できます
|
||||||
|
- **ネットワーク設定**: [ネットワーク追加ガイド](/general-info/add-status-network)に従ってMetaMaskにStatus Networkテストネットを追加
|
||||||
|
|
||||||
|
## 手順
|
||||||
|
|
||||||
|
### 1. Remix IDEを開く
|
||||||
|
|
||||||
|
ブラウザで[remix.ethereum.org](https://remix.ethereum.org)にアクセスします。
|
||||||
|
|
||||||
|
### 2. 新規ファイルの作成
|
||||||
|
|
||||||
|
1. 「File Explorer」アイコン(左サイドバーの最初のアイコン)をクリック
|
||||||
|
2. 「+」ボタンをクリックして新規ファイルを作成
|
||||||
|
3. `HelloWorld.sol`という名前を付ける
|
||||||
|
|
||||||
|
### 3. スマートコントラクトの作成
|
||||||
|
|
||||||
|
以下のコードを`HelloWorld.sol`にコピー&ペーストします:
|
||||||
|
|
||||||
|
```solidity
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.24;
|
||||||
|
|
||||||
|
contract HelloWorld {
|
||||||
|
string public greet = "Hello, Status Network!";
|
||||||
|
|
||||||
|
function setGreet(string memory _greet) public {
|
||||||
|
greet = _greet;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGreet() public view returns (string memory) {
|
||||||
|
return greet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. コントラクトのコンパイル
|
||||||
|
|
||||||
|
1. 「Solidity Compiler」アイコン(左サイドバーの2番目のアイコン)をクリック
|
||||||
|
2. コンパイラバージョン「0.8.24」を選択
|
||||||
|
3. 「Compile HelloWorld.sol」をクリック
|
||||||
|
4. コンパイルが成功することを確認(緑のチェックマークが表示されます)
|
||||||
|
|
||||||
|
### 5. コントラクトのデプロイ
|
||||||
|
|
||||||
|
1. 「Deploy & Run Transactions」アイコン(左サイドバーの4番目のアイコン)をクリック
|
||||||
|
2. 「Environment」ドロップダウンで「Injected Provider - MetaMask」を選択
|
||||||
|
3. MetaMaskが接続を要求 - Status Networkテストネットが選択されていることを確認
|
||||||
|
4. 「Deploy」をクリック
|
||||||
|
5. MetaMaskでトランザクションを確認
|
||||||
|
6. トランザクションが確認されるのを待つ
|
||||||
|
|
||||||
|
### 6. コントラクトとの対話
|
||||||
|
|
||||||
|
デプロイ後、「Deployed Contracts」の下にコントラクトが表示されます:
|
||||||
|
|
||||||
|
1. コントラクトインターフェースを展開
|
||||||
|
2. 以下の操作が可能です:
|
||||||
|
- 「greet」をクリックして現在の挨拶を読み取り
|
||||||
|
- 「setGreet」フィールドに新しい挨拶を入力してボタンをクリックして更新
|
||||||
|
- 「getGreet」をクリックして挨拶を再度読み取り
|
||||||
|
|
||||||
|
## トラブルシューティング
|
||||||
|
|
||||||
|
### よくある問題
|
||||||
|
|
||||||
|
1. **トランザクションの失敗**
|
||||||
|
- Status Networkテストネットに接続されていることを確認
|
||||||
|
|
||||||
|
2. **コントラクトが見つからない**
|
||||||
|
- エクスプローラーがコントラクトをインデックスするまで数分待つ
|
||||||
|
- コントラクトアドレスを再確認
|
||||||
|
|
||||||
|
3. **コンパイルエラー**
|
||||||
|
- コンパイラーバージョンがpragma文と一致することを確認
|
||||||
|
- Remixで強調表示された構文エラーを確認
|
||||||
|
|
||||||
|
## サポート
|
||||||
|
|
||||||
|
問題が発生した場合:
|
||||||
|
- [Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||||
|
- [ネットワーク詳細](/general-info/network-details)を参照
|
||||||
|
|
||||||
|
## 追加リソース
|
||||||
|
|
||||||
|
- [Remixドキュメント](https://remix-ide.readthedocs.io/)
|
||||||
|
- [Status Networkエクスプローラー](https://sepoliascan.status.network)
|
||||||
|
|||||||
-1
@@ -1 +0,0 @@
|
|||||||
# Using Thirdweb
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Interacting with Smart Contracts using ethers.js
|
|
||||||
-1
@@ -1 +0,0 @@
|
|||||||
# Using Foundry
|
|
||||||
-1
@@ -1 +0,0 @@
|
|||||||
# Using Hardhat
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"link.title.Legal": {
|
||||||
|
"message": "Legal",
|
||||||
|
"description": "The title of the footer links column with title=Legal in the footer"
|
||||||
|
},
|
||||||
|
"link.item.label.Terms of use": {
|
||||||
|
"message": "Terms of use",
|
||||||
|
"description": "The label of footer link with label=Terms of use linking to /terms-of-use"
|
||||||
|
},
|
||||||
|
"link.item.label.Privacy policy": {
|
||||||
|
"message": "Privacy policy",
|
||||||
|
"description": "The label of footer link with label=Privacy policy linking to /privacy-policy"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,62 +1,14 @@
|
|||||||
{
|
{
|
||||||
"title": {
|
"title": {
|
||||||
"message": "ステータスネットワークドキュメント",
|
"message": "Status Network Docs",
|
||||||
"description": "The title in the navbar"
|
"description": "The title in the navbar"
|
||||||
},
|
},
|
||||||
"logo.alt": {
|
"logo.alt": {
|
||||||
"message": "ステータスネットワークロゴ",
|
"message": "Status Network Logo",
|
||||||
"description": "The alt text of navbar logo"
|
"description": "The alt text of navbar logo"
|
||||||
},
|
},
|
||||||
"item.label.Tools": {
|
|
||||||
"message": "ツール",
|
|
||||||
"description": "Navbar item with label Tools"
|
|
||||||
},
|
|
||||||
"item.label.Hub": {
|
"item.label.Hub": {
|
||||||
"message": "ハブ",
|
"message": "Hub",
|
||||||
"description": "Navbar item with label Hub"
|
"description": "Navbar item with label Hub"
|
||||||
},
|
|
||||||
"item.label.🔌 RPC": {
|
|
||||||
"message": "🔌 RPC",
|
|
||||||
"description": "Navbar item with label 🔌 RPC"
|
|
||||||
},
|
|
||||||
"item.label.👥 Multisig Wallets": {
|
|
||||||
"message": "👥 マルチシグウォレット",
|
|
||||||
"description": "Navbar item with label 👥 Multisig Wallets"
|
|
||||||
},
|
|
||||||
"item.label.🌉 Bridge": {
|
|
||||||
"message": "🌉 ブリッジ",
|
|
||||||
"description": "Navbar item with label 🌉 Bridge"
|
|
||||||
},
|
|
||||||
"item.label.🚰 Testnet Faucets": {
|
|
||||||
"message": "🚰 テストネットファウセット",
|
|
||||||
"description": "Navbar item with label 🚰 Testnet Faucets"
|
|
||||||
},
|
|
||||||
"item.label.🔎 Block Explorers": {
|
|
||||||
"message": "🔎 ブロックエクスプローラー",
|
|
||||||
"description": "Navbar item with label 🔎 Block Explorers"
|
|
||||||
},
|
|
||||||
"item.label.📊 Data Indexers": {
|
|
||||||
"message": "📊 データインデクサー",
|
|
||||||
"description": "Navbar item with label 📊 Data Indexers"
|
|
||||||
},
|
|
||||||
"item.label.🔮 Oracles": {
|
|
||||||
"message": "🔮 オラクル",
|
|
||||||
"description": "Navbar item with label 🔮 Oracles"
|
|
||||||
},
|
|
||||||
"item.label.🔗 Interoperability": {
|
|
||||||
"message": "🔗 相互運用性",
|
|
||||||
"description": "Navbar item with label 🔗 Interoperability"
|
|
||||||
},
|
|
||||||
"item.label.🎲 Randomness": {
|
|
||||||
"message": "🎲 ランダムネス",
|
|
||||||
"description": "Navbar item with label 🎲 Randomness"
|
|
||||||
},
|
|
||||||
"item.label.🛠️ General Tooling": {
|
|
||||||
"message": "🛠️ 一般的なツール",
|
|
||||||
"description": "Navbar item with label 🛠️ General Tooling"
|
|
||||||
},
|
|
||||||
"item.label.🖥️ Node Operators": {
|
|
||||||
"message": "🖥️ ノードオペレーター",
|
|
||||||
"description": "Navbar item with label 🖥️ Node Operators"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+139
-8
@@ -43,6 +43,10 @@
|
|||||||
"message": "모든 태그 보기",
|
"message": "모든 태그 보기",
|
||||||
"description": "The label of the link targeting the tag list page"
|
"description": "The label of the link targeting the tag list page"
|
||||||
},
|
},
|
||||||
|
"theme.docs.DocCard.categoryDescription.plurals": {
|
||||||
|
"message": "{count} 항목",
|
||||||
|
"description": "The default description for a category card in the generated index about how many items this category includes"
|
||||||
|
},
|
||||||
"theme.colorToggle.ariaLabel": {
|
"theme.colorToggle.ariaLabel": {
|
||||||
"message": "어두운 모드와 밝은 모드 전환하기 (현재 {mode})",
|
"message": "어두운 모드와 밝은 모드 전환하기 (현재 {mode})",
|
||||||
"description": "The ARIA label for the navbar color mode toggle"
|
"description": "The ARIA label for the navbar color mode toggle"
|
||||||
@@ -59,10 +63,6 @@
|
|||||||
"message": "Breadcrumbs",
|
"message": "Breadcrumbs",
|
||||||
"description": "The ARIA label for the breadcrumbs"
|
"description": "The ARIA label for the breadcrumbs"
|
||||||
},
|
},
|
||||||
"theme.docs.DocCard.categoryDescription.plurals": {
|
|
||||||
"message": "{count} 항목",
|
|
||||||
"description": "The default description for a category card in the generated index about how many items this category includes"
|
|
||||||
},
|
|
||||||
"theme.docs.paginator.navAriaLabel": {
|
"theme.docs.paginator.navAriaLabel": {
|
||||||
"message": "문서 페이지",
|
"message": "문서 페이지",
|
||||||
"description": "The ARIA label for the docs pagination"
|
"description": "The ARIA label for the docs pagination"
|
||||||
@@ -222,10 +222,6 @@
|
|||||||
"message": "약 {readingTime}분",
|
"message": "약 {readingTime}분",
|
||||||
"description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
"description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||||
},
|
},
|
||||||
"theme.docs.breadcrumbs.home": {
|
|
||||||
"message": "홈",
|
|
||||||
"description": "The ARIA label for the home page in the breadcrumbs"
|
|
||||||
},
|
|
||||||
"theme.docs.sidebar.collapseButtonTitle": {
|
"theme.docs.sidebar.collapseButtonTitle": {
|
||||||
"message": "사이드바 숨기기",
|
"message": "사이드바 숨기기",
|
||||||
"description": "The title attribute for collapse button of doc sidebar"
|
"description": "The title attribute for collapse button of doc sidebar"
|
||||||
@@ -238,6 +234,10 @@
|
|||||||
"message": "문서 사이드바",
|
"message": "문서 사이드바",
|
||||||
"description": "The ARIA label for the sidebar navigation"
|
"description": "The ARIA label for the sidebar navigation"
|
||||||
},
|
},
|
||||||
|
"theme.docs.breadcrumbs.home": {
|
||||||
|
"message": "홈",
|
||||||
|
"description": "The ARIA label for the home page in the breadcrumbs"
|
||||||
|
},
|
||||||
"theme.docs.sidebar.closeSidebarButtonAriaLabel": {
|
"theme.docs.sidebar.closeSidebarButtonAriaLabel": {
|
||||||
"message": "사이드바 닫기",
|
"message": "사이드바 닫기",
|
||||||
"description": "The ARIA label for close button of mobile sidebar"
|
"description": "The ARIA label for close button of mobile sidebar"
|
||||||
@@ -258,6 +258,137 @@
|
|||||||
"message": "사이드바 열기",
|
"message": "사이드바 열기",
|
||||||
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
||||||
},
|
},
|
||||||
|
"theme.SearchBar.seeAll": {
|
||||||
|
"message": "{count}개의 결과 확인하기"
|
||||||
|
},
|
||||||
|
"theme.SearchBar.label": {
|
||||||
|
"message": "검색",
|
||||||
|
"description": "The ARIA label and placeholder for search button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.searchBox.resetButtonTitle": {
|
||||||
|
"message": "검색어 초기화",
|
||||||
|
"description": "The label and ARIA label for search box reset button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.searchBox.cancelButtonText": {
|
||||||
|
"message": "취소",
|
||||||
|
"description": "The label and ARIA label for search box cancel button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.recentSearchesTitle": {
|
||||||
|
"message": "최근",
|
||||||
|
"description": "The title for recent searches"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.noRecentSearchesText": {
|
||||||
|
"message": "최근 검색어 없음",
|
||||||
|
"description": "The text when no recent searches"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.saveRecentSearchButtonTitle": {
|
||||||
|
"message": "이 검색어를 저장",
|
||||||
|
"description": "The label for save recent search button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.removeRecentSearchButtonTitle": {
|
||||||
|
"message": "이 검색어를 최근 검색어에서 삭제",
|
||||||
|
"description": "The label for remove recent search button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.favoriteSearchesTitle": {
|
||||||
|
"message": "즐겨찾기",
|
||||||
|
"description": "The title for favorite searches"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": {
|
||||||
|
"message": "이 검색어를 즐겨찾기에서 삭제",
|
||||||
|
"description": "The label for remove favorite search button"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.errorScreen.titleText": {
|
||||||
|
"message": "결과를 불러올 수 없음",
|
||||||
|
"description": "The title for error screen of search modal"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.errorScreen.helpText": {
|
||||||
|
"message": "인터넷 연결을 다시 확인하시기 바랍니다.",
|
||||||
|
"description": "The help text for error screen of search modal"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.selectText": {
|
||||||
|
"message": "로 선택",
|
||||||
|
"description": "The explanatory text of the action for the enter key"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.selectKeyAriaLabel": {
|
||||||
|
"message": "엔터 키",
|
||||||
|
"description": "The ARIA label for the Enter key button that makes the selection"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.navigateText": {
|
||||||
|
"message": "로 이동",
|
||||||
|
"description": "The explanatory text of the action for the Arrow up and Arrow down key"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.navigateUpKeyAriaLabel": {
|
||||||
|
"message": "화살표 위 키",
|
||||||
|
"description": "The ARIA label for the Arrow up key button that makes the navigation"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.navigateDownKeyAriaLabel": {
|
||||||
|
"message": "화살표 아래 키",
|
||||||
|
"description": "The ARIA label for the Arrow down key button that makes the navigation"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.closeText": {
|
||||||
|
"message": "로 종료",
|
||||||
|
"description": "The explanatory text of the action for Escape key"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.closeKeyAriaLabel": {
|
||||||
|
"message": "Esc 키",
|
||||||
|
"description": "The ARIA label for the Escape key button that close the modal"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.footer.searchByText": {
|
||||||
|
"message": "검색 제공",
|
||||||
|
"description": "The text explain that the search is making by Algolia"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.noResultsScreen.noResultsText": {
|
||||||
|
"message": "검색 결과 없음",
|
||||||
|
"description": "The text explains that there are no results for the following search"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.noResultsScreen.suggestedQueryText": {
|
||||||
|
"message": "다른 추천 검색어",
|
||||||
|
"description": "The text for the suggested query when no results are found for the following search"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.noResultsScreen.reportMissingResultsText": {
|
||||||
|
"message": "검색 결과가 없는 것이 오류라고 생각되십니까?",
|
||||||
|
"description": "The text for the question where the user thinks there are missing results"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": {
|
||||||
|
"message": "알려주시기 바랍니다.",
|
||||||
|
"description": "The text for the link to report missing results"
|
||||||
|
},
|
||||||
|
"theme.SearchModal.placeholder": {
|
||||||
|
"message": "문서 검색",
|
||||||
|
"description": "The placeholder of the input of the DocSearch pop-up modal"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.documentsFound.plurals": {
|
||||||
|
"message": "{count}개의 문서를 찾았습니다.",
|
||||||
|
"description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.existingResultsTitle": {
|
||||||
|
"message": "\"{query}\" 검색 결과",
|
||||||
|
"description": "The search page title for non-empty query"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.emptyResultsTitle": {
|
||||||
|
"message": "문서를 검색합니다.",
|
||||||
|
"description": "The search page title for empty query"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.inputPlaceholder": {
|
||||||
|
"message": "검색어를 입력하세요.",
|
||||||
|
"description": "The placeholder for search page input"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.inputLabel": {
|
||||||
|
"message": "검색",
|
||||||
|
"description": "The ARIA label for search page input"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.algoliaLabel": {
|
||||||
|
"message": "Algolia로 검색",
|
||||||
|
"description": "The ARIA label for Algolia mention"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.noResultsText": {
|
||||||
|
"message": "검색 결과가 없습니다.",
|
||||||
|
"description": "The paragraph for empty search result"
|
||||||
|
},
|
||||||
|
"theme.SearchPage.fetchingNewResults": {
|
||||||
|
"message": "새로운 검색 결과를 불러오는 중입니다.",
|
||||||
|
"description": "The paragraph for fetching new search results"
|
||||||
|
},
|
||||||
"theme.blog.post.plurals": {
|
"theme.blog.post.plurals": {
|
||||||
"message": "{count}개 게시물",
|
"message": "{count}개 게시물",
|
||||||
"description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
"description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version.label": {
|
"version.label": {
|
||||||
"message": "다음",
|
"message": "Next",
|
||||||
"description": "The label for version current"
|
"description": "The label for version current"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.INTRODUCTION": {
|
"sidebar.tutorialSidebar.category.INTRODUCTION": {
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
"description": "The label for category INTRODUCTION in sidebar tutorialSidebar"
|
"description": "The label for category INTRODUCTION in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.TOKENOMICS": {
|
"sidebar.tutorialSidebar.category.TOKENOMICS": {
|
||||||
"message": "토크노믹스",
|
"message": "토큰노믹스",
|
||||||
"description": "The label for category TOKENOMICS in sidebar tutorialSidebar"
|
"description": "The label for category TOKENOMICS in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.GENERAL INFO": {
|
"sidebar.tutorialSidebar.category.GENERAL INFO": {
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar"
|
"description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.🌉 Bridge": {
|
"sidebar.tutorialSidebar.category.🌉 Bridge": {
|
||||||
"message": "🌉 브리지",
|
"message": "🌉 브릿지",
|
||||||
"description": "The label for category 🌉 Bridge in sidebar tutorialSidebar"
|
"description": "The label for category 🌉 Bridge in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.TOOLS": {
|
"sidebar.tutorialSidebar.category.TOOLS": {
|
||||||
@@ -35,144 +35,100 @@
|
|||||||
"message": "🚀 스마트 컨트랙트 배포",
|
"message": "🚀 스마트 컨트랙트 배포",
|
||||||
"description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar"
|
"description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.category.🔍 Verifying Your Smart Contract": {
|
|
||||||
"message": "🔍 스마트 컨트랙트 검증",
|
|
||||||
"description": "The label for category 🔍 Verifying Your Smart Contract in sidebar tutorialSidebar"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.category.SECURITY": {
|
|
||||||
"message": "보안",
|
|
||||||
"description": "The label for category SECURITY in sidebar tutorialSidebar"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||||
"message": "기타 문서",
|
"message": "기타 문서",
|
||||||
"description": "The label for category OTHER DOCS in sidebar tutorialSidebar"
|
"description": "The label for category OTHER DOCS in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🏠 Home": {
|
"sidebar.tutorialSidebar.doc.🏠 Home": {
|
||||||
"message": "🏠 홈",
|
"message": "🏠 홈",
|
||||||
"description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar, linking to the doc index"
|
"description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.⚡ Quick Start": {
|
"sidebar.tutorialSidebar.doc.⚡ Quick Start": {
|
||||||
"message": "⚡ 빠른 시작",
|
"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 tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.💎 SNT Token": {
|
"sidebar.tutorialSidebar.doc.💎 SNT Token": {
|
||||||
"message": "💎 SNT 토큰",
|
"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 tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.💠 Aura Token": {
|
"sidebar.tutorialSidebar.doc.💠 Karma Token": {
|
||||||
"message": "💠 아우라 토큰",
|
"message": "💠 Karma Token",
|
||||||
"description": "The label for the doc item 💠 Aura Token in sidebar tutorialSidebar, linking to the doc tokenomics/aura-token"
|
"description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||||
"message": "🌐 네트워크 세부사항",
|
"message": "🌐 네트워크 세부정보",
|
||||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar, linking to the doc general-info/network-details"
|
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||||
"message": "➕ 스테이터스 네트워크 추가",
|
"message": "➕ Status 네트워크 추가",
|
||||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar, linking to the doc general-info/add-status-network"
|
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||||
"message": "💰 토큰",
|
"message": "💰 토큰",
|
||||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/tokens"
|
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||||
"message": "🧪 테스트넷 컨트랙트",
|
"message": "🧪 테스트넷 컨트랙트",
|
||||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/testnet-contracts"
|
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.➡️ Bridge to Status": {
|
|
||||||
"message": "➡️ 스테이터스로 브리지",
|
|
||||||
"description": "The label for the doc item ➡️ Bridge to Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-to-status"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.⬅️ Bridge from Status": {
|
|
||||||
"message": "⬅️ 스테이터스에서 브리지",
|
|
||||||
"description": "The label for the doc item ⬅️ Bridge from Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-from-status"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||||
"message": "🧪 테스트넷 브리지",
|
"message": "🧪 테스트넷 브릿징",
|
||||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridging-testnet"
|
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||||
"message": "🔌 RPC",
|
"message": "🔌 RPC",
|
||||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar, linking to the doc tools/rpc"
|
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.👥 Multisig Wallets": {
|
|
||||||
"message": "👥 다중서명 지갑",
|
|
||||||
"description": "The label for the doc item 👥 Multisig Wallets in sidebar tutorialSidebar, linking to the doc tools/multisig-wallets"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||||
"message": "🌉 브리지",
|
"message": "🌉 브릿지",
|
||||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar, linking to the doc tools/bridge"
|
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||||
"message": "🚰 테스트넷 파우셋",
|
"message": "🚰 테스트넷 수도꼭지",
|
||||||
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar, linking to the doc tools/testnet-faucets"
|
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||||
"message": "🔎 블록 익스플로러",
|
"message": "🔎 블록 익스플로러",
|
||||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar, linking to the doc tools/block-explorers"
|
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.📊 Data Indexers": {
|
|
||||||
"message": "📊 데이터 인덱서",
|
|
||||||
"description": "The label for the doc item 📊 Data Indexers in sidebar tutorialSidebar, linking to the doc tools/data-indexers"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🔮 Oracles": {
|
|
||||||
"message": "🔮 오라클",
|
|
||||||
"description": "The label for the doc item 🔮 Oracles in sidebar tutorialSidebar, linking to the doc tools/oracles"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🔗 Interoperability": {
|
|
||||||
"message": "🔗 상호운용성",
|
|
||||||
"description": "The label for the doc item 🔗 Interoperability in sidebar tutorialSidebar, linking to the doc tools/interoperability"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🎲 Randomness": {
|
|
||||||
"message": "🎲 무작위성",
|
|
||||||
"description": "The label for the doc item 🎲 Randomness in sidebar tutorialSidebar, linking to the doc tools/randomness"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🛠️ General Tooling": {
|
|
||||||
"message": "🛠️ 일반 도구",
|
|
||||||
"description": "The label for the doc item 🛠️ General Tooling in sidebar tutorialSidebar, linking to the doc tools/general-tooling"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🖥️ Node Operators": {
|
|
||||||
"message": "🖥️ 노드 운영자",
|
|
||||||
"description": "The label for the doc item 🖥️ Node Operators in sidebar tutorialSidebar, linking to the doc tools/node-operators"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.📘 Ethers Tutorial": {
|
|
||||||
"message": "📘 Ethers 튜토리얼",
|
|
||||||
"description": "The label for the doc item 📘 Ethers Tutorial in sidebar tutorialSidebar, linking to the doc tutorials/ethers-tutorial"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||||
"message": "🎩 하드햇 사용",
|
"message": "🎩 Hardhat 사용하기",
|
||||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-hardhat"
|
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🌐 Using Thirdweb": {
|
|
||||||
"message": "🌐 서드웹 사용",
|
|
||||||
"description": "The label for the doc item 🌐 Using Thirdweb in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-thirdweb"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||||
"message": "⚒️ 파운드리 사용",
|
"message": "⚒️ Foundry 사용하기",
|
||||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-foundry"
|
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||||
"message": "🎛️ 리믹스 사용",
|
"message": "🎛️ Remix 사용하기",
|
||||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-remix"
|
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar"
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🛡️ Security Model": {
|
|
||||||
"message": "🛡️ 보안 모델",
|
|
||||||
"description": "The label for the doc item 🛡️ Security Model in sidebar tutorialSidebar, linking to the doc security/security-model"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.⬆️ Security Upgrades": {
|
|
||||||
"message": "⬆️ 보안 업그레이드",
|
|
||||||
"description": "The label for the doc item ⬆️ Security Upgrades in sidebar tutorialSidebar, linking to the doc security/security-upgrades"
|
|
||||||
},
|
|
||||||
"sidebar.tutorialSidebar.doc.🔒 Audits": {
|
|
||||||
"message": "🔒 감사",
|
|
||||||
"description": "The label for the doc item 🔒 Audits in sidebar tutorialSidebar, linking to the doc other/audits"
|
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||||
"message": "🔗 공식 링크",
|
"message": "🔗 공식 링크",
|
||||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar, linking to the doc other/official-links"
|
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar"
|
||||||
},
|
},
|
||||||
"sidebar.tutorialSidebar.doc.🎨 Branding Guidelines": {
|
"sidebar.tutorialSidebar.doc.🌴 Home": {
|
||||||
"message": "🎨 브랜딩 가이드라인",
|
"message": "🌴 Home",
|
||||||
"description": "The label for the doc item 🎨 Branding Guidelines in sidebar tutorialSidebar, linking to the doc other/branding-guidelines"
|
"description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.🤝 Economic Model": {
|
||||||
|
"message": "🤝 경제 모델",
|
||||||
|
"description": "The label for the doc item 🤝 Economic Model in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.💰 Public Funding": {
|
||||||
|
"message": "💰 공공 자금",
|
||||||
|
"description": "The label for the doc item 💰 Public Funding in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.🐉 Karmic Tokenomics": {
|
||||||
|
"message": "🐉 카르마 토큰노믹스",
|
||||||
|
"description": "The label for the doc item 🐉 Karmic Tokenomics in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.💎 SNT Staking": {
|
||||||
|
"message": "💎 SNT 스테이킹",
|
||||||
|
"description": "The label for the doc item 💎 SNT Staking in sidebar tutorialSidebar"
|
||||||
|
},
|
||||||
|
"sidebar.tutorialSidebar.doc.🪙 Tokens": {
|
||||||
|
"message": "🪙 토큰",
|
||||||
|
"description": "The label for the doc item 🪙 Tokens in sidebar tutorialSidebar"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,84 @@
|
|||||||
# Add Status Network
|
# Status Network 추가하기
|
||||||
|
|
||||||
|
이 가이드는 지갑에 **Status Network**를 추가하는 방법을 보여줍니다.
|
||||||
|
|
||||||
|
## 테스트넷
|
||||||
|
|
||||||
|
MetaMask에 커스텀 네트워크로 **Status Network 테스트넷**을 추가하는 방법:
|
||||||
|
|
||||||
|
1. **MetaMask 열기**:
|
||||||
|
|
||||||
|
- 브라우저에서 MetaMask 확장 프로그램 아이콘을 클릭하여 엽니다.
|
||||||
|
|
||||||
|
2. **네트워크 설정 접근**:
|
||||||
|
|
||||||
|
- MetaMask 창 상단의 네트워크 선택 드롭다운을 클릭합니다.
|
||||||
|
|
||||||
|
3. **새 네트워크 추가**:
|
||||||
|
|
||||||
|
- **"네트워크 추가"**를 클릭합니다.
|
||||||
|
- 새 창에서 **"수동으로 네트워크 추가"**를 클릭합니다.
|
||||||
|
|
||||||
|
4. **네트워크 세부 정보 입력**:
|
||||||
|
|
||||||
|
- 다음 정보를 입력합니다:
|
||||||
|
|
||||||
|
| 이름 | 값 |
|
||||||
|
|------------------|------------------------------------------|
|
||||||
|
| **네트워크 이름** | Status Network Testnet |
|
||||||
|
| **RPC URL** | https://public.sepolia.rpc.status.network |
|
||||||
|
| **체인 ID** | 1660990954 |
|
||||||
|
| **통화 기호** | `ETH` |
|
||||||
|
| **블록 탐색기 URL** | https://sepoliascan.status.network |
|
||||||
|
|
||||||
|
5. **네트워크 저장**:
|
||||||
|
|
||||||
|
- **"저장"**을 클릭하여 Status Network 테스트넷을 MetaMask 지갑에 추가합니다.
|
||||||
|
|
||||||
|
이제 네트워크 드롭다운 메뉴에서 Status Network 테스트넷을 선택하여 연결할 수 있습니다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 모바일 지갑
|
||||||
|
|
||||||
|
### MetaMask 모바일에 Status Network 추가하기
|
||||||
|
|
||||||
|
1. **MetaMask 모바일 앱 열기**:
|
||||||
|
|
||||||
|
- 모바일 기기에서 MetaMask 앱을 실행합니다.
|
||||||
|
|
||||||
|
2. **설정 접근**:
|
||||||
|
|
||||||
|
- 좌측 상단의 햄버거 메뉴(세 개의 가로선)를 탭합니다.
|
||||||
|
- **"설정"**을 선택합니다.
|
||||||
|
|
||||||
|
3. **새 네트워크 추가**:
|
||||||
|
|
||||||
|
- **"네트워크"**를 탭합니다.
|
||||||
|
- **"네트워크 추가"**를 탭합니다.
|
||||||
|
|
||||||
|
4. **네트워크 세부 정보 입력**:
|
||||||
|
|
||||||
|
- 위의 테스트넷과 동일한 네트워크 세부 정보를 입력합니다.
|
||||||
|
|
||||||
|
5. **네트워크 저장**:
|
||||||
|
|
||||||
|
- **"추가"**를 탭하여 새 네트워크를 저장합니다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 추가 정보
|
||||||
|
|
||||||
|
- **공식 링크**:
|
||||||
|
|
||||||
|
- [Status Network 웹사이트](https://status.network/)
|
||||||
|
- [Status Network 문서](https://docs.status.network/)
|
||||||
|
- [Status Network 테스트넷 탐색기](https://sepoliascan.status.network)
|
||||||
|
|
||||||
|
- **도움이 필요하신가요?**
|
||||||
|
|
||||||
|
- 문제가 발생한 경우, 지원을 받으시려면 [텔레그램](https://t.me/statusl2)에 참여하세요.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
이 가이드를 따라하시면 MetaMask 지갑에 Status Network를 성공적으로 추가하실 수 있습니다!
|
||||||
|
|||||||
-1
@@ -1 +0,0 @@
|
|||||||
# Bridge From Status
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Bridge To Status
|
|
||||||
+32
-1
@@ -1 +1,32 @@
|
|||||||
# Bridging Testnet
|
# Status Network 테스트넷으로 브리징하기
|
||||||
|
|
||||||
|
Status Network 브리지를 사용하면 Sepolia와 Status Network 테스트넷 간에 토큰을 전송할 수 있습니다. 브리지는 [bridge.status.network](https://bridge.status.network)에 배포되어 있습니다.
|
||||||
|
|
||||||
|
## 사전 준비사항
|
||||||
|
|
||||||
|
- MetaMask 또는 다른 Web3 지갑이 설치되어 있어야 함
|
||||||
|
- Sepolia 네트워크에 테스트넷 ETH 보유
|
||||||
|
- Sepolia 네트워크에 브리징하고자 하는 토큰 보유
|
||||||
|
|
||||||
|
## 브리징 과정
|
||||||
|
|
||||||
|
1. [bridge.status.network](https://bridge.status.network) 방문
|
||||||
|
|
||||||
|
2. 우측 상단의 "지갑 연결" 버튼을 클릭하여 지갑 연결
|
||||||
|
|
||||||
|
3. 드롭다운 메뉴에서 브리징할 토큰 선택
|
||||||
|
|
||||||
|
4. 브리징할 금액 입력
|
||||||
|
|
||||||
|
5. "브리지" 버튼을 클릭하고 지갑에서 거래 승인
|
||||||
|
|
||||||
|
6. 브리징 과정이 완료될 때까지 대기
|
||||||
|
- 브리징은 보통 5-10분 정도 소요됩니다
|
||||||
|
- 브리지 인터페이스에서 거래 상태를 확인할 수 있습니다
|
||||||
|
|
||||||
|
## 주요 참고사항
|
||||||
|
|
||||||
|
- 거래를 시작하기 전에 올바른 웹사이트(bridge.status.network)에 접속했는지 반드시 확인하세요
|
||||||
|
- 큰 금액을 전송하기 전에 먼저 소액으로 테스트해보세요
|
||||||
|
- 가스비를 지불할 충분한 ETH가 지갑에 있는지 확인하세요
|
||||||
|
- 문제가 발생한 경우, 지원을 받으시려면 [텔레그램](https://t.me/statusl2)에 참여하세요
|
||||||
|
|||||||
+43
-1
@@ -1 +1,43 @@
|
|||||||
# Testnet Contracts
|
# 테스트넷 컨트랙트
|
||||||
|
|
||||||
|
이 페이지는 Status Network 테스트넷 인프라의 모든 중요한 컨트랙트 주소를 나열합니다.
|
||||||
|
|
||||||
|
## 레이어 1 컨트랙트 (Sepolia)
|
||||||
|
|
||||||
|
이 컨트랙트들은 Sepolia 테스트넷에 배포되어 있습니다. [Sepolia Etherscan](https://sepolia.etherscan.io)에서 확인할 수 있습니다.
|
||||||
|
|
||||||
|
### 브리지 컨트랙트
|
||||||
|
- **L1 토큰 브리지 프록시**
|
||||||
|
- 주소: [`0x01b44C5Ea321f921D93476cf54Aa8460db17a548`](https://sepolia.etherscan.io/address/0x01b44C5Ea321f921D93476cf54Aa8460db17a548)
|
||||||
|
- 목적: L1에서의 토큰 브리징 작업 관리
|
||||||
|
|
||||||
|
### 코어 인프라
|
||||||
|
- **L1 포스트맨**
|
||||||
|
- 주소: [`0xB15725119b917d348FfEB365B43bCDeEbfb65C5d`](https://sepolia.etherscan.io/address/0xB15725119b917d348FfEB365B43bCDeEbfb65C5d)
|
||||||
|
- 목적: L1과 L2 사이의 메시지 전달 처리
|
||||||
|
|
||||||
|
- **L1 데이터 제출**
|
||||||
|
- 주소: [`0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d`](https://sepolia.etherscan.io/address/0x263d8f55BAc71a42d0A822F46b1eC62Cd4183a8d)
|
||||||
|
- 목적: L2에서 L1로의 데이터 제출 관리
|
||||||
|
|
||||||
|
- **L1 최종화**
|
||||||
|
- 주소: [`0xb91CB39b3b9F015b0aC88616A463B35568052AEF`](https://sepolia.etherscan.io/address/0xb91CB39b3b9F015b0aC88616A463B35568052AEF)
|
||||||
|
- 목적: L1에서 L2 블록의 최종화 처리
|
||||||
|
|
||||||
|
## 레이어 2 컨트랙트 (Status Network 테스트넷)
|
||||||
|
|
||||||
|
이 컨트랙트들은 Status Network 테스트넷에 배포되어 있습니다. [Status Network Explorer](https://sepoliascan.status.network)에서 확인할 수 있습니다.
|
||||||
|
|
||||||
|
### 브리지 컨트랙트
|
||||||
|
- **L2 토큰 브리지 프록시**
|
||||||
|
- 주소: [`0xbC7f9571152a8e21942b2aEa4831a27f1149af19`](https://sepoliascan.status.network/address/0xbC7f9571152a8e21942b2aEa4831a27f1149af19)
|
||||||
|
- 목적: L2에서의 토큰 브리징 작업 관리
|
||||||
|
|
||||||
|
### 인프라 컨트랙트
|
||||||
|
- **L2 수도꼭지**
|
||||||
|
- 주소: [`0x06338B70F1eAbc60d7A82C083e605C07F78bb878`](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)
|
||||||
|
- 목적: 사용자들에게 테스트넷 토큰 배포
|
||||||
|
|
||||||
|
- **L2 앵커링**
|
||||||
|
- 주소: [`0x24B5eD2763129D6cBDEfE32e08558D2095132560`](https://sepoliascan.status.network/address/0x24B5eD2763129D6cBDEfE32e08558D2095132560)
|
||||||
|
- 목적: L1과 L2 사이의 상태 앵커링 관리
|
||||||
|
|||||||
+11
-1
@@ -1 +1,11 @@
|
|||||||
# Tokens
|
# 토큰
|
||||||
|
|
||||||
|
Status Network에서 지원되는 토큰과 해당 컨트랙트 주소의 최신 목록은 공식 [Status Network 토큰 목록 저장소](https://github.com/status-im/status-network-token-list)를 참조하시기 바랍니다.
|
||||||
|
|
||||||
|
이 저장소에는 다음 내용이 포함되어 있습니다:
|
||||||
|
- L1(Sepolia)과 L2(Status Network) 양쪽의 토큰 주소
|
||||||
|
- 토큰 메타데이터(소수점, 심볼 등)
|
||||||
|
- 브리지 컨트랙트 매핑
|
||||||
|
- Status Network에 배포된 앱 토큰
|
||||||
|
|
||||||
|
토큰 목록은 토큰 브리징 작업의 정확성과 보안을 보장하기 위해 정기적으로 유지 관리되고 업데이트됩니다.
|
||||||
|
|||||||
@@ -1,12 +1,20 @@
|
|||||||
# Network Details
|
# 네트워크 세부정보
|
||||||
|
|
||||||
## Status Testnet
|
## Status 테스트넷
|
||||||
|
|
||||||
| Name | Value |
|
| 이름 | 값 |
|
||||||
|---------------------|-------|
|
|---------------------|------------------------------------------|
|
||||||
| **Network Name** | |
|
| **네트워크 이름** | Status Network Testnet |
|
||||||
| **RPC Endpoint** | |
|
| **RPC 엔드포인트** | https://public.sepolia.rpc.status.network |
|
||||||
| **Chain ID** | |
|
| **체인 ID** | 1660990954 |
|
||||||
| **Currency Symbol** | |
|
| **통화 기호** | ETH |
|
||||||
| **Block Explorer** | |
|
| **블록 탐색기** | https://sepoliascan.status.network |
|
||||||
| **Bridge** | |
|
| **브리지** | https://bridge.status.network |
|
||||||
|
|
||||||
|
이것은 Status Network 테스트넷의 공식 네트워크 세부정보입니다. 이 세부정보는 다음과 같은 용도로 사용할 수 있습니다:
|
||||||
|
- 지갑에 네트워크 추가
|
||||||
|
- 개발 환경 구성
|
||||||
|
- 네트워크에 dApp 연결
|
||||||
|
- 스마트 컨트랙트 검증
|
||||||
|
|
||||||
|
지갑에 네트워크를 추가하는 방법은 [Status Network 추가 가이드](./add-status-network.md)를 참조하세요.
|
||||||
|
|||||||
@@ -1,28 +1,56 @@
|
|||||||
---
|
---
|
||||||
id: index
|
id: index
|
||||||
title: 스테이터스 네트워크 소개
|
title: Status Network에 오신 것을 환영합니다
|
||||||
|
description: Status Network는 원활하고 수수료가 없는 탈중앙화 애플리케이션을 가능하게 하는 가스리스 레이어 2 블록체인 네트워크입니다. 간단한 지갑 설정, 수도꼭지, 배포 도구로 구축을 시작하세요.
|
||||||
|
keywords: [Status Network, 레이어 2, 가스리스 블록체인, 이더리움 스케일링, L2, validium, web3 개발, dapp 개발, 블록체인 개발]
|
||||||
slug: /
|
slug: /
|
||||||
sidebar_position: 1
|
sidebar_position: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
# 스테이터스 네트워크에 오신 것을 환영합니다
|
# Status Network: 가스리스 레이어 2 네트워크
|
||||||
|
|
||||||
블록체인 경험을 재구성하는 크립토 소셜 놀이터 **스테이터스 네트워크**에 오신 것을 환영합니다! [Linea의 최첨단 ZK-EVM 기술](https://docs.linea.build/architecture)을 기반으로 한 **EVM과 동등한 이더리움 레이어 2 롤업**으로 구축된 스테이터스 네트워크는 다른 플랫폼과 차별화되는 독특한 기능을 제공합니다.
|
Status Network는 소셜 앱과 게임에 최적화된 최초의 네이티브 가스리스 이더리움 L2로, 네이티브 수익과 DEX 수수료를 통해 개발자를 위한 지속 가능한 공공 자금을 제공합니다. Linea zkEVM 스택 위에 구축되어 혁신적인 자금 조달 모델을 통해 경제적 지속가능성을 보장하면서 가스 없는 고성능 트랜잭션을 제공합니다.
|
||||||
|
|
||||||
## 우리의 특별함은 무엇인가요?
|
## 주요 특징
|
||||||
|
|
||||||
### 💰 네이티브 ETH 및 DAI 수익
|
- **가스리스 트랜잭션**
|
||||||
|
|
||||||
당신의 **ETH** 및 **DAI** 자산에 대한 지속적이고 매력적인 수익을 즐기세요! 우리는 레이어 2 솔루션 중에서도 독특한 기능인 네이티브 수익 생성을 제공하여, 네트워크에 참여하면서 손쉽게 암호화폐 자산을 늘릴 수 있습니다.
|
개발자는 원활한 경험을 만들 수 있고 사용자는 가스 비용 걱정 없이 거래할 수 있습니다.
|
||||||
|
|
||||||
### 🏆 $AURA 토큰 획득
|
- **네이티브 수익과 수수료**
|
||||||
|
|
||||||
**실시간**으로 참여에 대한 보상을 받으세요! 네트워크 활동에 참여하고 **$SNT를 스테이킹**하여 **$AURA 토큰**을 획득하세요. 거래, 스테이킹 또는 커뮤니티 참여를 통해 더 많이 상호작용할수록 우리 활기찬 커뮤니티 내에서 더 큰 영향력을 얻습니다. 당신의 $AURA는 네트워크의 미래를 형성하는 데 있어 당신의 목소리를 강화합니다.
|
L2 운영과 개발자 지원을 위해 Status Network는 DEX로 시작하는 네이티브 앱의 네이티브 수익과 수수료 조합을 통해 자금을 조달합니다.
|
||||||
|
|
||||||
### 🔒 재미있는 프라이버시
|
- **지속 가능한 공공 자금**
|
||||||
|
|
||||||
**안전하고 재미있는** 프라이버시 기능을 경험하세요! 우리는 프라이버시가 근본적인 권리이며 복잡하지 않아도 모두에게 접근 가능해야 한다고 믿습니다. 사용자 친화적인 프라이버시 도구로 안전한 상호작용을 즐겁게 만들어, 복잡한 프라이버시 기술의 전통적인 개념에서 벗어납니다.
|
토큰 보유자가 관리하는 앱 자금 풀은 네이티브 수익과 수수료에서 온체인 빌더에게 지속적으로 자본을 할당합니다.
|
||||||
|
|
||||||
---
|
- **고성능 실행**
|
||||||
|
|
||||||
스테이터스 네트워크에 참여하여 **당신의 적극적인 참여가 진정으로 미래를 형성하는** 독특하고 프라이버시 중심의 보람 있는 크립토 커뮤니티의 일원이 되세요! 함께 크립토 놀이터를 만들어 봅시다!
|
Status Network는 Linea의 zkEVM 롤업 스택 위에 구축되어 빠르고 안전한 트랜잭션을 보장합니다.
|
||||||
|
|
||||||
|
- **RLN을 통한 스팸 보호**
|
||||||
|
|
||||||
|
Rate-Limiting Nullifiers (RLN)는 사용자와 앱당 무료 트랜잭션의 공정한 할당을 유지하면서 스팸과 DDoS 공격을 방지합니다.
|
||||||
|
|
||||||
|
- **IFT와의 깊은 통합**
|
||||||
|
|
||||||
|
Status Network는 Status Wallet, Keycard, Waku, Codex 등 [IFT](https://free.technology)의 일부와 기본적으로 통합되어 있습니다.
|
||||||
|
|
||||||
|
## 지금 바로 구축을 시작하세요
|
||||||
|
|
||||||
|
설명 부분을 건너뛰고 바로 구축을 시작하고 싶으신가요? 시작하는 방법은 다음과 같습니다:
|
||||||
|
|
||||||
|
1. [Status Network를 지갑에 추가](/general-info/add-status-network)
|
||||||
|
2. [테스트넷 ETH 받기](/tools/testnet-faucets)
|
||||||
|
3. [자산 브리징하기](/general-info/bridge/bridging-testnet)
|
||||||
|
4. [첫 번째 컨트랙트 배포하기](/tutorials/deploying-contracts/using-remix)
|
||||||
|
|
||||||
|
## 지원 및 리소스
|
||||||
|
|
||||||
|
커뮤니티에 참여하고 필요한 리소스에 접근하세요:
|
||||||
|
- [텔레그램 빌더 커뮤니티](https://t.me/statusl2)에 참여
|
||||||
|
- [네트워크 세부정보](/general-info/network-details) 확인
|
||||||
|
- [컨트랙트 주소](/general-info/contract-addresses/testnet-contracts) 탐색
|
||||||
|
|
||||||
|
멋진 것을 만들 준비가 되셨나요? 지금 바로 무료 네트워크에서 여정을 시작하세요!
|
||||||
|
|||||||
@@ -1,38 +1,37 @@
|
|||||||
# 빠른 시작
|
# 빠른 시작
|
||||||
|
|
||||||
이 섹션에서는 **Status Network 테스트넷**에서 10분 이내에 샘플 컨트랙트를 배포해 보겠습니다.
|
이 섹션에서는 10분 이내에 **Status Network 테스트넷**에 샘플 컨트랙트를 배포하는 방법을 알아보겠습니다.
|
||||||
|
|
||||||
간단하게 하기 위해 Remix IDE를 사용하여 Status Network에서 스마트 컨트랙트를 배포하는 방법을 살펴보겠습니다.
|
간단하게 Remix IDE를 사용하여 Status Network에 스마트 컨트랙트를 배포하는 방법을 살펴보겠습니다.
|
||||||
|
|
||||||
## 준비하기
|
## 준비하기
|
||||||
|
|
||||||
시작하기 전에:
|
시작하기 전에:
|
||||||
|
|
||||||
- **MetaMask에 Status Network 테스트넷 추가하기**:
|
1. **Status Network 테스트넷을 MetaMask에 추가**:
|
||||||
|
|
||||||
MetaMask에 Status Network 테스트넷을 추가하는 단계별 지침은 [Status Network 문서](/general-info/add-status-network)를 참고하세요. 네트워크의 RPC URL, 체인 ID 및 기타 세부 정보가 필요합니다.
|
[Status Network 추가 가이드](/general-info/add-status-network)의 단계별 지침에 따라 Status Network 테스트넷을 MetaMask에 추가하세요.
|
||||||
|
|
||||||
- **테스트넷 토큰 받기**:
|
2. **테스트 ETH 받기**:
|
||||||
|
|
||||||
이 가이드는 Status Network에서 테스트넷 ETH를 얻었다고 가정합니다. 테스트 토큰을 요청하려면 [Status Network 테스트넷 파우셋](#)을 사용할 수 있습니다.
|
Sepolia ETH와 Status Network ETH 모두 필요합니다:
|
||||||
|
- 먼저 [Sepolia 수도꼭지](https://faucet.status.network)에서 Sepolia ETH를 받으세요
|
||||||
|
- 그런 다음 [Status 브리지](https://bridge.status.network)를 사용하여 ETH를 Status Network로 브리징하세요
|
||||||
|
- 또는 [테스트넷 수도꼭지](https://sepoliascan.status.network/address/0x06338B70F1eAbc60d7A82C083e605C07F78bb878)에서 직접 Status Network ETH를 받으세요
|
||||||
|
|
||||||
시작할 준비가 되었습니다!
|
이제 시작할 준비가 되었습니다!
|
||||||
|
|
||||||
## Remix 및 샘플 코드
|
## Remix와 샘플 코드
|
||||||
|
|
||||||
**Remix**는 스마트 컨트랙트 개발을 위한 별도의 설정이 필요 없는 도구입니다. 간단한 배포 프로세스, 디버깅, 스마트 컨트랙트와의 상호 작용 등을 가능하게 하여 쉽게 시작할 수 있습니다. 빠른 변경 사항을 테스트하고 배포된 스마트 컨트랙트와 상호 작용하기에 훌륭한 도구입니다.
|
**Remix**는 설정이 필요 없는 스마트 컨트랙트 개발 도구입니다. 쉽게 시작할 수 있으며, 간단한 배포 프로세스, 디버깅, 스마트 컨트랙트와의 상호작용 등이 가능합니다.
|
||||||
|
|
||||||
이 튜토리얼에서는 Remix에 예제로 제공되는 `SimpleStorage.sol` 스마트 컨트랙트를 배포하겠지만, 원하는 코드를 사용할 수 있습니다.
|
이 튜토리얼에서는 간단한 `SimpleStorage.sol` 컨트랙트를 배포할 것입니다:
|
||||||
|
|
||||||
여기 샘플 코드가 있습니다:
|
|
||||||
|
|
||||||
```solidity
|
```solidity
|
||||||
// SPDX-License-Identifier: GPL-3.0
|
// SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.0;
|
||||||
pragma solidity ^0.8.24;
|
|
||||||
|
|
||||||
contract SimpleStorage {
|
contract SimpleStorage {
|
||||||
|
|
||||||
uint256 number;
|
uint256 number;
|
||||||
|
|
||||||
function store(uint256 num) public {
|
function store(uint256 num) public {
|
||||||
@@ -49,66 +48,71 @@ contract SimpleStorage {
|
|||||||
|
|
||||||
## 배포 단계
|
## 배포 단계
|
||||||
|
|
||||||
1. **샘플 코드 복사하기**:
|
1. **샘플 코드 복사**:
|
||||||
|
|
||||||
- 샘플 코드를 복사하여 Remix에서 `SimpleStorage.sol`이라는 새 파일에 붙여넣습니다.
|
- 샘플 코드를 복사하여 Remix에서 `SimpleStorage.sol`이라는 새 파일에 붙여넣기 하세요.
|
||||||
|
|
||||||
2. **스마트 컨트랙트 컴파일하기**:
|
2. **스마트 컨트랙트 컴파일**:
|
||||||
|
|
||||||
- **Solidity Compiler** 탭으로 이동합니다 (왼쪽 사이드바).
|
- **Solidity 컴파일러** 탭(왼쪽 사이드바)으로 이동하세요.
|
||||||
- 컴파일러 버전이 컨트랙트의 pragma 문(`0.8.24`)과 일치하는지 확인합니다.
|
- 컴파일러 버전이 0.8.0 이상인지 확인하세요.
|
||||||
- **"Compile SimpleStorage.sol"**을 클릭합니다.
|
- **"SimpleStorage.sol 컴파일"**을 클릭하세요.
|
||||||
- 컨트랙트 코드를 변경할 때마다 자동으로 컴파일되도록 **"Auto compile"**을 활성화할 수 있습니다.
|
- 컨트랙트 코드를 변경할 때마다 자동 컴파일을 원하면 **"자동 컴파일"**을 활성화할 수 있습니다.
|
||||||
|
|
||||||
3. **스마트 컨트랙트 배포하기**:
|
3. **스마트 컨트랙트 배포**:
|
||||||
|
|
||||||
- **Deploy & Run Transactions** 탭으로 전환합니다.
|
- **배포 & 실행 트랜잭션** 탭으로 전환하세요.
|
||||||
- **"Environment"** 드롭다운 메뉴에서 **"Injected Provider - MetaMask"**를 선택합니다. 이것은 Remix를 MetaMask 지갑에 연결합니다.
|
- **"환경"** 드롭다운 메뉴에서 **"Injected Provider - MetaMask"**를 선택하세요.
|
||||||
- MetaMask에서 Remix에 연결하라는 메시지가 표시될 수 있습니다. 연결을 확인하세요.
|
- MetaMask가 Remix에 연결을 요청할 수 있습니다. 연결을 확인하세요.
|
||||||
- MetaMask에서 **Status Network 테스트넷**이 선택되어 있는지 확인합니다.
|
- MetaMask에서 **Status Network 테스트넷**이 선택되어 있는지 확인하세요.
|
||||||
- **"Contract"** 아래에서 `SimpleStorage`가 선택되어 있는지 확인합니다.
|
- **"컨트랙트"**에서 `SimpleStorage`가 선택되어 있는지 확인하세요.
|
||||||
- **"Deploy"**를 클릭합니다.
|
- **"배포"**를 클릭하세요.
|
||||||
- MetaMask가 나타나 트랜잭션 확인을 요청합니다.
|
- MetaMask가 팝업되어 트랜잭션 확인을 요청합니다. 가스비는 ETH로 지불됩니다.
|
||||||
- 트랜잭션 세부 정보를 검토하고 **"Confirm"**을 클릭합니다.
|
- 트랜잭션 세부사항을 검토하고 **"확인"**을 클릭하세요.
|
||||||
- 트랜잭션이 채굴될 때까지 기다립니다. Remix 또는 MetaMask에서 상태를 추적할 수 있습니다.
|
- 트랜잭션이 채굴될 때까지 기다리세요.
|
||||||
|
|
||||||
**축하합니다!** Status Network에 첫 스마트 컨트랙트를 배포하셨습니다.
|
4. **배포 확인**:
|
||||||
|
|
||||||
|
- 배포가 완료되면 Remix에서 컨트랙트 주소를 복사하세요
|
||||||
|
- [Status Network 탐색기](https://sepoliascan.status.network)에서 확인하세요
|
||||||
|
|
||||||
## 배포한 스마트 컨트랙트와 상호 작용하기
|
**축하합니다!** Status Network에 첫 번째 스마트 컨트랙트를 배포하셨습니다.
|
||||||
|
|
||||||
1. **배포된 컨트랙트 접근하기**:
|
## 배포된 스마트 컨트랙트와 상호작용하기
|
||||||
|
|
||||||
- Remix에서 **"Deployed Contracts"** 섹션 아래에 배포된 `SimpleStorage` 컨트랙트가 표시됩니다.
|
1. **배포된 컨트랙트 접근**:
|
||||||
|
|
||||||
|
- Remix의 **"배포된 컨트랙트"** 섹션에서 배포된 `SimpleStorage` 컨트랙트를 확인할 수 있습니다.
|
||||||
|
|
||||||
2. **숫자 저장하기**:
|
2. **숫자 저장하기**:
|
||||||
|
|
||||||
- 배포된 컨트랙트를 확장하여 함수들을 확인합니다.
|
- 배포된 컨트랙트를 확장하여 함수들을 확인하세요.
|
||||||
- **"store"** 함수 입력 필드에 숫자(예: `42`)를 입력합니다.
|
- **"store"** 함수 입력 필드에 숫자(예: `42`)를 입력하세요.
|
||||||
- **"transact"**를 클릭합니다.
|
- **"transact"**를 클릭하세요.
|
||||||
- MetaMask에서 트랜잭션 확인을 요청합니다. **"Confirm"**을 클릭합니다.
|
- MetaMask가 트랜잭션 확인을 요청합니다. 가스비는 ETH로 지불됩니다.
|
||||||
- 트랜잭션이 확인될 때까지 기다립니다.
|
- 트랜잭션이 확인될 때까지 기다리세요.
|
||||||
|
|
||||||
3. **숫자 가져오기**:
|
3. **숫자 조회하기**:
|
||||||
|
|
||||||
- **"retrieve"** 함수를 클릭합니다.
|
- **"retrieve"** 함수를 클릭하세요.
|
||||||
- 저장된 숫자가 버튼 아래에 표시됩니다.
|
- 버튼 아래에 저장된 숫자가 표시됩니다.
|
||||||
|
- 이는 view 함수이므로 가스비가 필요하지 않습니다.
|
||||||
|
|
||||||
## 다음 단계
|
## 다음 단계
|
||||||
|
|
||||||
- **지원 받기**:
|
- **지원 받기**:
|
||||||
|
- [텔레그램 커뮤니티](https://t.me/statusl2)에 참여하여 도움을 받으세요
|
||||||
- 문제가 발생하거나 질문이 있으시면, [Status Network 지원](https://status.app)을 방문하거나 커뮤니티 채널에 참여하여 도움을 받으세요.
|
- [네트워크 세부정보](/general-info/network-details)에서 자세한 정보를 확인하세요
|
||||||
|
- Status Network로의 [토큰 브리징](/general-info/bridge/bridging-testnet)에 대해 알아보세요
|
||||||
|
|
||||||
## 요약
|
## 요약
|
||||||
|
|
||||||
여러분은 성공적으로 다음을 수행하셨습니다:
|
성공적으로 다음을 수행하셨습니다:
|
||||||
|
- Status Network 테스트넷과 상호작용하기 위한 환경 설정
|
||||||
|
- 브리징 또는 수도꼭지를 통해 테스트넷 ETH 획득
|
||||||
|
- Remix IDE와 MetaMask를 사용하여 스마트 컨트랙트 배포
|
||||||
|
- 숫자 저장 및 조회를 통해 배포된 컨트랙트와 상호작용
|
||||||
|
|
||||||
- Status Network 테스트넷과 상호 작용하기 위한 환경을 설정했습니다.
|
더 고급 개발을 위해 다음 도구를 사용한 배포 가이드를 확인하세요:
|
||||||
- Remix IDE와 MetaMask를 사용하여 스마트 컨트랙트를 배포했습니다.
|
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||||
- 숫자를 저장하고 가져옴으로써 배포한 컨트랙트와 상호 작용했습니다.
|
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
더 깊이 들어가고 싶다면, 더 복잡한 스마트 컨트랙트를 탐구해 보세요. 추가 튜토리얼은 [여기](/tutorials/ethers-tutorial)에서 확인하세요.
|
|
||||||
|
|
||||||
**즐거운 코딩 되세요!**
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
# Audits
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Branding Guidelines
|
|
||||||
@@ -1 +1,24 @@
|
|||||||
# Official Links
|
# 공식 링크
|
||||||
|
|
||||||
|
이 페이지는 Status Network 생태계의 모든 공식 링크를 포함하고 있습니다.
|
||||||
|
|
||||||
|
## 주요 리소스
|
||||||
|
- **웹사이트**: [status.network](https://status.network)
|
||||||
|
- **문서**: [docs.status.network](https://docs.status.network)
|
||||||
|
- **GitHub**: [github.com/status-im](https://github.com/status-im)
|
||||||
|
|
||||||
|
## 네트워크 도구
|
||||||
|
- **브리지**: [bridge.status.network](https://bridge.status.network)
|
||||||
|
- **블록 탐색기**: [sepoliascan.status.network](https://sepoliascan.status.network)
|
||||||
|
- **RPC 엔드포인트**: `https://public.sepolia.rpc.status.network`
|
||||||
|
- **수도꼭지**: [faucet.status.network](https://faucet.status.network)
|
||||||
|
|
||||||
|
## 개발 리소스
|
||||||
|
- **토큰 목록 저장소**: [github.com/status-im/status-network-token-list](https://github.com/status-im/status-network-token-list)
|
||||||
|
- **컨트랙트 검증**: [sepoliascan.status.network/verify-contract](https://sepoliascan.status.network/contract-verification)
|
||||||
|
|
||||||
|
## 커뮤니티 & 지원
|
||||||
|
- **텔레그램 커뮤니티**: [t.me/statusl2](https://t.me/statusl2)
|
||||||
|
- **X/트위터**: [x.com/statusL2](https://x.com/statusL2)
|
||||||
|
|
||||||
|
지갑에 네트워크를 추가하는 방법에 대해서는 [네트워크 추가 가이드](/general-info/add-status-network)를 참조하세요.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user