Compare commits
56
Commits
deploy-master
...
develop
| 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 | ||
|
|
2a087da317 | ||
|
|
eaa50d0f60 | ||
|
|
f3866182c1 | ||
|
|
75fc890562 | ||
|
|
938b63a175 | ||
|
|
8d0db32778 | ||
|
|
2fcbe22d7a | ||
|
|
8d895d90bf | ||
|
|
4c4c0606f4 | ||
|
|
640798f1ad | ||
|
|
64eb5e648e | ||
|
|
99adbc5e9c | ||
|
|
2e1c23b4ca |
Vendored
+9
-4
@@ -42,10 +42,11 @@ pipeline {
|
||||
script {
|
||||
nix.develop("""
|
||||
ghp-import \
|
||||
-b deploy-master \
|
||||
-c docs.status.network \
|
||||
-b ${deployBranch()} \
|
||||
-c ${deployDomain()} \
|
||||
-p build
|
||||
"""
|
||||
""",
|
||||
pure: false
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -56,4 +57,8 @@ pipeline {
|
||||
post {
|
||||
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
|
||||
# Clone the repository
|
||||
git clone https://github.com/status-network/docs.git
|
||||
cd docs
|
||||
git clone https://github.com/status-im/docs.status.network
|
||||
cd docs.status.network
|
||||
|
||||
# Install dependencies
|
||||
yarn
|
||||
@@ -45,6 +45,7 @@ This command generates static content into the `build` directory and can be serv
|
||||
## 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 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).
|
||||
|
||||
@@ -68,35 +69,14 @@ We welcome contributions from the community! Here's how you can help improve our
|
||||
|
||||
```
|
||||
docs/
|
||||
├── introduction/ # Introduction and getting started
|
||||
├── tokenomics/ # SNT and AURA token documentation
|
||||
├── general-info/ # Network details and contracts
|
||||
├── introduction/ # Introduction and getting started
|
||||
├── tokenomics/ # Economic model and Karmic Tokenomics
|
||||
├── general-info/ # Network details and contracts
|
||||
├── tools/ # Development tools and resources
|
||||
├── tutorials/ # Step-by-step guides
|
||||
├── security/ # Security information
|
||||
└── other/ # Additional resources
|
||||
```
|
||||
|
||||
### Style Guide
|
||||
|
||||
When contributing to the documentation, please follow these guidelines:
|
||||
|
||||
- Use clear, concise language
|
||||
- Include code examples where applicable
|
||||
- Add screenshots or diagrams for complex concepts
|
||||
- Follow the existing document structure
|
||||
- Use appropriate frontmatter for all markdown files
|
||||
|
||||
Example markdown frontmatter:
|
||||
```md
|
||||
---
|
||||
id: page-id
|
||||
title: Page Title
|
||||
description: Brief description of the page
|
||||
sidebar_position: 1
|
||||
---
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
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 +1,97 @@
|
||||
# Add Status Network
|
||||
---
|
||||
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
|
||||
|
||||
This guide shows how to add the **Status Network** to your wallet.
|
||||
|
||||
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:
|
||||
|
||||
1. **Open MetaMask**:
|
||||
|
||||
- Click on the MetaMask extension icon in your browser to open it.
|
||||
|
||||
2. **Access the Network Settings**:
|
||||
|
||||
- Click on the network selection dropdown at the top of the MetaMask window.
|
||||
|
||||
3. **Add a New Network**:
|
||||
|
||||
- Click on **"Add network"**.
|
||||
- In the new window, click on **"Add a network manually"**.
|
||||
|
||||
4. **Enter Network Details**:
|
||||
|
||||
- Fill in the following information:
|
||||
|
||||
| Name | Value |
|
||||
|------------------|------------------------------------------|
|
||||
| **Network Name** | Status Network Testnet |
|
||||
| **RPC URL** | https://public.sepolia.rpc.status.network |
|
||||
| **Chain ID** | 1660990954 |
|
||||
| **Currency Symbol** | `ETH` |
|
||||
| **Block Explorer URL** | https://sepoliascan.status.network |
|
||||
|
||||
5. **Save the Network**:
|
||||
|
||||
- Click **"Save"** to add the Status Network Testnet to your MetaMask wallet.
|
||||
|
||||
You should now be able to connect to the Status Network Testnet by selecting it from the network dropdown menu.
|
||||
|
||||
---
|
||||
|
||||
## Mobile Wallets
|
||||
|
||||
### Adding Status Network to MetaMask Mobile
|
||||
|
||||
1. **Open MetaMask Mobile App**:
|
||||
|
||||
- Launch the MetaMask app on your mobile device.
|
||||
|
||||
2. **Access Settings**:
|
||||
|
||||
- Tap on the hamburger menu (three horizontal lines) in the top left corner.
|
||||
- Select **"Settings"**.
|
||||
|
||||
3. **Add a New Network**:
|
||||
|
||||
- Tap on **"Networks"**.
|
||||
- Tap on **"Add Network"**.
|
||||
|
||||
4. **Enter Network Details**:
|
||||
|
||||
- Input the same network details as mentioned above for Testnet.
|
||||
|
||||
5. **Save the Network**:
|
||||
|
||||
- Tap **"Add"** to save the new network.
|
||||
|
||||
---
|
||||
|
||||
## Additional Information
|
||||
|
||||
- **Official Links**:
|
||||
|
||||
- [Status Network Website](https://status.network/)
|
||||
- [Status Network Documentation](https://docs.status.network/)
|
||||
- [Status Network Testnet Explorer](https://sepoliascan.status.network)
|
||||
|
||||
- **Need Help?**
|
||||
|
||||
- If you encounter any issues, please join our [Telegram](https://t.me/statusl2) for support.
|
||||
|
||||
---
|
||||
|
||||
By following this guide, you've successfully added the Status Network to your MetaMask wallet!
|
||||
@@ -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 +1,32 @@
|
||||
# Network Details
|
||||
---
|
||||
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
|
||||
|
||||
## Status Testnet
|
||||
|
||||
| Name | Value |
|
||||
|---------------------|-------------------------------------------|
|
||||
| **Network Name** | Status Network Testnet |
|
||||
| **RPC Endpoint** | https://public.sepolia.rpc.status.network |
|
||||
| **Chain ID** | 1660990954 |
|
||||
| **Currency Symbol** | ETH |
|
||||
| **Block Explorer** | https://sepoliascan.status.network |
|
||||
| **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).
|
||||
+50
-2
@@ -1,8 +1,56 @@
|
||||
---
|
||||
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: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Introducing Status Network
|
||||
# Status Network: The Gasless Layer 2
|
||||
|
||||
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.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Gasless Transactions**
|
||||
|
||||
Developers can create seamless experiences and users can transact freely without worrying about gas fees.
|
||||
|
||||
- **Native Yield and Fees**
|
||||
|
||||
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.
|
||||
|
||||
- **Sustainable Public Funding**
|
||||
|
||||
The apps funding pool, governed by token holders, continuously allocates capital from native yield and fees to onchain builders.
|
||||
|
||||
- **High-Performance Execution**
|
||||
|
||||
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 +1,124 @@
|
||||
# Quick Start
|
||||
---
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
## Get Everything Ready
|
||||
|
||||
Before getting started:
|
||||
|
||||
1. **Add Status Network Testnet to MetaMask**:
|
||||
|
||||
Follow the [Add Status Network guide](/general-info/add-status-network) for step-by-step instructions on how to add the Status Network testnet to MetaMask.
|
||||
|
||||
2. **Get Test ETH**:
|
||||
|
||||
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!
|
||||
|
||||
## 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.
|
||||
|
||||
For this tutorial, we will deploy a simple `SimpleStorage.sol` contract:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
contract SimpleStorage {
|
||||
uint256 number;
|
||||
|
||||
function store(uint256 num) public {
|
||||
number = num;
|
||||
}
|
||||
|
||||
function retrieve() public view returns (uint256) {
|
||||
return number;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> **Note:** This contract lets you store a number and then read what that number is.
|
||||
|
||||
## Steps to Deploy
|
||||
|
||||
1. **Copy the Sample Code**:
|
||||
|
||||
- Copy the sample code and paste it into a new file named `SimpleStorage.sol` in Remix.
|
||||
|
||||
2. **Compile the Smart Contract**:
|
||||
|
||||
- Go to the **Solidity Compiler** tab (on the left sidebar).
|
||||
- Ensure the compiler version is 0.8.0 or higher.
|
||||
- Click **"Compile SimpleStorage.sol"**.
|
||||
- You can enable **"Auto compile"** for automatic compilation whenever you change the contract code.
|
||||
|
||||
3. **Deploy the Smart Contract**:
|
||||
|
||||
- Switch to the **Deploy & Run Transactions** tab.
|
||||
- In the **"Environment"** dropdown menu, select **"Injected Provider - MetaMask"**.
|
||||
- MetaMask may prompt you to connect to Remix. Confirm the connection.
|
||||
- Ensure that **Status Network Testnet** is selected in MetaMask.
|
||||
- Under **"Contract"**, make sure `SimpleStorage` is selected.
|
||||
- Click **"Deploy"**.
|
||||
- MetaMask will pop up, asking you to confirm the transaction. Gas fees will be paid in ETH.
|
||||
- Review the transaction details and click **"Confirm"**.
|
||||
- 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.
|
||||
|
||||
## Interact with Your Deployed Smart Contract
|
||||
|
||||
1. **Access Deployed Contract**:
|
||||
|
||||
- In Remix, under the **"Deployed Contracts"** section, you'll see your deployed `SimpleStorage` contract.
|
||||
|
||||
2. **Store a Number**:
|
||||
|
||||
- Expand the deployed contract to view its functions.
|
||||
- In the **"store"** function input field, enter a number (e.g., `42`).
|
||||
- Click **"transact"**.
|
||||
- MetaMask will prompt you to confirm the transaction. Gas fees will be paid in ETH.
|
||||
- Wait for the transaction to be confirmed.
|
||||
|
||||
3. **Retrieve the Number**:
|
||||
|
||||
- Click on the **"retrieve"** function.
|
||||
- The stored number will display below the button.
|
||||
- This is a view function, so no gas fees are required.
|
||||
|
||||
## Next Steps
|
||||
|
||||
- **Get Support**:
|
||||
- Join our [Telegram Community](https://t.me/statusl2) for assistance
|
||||
- Check our [Network Details](/general-info/network-details) for more information
|
||||
- Learn about [bridging tokens](/general-info/bridge/bridging-testnet) to Status Network
|
||||
|
||||
## Summary
|
||||
|
||||
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
|
||||
|
||||
For more advanced development, check out our guides for deploying with:
|
||||
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||
@@ -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
|
||||
|
||||
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 +1,167 @@
|
||||
# Using Hardhat
|
||||
---
|
||||
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
|
||||
|
||||
This tutorial will guide you through the process of deploying a smart contract on Status Network testnet using Hardhat, Hardhat Ignition, and TypeScript.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have the following:
|
||||
|
||||
- **Node.js and npm**: Download and install from the [official Node.js website](https://nodejs.org/)
|
||||
- **Ethereum Wallet**: MetaMask or another wallet with a private key for Status Network testnet
|
||||
- **Testnet ETH**: You'll need Status Network testnet ETH
|
||||
- Get Status Network testnet ETH from our [Faucet](/tools/testnet-faucets)
|
||||
- **Basic Knowledge**: Familiarity with Solidity, Hardhat, and command line
|
||||
|
||||
## What You'll Accomplish
|
||||
|
||||
- Initialize a TypeScript-based Hardhat project
|
||||
- Write a basic Ethereum smart contract
|
||||
- Configure Hardhat for Status Network testnet deployment
|
||||
- Deploy your smart contract using Hardhat Ignition
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Initialize a Hardhat TypeScript Project
|
||||
|
||||
First, create and set up your project:
|
||||
|
||||
```bash
|
||||
mkdir my-hardhat-project && cd my-hardhat-project
|
||||
npm init -y
|
||||
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox dotenv
|
||||
npx hardhat init
|
||||
```
|
||||
|
||||
When prompted, select "Create a TypeScript project" to set up a TypeScript-based Hardhat project.
|
||||
|
||||
Set up your environment variables:
|
||||
|
||||
```bash
|
||||
# Create a .env file
|
||||
touch .env
|
||||
|
||||
# Add your private key (never commit this file!)
|
||||
echo "PRIVATE_KEY=your_private_key_here" >> .env
|
||||
```
|
||||
|
||||
### 2. Writing the Smart Contract
|
||||
|
||||
Create `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. Configuring Hardhat for Status Network
|
||||
|
||||
Update `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. Create Ignition Deployment Module
|
||||
|
||||
Create `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. Deploy the Contract
|
||||
|
||||
```bash
|
||||
npx hardhat compile
|
||||
npx hardhat ignition deploy ignition/modules/HelloWorld.ts --network statusTestnet
|
||||
```
|
||||
|
||||
The deployment will create a new directory `ignition/deployments` containing your deployment artifacts and history.
|
||||
|
||||
### 7. Interact with Your Contract
|
||||
|
||||
Create `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;
|
||||
|
||||
// Read current greeting
|
||||
const greeting = await contract.getGreet();
|
||||
console.log("Current greeting:", greeting);
|
||||
|
||||
// Update greeting
|
||||
const tx = await contract.setGreet("Hello from Status Network!");
|
||||
await tx.wait();
|
||||
console.log("Greeting updated!");
|
||||
|
||||
// Read updated greeting
|
||||
const newGreeting = await contract.getGreet();
|
||||
console.log("New greeting:", newGreeting);
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
```
|
||||
|
||||
Run the interaction script:
|
||||
|
||||
```bash
|
||||
npx hardhat run scripts/interact.ts --network statusTestnet
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
If you encounter any issues:
|
||||
- Join our [Telegram Community](https://t.me/statusl2)
|
||||
- View our [Network Details](/general-info/network-details)
|
||||
@@ -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 +0,0 @@
|
||||
# Interacting with Smart Contracts using ethers.js
|
||||
@@ -1 +0,0 @@
|
||||
# Using Foundry
|
||||
@@ -1 +0,0 @@
|
||||
# Using Hardhat
|
||||
+138
-59
@@ -10,29 +10,56 @@ const config: Config = {
|
||||
organizationName: 'status-network',
|
||||
projectName: 'docs',
|
||||
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en', 'zh', 'ko', 'ja'],
|
||||
localeConfigs: {
|
||||
en: {
|
||||
label: 'English',
|
||||
htmlLang: 'en-US',
|
||||
},
|
||||
zh: {
|
||||
label: '中文',
|
||||
htmlLang: 'zh-CN',
|
||||
},
|
||||
ko: {
|
||||
label: '한국어',
|
||||
htmlLang: 'ko-KR',
|
||||
},
|
||||
ja: {
|
||||
label: '日本語',
|
||||
htmlLang: 'ja-JP',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
presets: [
|
||||
[
|
||||
'classic',
|
||||
{
|
||||
docs: {
|
||||
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: '/',
|
||||
showLastUpdateTime: true,
|
||||
},
|
||||
blog: false,
|
||||
pages: false,
|
||||
theme: {
|
||||
customCss: './src/css/custom.css',
|
||||
},
|
||||
sitemap: {
|
||||
changefreq: 'weekly',
|
||||
priority: 0.5,
|
||||
ignorePatterns: ['/tags/**'],
|
||||
filename: 'sitemap.xml',
|
||||
},
|
||||
} satisfies Preset.Options,
|
||||
],
|
||||
],
|
||||
|
||||
themeConfig: {
|
||||
colorMode: {
|
||||
defaultMode: 'dark',
|
||||
respectPrefersColorScheme: true,
|
||||
},
|
||||
image: 'img/sn-social-card.png',
|
||||
navbar: {
|
||||
title: 'Status Network Docs',
|
||||
logo: {
|
||||
@@ -41,65 +68,117 @@ const config: Config = {
|
||||
},
|
||||
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',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
href: 'https://hub.status.network',
|
||||
label: 'Hub',
|
||||
type: 'localeDropdown',
|
||||
position: 'right',
|
||||
className: 'hub-button',
|
||||
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: [
|
||||
{
|
||||
title: 'Legal',
|
||||
items: [
|
||||
{
|
||||
label: 'Terms of use',
|
||||
to: '/terms-of-use',
|
||||
},
|
||||
{
|
||||
label: 'Privacy policy',
|
||||
to: '/privacy-policy',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
algolia: {
|
||||
appId: 'M7J93TRPJ9',
|
||||
apiKey: '17befa84094fd9acddd40cbb64012976',
|
||||
indexName: 'status',
|
||||
contextualSearch: true,
|
||||
},
|
||||
},
|
||||
|
||||
plugins: [
|
||||
[
|
||||
'@acid-info/docusaurus-fathom',
|
||||
{
|
||||
siteId: 'SMSOL',
|
||||
scriptUrl: 'https://fathom.bi.status.im/tracker.js',
|
||||
hostnames: ['docs.status.network'],
|
||||
},
|
||||
]
|
||||
]
|
||||
} satisfies Config;
|
||||
|
||||
export default config;
|
||||
@@ -0,0 +1,440 @@
|
||||
{
|
||||
"theme.ErrorPageContent.title": {
|
||||
"message": "エラーが発生しました",
|
||||
"description": "The title of the fallback page when the page crashed"
|
||||
},
|
||||
"theme.BackToTopButton.buttonAriaLabel": {
|
||||
"message": "先頭へ戻る",
|
||||
"description": "The ARIA label for the back to top button"
|
||||
},
|
||||
"theme.blog.archive.title": {
|
||||
"message": "アーカイブ",
|
||||
"description": "The page & hero title of the blog archive page"
|
||||
},
|
||||
"theme.blog.archive.description": {
|
||||
"message": "アーカイブ",
|
||||
"description": "The page & hero description of the blog archive page"
|
||||
},
|
||||
"theme.blog.paginator.navAriaLabel": {
|
||||
"message": "ブログ記事一覧のナビゲーション",
|
||||
"description": "The ARIA label for the blog pagination"
|
||||
},
|
||||
"theme.blog.paginator.newerEntries": {
|
||||
"message": "新しい記事",
|
||||
"description": "The label used to navigate to the newer blog posts page (previous page)"
|
||||
},
|
||||
"theme.blog.paginator.olderEntries": {
|
||||
"message": "過去の記事",
|
||||
"description": "The label used to navigate to the older blog posts page (next page)"
|
||||
},
|
||||
"theme.blog.post.paginator.navAriaLabel": {
|
||||
"message": "ブログ記事のナビゲーション",
|
||||
"description": "The ARIA label for the blog posts pagination"
|
||||
},
|
||||
"theme.blog.post.paginator.newerPost": {
|
||||
"message": "新しい記事",
|
||||
"description": "The blog post button label to navigate to the newer/previous post"
|
||||
},
|
||||
"theme.blog.post.paginator.olderPost": {
|
||||
"message": "過去の記事",
|
||||
"description": "The blog post button label to navigate to the older/next post"
|
||||
},
|
||||
"theme.tags.tagsPageLink": {
|
||||
"message": "全てのタグを見る",
|
||||
"description": "The label of the link targeting the tag list page"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel": {
|
||||
"message": "ダークモードを切り替える(現在は{mode})",
|
||||
"description": "The ARIA label for the navbar color mode toggle"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel.mode.dark": {
|
||||
"message": "ダークモード",
|
||||
"description": "The name for the dark color mode"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel.mode.light": {
|
||||
"message": "ライトモード",
|
||||
"description": "The name for the light color mode"
|
||||
},
|
||||
"theme.docs.breadcrumbs.navAriaLabel": {
|
||||
"message": "パンくずリストのナビゲーション",
|
||||
"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": {
|
||||
"message": "ドキュメントページ",
|
||||
"description": "The ARIA label for the docs pagination"
|
||||
},
|
||||
"theme.docs.paginator.previous": {
|
||||
"message": "前へ",
|
||||
"description": "The label used to navigate to the previous doc"
|
||||
},
|
||||
"theme.docs.paginator.next": {
|
||||
"message": "次へ",
|
||||
"description": "The label used to navigate to the next doc"
|
||||
},
|
||||
"theme.docs.tagDocListPageTitle.nDocsTagged": {
|
||||
"message": "{count}記事",
|
||||
"description": "Pluralized label for \"{count} docs tagged\". 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.tagDocListPageTitle": {
|
||||
"message": "「{tagName}」タグのついた{nDocsTagged}",
|
||||
"description": "The title of the page for a docs tag"
|
||||
},
|
||||
"theme.docs.versionBadge.label": {
|
||||
"message": "バージョン: {versionLabel}"
|
||||
},
|
||||
"theme.docs.versions.unreleasedVersionLabel": {
|
||||
"message": "これはリリース前のバージョン{versionLabel}の{siteTitle}のドキュメントです。",
|
||||
"description": "The label used to tell the user that he's browsing an unreleased doc version"
|
||||
},
|
||||
"theme.docs.versions.unmaintainedVersionLabel": {
|
||||
"message": "これはバージョン{versionLabel}の{siteTitle}のドキュメントで現在はメンテナンスされていません",
|
||||
"description": "The label used to tell the user that he's browsing an unmaintained doc version"
|
||||
},
|
||||
"theme.docs.versions.latestVersionSuggestionLabel": {
|
||||
"message": "最新のドキュメントは{latestVersionLink} ({versionLabel}) を見てください",
|
||||
"description": "The label used to tell the user to check the latest version"
|
||||
},
|
||||
"theme.docs.versions.latestVersionLinkLabel": {
|
||||
"message": "最新バージョン",
|
||||
"description": "The label used for the latest version suggestion link label"
|
||||
},
|
||||
"theme.common.editThisPage": {
|
||||
"message": "このページを編集",
|
||||
"description": "The link label to edit the current page"
|
||||
},
|
||||
"theme.common.headingLinkTitle": {
|
||||
"message": "{heading} への直接リンク",
|
||||
"description": "Title for link to heading"
|
||||
},
|
||||
"theme.lastUpdated.atDate": {
|
||||
"message": "{date}に",
|
||||
"description": "The words used to describe on which date a page has been last updated"
|
||||
},
|
||||
"theme.lastUpdated.byUser": {
|
||||
"message": "{user}が",
|
||||
"description": "The words used to describe by who the page has been last updated"
|
||||
},
|
||||
"theme.lastUpdated.lastUpdatedAtBy": {
|
||||
"message": "{atDate}{byUser}最終更新",
|
||||
"description": "The sentence used to display when a page has been last updated, and by who"
|
||||
},
|
||||
"theme.navbar.mobileVersionsDropdown.label": {
|
||||
"message": "他のバージョン",
|
||||
"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": {
|
||||
"message": "タグ:",
|
||||
"description": "The label alongside a tag list"
|
||||
},
|
||||
"theme.admonition.caution": {
|
||||
"message": "注意",
|
||||
"description": "The default label used for the Caution admonition (:::caution)"
|
||||
},
|
||||
"theme.admonition.danger": {
|
||||
"message": "危険",
|
||||
"description": "The default label used for the Danger admonition (:::danger)"
|
||||
},
|
||||
"theme.admonition.info": {
|
||||
"message": "備考",
|
||||
"description": "The default label used for the Info admonition (:::info)"
|
||||
},
|
||||
"theme.admonition.note": {
|
||||
"message": "注記",
|
||||
"description": "The default label used for the Note admonition (:::note)"
|
||||
},
|
||||
"theme.admonition.tip": {
|
||||
"message": "ヒント",
|
||||
"description": "The default label used for the Tip admonition (:::tip)"
|
||||
},
|
||||
"theme.admonition.warning": {
|
||||
"message": "警告",
|
||||
"description": "The default label used for the Warning admonition (:::warning)"
|
||||
},
|
||||
"theme.AnnouncementBar.closeButtonAriaLabel": {
|
||||
"message": "閉じる",
|
||||
"description": "The ARIA label for close button of announcement bar"
|
||||
},
|
||||
"theme.blog.sidebar.navAriaLabel": {
|
||||
"message": "最近のブログ記事のナビゲーション",
|
||||
"description": "The ARIA label for recent posts in the blog sidebar"
|
||||
},
|
||||
"theme.CodeBlock.copied": {
|
||||
"message": "コピーしました",
|
||||
"description": "The copied button label on code blocks"
|
||||
},
|
||||
"theme.CodeBlock.copyButtonAriaLabel": {
|
||||
"message": "クリップボードにコードをコピー",
|
||||
"description": "The ARIA label for copy code blocks button"
|
||||
},
|
||||
"theme.CodeBlock.copy": {
|
||||
"message": "コピー",
|
||||
"description": "The copy button label on code blocks"
|
||||
},
|
||||
"theme.CodeBlock.wordWrapToggle": {
|
||||
"message": "折り返し",
|
||||
"description": "The title attribute for toggle word wrapping button of code block lines"
|
||||
},
|
||||
"theme.DocSidebarItem.expandCategoryAriaLabel": {
|
||||
"message": "'{label}'の目次を開く",
|
||||
"description": "The ARIA label to expand the sidebar category"
|
||||
},
|
||||
"theme.DocSidebarItem.collapseCategoryAriaLabel": {
|
||||
"message": "'{label}'の目次を隠す",
|
||||
"description": "The ARIA label to collapse the sidebar category"
|
||||
},
|
||||
"theme.NavBar.navAriaLabel": {
|
||||
"message": "ナビゲーション",
|
||||
"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": {
|
||||
"message": "お探しのページが見つかりませんでした",
|
||||
"description": "The first paragraph of the 404 page"
|
||||
},
|
||||
"theme.NotFound.p2": {
|
||||
"message": "このページにリンクしているサイトの所有者にリンクが壊れていることを伝えてください",
|
||||
"description": "The 2nd paragraph of the 404 page"
|
||||
},
|
||||
"theme.TOCCollapsible.toggleButtonLabel": {
|
||||
"message": "このページの見出し",
|
||||
"description": "The label used by the button on the collapsible TOC component"
|
||||
},
|
||||
"theme.blog.post.readMore": {
|
||||
"message": "もっと見る",
|
||||
"description": "The label used in blog post item excerpts to link to full blog posts"
|
||||
},
|
||||
"theme.blog.post.readMoreLabel": {
|
||||
"message": "{title}についてもっと見る",
|
||||
"description": "The ARIA label for the link to full blog posts from excerpts"
|
||||
},
|
||||
"theme.blog.post.readingTime.plurals": {
|
||||
"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)"
|
||||
},
|
||||
"theme.docs.breadcrumbs.home": {
|
||||
"message": "ホームページ",
|
||||
"description": "The ARIA label for the home page in the breadcrumbs"
|
||||
},
|
||||
"theme.docs.sidebar.collapseButtonTitle": {
|
||||
"message": "サイドバーを隠す",
|
||||
"description": "The title attribute for collapse button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.collapseButtonAriaLabel": {
|
||||
"message": "サイドバーを隠す",
|
||||
"description": "The title attribute for collapse button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.navAriaLabel": {
|
||||
"message": "ドキュメントのサイドバー",
|
||||
"description": "The ARIA label for the sidebar navigation"
|
||||
},
|
||||
"theme.docs.sidebar.closeSidebarButtonAriaLabel": {
|
||||
"message": "ナビゲーションバーを閉じる",
|
||||
"description": "The ARIA label for close button of mobile sidebar"
|
||||
},
|
||||
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
|
||||
"message": "← メインメニューに戻る",
|
||||
"description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
|
||||
},
|
||||
"theme.docs.sidebar.toggleSidebarButtonAriaLabel": {
|
||||
"message": "ナビゲーションバーを開く",
|
||||
"description": "The ARIA label for hamburger menu button of mobile navigation"
|
||||
},
|
||||
"theme.docs.sidebar.expandButtonTitle": {
|
||||
"message": "サイドバーを開く",
|
||||
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.expandButtonAriaLabel": {
|
||||
"message": "サイドバーを開く",
|
||||
"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": {
|
||||
"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)"
|
||||
},
|
||||
"theme.blog.tagTitle": {
|
||||
"message": "「{tagName}」タグの記事が{nPosts}件あります",
|
||||
"description": "The title of the page for a blog tag"
|
||||
},
|
||||
"theme.blog.author.pageTitle": {
|
||||
"message": "{authorName} - {nPosts}",
|
||||
"description": "The title of the page for a blog author"
|
||||
},
|
||||
"theme.blog.authorsList.pageTitle": {
|
||||
"message": "Authors",
|
||||
"description": "The title of the authors page"
|
||||
},
|
||||
"theme.blog.authorsList.viewAll": {
|
||||
"message": "View All Authors",
|
||||
"description": "The label of the link targeting the blog authors page"
|
||||
},
|
||||
"theme.contentVisibility.unlistedBanner.title": {
|
||||
"message": "非公開のページ",
|
||||
"description": "The unlisted content banner title"
|
||||
},
|
||||
"theme.contentVisibility.unlistedBanner.message": {
|
||||
"message": "このページは非公開です。 検索対象外となり、このページのリンクに直接アクセスできるユーザーのみに公開されます。",
|
||||
"description": "The unlisted content banner message"
|
||||
},
|
||||
"theme.contentVisibility.draftBanner.title": {
|
||||
"message": "Draft page",
|
||||
"description": "The draft content banner title"
|
||||
},
|
||||
"theme.contentVisibility.draftBanner.message": {
|
||||
"message": "This page is a draft. It will only be visible in dev and be excluded from the production build.",
|
||||
"description": "The draft content banner message"
|
||||
},
|
||||
"theme.ErrorPageContent.tryAgain": {
|
||||
"message": "もう一度試してください",
|
||||
"description": "The label of the button to try again rendering when the React error boundary captures an error"
|
||||
},
|
||||
"theme.common.skipToMainContent": {
|
||||
"message": "メインコンテンツまでスキップ",
|
||||
"description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
|
||||
},
|
||||
"theme.tags.tagsPageTitle": {
|
||||
"message": "タグ",
|
||||
"description": "The title of the tag list page"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"version.label": {
|
||||
"message": "Next",
|
||||
"description": "The label for version current"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.INTRODUCTION": {
|
||||
"message": "はじめに",
|
||||
"description": "The label for category INTRODUCTION in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TOKENOMICS": {
|
||||
"message": "トークノミクス",
|
||||
"description": "The label for category TOKENOMICS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.GENERAL INFO": {
|
||||
"message": "一般情報",
|
||||
"description": "The label for category GENERAL INFO in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🏡 Contract Addresses": {
|
||||
"message": "🏡 コントラクトアドレス",
|
||||
"description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🌉 Bridge": {
|
||||
"message": "🌉 ブリッジ",
|
||||
"description": "The label for category 🌉 Bridge in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TOOLS": {
|
||||
"message": "ツール",
|
||||
"description": "The label for category TOOLS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TUTORIALS": {
|
||||
"message": "チュートリアル",
|
||||
"description": "The label for category TUTORIALS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🚀 Deploying a Smart Contract": {
|
||||
"message": "🚀 スマートコントラクトのデプロイ",
|
||||
"description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||
"message": "その他のドキュメント",
|
||||
"description": "The label for category OTHER DOCS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🏠 Home": {
|
||||
"message": "🏠 ホーム",
|
||||
"description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚡ Quick Start": {
|
||||
"message": "⚡ クイックスタート",
|
||||
"description": "The label for the doc item ⚡ Quick Start in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💎 SNT Token": {
|
||||
"message": "💎 SNT Token",
|
||||
"description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💠 Karma Token": {
|
||||
"message": "💠 Karma Token",
|
||||
"description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||
"message": "🌐 ネットワーク詳細",
|
||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||
"message": "➕ Status ネットワークの追加",
|
||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||
"message": "💰 トークン",
|
||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||
"message": "🧪 テストネットコントラクト",
|
||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||
"message": "🧪 テストネットブリッジ",
|
||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||
"message": "🌉 ブリッジ",
|
||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||
"message": "🚰 テストネットフォーセット",
|
||||
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||
"message": "🔎 ブロックエクスプローラー",
|
||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||
"message": "🎩 Hardhatの使用",
|
||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||
"message": "⚒️ Foundryの使用",
|
||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||
"message": "🎛️ Remixの使用",
|
||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||
"message": "🔗 公式リンク",
|
||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌴 Home": {
|
||||
"message": "🌴 Home",
|
||||
"description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🤝 Economic Model": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
# 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を正常に追加できました!
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
# 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
@@ -0,0 +1,43 @@
|
||||
# テストネットのコントラクト
|
||||
|
||||
このページでは、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
@@ -0,0 +1,11 @@
|
||||
# トークン
|
||||
|
||||
Status Network上でサポートされているトークンとそのコントラクトアドレスの最新リストについては、公式の[Status Networkトークンリストリポジトリ](https://github.com/status-im/status-network-token-list)をご参照ください。
|
||||
|
||||
このリポジトリには以下が含まれています:
|
||||
- L1(Sepolia)とL2(Status Network)両方のトークンアドレス
|
||||
- トークンのメタデータ(小数点以下の桁数、シンボルなど)
|
||||
- ブリッジコントラクトのマッピング
|
||||
- Status Networkにデプロイされているアプリケーショントークン
|
||||
|
||||
トークンリストは、トークンブリッジング操作の正確性とセキュリティを確保するため、定期的に維持・更新されています。
|
||||
@@ -0,0 +1,20 @@
|
||||
# ネットワークの詳細
|
||||
|
||||
## Status テストネット
|
||||
|
||||
| 名前 | 値 |
|
||||
|---------------------|------------------------------------------|
|
||||
| **ネットワーク名** | Status Network Testnet |
|
||||
| **RPC エンドポイント** | https://public.sepolia.rpc.status.network |
|
||||
| **チェーンID** | 1660990954 |
|
||||
| **通貨シンボル** | ETH |
|
||||
| **ブロックエクスプローラー** | https://sepoliascan.status.network |
|
||||
| **ブリッジ** | https://bridge.status.network |
|
||||
|
||||
これらはStatus Networkテストネットの公式ネットワーク詳細です。これらの詳細は以下の用途に使用できます:
|
||||
- ウォレットへのネットワークの追加
|
||||
- 開発環境の設定
|
||||
- ネットワークへのdAppsの接続
|
||||
- スマートコントラクトの検証
|
||||
|
||||
ウォレットへのネットワークの追加方法については、[Status Network追加ガイド](./add-status-network.md)をご参照ください。
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: index
|
||||
title: Status Networkへようこそ
|
||||
description: Status Networkは、シームレスで手数料無料の分散型アプリケーションを実現するガスレスなレイヤー2ブロックチェーンネットワークです。簡単なウォレット設定、フォーセット、デプロイメントツールで開発を始めましょう。
|
||||
keywords: [Status Network, レイヤー2, ガスレスブロックチェーン, イーサリアムスケーリング, L2, バリディウム, web3開発, dapp開発, ブロックチェーン開発]
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Status Network: ガスレスなレイヤー2ネットワーク
|
||||
|
||||
Status Networkは、ソーシャルアプリとゲームに最適化された初のネイティブガスレスイーサリアムL2で、ネイティブ収益とDEX手数料を通じて開発者向けの持続可能な公的資金を提供します。Linea zkEVMスタック上に構築され、革新的な資金調達モデルを通じて経済的持続可能性を確保しながら、ガスフリーの高性能トランザクションを提供します。
|
||||
|
||||
## 主な特徴
|
||||
|
||||
- **ガスレストランザクション**
|
||||
|
||||
開発者はシームレスな体験を作成でき、ユーザーはガス料金を気にすることなく取引できます。
|
||||
|
||||
- **ネイティブ収益と手数料**
|
||||
|
||||
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)を閲覧
|
||||
|
||||
素晴らしいものを作る準備はできていますか?今すぐフリーネットワークでの旅を始めましょう!
|
||||
@@ -0,0 +1,118 @@
|
||||
# クイックスタート
|
||||
|
||||
このセクションでは、10分以内に**Status Networkテストネット**にサンプルコントラクトをデプロイする方法を説明します。
|
||||
|
||||
簡単のため、Remix IDEを使用してStatus Networkにスマートコントラクトをデプロイする方法を見ていきましょう。
|
||||
|
||||
## 準備
|
||||
|
||||
始める前に:
|
||||
|
||||
1. **Status NetworkテストネットをMetaMaskに追加**:
|
||||
|
||||
MetaMaskにStatus Networkテストネットを追加する方法については、[Status Network追加ガイド](/general-info/add-status-network)の手順に従ってください。
|
||||
|
||||
2. **テストETHを入手**:
|
||||
|
||||
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**は、セットアップ不要のスマートコントラクト開発ツールです。簡単に始められ、シンプルなデプロイプロセス、デバッグ、スマートコントラクトとの対話などが可能です。
|
||||
|
||||
このチュートリアルでは、シンプルな`SimpleStorage.sol`コントラクトをデプロイします:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
contract SimpleStorage {
|
||||
uint256 number;
|
||||
|
||||
function store(uint256 num) public {
|
||||
number = num;
|
||||
}
|
||||
|
||||
function retrieve() public view returns (uint256) {
|
||||
return number;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> **注意:** このコントラクトは数値を保存し、その数値を読み取ることができます。
|
||||
|
||||
## デプロイの手順
|
||||
|
||||
1. **サンプルコードをコピー**:
|
||||
|
||||
- サンプルコードをコピーし、Remixで`SimpleStorage.sol`という新しいファイルに貼り付けます。
|
||||
|
||||
2. **スマートコントラクトをコンパイル**:
|
||||
|
||||
- 左サイドバーの**Solidityコンパイラー**タブに移動。
|
||||
- コンパイラーバージョンが0.8.0以上であることを確認。
|
||||
- **「SimpleStorage.solをコンパイル」**をクリック。
|
||||
- コントラクトコードを変更するたびに自動コンパイルするには**「自動コンパイル」**を有効にできます。
|
||||
|
||||
3. **スマートコントラクトをデプロイ**:
|
||||
|
||||
- **デプロイ&実行トランザクション**タブに切り替え。
|
||||
- **「環境」**ドロップダウンメニューで**「Injected Provider - MetaMask」**を選択。
|
||||
- MetaMaskがRemixへの接続を求めることがあります。接続を確認してください。
|
||||
- MetaMaskで**Status Networkテストネット**が選択されていることを確認。
|
||||
- **「コントラクト」**で`SimpleStorage`が選択されていることを確認。
|
||||
- **「デプロイ」**をクリック。
|
||||
- MetaMaskがポップアップし、トランザクションの確認を求めます。ガス代はETHで支払われます。
|
||||
- トランザクションの詳細を確認し、**「確認」**をクリック。
|
||||
- トランザクションがマイニングされるのを待ちます。
|
||||
|
||||
4. **デプロイを確認**:
|
||||
|
||||
- デプロイ後、Remixからコントラクトのアドレスをコピー
|
||||
- [Status Networkエクスプローラー](https://sepoliascan.status.network)で確認
|
||||
|
||||
**おめでとうございます!** Status Networkに最初のスマートコントラクトをデプロイしました。
|
||||
|
||||
## デプロイしたスマートコントラクトと対話する
|
||||
|
||||
1. **デプロイしたコントラクトにアクセス**:
|
||||
|
||||
- Remixの**「デプロイされたコントラクト」**セクションで、デプロイした`SimpleStorage`コントラクトが表示されます。
|
||||
|
||||
2. **数値を保存**:
|
||||
|
||||
- デプロイされたコントラクトを展開して関数を表示。
|
||||
- **「store」**関数の入力フィールドに数値(例:`42`)を入力。
|
||||
- **「transact」**をクリック。
|
||||
- MetaMaskがトランザクションの確認を求めます。ガス代はETHで支払われます。
|
||||
- トランザクションが確認されるのを待ちます。
|
||||
|
||||
3. **数値を取得**:
|
||||
|
||||
- **「retrieve」**関数をクリック。
|
||||
- ボタンの下に保存された数値が表示されます。
|
||||
- これはview関数なので、ガス代は不要です。
|
||||
|
||||
## 次のステップ
|
||||
|
||||
- **サポートを受ける**:
|
||||
- サポートが必要な場合は[Telegramコミュニティ](https://t.me/statusl2)に参加
|
||||
- 詳細については[ネットワークの詳細](/general-info/network-details)をチェック
|
||||
- Status Networkへの[トークンのブリッジ](/general-info/bridge/bridging-testnet)について学ぶ
|
||||
|
||||
## まとめ
|
||||
|
||||
以下のことを達成しました:
|
||||
- Status Networkテストネットと対話するための環境設定
|
||||
- ブリッジまたはフォーセットを通じてテストネットETHを入手
|
||||
- Remix IDEとMetaMaskを使用してスマートコントラクトをデプロイ
|
||||
- 数値の保存と取得によってデプロイしたコントラクトと対話
|
||||
|
||||
より高度な開発については、以下を使用したデプロイのガイドをチェックしてください:
|
||||
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||
@@ -0,0 +1,24 @@
|
||||
# 公式リンク
|
||||
|
||||
このページには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)をご参照ください。
|
||||
@@ -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をステーキングすることで、保有者はエコシステムとの連携を示し、カルマの形で評価スコアを示すことができます。エコシステム内のアプリは、高い評価を持つユーザーを引き付ける強いインセンティブを持っています。
|
||||
@@ -0,0 +1,35 @@
|
||||
# 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のドキュメントは近日公開予定です。
|
||||
@@ -0,0 +1,45 @@
|
||||
# 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)に参加
|
||||
@@ -0,0 +1,52 @@
|
||||
# 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戦略の実装を検討
|
||||
@@ -0,0 +1,34 @@
|
||||
# テストネットフォーセット
|
||||
|
||||
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
@@ -0,0 +1,208 @@
|
||||
# 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
@@ -0,0 +1,161 @@
|
||||
# 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
@@ -0,0 +1,98 @@
|
||||
# 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)
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"title": {
|
||||
"message": "Status Network Docs",
|
||||
"description": "The title in the navbar"
|
||||
},
|
||||
"logo.alt": {
|
||||
"message": "Status Network Logo",
|
||||
"description": "The alt text of navbar logo"
|
||||
},
|
||||
"item.label.Hub": {
|
||||
"message": "Hub",
|
||||
"description": "Navbar item with label Hub"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,440 @@
|
||||
{
|
||||
"theme.ErrorPageContent.title": {
|
||||
"message": "페이지에 오류가 발생하였습니다.",
|
||||
"description": "The title of the fallback page when the page crashed"
|
||||
},
|
||||
"theme.BackToTopButton.buttonAriaLabel": {
|
||||
"message": "맨 위로 스크롤하기",
|
||||
"description": "The ARIA label for the back to top button"
|
||||
},
|
||||
"theme.blog.archive.title": {
|
||||
"message": "게시물 목록",
|
||||
"description": "The page & hero title of the blog archive page"
|
||||
},
|
||||
"theme.blog.archive.description": {
|
||||
"message": "게시물 목록",
|
||||
"description": "The page & hero description of the blog archive page"
|
||||
},
|
||||
"theme.blog.paginator.navAriaLabel": {
|
||||
"message": "블로그 게시물 목록 탐색",
|
||||
"description": "The ARIA label for the blog pagination"
|
||||
},
|
||||
"theme.blog.paginator.newerEntries": {
|
||||
"message": "이전 페이지",
|
||||
"description": "The label used to navigate to the newer blog posts page (previous page)"
|
||||
},
|
||||
"theme.blog.paginator.olderEntries": {
|
||||
"message": "다음 페이지",
|
||||
"description": "The label used to navigate to the older blog posts page (next page)"
|
||||
},
|
||||
"theme.blog.post.paginator.navAriaLabel": {
|
||||
"message": "블로그 게시물 탐색",
|
||||
"description": "The ARIA label for the blog posts pagination"
|
||||
},
|
||||
"theme.blog.post.paginator.newerPost": {
|
||||
"message": "이전 게시물",
|
||||
"description": "The blog post button label to navigate to the newer/previous post"
|
||||
},
|
||||
"theme.blog.post.paginator.olderPost": {
|
||||
"message": "다음 게시물",
|
||||
"description": "The blog post button label to navigate to the older/next post"
|
||||
},
|
||||
"theme.tags.tagsPageLink": {
|
||||
"message": "모든 태그 보기",
|
||||
"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": {
|
||||
"message": "어두운 모드와 밝은 모드 전환하기 (현재 {mode})",
|
||||
"description": "The ARIA label for the navbar color mode toggle"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel.mode.dark": {
|
||||
"message": "어두운 모드",
|
||||
"description": "The name for the dark color mode"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel.mode.light": {
|
||||
"message": "밝은 모드",
|
||||
"description": "The name for the light color mode"
|
||||
},
|
||||
"theme.docs.breadcrumbs.navAriaLabel": {
|
||||
"message": "Breadcrumbs",
|
||||
"description": "The ARIA label for the breadcrumbs"
|
||||
},
|
||||
"theme.docs.paginator.navAriaLabel": {
|
||||
"message": "문서 페이지",
|
||||
"description": "The ARIA label for the docs pagination"
|
||||
},
|
||||
"theme.docs.paginator.previous": {
|
||||
"message": "이전",
|
||||
"description": "The label used to navigate to the previous doc"
|
||||
},
|
||||
"theme.docs.paginator.next": {
|
||||
"message": "다음",
|
||||
"description": "The label used to navigate to the next doc"
|
||||
},
|
||||
"theme.docs.tagDocListPageTitle.nDocsTagged": {
|
||||
"message": "{count}개 문서가",
|
||||
"description": "Pluralized label for \"{count} docs tagged\". 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.tagDocListPageTitle": {
|
||||
"message": "{nDocsTagged} \"{tagName}\" 태그에 분류되었습니다",
|
||||
"description": "The title of the page for a docs tag"
|
||||
},
|
||||
"theme.docs.versionBadge.label": {
|
||||
"message": "버전: {versionLabel}"
|
||||
},
|
||||
"theme.docs.versions.unreleasedVersionLabel": {
|
||||
"message": "{siteTitle} {versionLabel} 문서는 아직 정식 공개되지 않았습니다.",
|
||||
"description": "The label used to tell the user that he's browsing an unreleased doc version"
|
||||
},
|
||||
"theme.docs.versions.unmaintainedVersionLabel": {
|
||||
"message": "{siteTitle} {versionLabel} 문서는 더 이상 업데이트되지 않습니다.",
|
||||
"description": "The label used to tell the user that he's browsing an unmaintained doc version"
|
||||
},
|
||||
"theme.docs.versions.latestVersionSuggestionLabel": {
|
||||
"message": "최신 문서는 {latestVersionLink} ({versionLabel})을 확인하세요.",
|
||||
"description": "The label used to tell the user to check the latest version"
|
||||
},
|
||||
"theme.docs.versions.latestVersionLinkLabel": {
|
||||
"message": "최신 버전",
|
||||
"description": "The label used for the latest version suggestion link label"
|
||||
},
|
||||
"theme.common.editThisPage": {
|
||||
"message": "페이지 편집",
|
||||
"description": "The link label to edit the current page"
|
||||
},
|
||||
"theme.common.headingLinkTitle": {
|
||||
"message": "{heading}에 대한 직접 링크",
|
||||
"description": "Title for link to heading"
|
||||
},
|
||||
"theme.lastUpdated.atDate": {
|
||||
"message": " {date}에",
|
||||
"description": "The words used to describe on which date a page has been last updated"
|
||||
},
|
||||
"theme.lastUpdated.byUser": {
|
||||
"message": " {user}가",
|
||||
"description": "The words used to describe by who the page has been last updated"
|
||||
},
|
||||
"theme.lastUpdated.lastUpdatedAtBy": {
|
||||
"message": "최종 수정: {atDate}{byUser}",
|
||||
"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": {
|
||||
"message": "버전",
|
||||
"description": "The label for the navbar versions dropdown on mobile view"
|
||||
},
|
||||
"theme.tags.tagsListLabel": {
|
||||
"message": "태그:",
|
||||
"description": "The label alongside a tag list"
|
||||
},
|
||||
"theme.AnnouncementBar.closeButtonAriaLabel": {
|
||||
"message": "닫기",
|
||||
"description": "The ARIA label for close button of announcement bar"
|
||||
},
|
||||
"theme.admonition.caution": {
|
||||
"message": "주의",
|
||||
"description": "The default label used for the Caution admonition (:::caution)"
|
||||
},
|
||||
"theme.admonition.danger": {
|
||||
"message": "위험",
|
||||
"description": "The default label used for the Danger admonition (:::danger)"
|
||||
},
|
||||
"theme.admonition.info": {
|
||||
"message": "정보",
|
||||
"description": "The default label used for the Info admonition (:::info)"
|
||||
},
|
||||
"theme.admonition.note": {
|
||||
"message": "노트",
|
||||
"description": "The default label used for the Note admonition (:::note)"
|
||||
},
|
||||
"theme.admonition.tip": {
|
||||
"message": "팁",
|
||||
"description": "The default label used for the Tip admonition (:::tip)"
|
||||
},
|
||||
"theme.admonition.warning": {
|
||||
"message": "경고",
|
||||
"description": "The default label used for the Warning admonition (:::warning)"
|
||||
},
|
||||
"theme.blog.sidebar.navAriaLabel": {
|
||||
"message": "최근 블로그 문서 둘러보기",
|
||||
"description": "The ARIA label for recent posts in the blog sidebar"
|
||||
},
|
||||
"theme.CodeBlock.copied": {
|
||||
"message": "복사했습니다",
|
||||
"description": "The copied button label on code blocks"
|
||||
},
|
||||
"theme.CodeBlock.copyButtonAriaLabel": {
|
||||
"message": "클립보드에 코드 복사",
|
||||
"description": "The ARIA label for copy code blocks button"
|
||||
},
|
||||
"theme.CodeBlock.copy": {
|
||||
"message": "복사",
|
||||
"description": "The copy button label on code blocks"
|
||||
},
|
||||
"theme.CodeBlock.wordWrapToggle": {
|
||||
"message": "줄 바꿈 전환",
|
||||
"description": "The title attribute for toggle word wrapping button of code block lines"
|
||||
},
|
||||
"theme.DocSidebarItem.expandCategoryAriaLabel": {
|
||||
"message": "사이드바 분류 '{label}' 펼치기",
|
||||
"description": "The ARIA label to expand the sidebar category"
|
||||
},
|
||||
"theme.DocSidebarItem.collapseCategoryAriaLabel": {
|
||||
"message": "사이드바 분류 '{label}' 접기",
|
||||
"description": "The ARIA label to collapse the sidebar category"
|
||||
},
|
||||
"theme.NavBar.navAriaLabel": {
|
||||
"message": "메인",
|
||||
"description": "The ARIA label for the main navigation"
|
||||
},
|
||||
"theme.NotFound.p1": {
|
||||
"message": "원하는 페이지를 찾을 수 없습니다.",
|
||||
"description": "The first paragraph of the 404 page"
|
||||
},
|
||||
"theme.NotFound.p2": {
|
||||
"message": "사이트 관리자에게 링크가 깨진 것을 알려주세요.",
|
||||
"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": {
|
||||
"message": "이 페이지에서",
|
||||
"description": "The label used by the button on the collapsible TOC component"
|
||||
},
|
||||
"theme.blog.post.readMore": {
|
||||
"message": "자세히 보기",
|
||||
"description": "The label used in blog post item excerpts to link to full blog posts"
|
||||
},
|
||||
"theme.blog.post.readMoreLabel": {
|
||||
"message": "{title} 에 대해 더 읽어보기",
|
||||
"description": "The ARIA label for the link to full blog posts from excerpts"
|
||||
},
|
||||
"theme.blog.post.readingTime.plurals": {
|
||||
"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)"
|
||||
},
|
||||
"theme.docs.sidebar.collapseButtonTitle": {
|
||||
"message": "사이드바 숨기기",
|
||||
"description": "The title attribute for collapse button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.collapseButtonAriaLabel": {
|
||||
"message": "사이드바 숨기기",
|
||||
"description": "The title attribute for collapse button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.navAriaLabel": {
|
||||
"message": "문서 사이드바",
|
||||
"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": {
|
||||
"message": "사이드바 닫기",
|
||||
"description": "The ARIA label for close button of mobile sidebar"
|
||||
},
|
||||
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
|
||||
"message": "← 메인 메뉴로 돌아가기",
|
||||
"description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
|
||||
},
|
||||
"theme.docs.sidebar.toggleSidebarButtonAriaLabel": {
|
||||
"message": "사이드바 펼치거나 접기",
|
||||
"description": "The ARIA label for hamburger menu button of mobile navigation"
|
||||
},
|
||||
"theme.docs.sidebar.expandButtonTitle": {
|
||||
"message": "사이드바 열기",
|
||||
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.expandButtonAriaLabel": {
|
||||
"message": "사이드바 열기",
|
||||
"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": {
|
||||
"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)"
|
||||
},
|
||||
"theme.blog.tagTitle": {
|
||||
"message": "\"{tagName}\" 태그로 연결된 {nPosts}개의 게시물이 있습니다.",
|
||||
"description": "The title of the page for a blog tag"
|
||||
},
|
||||
"theme.blog.author.pageTitle": {
|
||||
"message": "{authorName} - {nPosts}",
|
||||
"description": "The title of the page for a blog author"
|
||||
},
|
||||
"theme.blog.authorsList.pageTitle": {
|
||||
"message": "Authors",
|
||||
"description": "The title of the authors page"
|
||||
},
|
||||
"theme.blog.authorsList.viewAll": {
|
||||
"message": "View All Authors",
|
||||
"description": "The label of the link targeting the blog authors page"
|
||||
},
|
||||
"theme.contentVisibility.unlistedBanner.title": {
|
||||
"message": "색인되지 않은 문서",
|
||||
"description": "The unlisted content banner title"
|
||||
},
|
||||
"theme.contentVisibility.unlistedBanner.message": {
|
||||
"message": "이 문서는 색인되지 않습니다. 검색 엔진이 이 문서를 색인하지 않으며, 주소를 알고 있는 사용자만 접근할 수 있습니다.",
|
||||
"description": "The unlisted content banner message"
|
||||
},
|
||||
"theme.contentVisibility.draftBanner.title": {
|
||||
"message": "Draft page",
|
||||
"description": "The draft content banner title"
|
||||
},
|
||||
"theme.contentVisibility.draftBanner.message": {
|
||||
"message": "This page is a draft. It will only be visible in dev and be excluded from the production build.",
|
||||
"description": "The draft content banner message"
|
||||
},
|
||||
"theme.ErrorPageContent.tryAgain": {
|
||||
"message": "다시 시도해 보세요",
|
||||
"description": "The label of the button to try again rendering when the React error boundary captures an error"
|
||||
},
|
||||
"theme.common.skipToMainContent": {
|
||||
"message": "본문으로 건너뛰기",
|
||||
"description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
|
||||
},
|
||||
"theme.tags.tagsPageTitle": {
|
||||
"message": "태그",
|
||||
"description": "The title of the tag list page"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"version.label": {
|
||||
"message": "Next",
|
||||
"description": "The label for version current"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.INTRODUCTION": {
|
||||
"message": "소개",
|
||||
"description": "The label for category INTRODUCTION in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TOKENOMICS": {
|
||||
"message": "토큰노믹스",
|
||||
"description": "The label for category TOKENOMICS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.GENERAL INFO": {
|
||||
"message": "일반 정보",
|
||||
"description": "The label for category GENERAL INFO in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🏡 Contract Addresses": {
|
||||
"message": "🏡 컨트랙트 주소",
|
||||
"description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🌉 Bridge": {
|
||||
"message": "🌉 브릿지",
|
||||
"description": "The label for category 🌉 Bridge in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TOOLS": {
|
||||
"message": "도구",
|
||||
"description": "The label for category TOOLS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TUTORIALS": {
|
||||
"message": "튜토리얼",
|
||||
"description": "The label for category TUTORIALS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🚀 Deploying a Smart Contract": {
|
||||
"message": "🚀 스마트 컨트랙트 배포",
|
||||
"description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||
"message": "기타 문서",
|
||||
"description": "The label for category OTHER DOCS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🏠 Home": {
|
||||
"message": "🏠 홈",
|
||||
"description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚡ Quick Start": {
|
||||
"message": "⚡ 빠른 시작",
|
||||
"description": "The label for the doc item ⚡ Quick Start in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💎 SNT Token": {
|
||||
"message": "💎 SNT Token",
|
||||
"description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💠 Karma Token": {
|
||||
"message": "💠 Karma Token",
|
||||
"description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||
"message": "🌐 네트워크 세부정보",
|
||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||
"message": "➕ Status 네트워크 추가",
|
||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||
"message": "💰 토큰",
|
||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||
"message": "🧪 테스트넷 컨트랙트",
|
||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||
"message": "🧪 테스트넷 브릿징",
|
||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||
"message": "🌉 브릿지",
|
||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||
"message": "🚰 테스트넷 수도꼭지",
|
||||
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||
"message": "🔎 블록 익스플로러",
|
||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||
"message": "🎩 Hardhat 사용하기",
|
||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||
"message": "⚒️ Foundry 사용하기",
|
||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||
"message": "🎛️ Remix 사용하기",
|
||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||
"message": "🔗 공식 링크",
|
||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌴 Home": {
|
||||
"message": "🌴 Home",
|
||||
"description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🤝 Economic Model": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
# 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를 성공적으로 추가하실 수 있습니다!
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
# 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
@@ -0,0 +1,43 @@
|
||||
# 테스트넷 컨트랙트
|
||||
|
||||
이 페이지는 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
@@ -0,0 +1,11 @@
|
||||
# 토큰
|
||||
|
||||
Status Network에서 지원되는 토큰과 해당 컨트랙트 주소의 최신 목록은 공식 [Status Network 토큰 목록 저장소](https://github.com/status-im/status-network-token-list)를 참조하시기 바랍니다.
|
||||
|
||||
이 저장소에는 다음 내용이 포함되어 있습니다:
|
||||
- L1(Sepolia)과 L2(Status Network) 양쪽의 토큰 주소
|
||||
- 토큰 메타데이터(소수점, 심볼 등)
|
||||
- 브리지 컨트랙트 매핑
|
||||
- Status Network에 배포된 앱 토큰
|
||||
|
||||
토큰 목록은 토큰 브리징 작업의 정확성과 보안을 보장하기 위해 정기적으로 유지 관리되고 업데이트됩니다.
|
||||
@@ -0,0 +1,20 @@
|
||||
# 네트워크 세부정보
|
||||
|
||||
## Status 테스트넷
|
||||
|
||||
| 이름 | 값 |
|
||||
|---------------------|------------------------------------------|
|
||||
| **네트워크 이름** | Status Network Testnet |
|
||||
| **RPC 엔드포인트** | https://public.sepolia.rpc.status.network |
|
||||
| **체인 ID** | 1660990954 |
|
||||
| **통화 기호** | ETH |
|
||||
| **블록 탐색기** | https://sepoliascan.status.network |
|
||||
| **브리지** | https://bridge.status.network |
|
||||
|
||||
이것은 Status Network 테스트넷의 공식 네트워크 세부정보입니다. 이 세부정보는 다음과 같은 용도로 사용할 수 있습니다:
|
||||
- 지갑에 네트워크 추가
|
||||
- 개발 환경 구성
|
||||
- 네트워크에 dApp 연결
|
||||
- 스마트 컨트랙트 검증
|
||||
|
||||
지갑에 네트워크를 추가하는 방법은 [Status Network 추가 가이드](./add-status-network.md)를 참조하세요.
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: index
|
||||
title: Status Network에 오신 것을 환영합니다
|
||||
description: Status Network는 원활하고 수수료가 없는 탈중앙화 애플리케이션을 가능하게 하는 가스리스 레이어 2 블록체인 네트워크입니다. 간단한 지갑 설정, 수도꼭지, 배포 도구로 구축을 시작하세요.
|
||||
keywords: [Status Network, 레이어 2, 가스리스 블록체인, 이더리움 스케일링, L2, validium, web3 개발, dapp 개발, 블록체인 개발]
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Status Network: 가스리스 레이어 2 네트워크
|
||||
|
||||
Status Network는 소셜 앱과 게임에 최적화된 최초의 네이티브 가스리스 이더리움 L2로, 네이티브 수익과 DEX 수수료를 통해 개발자를 위한 지속 가능한 공공 자금을 제공합니다. Linea zkEVM 스택 위에 구축되어 혁신적인 자금 조달 모델을 통해 경제적 지속가능성을 보장하면서 가스 없는 고성능 트랜잭션을 제공합니다.
|
||||
|
||||
## 주요 특징
|
||||
|
||||
- **가스리스 트랜잭션**
|
||||
|
||||
개발자는 원활한 경험을 만들 수 있고 사용자는 가스 비용 걱정 없이 거래할 수 있습니다.
|
||||
|
||||
- **네이티브 수익과 수수료**
|
||||
|
||||
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) 탐색
|
||||
|
||||
멋진 것을 만들 준비가 되셨나요? 지금 바로 무료 네트워크에서 여정을 시작하세요!
|
||||
@@ -0,0 +1,118 @@
|
||||
# 빠른 시작
|
||||
|
||||
이 섹션에서는 10분 이내에 **Status Network 테스트넷**에 샘플 컨트랙트를 배포하는 방법을 알아보겠습니다.
|
||||
|
||||
간단하게 Remix IDE를 사용하여 Status Network에 스마트 컨트랙트를 배포하는 방법을 살펴보겠습니다.
|
||||
|
||||
## 준비하기
|
||||
|
||||
시작하기 전에:
|
||||
|
||||
1. **Status Network 테스트넷을 MetaMask에 추가**:
|
||||
|
||||
[Status Network 추가 가이드](/general-info/add-status-network)의 단계별 지침에 따라 Status Network 테스트넷을 MetaMask에 추가하세요.
|
||||
|
||||
2. **테스트 ETH 받기**:
|
||||
|
||||
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**는 설정이 필요 없는 스마트 컨트랙트 개발 도구입니다. 쉽게 시작할 수 있으며, 간단한 배포 프로세스, 디버깅, 스마트 컨트랙트와의 상호작용 등이 가능합니다.
|
||||
|
||||
이 튜토리얼에서는 간단한 `SimpleStorage.sol` 컨트랙트를 배포할 것입니다:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
contract SimpleStorage {
|
||||
uint256 number;
|
||||
|
||||
function store(uint256 num) public {
|
||||
number = num;
|
||||
}
|
||||
|
||||
function retrieve() public view returns (uint256) {
|
||||
return number;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> **참고:** 이 컨트랙트는 숫자를 저장하고 그 숫자를 읽을 수 있게 해줍니다.
|
||||
|
||||
## 배포 단계
|
||||
|
||||
1. **샘플 코드 복사**:
|
||||
|
||||
- 샘플 코드를 복사하여 Remix에서 `SimpleStorage.sol`이라는 새 파일에 붙여넣기 하세요.
|
||||
|
||||
2. **스마트 컨트랙트 컴파일**:
|
||||
|
||||
- **Solidity 컴파일러** 탭(왼쪽 사이드바)으로 이동하세요.
|
||||
- 컴파일러 버전이 0.8.0 이상인지 확인하세요.
|
||||
- **"SimpleStorage.sol 컴파일"**을 클릭하세요.
|
||||
- 컨트랙트 코드를 변경할 때마다 자동 컴파일을 원하면 **"자동 컴파일"**을 활성화할 수 있습니다.
|
||||
|
||||
3. **스마트 컨트랙트 배포**:
|
||||
|
||||
- **배포 & 실행 트랜잭션** 탭으로 전환하세요.
|
||||
- **"환경"** 드롭다운 메뉴에서 **"Injected Provider - MetaMask"**를 선택하세요.
|
||||
- MetaMask가 Remix에 연결을 요청할 수 있습니다. 연결을 확인하세요.
|
||||
- MetaMask에서 **Status Network 테스트넷**이 선택되어 있는지 확인하세요.
|
||||
- **"컨트랙트"**에서 `SimpleStorage`가 선택되어 있는지 확인하세요.
|
||||
- **"배포"**를 클릭하세요.
|
||||
- MetaMask가 팝업되어 트랜잭션 확인을 요청합니다. 가스비는 ETH로 지불됩니다.
|
||||
- 트랜잭션 세부사항을 검토하고 **"확인"**을 클릭하세요.
|
||||
- 트랜잭션이 채굴될 때까지 기다리세요.
|
||||
|
||||
4. **배포 확인**:
|
||||
|
||||
- 배포가 완료되면 Remix에서 컨트랙트 주소를 복사하세요
|
||||
- [Status Network 탐색기](https://sepoliascan.status.network)에서 확인하세요
|
||||
|
||||
**축하합니다!** Status Network에 첫 번째 스마트 컨트랙트를 배포하셨습니다.
|
||||
|
||||
## 배포된 스마트 컨트랙트와 상호작용하기
|
||||
|
||||
1. **배포된 컨트랙트 접근**:
|
||||
|
||||
- Remix의 **"배포된 컨트랙트"** 섹션에서 배포된 `SimpleStorage` 컨트랙트를 확인할 수 있습니다.
|
||||
|
||||
2. **숫자 저장하기**:
|
||||
|
||||
- 배포된 컨트랙트를 확장하여 함수들을 확인하세요.
|
||||
- **"store"** 함수 입력 필드에 숫자(예: `42`)를 입력하세요.
|
||||
- **"transact"**를 클릭하세요.
|
||||
- MetaMask가 트랜잭션 확인을 요청합니다. 가스비는 ETH로 지불됩니다.
|
||||
- 트랜잭션이 확인될 때까지 기다리세요.
|
||||
|
||||
3. **숫자 조회하기**:
|
||||
|
||||
- **"retrieve"** 함수를 클릭하세요.
|
||||
- 버튼 아래에 저장된 숫자가 표시됩니다.
|
||||
- 이는 view 함수이므로 가스비가 필요하지 않습니다.
|
||||
|
||||
## 다음 단계
|
||||
|
||||
- **지원 받기**:
|
||||
- [텔레그램 커뮤니티](https://t.me/statusl2)에 참여하여 도움을 받으세요
|
||||
- [네트워크 세부정보](/general-info/network-details)에서 자세한 정보를 확인하세요
|
||||
- Status Network로의 [토큰 브리징](/general-info/bridge/bridging-testnet)에 대해 알아보세요
|
||||
|
||||
## 요약
|
||||
|
||||
성공적으로 다음을 수행하셨습니다:
|
||||
- Status Network 테스트넷과 상호작용하기 위한 환경 설정
|
||||
- 브리징 또는 수도꼭지를 통해 테스트넷 ETH 획득
|
||||
- Remix IDE와 MetaMask를 사용하여 스마트 컨트랙트 배포
|
||||
- 숫자 저장 및 조회를 통해 배포된 컨트랙트와 상호작용
|
||||
|
||||
더 고급 개발을 위해 다음 도구를 사용한 배포 가이드를 확인하세요:
|
||||
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||
@@ -0,0 +1,24 @@
|
||||
# 공식 링크
|
||||
|
||||
이 페이지는 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)를 참조하세요.
|
||||
@@ -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. **직접 기부** – 공공 자금 풀에 직접 기여하는 사람은 누구나 카르마를 받습니다.
|
||||
|
||||
카르마 발행 할당의 초기화 매개변수는 곧 발표될 예정입니다. 향후 카르마 보유자는 필요한 경우 투표를 통해 이러한 매개변수를 수정할 수 있습니다. 궁극적인 목표는 네트워크의 더 지속 가능한 성장을 위해 이해관계자 간의 연계를 최대화하는 것입니다.
|
||||
|
||||
## 카르마의 용도
|
||||
|
||||
- **가스리스 거래**: 계정이 양의 카르마 잔액을 가지면 일정량의 무료 거래에 접근할 수 있습니다. 계층 시스템을 통해 더 높은 카르마를 가진 사용자와 앱은 하루에 더 많은 무료 거래를 즐길 수 있습니다. 동적 속도 제한 메커니즘이 스팸을 방지하고 네트워크의 공정한 사용을 보장합니다.
|
||||
|
||||
- **거버넌스 토큰**: 카르마 보유자는 앱 자금 풀의 할당에 대해 투표합니다. 더 높은 카르마 점수는 자금 분배에서 더 큰 가중치를 가지며, 선호하는 애플리케이션이나 프로토콜을 우선시할 수 있습니다.
|
||||
|
||||
- **네이티브 DEX 유동성 인센티브**: 카르마 보유자는 네이티브 DEX의 모든 큐레이팅된 유동성 풀의 인센티브 게이지에 대해 투표합니다.
|
||||
|
||||
- **네트워크 정책 결정**: 카르마 보유자는 네이티브 수익과 수수료 분배, 카르마 발행률과 할당 등을 포함한 L2의 경제적 및 운영 매개변수에 대해 투표합니다.
|
||||
|
||||
- **충성도와 평판 시스템**: 카르마는 소울바운드이므로 높은 카르마 점수는 생태계 내의 파워 유저와 주요 기여자를 나타냅니다. 사용자는 점진적으로 영향력을 축적하고 추가 인센티브와 특전(예: 네트워크에서 구축 중인 앱의 보상이나 고품질 사용자를 유치하려는 앱의 보상)에 접근할 수 있게 될 수 있습니다.
|
||||
|
||||
- **투표를 위한 유동적 보조금**: 향후 앱, 프로토콜, 유동성 제공자는 투표 인센티브로 카르마 보유자에게 유동적 보조금을 제공할 수 있게 됩니다.
|
||||
|
||||
## 플라이휠 효과
|
||||
|
||||
1. 사용자는 수익 창출 자산을 브리징하여 카르마를 획득하고 앱과 유동성 제공자에 대한 자금을 증가시킵니다.
|
||||
|
||||
2. 더 높은 앱 자금이 더 많은 새로운 앱을 네트워크에 배포하도록 유치합니다.
|
||||
|
||||
3. 자금을 받은 앱이 더 많은 사용자를 확보하여 네이티브 DEX의 거래량을 증가시킵니다.
|
||||
|
||||
4. 더 높은 네이티브 수익과 수수료가 사용자들이 추가 수익 창출 자산을 브리징함으로써 더 많은 TVL을 유치합니다.
|
||||
|
||||
TVL과 채택이 성장함에 따라 자금 조달 기회도 증가하여 네트워크의 지속가능성을 강화합니다.
|
||||
@@ -0,0 +1,21 @@
|
||||
# 공공 자금 조달
|
||||
|
||||
## 앱 자금 풀과 공공 자금 조달 메커니즘
|
||||
|
||||
Status Network의 가장 중요한 구성 요소 중 하나는 네트워크에 구축된 애플리케이션에 지속 가능한 재정 지원을 제공하도록 설계된 앱 자금 풀입니다. 개발자가 보조금이나 단기 인센티브에 의존하는 전통적인 블록체인 생태계와 달리, 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 보유자들은 두 가지 스테이킹 옵션을 가집니다:
|
||||
|
||||
1. **표준 스테이킹**
|
||||
|
||||
사용자는 락업 기간 없이 SNT를 스테이킹할 수 있습니다.
|
||||
시간이 지남에 따라 점진적으로 승수 포인트를 받습니다.
|
||||
사용자가 언스테이킹 없이 4년 동안 스테이킹하면 최대 4배의 승수를 달성합니다.
|
||||
|
||||
2. **락드 스테이킹**
|
||||
|
||||
사용자는 미리 정해진 기간(최대 4년)동안 SNT를 잠글 수 있습니다.
|
||||
보너스 승수 포인트와 미리 잠그는 연도별 보너스 승수를 즉시 받습니다.
|
||||
예를 들어, 4년 동안 잠그면 즉시 5배의 승수(기본 1배 + 잠금으로 인한 4배)가 부여됩니다.
|
||||
4년의 기간 동안 표준 스테이킹과 유사하게 추가 승수 포인트를 계속 축적하여 최대 9배의 총 승수에 도달합니다.
|
||||
|
||||
### SNT 스테이킹의 이점
|
||||
|
||||
- **카르마 획득**: 스테이커는 카르마를 축적하여 거버넌스 권한과 가스리스 거래 접근 권한을 얻습니다.
|
||||
- **더 높은 무료 거래 할당량**: 더 많은 카르마를 가진 사용자는 더 큰 가스리스 거래 한도를 즐길 수 있습니다.
|
||||
- **강화된 거버넌스 영향력**: 카르마를 축적함에 따라 SNT 스테이커는 공공 자금 할당, 유동성 인센티브 및 네트워크 정책 결정에서 중요한 역할을 할 수 있습니다.
|
||||
- **더 높은 평판**: SNT를 스테이킹함으로써 보유자는 생태계와의 연계를 보여주고 카르마 형태로 평판 점수를 보여줄 수 있습니다. 생태계 내의 앱들은 높은 평판을 가진 사용자를 유치하려는 강한 인센티브를 가지고 있습니다.
|
||||
@@ -0,0 +1,35 @@
|
||||
# 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 문서는 곧 제공될 예정입니다.
|
||||
@@ -0,0 +1,45 @@
|
||||
# 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) 확인
|
||||
- 도움이 필요하면 [텔레그램 커뮤니티](https://t.me/statusl2)에 참여
|
||||
@@ -0,0 +1,52 @@
|
||||
# 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당 초당 10개의 요청
|
||||
- IP당 하루 100,000개의 요청
|
||||
|
||||
더 높은 제한이 필요한 경우 텔레그램으로 문의하세요.
|
||||
|
||||
## 지원
|
||||
|
||||
RPC 엔드포인트에 문제가 발생한 경우:
|
||||
- 지원을 받으려면 [텔레그램 커뮤니티](https://t.me/statusl2)에 참여
|
||||
- 애플리케이션에 대체 RPC 전략 구현 고려
|
||||
@@ -0,0 +1,34 @@
|
||||
# 테스트넷 수도꼭지
|
||||
|
||||
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회 요청
|
||||
|
||||
### 테스트넷 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 테스트넷으로 브리징할 수 있습니다.
|
||||
|
||||
## 지원
|
||||
|
||||
수도꼭지 사용 중 문제가 발생한 경우:
|
||||
- 지원을 받으려면 [텔레그램 커뮤니티](https://t.me/statusl2)에 참여
|
||||
+208
@@ -0,0 +1,208 @@
|
||||
# Foundry를 사용하여 스마트 컨트랙트 배포하기
|
||||
|
||||
이 튜토리얼에서는 Foundry를 사용하여 Status Network 테스트넷에 스마트 컨트랙트를 배포하는 과정을 안내합니다.
|
||||
|
||||
## 사전 요구사항
|
||||
|
||||
시작하기 전에 다음이 필요합니다:
|
||||
|
||||
- **Foundry**: [공식 Foundry 문서](https://book.getfoundry.sh/getting-started/installation)에서 설치
|
||||
- **이더리움 지갑**: Status Network 테스트넷용 개인키
|
||||
- **테스트넷 ETH**: Status Network 테스트넷 ETH가 필요합니다
|
||||
- Status Network 테스트넷 ETH는 [수도꼭지](/tools/testnet-faucets)에서 받을 수 있습니다
|
||||
- **기본 지식**: Solidity와 명령줄 사용 경험
|
||||
|
||||
## 달성 목표
|
||||
|
||||
- Foundry 프로젝트 초기화
|
||||
- 기본 이더리움 스마트 컨트랙트 작성
|
||||
- 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
|
||||
```
|
||||
|
||||
## 지원
|
||||
|
||||
문제가 발생한 경우:
|
||||
- [텔레그램 커뮤니티](https://t.me/statusl2)에 참여
|
||||
- [네트워크 세부정보](/general-info/network-details) 참조
|
||||
|
||||
## 추가 리소스
|
||||
|
||||
- [Foundry 문서](https://book.getfoundry.sh/)
|
||||
- [Status Network 탐색기](https://sepoliascan.status.network)
|
||||
+161
@@ -0,0 +1,161 @@
|
||||
# Hardhat을 사용하여 스마트 컨트랙트 배포하기
|
||||
|
||||
이 튜토리얼에서는 Hardhat, Hardhat Ignition 및 TypeScript를 사용하여 Status Network 테스트넷에 스마트 컨트랙트를 배포하는 과정을 안내합니다.
|
||||
|
||||
## 사전 요구사항
|
||||
|
||||
시작하기 전에 다음이 필요합니다:
|
||||
|
||||
- **Node.js와 npm**: [공식 Node.js 웹사이트](https://nodejs.org/)에서 다운로드 및 설치
|
||||
- **이더리움 지갑**: Status Network 테스트넷용 개인키가 있는 MetaMask 또는 다른 지갑
|
||||
- **테스트넷 ETH**: Status Network 테스트넷 ETH가 필요합니다
|
||||
- Status Network 테스트넷 ETH는 [수도꼭지](/tools/testnet-faucets)에서 받을 수 있습니다
|
||||
- **기본 지식**: Solidity, Hardhat, 명령줄 사용 경험
|
||||
|
||||
## 달성 목표
|
||||
|
||||
- TypeScript 기반 Hardhat 프로젝트 초기화
|
||||
- 기본 이더리움 스마트 컨트랙트 작성
|
||||
- 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
|
||||
```
|
||||
|
||||
## 지원
|
||||
|
||||
문제가 발생한 경우:
|
||||
- [텔레그램 커뮤니티](https://t.me/statusl2)에 참여
|
||||
- [네트워크 세부정보](/general-info/network-details) 참조
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
# Remix를 사용하여 스마트 컨트랙트 배포하기
|
||||
|
||||
이 튜토리얼에서는 Remix IDE를 사용하여 Status Network 테스트넷에 스마트 컨트랙트를 배포하는 과정을 안내합니다. Remix는 빠른 개발과 테스트에 적합한 브라우저 기반 IDE입니다.
|
||||
|
||||
## 사전 요구사항
|
||||
|
||||
시작하기 전에 다음이 필요합니다:
|
||||
|
||||
- **웹 브라우저**: 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. 컴파일러 버전 "0.8.24" 선택
|
||||
3. "Compile HelloWorld.sol" 클릭
|
||||
4. 컴파일이 성공했는지 확인(녹색 체크마크가 표시됨)
|
||||
|
||||
### 5. 컨트랙트 배포
|
||||
|
||||
1. "Deploy & Run Transactions" 아이콘(왼쪽 사이드바의 네 번째 아이콘) 클릭
|
||||
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에서 강조 표시된 구문 오류 확인
|
||||
|
||||
## 지원
|
||||
|
||||
문제가 발생한 경우:
|
||||
- [텔레그램 커뮤니티](https://t.me/statusl2)에 참여
|
||||
- [네트워크 세부정보](/general-info/network-details) 참조
|
||||
|
||||
## 추가 리소스
|
||||
|
||||
- [Remix 문서](https://remix-ide.readthedocs.io/)
|
||||
- [Status Network 탐색기](https://sepoliascan.status.network)
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"title": {
|
||||
"message": "Status Network Docs",
|
||||
"description": "The title in the navbar"
|
||||
},
|
||||
"logo.alt": {
|
||||
"message": "Status Network Logo",
|
||||
"description": "The alt text of navbar logo"
|
||||
},
|
||||
"item.label.Hub": {
|
||||
"message": "Hub",
|
||||
"description": "Navbar item with label Hub"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,440 @@
|
||||
{
|
||||
"theme.ErrorPageContent.title": {
|
||||
"message": "页面已崩溃。",
|
||||
"description": "The title of the fallback page when the page crashed"
|
||||
},
|
||||
"theme.BackToTopButton.buttonAriaLabel": {
|
||||
"message": "回到顶部",
|
||||
"description": "The ARIA label for the back to top button"
|
||||
},
|
||||
"theme.blog.archive.title": {
|
||||
"message": "历史博文",
|
||||
"description": "The page & hero title of the blog archive page"
|
||||
},
|
||||
"theme.blog.archive.description": {
|
||||
"message": "历史博文",
|
||||
"description": "The page & hero description of the blog archive page"
|
||||
},
|
||||
"theme.blog.paginator.navAriaLabel": {
|
||||
"message": "博文列表分页导航",
|
||||
"description": "The ARIA label for the blog pagination"
|
||||
},
|
||||
"theme.blog.paginator.newerEntries": {
|
||||
"message": "较新的博文",
|
||||
"description": "The label used to navigate to the newer blog posts page (previous page)"
|
||||
},
|
||||
"theme.blog.paginator.olderEntries": {
|
||||
"message": "较旧的博文",
|
||||
"description": "The label used to navigate to the older blog posts page (next page)"
|
||||
},
|
||||
"theme.blog.post.paginator.navAriaLabel": {
|
||||
"message": "博文分页导航",
|
||||
"description": "The ARIA label for the blog posts pagination"
|
||||
},
|
||||
"theme.blog.post.paginator.newerPost": {
|
||||
"message": "较新一篇",
|
||||
"description": "The blog post button label to navigate to the newer/previous post"
|
||||
},
|
||||
"theme.blog.post.paginator.olderPost": {
|
||||
"message": "较旧一篇",
|
||||
"description": "The blog post button label to navigate to the older/next post"
|
||||
},
|
||||
"theme.tags.tagsPageLink": {
|
||||
"message": "查看所有标签",
|
||||
"description": "The label of the link targeting the tag list page"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel": {
|
||||
"message": "切换浅色/暗黑模式(当前为{mode})",
|
||||
"description": "The ARIA label for the navbar color mode toggle"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel.mode.dark": {
|
||||
"message": "暗黑模式",
|
||||
"description": "The name for the dark color mode"
|
||||
},
|
||||
"theme.colorToggle.ariaLabel.mode.light": {
|
||||
"message": "浅色模式",
|
||||
"description": "The name for the light color mode"
|
||||
},
|
||||
"theme.docs.breadcrumbs.navAriaLabel": {
|
||||
"message": "页面路径",
|
||||
"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": {
|
||||
"message": "文件选项卡",
|
||||
"description": "The ARIA label for the docs pagination"
|
||||
},
|
||||
"theme.docs.paginator.previous": {
|
||||
"message": "上一页",
|
||||
"description": "The label used to navigate to the previous doc"
|
||||
},
|
||||
"theme.docs.paginator.next": {
|
||||
"message": "下一页",
|
||||
"description": "The label used to navigate to the next doc"
|
||||
},
|
||||
"theme.docs.tagDocListPageTitle.nDocsTagged": {
|
||||
"message": "{count} 篇文档带有标签",
|
||||
"description": "Pluralized label for \"{count} docs tagged\". 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.tagDocListPageTitle": {
|
||||
"message": "{nDocsTagged}「{tagName}」",
|
||||
"description": "The title of the page for a docs tag"
|
||||
},
|
||||
"theme.docs.versionBadge.label": {
|
||||
"message": "版本:{versionLabel}"
|
||||
},
|
||||
"theme.docs.versions.unreleasedVersionLabel": {
|
||||
"message": "此为 {siteTitle} {versionLabel} 版尚未发行的文档。",
|
||||
"description": "The label used to tell the user that he's browsing an unreleased doc version"
|
||||
},
|
||||
"theme.docs.versions.unmaintainedVersionLabel": {
|
||||
"message": "此为 {siteTitle} {versionLabel} 版的文档,现已不再积极维护。",
|
||||
"description": "The label used to tell the user that he's browsing an unmaintained doc version"
|
||||
},
|
||||
"theme.docs.versions.latestVersionSuggestionLabel": {
|
||||
"message": "最新的文档请参阅 {latestVersionLink} ({versionLabel})。",
|
||||
"description": "The label used to tell the user to check the latest version"
|
||||
},
|
||||
"theme.docs.versions.latestVersionLinkLabel": {
|
||||
"message": "最新版本",
|
||||
"description": "The label used for the latest version suggestion link label"
|
||||
},
|
||||
"theme.common.editThisPage": {
|
||||
"message": "编辑此页",
|
||||
"description": "The link label to edit the current page"
|
||||
},
|
||||
"theme.common.headingLinkTitle": {
|
||||
"message": "{heading}的直接链接",
|
||||
"description": "Title for link to heading"
|
||||
},
|
||||
"theme.lastUpdated.atDate": {
|
||||
"message": "于 {date} ",
|
||||
"description": "The words used to describe on which date a page has been last updated"
|
||||
},
|
||||
"theme.lastUpdated.byUser": {
|
||||
"message": "由 {user} ",
|
||||
"description": "The words used to describe by who the page has been last updated"
|
||||
},
|
||||
"theme.lastUpdated.lastUpdatedAtBy": {
|
||||
"message": "最后{byUser}{atDate}更新",
|
||||
"description": "The sentence used to display when a page has been last updated, and by who"
|
||||
},
|
||||
"theme.navbar.mobileVersionsDropdown.label": {
|
||||
"message": "选择版本",
|
||||
"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": {
|
||||
"message": "标签:",
|
||||
"description": "The label alongside a tag list"
|
||||
},
|
||||
"theme.admonition.caution": {
|
||||
"message": "警告",
|
||||
"description": "The default label used for the Caution admonition (:::caution)"
|
||||
},
|
||||
"theme.admonition.danger": {
|
||||
"message": "危险",
|
||||
"description": "The default label used for the Danger admonition (:::danger)"
|
||||
},
|
||||
"theme.admonition.info": {
|
||||
"message": "信息",
|
||||
"description": "The default label used for the Info admonition (:::info)"
|
||||
},
|
||||
"theme.admonition.note": {
|
||||
"message": "备注",
|
||||
"description": "The default label used for the Note admonition (:::note)"
|
||||
},
|
||||
"theme.admonition.tip": {
|
||||
"message": "提示",
|
||||
"description": "The default label used for the Tip admonition (:::tip)"
|
||||
},
|
||||
"theme.admonition.warning": {
|
||||
"message": "注意",
|
||||
"description": "The default label used for the Warning admonition (:::warning)"
|
||||
},
|
||||
"theme.AnnouncementBar.closeButtonAriaLabel": {
|
||||
"message": "关闭",
|
||||
"description": "The ARIA label for close button of announcement bar"
|
||||
},
|
||||
"theme.blog.sidebar.navAriaLabel": {
|
||||
"message": "最近博文导航",
|
||||
"description": "The ARIA label for recent posts in the blog sidebar"
|
||||
},
|
||||
"theme.CodeBlock.copied": {
|
||||
"message": "复制成功",
|
||||
"description": "The copied button label on code blocks"
|
||||
},
|
||||
"theme.CodeBlock.copyButtonAriaLabel": {
|
||||
"message": "复制代码到剪贴板",
|
||||
"description": "The ARIA label for copy code blocks button"
|
||||
},
|
||||
"theme.CodeBlock.copy": {
|
||||
"message": "复制",
|
||||
"description": "The copy button label on code blocks"
|
||||
},
|
||||
"theme.CodeBlock.wordWrapToggle": {
|
||||
"message": "切换自动换行",
|
||||
"description": "The title attribute for toggle word wrapping button of code block lines"
|
||||
},
|
||||
"theme.DocSidebarItem.expandCategoryAriaLabel": {
|
||||
"message": "展开侧边栏分类 '{label}'",
|
||||
"description": "The ARIA label to expand the sidebar category"
|
||||
},
|
||||
"theme.DocSidebarItem.collapseCategoryAriaLabel": {
|
||||
"message": "折叠侧边栏分类 '{label}'",
|
||||
"description": "The ARIA label to collapse the sidebar category"
|
||||
},
|
||||
"theme.NavBar.navAriaLabel": {
|
||||
"message": "主导航",
|
||||
"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": {
|
||||
"message": "我们找不到您要找的页面。",
|
||||
"description": "The first paragraph of the 404 page"
|
||||
},
|
||||
"theme.NotFound.p2": {
|
||||
"message": "请联系原始链接来源网站的所有者,并告知他们链接已损坏。",
|
||||
"description": "The 2nd paragraph of the 404 page"
|
||||
},
|
||||
"theme.TOCCollapsible.toggleButtonLabel": {
|
||||
"message": "本页总览",
|
||||
"description": "The label used by the button on the collapsible TOC component"
|
||||
},
|
||||
"theme.blog.post.readMore": {
|
||||
"message": "阅读更多",
|
||||
"description": "The label used in blog post item excerpts to link to full blog posts"
|
||||
},
|
||||
"theme.blog.post.readMoreLabel": {
|
||||
"message": "阅读 {title} 的全文",
|
||||
"description": "The ARIA label for the link to full blog posts from excerpts"
|
||||
},
|
||||
"theme.blog.post.readingTime.plurals": {
|
||||
"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)"
|
||||
},
|
||||
"theme.docs.breadcrumbs.home": {
|
||||
"message": "主页面",
|
||||
"description": "The ARIA label for the home page in the breadcrumbs"
|
||||
},
|
||||
"theme.docs.sidebar.collapseButtonTitle": {
|
||||
"message": "收起侧边栏",
|
||||
"description": "The title attribute for collapse button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.collapseButtonAriaLabel": {
|
||||
"message": "收起侧边栏",
|
||||
"description": "The title attribute for collapse button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.navAriaLabel": {
|
||||
"message": "文档侧边栏",
|
||||
"description": "The ARIA label for the sidebar navigation"
|
||||
},
|
||||
"theme.docs.sidebar.closeSidebarButtonAriaLabel": {
|
||||
"message": "关闭导航栏",
|
||||
"description": "The ARIA label for close button of mobile sidebar"
|
||||
},
|
||||
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
|
||||
"message": "← 回到主菜单",
|
||||
"description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
|
||||
},
|
||||
"theme.docs.sidebar.toggleSidebarButtonAriaLabel": {
|
||||
"message": "切换导航栏",
|
||||
"description": "The ARIA label for hamburger menu button of mobile navigation"
|
||||
},
|
||||
"theme.docs.sidebar.expandButtonTitle": {
|
||||
"message": "展开侧边栏",
|
||||
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
||||
},
|
||||
"theme.docs.sidebar.expandButtonAriaLabel": {
|
||||
"message": "展开侧边栏",
|
||||
"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": "Enter 键",
|
||||
"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.blog.post.plurals": {
|
||||
"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)"
|
||||
},
|
||||
"theme.blog.tagTitle": {
|
||||
"message": "{nPosts} 含有标签「{tagName}」",
|
||||
"description": "The title of the page for a blog tag"
|
||||
},
|
||||
"theme.blog.author.pageTitle": {
|
||||
"message": "{authorName} - {nPosts}",
|
||||
"description": "The title of the page for a blog author"
|
||||
},
|
||||
"theme.blog.authorsList.pageTitle": {
|
||||
"message": "Authors",
|
||||
"description": "The title of the authors page"
|
||||
},
|
||||
"theme.blog.authorsList.viewAll": {
|
||||
"message": "View All Authors",
|
||||
"description": "The label of the link targeting the blog authors page"
|
||||
},
|
||||
"theme.contentVisibility.unlistedBanner.title": {
|
||||
"message": "未列出页",
|
||||
"description": "The unlisted content banner title"
|
||||
},
|
||||
"theme.contentVisibility.unlistedBanner.message": {
|
||||
"message": "此页面未列出。搜索引擎不会对其索引,只有拥有直接链接的用户才能访问。",
|
||||
"description": "The unlisted content banner message"
|
||||
},
|
||||
"theme.contentVisibility.draftBanner.title": {
|
||||
"message": "Draft page",
|
||||
"description": "The draft content banner title"
|
||||
},
|
||||
"theme.contentVisibility.draftBanner.message": {
|
||||
"message": "This page is a draft. It will only be visible in dev and be excluded from the production build.",
|
||||
"description": "The draft content banner message"
|
||||
},
|
||||
"theme.ErrorPageContent.tryAgain": {
|
||||
"message": "重试",
|
||||
"description": "The label of the button to try again rendering when the React error boundary captures an error"
|
||||
},
|
||||
"theme.common.skipToMainContent": {
|
||||
"message": "跳到主要内容",
|
||||
"description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
|
||||
},
|
||||
"theme.tags.tagsPageTitle": {
|
||||
"message": "标签",
|
||||
"description": "The title of the tag list page"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"version.label": {
|
||||
"message": "Next",
|
||||
"description": "The label for version current"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.INTRODUCTION": {
|
||||
"message": "简介",
|
||||
"description": "The label for category INTRODUCTION in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TOKENOMICS": {
|
||||
"message": "代币经济学",
|
||||
"description": "The label for category TOKENOMICS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.GENERAL INFO": {
|
||||
"message": "基本信息",
|
||||
"description": "The label for category GENERAL INFO in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🏡 Contract Addresses": {
|
||||
"message": "🏡 合约地址",
|
||||
"description": "The label for category 🏡 Contract Addresses in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🌉 Bridge": {
|
||||
"message": "🌉 跨链桥",
|
||||
"description": "The label for category 🌉 Bridge in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TOOLS": {
|
||||
"message": "工具",
|
||||
"description": "The label for category TOOLS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.TUTORIALS": {
|
||||
"message": "教程",
|
||||
"description": "The label for category TUTORIALS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.🚀 Deploying a Smart Contract": {
|
||||
"message": "🚀 部署智能合约",
|
||||
"description": "The label for category 🚀 Deploying a Smart Contract in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||
"message": "其他文档",
|
||||
"description": "The label for category OTHER DOCS in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🏠 Home": {
|
||||
"message": "🏠 首页",
|
||||
"description": "The label for the doc item 🏠 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚡ Quick Start": {
|
||||
"message": "⚡ 快速开始",
|
||||
"description": "The label for the doc item ⚡ Quick Start in sidebar tutorialSidebar, linking to the doc introduction/quick-start"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💎 SNT Token": {
|
||||
"message": "💎 SNT Token",
|
||||
"description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💠 Karma Token": {
|
||||
"message": "💠 Karma Token",
|
||||
"description": "The label for the doc item 💠 Karma Token in sidebar tutorialSidebar, linking to the doc tokenomics/karma-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||
"message": "🌐 网络详情",
|
||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||
"message": "➕ 添加 Status 网络",
|
||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||
"message": "💰 代币",
|
||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||
"message": "🧪 测试网合约",
|
||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||
"message": "🧪 测试网跨链",
|
||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||
"message": "🌉 跨链桥",
|
||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||
"message": "🚰 测试网水龙头",
|
||||
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||
"message": "🔎 区块浏览器",
|
||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||
"message": "🎩 使用 Hardhat",
|
||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||
"message": "⚒️ 使用 Foundry",
|
||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||
"message": "🎛️ 使用 Remix",
|
||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||
"message": "🔗 官方链接",
|
||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌴 Home": {
|
||||
"message": "🌴 Home",
|
||||
"description": "The label for the doc item 🌴 Home in sidebar tutorialSidebar, linking to the doc index"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🤝 Economic Model": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
# 添加 Status Network
|
||||
|
||||
本指南展示如何将 **Status Network** 添加到您的钱包中。
|
||||
|
||||
## 测试网
|
||||
|
||||
将 **Status Network 测试网**作为自定义网络添加到 MetaMask 的步骤:
|
||||
|
||||
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) 获取支持。
|
||||
|
||||
---
|
||||
|
||||
按照本指南操作,您已成功将 Status Network 添加到您的 MetaMask 钱包中!
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
# 连接到 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
@@ -0,0 +1,43 @@
|
||||
# 测试网合约
|
||||
|
||||
本页列出了 Status Network 测试网基础设施的所有重要合约地址。
|
||||
|
||||
## 第一层合约 (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 区块的最终确认
|
||||
|
||||
## 第二层合约 (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
@@ -0,0 +1,11 @@
|
||||
# 代币
|
||||
|
||||
有关 Status Network 上支持的代币及其合约地址的最新列表,请参考我们的官方 [Status Network 代币列表仓库](https://github.com/status-im/status-network-token-list)。
|
||||
|
||||
该仓库包含:
|
||||
- L1(Sepolia)和 L2(Status Network)的代币地址
|
||||
- 代币元数据(小数位数、符号等)
|
||||
- 跨链桥合约映射
|
||||
- 部署在 Status Network 上的应用代币
|
||||
|
||||
代币列表会定期维护和更新,以确保代币跨链操作的准确性和安全性。
|
||||
@@ -0,0 +1,20 @@
|
||||
# 网络详情
|
||||
|
||||
## Status 测试网
|
||||
|
||||
| 名称 | 值 |
|
||||
|---------------------|------------------------------------------|
|
||||
| **网络名称** | Status Network Testnet |
|
||||
| **RPC 端点** | https://public.sepolia.rpc.status.network |
|
||||
| **链 ID** | 1660990954 |
|
||||
| **货币符号** | ETH |
|
||||
| **区块浏览器** | https://sepoliascan.status.network |
|
||||
| **跨链桥** | https://bridge.status.network |
|
||||
|
||||
这些是 Status Network 测试网的官方网络详情。您可以使用这些详情来:
|
||||
- 将网络添加到您的钱包
|
||||
- 配置开发环境
|
||||
- 将 dApp 连接到网络
|
||||
- 验证智能合约
|
||||
|
||||
关于如何将网络添加到您的钱包,请参阅我们的 [Status Network 添加指南](./add-status-network.md)。
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: index
|
||||
title: 欢迎来到 Status Network
|
||||
description: Status Network 是一个无 Gas 费的第二层区块链网络,支持无缝、免费的去中心化应用程序。通过简单的钱包设置、水龙头和部署工具开始构建。
|
||||
keywords: [Status Network, 第二层, 无gas区块链, 以太坊扩展, L2, validium, web3开发, dapp开发, 区块链开发]
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Status Network: 无 Gas 费的第二层网络
|
||||
|
||||
Status Network 是第一个原生无 Gas 费的以太坊 L2,为社交应用和游戏优化,通过原生收益和 DEX 费用为开发者提供可持续的公共资金。基于 Linea zkEVM 技术构建,通过创新的资金模式确保经济可持续性,同时提供免 Gas 费的高性能交易。
|
||||
|
||||
## 主要特点
|
||||
|
||||
- **无 Gas 费交易**
|
||||
|
||||
开发者可以创建无缝体验,用户可以自由交易而无需担心 Gas 费。
|
||||
|
||||
- **原生收益和费用**
|
||||
|
||||
为了维持 L2 运营并支持开发者,Status Network 通过其原生应用(从 DEX 开始)的原生收益和费用组合获得资金。
|
||||
|
||||
- **可持续的公共资金**
|
||||
|
||||
由代币持有者管理的应用资金池,持续从原生收益和费用中向链上建设者分配资金。
|
||||
|
||||
- **高性能执行**
|
||||
|
||||
Status Network 建立在 Linea 的 zkEVM rollup 技术之上,确保快速和安全的交易。
|
||||
|
||||
- **RLN 防垃圾保护**
|
||||
|
||||
速率限制零知识证明(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)
|
||||
|
||||
## 支持与资源
|
||||
|
||||
加入我们的社区并访问所需资源:
|
||||
- 加入我们的 [Telegram 开发者社区](https://t.me/statusl2)
|
||||
- 查看[网络详情](/general-info/network-details)
|
||||
- 浏览[合约地址](/general-info/contract-addresses/testnet-contracts)
|
||||
|
||||
准备好构建令人惊叹的应用了吗?今天就开始您在免费网络上的旅程!
|
||||
@@ -0,0 +1,118 @@
|
||||
# 快速开始
|
||||
|
||||
在本节中,我们将帮助您在 10 分钟内在 **Status Network 测试网**上部署一个示例合约。
|
||||
|
||||
让我们看看如何使用 Remix IDE 在 Status Network 上部署智能合约,这是最简单的方式。
|
||||
|
||||
## 准备工作
|
||||
|
||||
在开始之前:
|
||||
|
||||
1. **将 Status Network 测试网添加到 MetaMask**:
|
||||
|
||||
按照 [Status Network 添加指南](/general-info/add-status-network) 的步骤说明将 Status Network 测试网添加到 MetaMask。
|
||||
|
||||
2. **获取测试 ETH**:
|
||||
|
||||
您需要 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** 是一个无需设置的智能合约开发工具。它易于上手,提供简单的部署流程、调试功能、智能合约交互等功能。
|
||||
|
||||
在本教程中,我们将部署一个简单的 `SimpleStorage.sol` 合约:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
contract SimpleStorage {
|
||||
uint256 number;
|
||||
|
||||
function store(uint256 num) public {
|
||||
number = num;
|
||||
}
|
||||
|
||||
function retrieve() public view returns (uint256) {
|
||||
return number;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> **注意:** 这个合约允许您存储一个数字并读取该数字。
|
||||
|
||||
## 部署步骤
|
||||
|
||||
1. **复制示例代码**:
|
||||
|
||||
- 复制示例代码并在 Remix 中粘贴到一个名为 `SimpleStorage.sol` 的新文件中。
|
||||
|
||||
2. **编译智能合约**:
|
||||
|
||||
- 转到 **Solidity 编译器**标签页(在左侧边栏)。
|
||||
- 确保编译器版本为 0.8.0 或更高。
|
||||
- 点击 **"编译 SimpleStorage.sol"**。
|
||||
- 您可以启用 **"自动编译"** 以在更改合约代码时自动编译。
|
||||
|
||||
3. **部署智能合约**:
|
||||
|
||||
- 切换到 **部署 & 运行交易**标签页。
|
||||
- 在 **"环境"** 下拉菜单中,选择 **"Injected Provider - MetaMask"**。
|
||||
- MetaMask 可能会提示您连接到 Remix。确认连接。
|
||||
- 确保在 MetaMask 中选择了 **Status Network 测试网**。
|
||||
- 在 **"合约"** 下,确保选择了 `SimpleStorage`。
|
||||
- 点击 **"部署"**。
|
||||
- MetaMask 将弹出窗口,要求您确认交易。gas 费用将以 ETH 支付。
|
||||
- 检查交易详情并点击 **"确认"**。
|
||||
- 等待交易被打包。
|
||||
|
||||
4. **验证部署**:
|
||||
|
||||
- 部署完成后,从 Remix 复制您的合约地址
|
||||
- 在 [Status Network 浏览器](https://sepoliascan.status.network) 上查看
|
||||
|
||||
**恭喜!** 您刚刚在 Status Network 上部署了您的第一个智能合约。
|
||||
|
||||
## 与您部署的智能合约交互
|
||||
|
||||
1. **访问已部署的合约**:
|
||||
|
||||
- 在 Remix 的 **"已部署的合约"** 部分,您将看到您部署的 `SimpleStorage` 合约。
|
||||
|
||||
2. **存储数字**:
|
||||
|
||||
- 展开已部署的合约以查看其函数。
|
||||
- 在 **"store"** 函数输入字段中,输入一个数字(例如:`42`)。
|
||||
- 点击 **"transact"**。
|
||||
- MetaMask 将提示您确认交易。gas 费用将以 ETH 支付。
|
||||
- 等待交易确认。
|
||||
|
||||
3. **检索数字**:
|
||||
|
||||
- 点击 **"retrieve"** 函数。
|
||||
- 存储的数字将显示在按钮下方。
|
||||
- 这是一个 view 函数,所以不需要支付 gas 费用。
|
||||
|
||||
## 下一步
|
||||
|
||||
- **获取支持**:
|
||||
- 加入我们的 [Telegram 社区](https://t.me/statusl2) 获取帮助
|
||||
- 查看我们的 [网络详情](/general-info/network-details) 了解更多信息
|
||||
- 了解如何 [跨链代币](/general-info/bridge/bridging-testnet) 到 Status Network
|
||||
|
||||
## 总结
|
||||
|
||||
您已经成功:
|
||||
- 设置环境以与 Status Network 测试网交互
|
||||
- 通过跨链或水龙头获取测试网 ETH
|
||||
- 使用 Remix IDE 和 MetaMask 部署智能合约
|
||||
- 通过存储和检索数字与您部署的合约进行交互
|
||||
|
||||
对于更高级的开发,请查看我们使用以下工具的部署指南:
|
||||
- [Hardhat](/tutorials/deploying-contracts/using-hardhat)
|
||||
- [Foundry](/tutorials/deploying-contracts/using-foundry)
|
||||
@@ -0,0 +1,24 @@
|
||||
# 官方链接
|
||||
|
||||
本页面包含 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/推特**: [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