Merge pull request #3 from status-im/feature/intro-content
Add Introduction & Quick Start Guide, Implement Translation Support, Fix CSS Bugs and Light Mode Styling
This commit is contained in:
commit
938b63a175
|
@ -45,8 +45,7 @@ pipeline {
|
|||
-b deploy-master \
|
||||
-c docs.status.network \
|
||||
-p build
|
||||
""",
|
||||
pure: false
|
||||
"""
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
20
README.md
20
README.md
|
@ -77,26 +77,6 @@ docs/
|
|||
└── 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
|
|
@ -1 +1,84 @@
|
|||
# Add Status Network
|
||||
# Add Status Network
|
||||
|
||||
This guide shows how to add the **Status Network** to your wallet.
|
||||
|
||||
## Testnet
|
||||
|
||||
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** | |
|
||||
| **Chain ID** | |
|
||||
| **Currency Symbol** | `ETH` |
|
||||
| **Block Explorer URL** | |
|
||||
|
||||
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 Explorer](#)
|
||||
|
||||
- **Need Help?**
|
||||
|
||||
- If you encounter any issues, please join our [Community Discord](https://discord.gg/status_im).
|
||||
|
||||
---
|
||||
|
||||
By following this guide, you've successfully added the Status Network to your MetaMask wallet!
|
|
@ -1 +1,12 @@
|
|||
# Network Details
|
||||
# Network Details
|
||||
|
||||
## Status Testnet
|
||||
|
||||
| Name | Value |
|
||||
|---------------------|-------|
|
||||
| **Network Name** | |
|
||||
| **RPC Endpoint** | |
|
||||
| **Chain ID** | |
|
||||
| **Currency Symbol** | |
|
||||
| **Block Explorer** | |
|
||||
| **Bridge** | |
|
|
@ -5,4 +5,24 @@ slug: /
|
|||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Introducing Status Network
|
||||
# Welcome to Status Network
|
||||
|
||||
Welcome to **Status Network**, the crypto social playground that reimagines your blockchain experience! Built as an **EVM-equivalent Ethereum Layer 2 rollup** on [Linea's cutting-edge ZK-EVM technology](https://docs.linea.build/architecture), Status Network offers unique features that set us apart from other platforms.
|
||||
|
||||
## What Makes Us Unique?
|
||||
|
||||
### 💰 Native ETH and DAI Yield
|
||||
|
||||
Enjoy sustainable and attractive yields on your **ETH** and **DAI** assets! We offer native yield generation, a distinctive feature among Layer 2 solutions, allowing you to enhance your crypto holdings effortlessly while participating in the network.
|
||||
|
||||
### 🏆 Earn $AURA Tokens
|
||||
|
||||
Get rewarded for your engagement in **real time**! Participate in network activities and **stake $SNT** to earn **$AURA tokens**. The more you interact—be it through transactions, staking, or community involvement—the more influence you gain within our vibrant community. Your $AURA amplifies your voice in shaping the future of the network.
|
||||
|
||||
### 🔒 Privacy with a Playful Twist
|
||||
|
||||
Experience privacy features that are both **secure and fun**! We believe that privacy is a fundamental right and should be accessible to everyone without the complexity. Our user-friendly privacy tools make secure interactions enjoyable, breaking away from traditional notions of complicated privacy tech.
|
||||
|
||||
---
|
||||
|
||||
Join Status Network and be part of a unique, privacy-focused, and rewarding crypto community where **your active participation truly shapes the future**! Let's build the crypto playground together!
|
|
@ -1 +1,114 @@
|
|||
# Quick Start
|
||||
# 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:
|
||||
|
||||
- **Add Status Network Testnet to MetaMask**:
|
||||
|
||||
Follow the [Status Network documentation](/general-info/add-status-network) for step-by-step instructions on how to add the Status Network testnet to MetaMask. You'll need the network's RPC URL, Chain ID, and other details.
|
||||
|
||||
- **Obtain Testnet Tokens**:
|
||||
|
||||
This guide assumes you have obtained testnet ETH on the Status Network. You can use the [Status Network Testnet Faucet](#) to request test tokens.
|
||||
|
||||
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. It’s a great tool to test quick changes and interact with deployed smart contracts.
|
||||
|
||||
For the sake of this tutorial, we will be deploying the `SimpleStorage.sol` smart contract that comes as an example in Remix, but you can use any of your code.
|
||||
|
||||
Here's the sample code:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
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 matches the pragma statement in your contract (`0.8.24`).
|
||||
- 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"**. This connects Remix to your MetaMask wallet.
|
||||
- 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.
|
||||
- Review the transaction details and click **"Confirm"**.
|
||||
- Wait for the transaction to be mined. You can track the status in Remix or MetaMask.
|
||||
|
||||
**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. Click **"Confirm"**.
|
||||
- Wait for the transaction to be confirmed.
|
||||
|
||||
3. **Retrieve the Number**:
|
||||
|
||||
- Click on the **"retrieve"** function.
|
||||
- The stored number will display below the button.
|
||||
|
||||
## Next Steps
|
||||
|
||||
- **Get Support**:
|
||||
|
||||
- If you encounter any issues or have questions, join the community channels for assistance.
|
||||
|
||||
## Summary
|
||||
|
||||
You've successfully:
|
||||
|
||||
- Set up your environment to interact with Status Network Testnet.
|
||||
- Deployed a smart contract using Remix IDE and MetaMask.
|
||||
- Interacted with your deployed contract by storing and retrieving a number.
|
||||
|
||||
---
|
||||
|
||||
If you want to dive deeper, consider exploring more complex smart contracts. Checkout more tutorials [here](/tutorials/ethers-tutorial).
|
||||
|
||||
**Happy Coding!**
|
|
@ -1 +1,319 @@
|
|||
# Using Hardhat
|
||||
# Using Hardhat to Deploy Smart Contracts
|
||||
|
||||
This tutorial will guide you through the process of deploying a smart contract on **Status Network's Ethereum Layer 2** using **Hardhat** and **TypeScript**.
|
||||
|
||||
---
|
||||
|
||||
## 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**: A private key for the **Status Network Testnet** that has testnet ETH.
|
||||
- Obtain testnet ETH from the [Status Network Testnet Faucet](/tools/testnet-faucets).
|
||||
- **Important**: Use a new wallet without real funds to ensure security in case the private key gets compromised.
|
||||
- **Basic Knowledge**: Familiarity with **Solidity**, **Hardhat**, and the command line is helpful but not mandatory.
|
||||
|
||||
---
|
||||
|
||||
## 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 on Status Network.
|
||||
|
||||
---
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Initialize a Hardhat TypeScript Project
|
||||
|
||||
Open your terminal and create a new directory for your project, then navigate into it:
|
||||
|
||||
```bash
|
||||
mkdir my-hardhat-project && cd my-hardhat-project
|
||||
```
|
||||
|
||||
Initialize an npm project:
|
||||
|
||||
```bash
|
||||
npm init -y
|
||||
```
|
||||
|
||||
Install the necessary packages for Hardhat and TypeScript:
|
||||
|
||||
```bash
|
||||
npm install --save-dev hardhat ts-node typescript @nomiclabs/hardhat-ethers ethers @typechain/ethers-v5 @typechain/hardhat typechain
|
||||
```
|
||||
|
||||
Start a new Hardhat project with TypeScript:
|
||||
|
||||
```bash
|
||||
npx hardhat
|
||||
```
|
||||
|
||||
When prompted, make the following selections:
|
||||
|
||||
- Choose **"Create a TypeScript project"**.
|
||||
- For the `.gitignore` prompt, select **"Yes"**.
|
||||
- For installing the project's dependencies, select **"Yes"**.
|
||||
|
||||
Example interaction:
|
||||
|
||||
```plaintext
|
||||
888 888 888 888 888
|
||||
888 888 888 888 888
|
||||
888 888 888 888 888
|
||||
8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888
|
||||
888 888 88b 888P d88 888 888 88b 88b 888
|
||||
888 888 .d888888 888 888 888 888 888 .d888888 888
|
||||
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
|
||||
888 888 Y888888 888 Y88888 888 888 Y888888 Y888
|
||||
|
||||
👷 Welcome to Hardhat v2.18.2 👷
|
||||
|
||||
✔ What do you want to do? · Create a TypeScript project
|
||||
✔ Hardhat project root: · /Users/username/my-hardhat-project
|
||||
✔ Do you want to add a .gitignore? (Y/n) · y
|
||||
✔ Do you want to install this sample project's dependencies with npm (@nomicfoundation/hardhat-toolbox)? (Y/n) · y
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. Writing the Smart Contract
|
||||
|
||||
In the `contracts` directory, delete the sample smart contract `Lock.sol` and create a new file named `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
|
||||
|
||||
Edit the `hardhat.config.ts` file to include Status Network Testnet settings:
|
||||
|
||||
```typescript
|
||||
import { HardhatUserConfig } from "hardhat/config";
|
||||
import "@nomicfoundation/hardhat-toolbox";
|
||||
|
||||
const config: HardhatUserConfig = {
|
||||
networks: {
|
||||
statusTestnet: {
|
||||
url: "https://testnet.status.network",
|
||||
chainId: 2020,
|
||||
accounts: ["YOUR_PRIVATE_KEY_HERE"], // BE VERY CAREFUL, DO NOT SHARE THIS
|
||||
},
|
||||
},
|
||||
solidity: "0.8.24",
|
||||
};
|
||||
|
||||
export default config;
|
||||
```
|
||||
|
||||
- Replace `YOUR_PRIVATE_KEY_HERE` with your Status Network Testnet private key (without quotes).
|
||||
|
||||
> **Important:** Do not push your `hardhat.config.ts` file to any public repository or share your private key with anyone. To prevent accidental exposure, ensure your `.gitignore` file includes `hardhat.config.ts`.
|
||||
|
||||
---
|
||||
|
||||
### 4. Compilation
|
||||
|
||||
Compile the smart contract:
|
||||
|
||||
```bash
|
||||
npx hardhat compile
|
||||
```
|
||||
|
||||
You should see output indicating that the compilation was successful.
|
||||
|
||||
---
|
||||
|
||||
### 5. Deployment
|
||||
|
||||
In the `scripts` directory, create a new file named `deploy.ts`:
|
||||
|
||||
```typescript
|
||||
import { ethers } from "hardhat";
|
||||
|
||||
async function main() {
|
||||
const HelloWorld = await ethers.getContractFactory("HelloWorld");
|
||||
|
||||
const helloWorld = await HelloWorld.deploy();
|
||||
|
||||
await helloWorld.deployed();
|
||||
|
||||
console.log("HelloWorld deployed to:", helloWorld.address);
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
```
|
||||
|
||||
> **Note:** If you encounter gas-related issues, you can specify `gasPrice` and `gasLimit` when deploying:
|
||||
|
||||
```typescript
|
||||
const gasPrice = ethers.utils.parseUnits('10', 'gwei'); // Adjust as needed
|
||||
const gasLimit = 500000; // Adjust based on your contract
|
||||
|
||||
const helloWorld = await HelloWorld.deploy({ gasPrice, gasLimit });
|
||||
```
|
||||
|
||||
#### Deploy the smart contract to the Status Network Testnet:
|
||||
|
||||
```bash
|
||||
npx hardhat run scripts/deploy.ts --network statusTestnet
|
||||
```
|
||||
|
||||
Upon successful deployment, you should see an output similar to:
|
||||
|
||||
```plaintext
|
||||
HelloWorld deployed to: 0xYourContractAddressHere
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 6. Verify Your Contract on the Block Explorer
|
||||
|
||||
Visit the [Status Network Testnet Explorer](https://testnet.statusscan.io/) and search for your contract address to view its details.
|
||||
|
||||
---
|
||||
|
||||
### 7. Interacting with Your Smart Contract
|
||||
|
||||
You can interact with your deployed contract using Hardhat scripts, tests, or via a frontend application.
|
||||
|
||||
#### Example: Interacting via a Script
|
||||
|
||||
Create a new script `interact.ts` in the `scripts` directory:
|
||||
|
||||
```typescript
|
||||
import { ethers } from "hardhat";
|
||||
|
||||
async function main() {
|
||||
const contractAddress = "0xYourContractAddressHere"; // Replace with your contract address
|
||||
|
||||
const HelloWorld = await ethers.getContractFactory("HelloWorld");
|
||||
const helloWorld = HelloWorld.attach(contractAddress);
|
||||
|
||||
// Read the current greeting
|
||||
const currentGreet = await helloWorld.getGreet();
|
||||
console.log("Current Greet:", currentGreet);
|
||||
|
||||
// Update the greeting
|
||||
const tx = await helloWorld.setGreet("Hello from Hardhat!");
|
||||
await tx.wait();
|
||||
|
||||
// Read the updated greeting
|
||||
const newGreet = await helloWorld.getGreet();
|
||||
console.log("Updated Greet:", newGreet);
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
```
|
||||
|
||||
Run the script:
|
||||
|
||||
```bash
|
||||
npx hardhat run scripts/interact.ts --network statusTestnet
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Conclusion
|
||||
|
||||
Congratulations! You've successfully deployed a smart contract on the **Status Network Testnet** using **Hardhat** and **TypeScript**.
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- **Explore More Tutorials**:
|
||||
|
||||
- Check out other tutorials in the [Status Network Documentation](/tutorials/ethers-tutorial).
|
||||
|
||||
- **Deploy to Mainnet**:
|
||||
|
||||
- Once you're comfortable with the testnet, consider deploying to the Status Network Mainnet. Update your `hardhat.config.ts` with the mainnet RPC URL and Chain ID.
|
||||
|
||||
- **Secure Your Private Keys**:
|
||||
|
||||
- Use environment variables to store your private keys securely.
|
||||
- Install `dotenv` package:
|
||||
|
||||
```bash
|
||||
npm install dotenv
|
||||
```
|
||||
|
||||
- Update your `hardhat.config.ts`:
|
||||
|
||||
```typescript
|
||||
import { HardhatUserConfig } from "hardhat/config";
|
||||
import "@nomicfoundation/hardhat-toolbox";
|
||||
import * as dotenv from "dotenv";
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const config: HardhatUserConfig = {
|
||||
networks: {
|
||||
statusTestnet: {
|
||||
url: "https://testnet.status.network",
|
||||
chainId: 2020,
|
||||
accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
|
||||
},
|
||||
},
|
||||
solidity: "0.8.24",
|
||||
};
|
||||
|
||||
export default config;
|
||||
```
|
||||
|
||||
- Create a `.env` file in the root of your project:
|
||||
|
||||
```
|
||||
PRIVATE_KEY=your_private_key_without_quotes
|
||||
```
|
||||
|
||||
- Update your `.gitignore` to include `.env`.
|
||||
|
||||
---
|
||||
|
||||
## Resources
|
||||
|
||||
- [Status Network Official Website](https://status.network/)
|
||||
- [Status Network Documentation](https://docs.status.network/)
|
||||
- [Hardhat Documentation](https://hardhat.org/getting-started/)
|
||||
- [TypeScript Documentation](https://www.typescriptlang.org/docs/)
|
||||
- [Ethers.js Documentation](https://docs.ethers.io/)
|
||||
|
||||
---
|
||||
|
||||
**Need Help?**
|
||||
|
||||
If you encounter any issues or have questions, feel free to reach out:
|
||||
|
||||
- **Community Discord**: [Join Our Discord](https://discord.gg/status_im)
|
||||
|
||||
---
|
||||
|
||||
**Happy Coding!**
|
|
@ -1 +1,407 @@
|
|||
# Interacting with Smart Contracts using ethers.js
|
||||
# Interacting with Smart Contracts Using ethers.js
|
||||
|
||||
Learn how to interact with smart contracts deployed on **Status Network** from a frontend using **ethers.js**.
|
||||
|
||||
In this tutorial, we'll walk through setting up a basic web application, deploying a smart contract on the **Status Network Testnet**, and interacting with it using **ethers.js**.
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have the following:
|
||||
|
||||
- **MetaMask** installed in your browser.
|
||||
- **Node.js** and **npm** installed on your computer.
|
||||
- Basic understanding of **React.js** and how **blockchains** work.
|
||||
|
||||
### Set Up Status Network Testnet
|
||||
|
||||
1. **Add Status Network Testnet to MetaMask**:
|
||||
|
||||
- Follow the guide [Adding Status Network to MetaMask](/general-info/add-status-network) to add the testnet network to your wallet.
|
||||
|
||||
2. **Obtain Test ETH**:
|
||||
|
||||
- Use the [Status Network Testnet Faucet](/tools/testnet-faucets) to get test ETH for deploying and interacting with contracts.
|
||||
|
||||
3. **Bridge Assets (Optional)**:
|
||||
|
||||
- If needed, bridge assets to the Status Network Testnet using the [Testnet Bridge](/general-info/bridge/bridging-testnet).
|
||||
|
||||
---
|
||||
|
||||
## Smart Contract Deployment on Status Network
|
||||
|
||||
We'll use a simple smart contract called **BidBoard** for this tutorial. The contract allows advertisers to bid for space on an advertising board.
|
||||
|
||||
### BidBoard Smart Contract
|
||||
|
||||
Here's the `BidBoard.sol` contract code:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
contract BidBoard {
|
||||
string public currentAd;
|
||||
address public advertiser;
|
||||
uint256 public currentBid;
|
||||
|
||||
event AdUpdated(string newAd, address newAdvertiser, uint256 newBid);
|
||||
|
||||
constructor() {
|
||||
currentAd = "Welcome to Status Network!";
|
||||
advertiser = msg.sender;
|
||||
currentBid = 0;
|
||||
}
|
||||
|
||||
function updateAd(string memory newAd) public payable {
|
||||
require(msg.value > currentBid, "Bid must be higher than current bid");
|
||||
currentAd = newAd;
|
||||
advertiser = msg.sender;
|
||||
currentBid = msg.value;
|
||||
emit AdUpdated(newAd, msg.sender, msg.value);
|
||||
}
|
||||
|
||||
function getCurrentAd() public view returns (string memory, address, uint256) {
|
||||
return (currentAd, advertiser, currentBid);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> **Note:** You can use your own smart contract if you prefer.
|
||||
|
||||
### Deploying the Contract
|
||||
|
||||
Follow the guide [Deploying a Smart Contract Using Remix](/tutorials/deploying-contracts/using-remix) to deploy the `BidBoard.sol` contract to the Status Network Testnet.
|
||||
|
||||
---
|
||||
|
||||
## Setting Up the Frontend Application
|
||||
|
||||
We'll create a React.js application to interact with the deployed smart contract.
|
||||
|
||||
### Step 1: Create a React App
|
||||
|
||||
Open your terminal and run:
|
||||
|
||||
```bash
|
||||
npx create-react-app bidboard-ui
|
||||
```
|
||||
|
||||
This command creates a new React application named `bidboard-ui`.
|
||||
|
||||
### Step 2: Install ethers.js
|
||||
|
||||
Navigate to the project directory and install **ethers.js**:
|
||||
|
||||
```bash
|
||||
cd bidboard-ui
|
||||
npm install ethers
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Building the Main Application Component
|
||||
|
||||
Open the project in your code editor and navigate to `src/App.js`.
|
||||
|
||||
### Import Required Libraries
|
||||
|
||||
Replace the content of `App.js` with the following code:
|
||||
|
||||
```jsx
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { ethers } from "ethers";
|
||||
import "./App.css";
|
||||
|
||||
const App = () => {
|
||||
// Contract details
|
||||
const contractAddress = "YOUR_CONTRACT_ADDRESS";
|
||||
const abi = [/* ABI JSON CODE */];
|
||||
|
||||
// State variables
|
||||
const [currentAd, setCurrentAd] = useState("");
|
||||
const [currentBid, setCurrentBid] = useState(0);
|
||||
const [advertiser, setAdvertiser] = useState("");
|
||||
const [newAd, setNewAd] = useState("");
|
||||
const [bidAmount, setBidAmount] = useState("");
|
||||
const [provider, setProvider] = useState(null);
|
||||
const [status, setStatus] = useState("");
|
||||
|
||||
// Rest of the code...
|
||||
};
|
||||
|
||||
export default App;
|
||||
```
|
||||
|
||||
> **Important:** Replace `"YOUR_CONTRACT_ADDRESS"` with the address of your deployed `BidBoard` contract. Paste the ABI of your contract in the `abi` array.
|
||||
|
||||
### Setting Up the Provider
|
||||
|
||||
Add the following code inside the `App` component to set up the provider:
|
||||
|
||||
```jsx
|
||||
useEffect(() => {
|
||||
if (typeof window.ethereum !== "undefined") {
|
||||
const newProvider = new ethers.providers.Web3Provider(window.ethereum);
|
||||
setProvider(newProvider);
|
||||
} else {
|
||||
console.error("Please install MetaMask!");
|
||||
}
|
||||
}, []);
|
||||
```
|
||||
|
||||
### Fetch Current Advertisement Data
|
||||
|
||||
Add a function to fetch the current advertisement data:
|
||||
|
||||
```jsx
|
||||
const fetchCurrentAd = async () => {
|
||||
try {
|
||||
const contract = new ethers.Contract(contractAddress, abi, provider);
|
||||
const adData = await contract.getCurrentAd();
|
||||
setCurrentAd(adData[0]);
|
||||
setAdvertiser(adData[1]);
|
||||
setCurrentBid(ethers.utils.formatEther(adData[2]));
|
||||
} catch (error) {
|
||||
console.error("Error fetching current ad:", error);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (provider) {
|
||||
fetchCurrentAd();
|
||||
}
|
||||
}, [provider]);
|
||||
```
|
||||
|
||||
### Submit a New Bid
|
||||
|
||||
Add a function to submit a new bid:
|
||||
|
||||
```jsx
|
||||
const submitBid = async () => {
|
||||
if (!newAd || !bidAmount) {
|
||||
setStatus("Please enter an ad message and bid amount.");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const signer = provider.getSigner();
|
||||
const contract = new ethers.Contract(contractAddress, abi, signer);
|
||||
const tx = await contract.updateAd(newAd, {
|
||||
value: ethers.utils.parseEther(bidAmount),
|
||||
});
|
||||
setStatus("Transaction sent, waiting for confirmation...");
|
||||
await tx.wait();
|
||||
setStatus("Transaction confirmed!");
|
||||
setNewAd("");
|
||||
setBidAmount("");
|
||||
fetchCurrentAd();
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
setStatus("Error: " + err.message);
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
### Listen to Contract Events
|
||||
|
||||
Add code to listen to the `AdUpdated` event:
|
||||
|
||||
```jsx
|
||||
useEffect(() => {
|
||||
let contract;
|
||||
|
||||
const setupEventListener = async () => {
|
||||
if (provider) {
|
||||
contract = new ethers.Contract(contractAddress, abi, provider);
|
||||
contract.on("AdUpdated", (newAd, newAdvertiser, newBid) => {
|
||||
setCurrentAd(newAd);
|
||||
setAdvertiser(newAdvertiser);
|
||||
setCurrentBid(ethers.utils.formatEther(newBid));
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
setupEventListener();
|
||||
|
||||
return () => {
|
||||
if (contract) {
|
||||
contract.removeAllListeners("AdUpdated");
|
||||
}
|
||||
};
|
||||
}, [provider]);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Creating the User Interface
|
||||
|
||||
Update the `return` statement in the `App` component:
|
||||
|
||||
```jsx
|
||||
return (
|
||||
<div className="app">
|
||||
{/* Header */}
|
||||
<header>
|
||||
<h1>BidBoard</h1>
|
||||
<p>Status: {status}</p>
|
||||
</header>
|
||||
|
||||
{/* Current Advertisement */}
|
||||
<section className="current-ad-section">
|
||||
<h2>Current Advertisement</h2>
|
||||
<p className="ad-message">"{currentAd}"</p>
|
||||
<p className="ad-details">
|
||||
<strong>Advertiser:</strong> {advertiser}
|
||||
</p>
|
||||
<p className="ad-details">
|
||||
<strong>Current Bid:</strong> {currentBid} ETH
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* Submit a New Bid */}
|
||||
<section className="new-bid-section">
|
||||
<h2>Submit a New Bid</h2>
|
||||
<input
|
||||
type="text"
|
||||
value={newAd}
|
||||
onChange={(e) => setNewAd(e.target.value)}
|
||||
placeholder="Your Ad Message"
|
||||
/>
|
||||
<input
|
||||
type="number"
|
||||
value={bidAmount}
|
||||
onChange={(e) => setBidAmount(e.target.value)}
|
||||
placeholder="Bid Amount in ETH"
|
||||
/>
|
||||
<button onClick={submitBid}>Submit Bid</button>
|
||||
</section>
|
||||
|
||||
{/* Footer */}
|
||||
<footer>
|
||||
<p>
|
||||
<a
|
||||
href="https://github.com/your-repo"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
GitHub Repository
|
||||
</a>
|
||||
</p>
|
||||
</footer>
|
||||
</div>
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Styling the Application
|
||||
|
||||
Create a `App.css` file in the `src` directory and add your preferred styles. Here's a basic example:
|
||||
|
||||
```css
|
||||
.app {
|
||||
text-align: center;
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
header {
|
||||
background-color: #282c34;
|
||||
padding: 20px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
section {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
input {
|
||||
margin: 5px;
|
||||
padding: 10px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 40px;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Running the Application
|
||||
|
||||
In your terminal, navigate to your project directory and run:
|
||||
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
|
||||
This command starts the development server. Open [http://localhost:3000](http://localhost:3000) in your browser to view the application.
|
||||
|
||||
---
|
||||
|
||||
## Testing the Application
|
||||
|
||||
1. **View Current Advertisement**:
|
||||
|
||||
- The application should display the current ad message, advertiser address, and current bid.
|
||||
|
||||
2. **Submit a New Bid**:
|
||||
|
||||
- Enter a new ad message and a bid amount higher than the current bid.
|
||||
- Click **"Submit Bid"**.
|
||||
- MetaMask will prompt you to confirm the transaction.
|
||||
- Wait for the transaction to be confirmed.
|
||||
|
||||
3. **Observe Real-Time Updates**:
|
||||
|
||||
- Upon confirmation, the application should automatically update with the new ad, advertiser, and bid amount.
|
||||
|
||||
---
|
||||
|
||||
## Conclusion
|
||||
|
||||
You've successfully created a web application that interacts with a smart contract deployed on the Status Network Testnet using **ethers.js**. This tutorial covered:
|
||||
|
||||
- Setting up a React application.
|
||||
- Deploying a smart contract to the Status Network.
|
||||
- Connecting the frontend to the smart contract using ethers.js.
|
||||
- Handling user interactions and real-time updates via events.
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- **Explore More Tutorials**:
|
||||
|
||||
- Check out other tutorials in the [Status Network Documentation](/tutorials/ethers-tutorial).
|
||||
|
||||
- **Enhance the Application**:
|
||||
|
||||
- Add error handling for edge cases.
|
||||
- Improve the UI/UX design.
|
||||
- Implement additional features like user authentication.
|
||||
|
||||
- **Deploy to Production**:
|
||||
|
||||
- Learn how to deploy your application for production use.
|
||||
|
||||
---
|
||||
|
||||
## Resources
|
||||
|
||||
- [Status Network Official Website](https://status.network/)
|
||||
- [Status Network Documentation](https://docs.status.network/)
|
||||
- [ethers.js Documentation](https://docs.ethers.io/)
|
||||
- [React.js Documentation](https://reactjs.org/)
|
||||
|
||||
---
|
||||
|
||||
**Happy Coding!**
|
|
@ -10,6 +10,29 @@ 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',
|
||||
|
@ -91,6 +114,11 @@ const config: Config = {
|
|||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'localeDropdown',
|
||||
position: 'right',
|
||||
className: 'language-dropdown',
|
||||
},
|
||||
{
|
||||
href: 'https://hub.status.network',
|
||||
label: 'Hub',
|
||||
|
|
|
@ -0,0 +1,309 @@
|
|||
{
|
||||
"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.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.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.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.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.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,178 @@
|
|||
{
|
||||
"version.label": {
|
||||
"message": "次へ",
|
||||
"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.🔍 Verifying Your Smart Contract": {
|
||||
"message": "🔍 スマートコントラクトの検証",
|
||||
"description": "The label for category 🔍 Verifying Your Smart Contract in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.SECURITY": {
|
||||
"message": "セキュリティ",
|
||||
"description": "The label for category SECURITY in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||
"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トークン",
|
||||
"description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💠 Aura Token": {
|
||||
"message": "💠 オーラトークン",
|
||||
"description": "The label for the doc item 💠 Aura Token in sidebar tutorialSidebar, linking to the doc tokenomics/aura-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||
"message": "🌐 ネットワーク詳細",
|
||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar, linking to the doc general-info/network-details"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||
"message": "➕ ステータスネットワークを追加",
|
||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar, linking to the doc general-info/add-status-network"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||
"message": "💰 トークン",
|
||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/tokens"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||
"message": "🧪 テストネットコントラクト",
|
||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/testnet-contracts"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➡️ Bridge to Status": {
|
||||
"message": "➡️ ステータスへのブリッジ",
|
||||
"description": "The label for the doc item ➡️ Bridge to Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-to-status"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⬅️ Bridge from Status": {
|
||||
"message": "⬅️ ステータスからのブリッジ",
|
||||
"description": "The label for the doc item ⬅️ Bridge from Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-from-status"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||
"message": "🧪 テストネットのブリッジ",
|
||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridging-testnet"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar, linking to the doc tools/rpc"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.👥 Multisig Wallets": {
|
||||
"message": "👥 マルチシグウォレット",
|
||||
"description": "The label for the doc item 👥 Multisig Wallets in sidebar tutorialSidebar, linking to the doc tools/multisig-wallets"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||
"message": "🌉 ブリッジ",
|
||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar, linking to the doc tools/bridge"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||
"message": "🚰 テストネットファウセット",
|
||||
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar, linking to the doc tools/testnet-faucets"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||
"message": "🔎 ブロックエクスプローラー",
|
||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar, linking to the doc tools/block-explorers"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.📊 Data Indexers": {
|
||||
"message": "📊 データインデクサー",
|
||||
"description": "The label for the doc item 📊 Data Indexers in sidebar tutorialSidebar, linking to the doc tools/data-indexers"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔮 Oracles": {
|
||||
"message": "🔮 オラクル",
|
||||
"description": "The label for the doc item 🔮 Oracles in sidebar tutorialSidebar, linking to the doc tools/oracles"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Interoperability": {
|
||||
"message": "🔗 相互運用性",
|
||||
"description": "The label for the doc item 🔗 Interoperability in sidebar tutorialSidebar, linking to the doc tools/interoperability"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎲 Randomness": {
|
||||
"message": "🎲 ランダムネス",
|
||||
"description": "The label for the doc item 🎲 Randomness in sidebar tutorialSidebar, linking to the doc tools/randomness"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🛠️ General Tooling": {
|
||||
"message": "🛠️ 一般的なツール",
|
||||
"description": "The label for the doc item 🛠️ General Tooling in sidebar tutorialSidebar, linking to the doc tools/general-tooling"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🖥️ Node Operators": {
|
||||
"message": "🖥️ ノードオペレーター",
|
||||
"description": "The label for the doc item 🖥️ Node Operators in sidebar tutorialSidebar, linking to the doc tools/node-operators"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.📘 Ethers Tutorial": {
|
||||
"message": "📘 Ethersチュートリアル",
|
||||
"description": "The label for the doc item 📘 Ethers Tutorial in sidebar tutorialSidebar, linking to the doc tutorials/ethers-tutorial"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||
"message": "🎩 Hardhatの使用",
|
||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-hardhat"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Using Thirdweb": {
|
||||
"message": "🌐 Thirdwebの使用",
|
||||
"description": "The label for the doc item 🌐 Using Thirdweb in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-thirdweb"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||
"message": "⚒️ Foundryの使用",
|
||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-foundry"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||
"message": "🎛️ Remixの使用",
|
||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-remix"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🛡️ Security Model": {
|
||||
"message": "🛡️ セキュリティモデル",
|
||||
"description": "The label for the doc item 🛡️ Security Model in sidebar tutorialSidebar, linking to the doc security/security-model"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⬆️ Security Upgrades": {
|
||||
"message": "⬆️ セキュリティアップグレード",
|
||||
"description": "The label for the doc item ⬆️ Security Upgrades in sidebar tutorialSidebar, linking to the doc security/security-upgrades"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔒 Audits": {
|
||||
"message": "🔒 監査",
|
||||
"description": "The label for the doc item 🔒 Audits in sidebar tutorialSidebar, linking to the doc other/audits"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||
"message": "🔗 公式リンク",
|
||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar, linking to the doc other/official-links"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎨 Branding Guidelines": {
|
||||
"message": "🎨 ブランディングガイドライン",
|
||||
"description": "The label for the doc item 🎨 Branding Guidelines in sidebar tutorialSidebar, linking to the doc other/branding-guidelines"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
# Add Status Network
|
|
@ -0,0 +1 @@
|
|||
# Bridge From Status
|
|
@ -0,0 +1 @@
|
|||
# Bridge To Status
|
|
@ -0,0 +1 @@
|
|||
# Bridging Testnet
|
|
@ -0,0 +1 @@
|
|||
# Testnet Contracts
|
|
@ -0,0 +1 @@
|
|||
# Tokens
|
|
@ -0,0 +1,12 @@
|
|||
# Network Details
|
||||
|
||||
## Status Testnet
|
||||
|
||||
| Name | Value |
|
||||
|---------------------|-------|
|
||||
| **Network Name** | |
|
||||
| **RPC Endpoint** | |
|
||||
| **Chain ID** | |
|
||||
| **Currency Symbol** | |
|
||||
| **Block Explorer** | |
|
||||
| **Bridge** | |
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
id: index
|
||||
title: ステータスネットワークの紹介
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# ステータスネットワークへようこそ
|
||||
|
||||
ブロックチェーン体験を再構築する暗号ソーシャルプレイグラウンド、**ステータスネットワーク**へようこそ!最先端の[LineaのZK-EVM技術](https://docs.linea.build/architecture)上に構築された**EVMと同等のイーサリアムレイヤー2ロールアップ**として、ステータスネットワークは他のプラットフォームとは一線を画すユニークな機能を提供します。
|
||||
|
||||
## 私たちのユニークな点は?
|
||||
|
||||
### 💰 ネイティブなETHとDAIのイールド
|
||||
|
||||
あなたの**ETH**と**DAI**資産で持続的で魅力的なイールドをお楽しみください!私たちはレイヤー2ソリューションの中でも独特な機能であるネイティブなイールド生成を提供しており、ネットワークに参加しながら暗号資産を手軽に増やすことができます。
|
||||
|
||||
### 🏆 $AURAトークンを獲得
|
||||
|
||||
**リアルタイム**でのエンゲージメントに対して報酬を獲得しましょう!ネットワーク活動に参加し、**$SNTをステーキング**して**$AURAトークン**を獲得できます。取引、ステーキング、コミュニティへの関与を通じて、より多くの相互作用をするほど、活気あるコミュニティ内での影響力が増します。あなたの$AURAは、ネットワークの未来を形作る上であなたの声を強めます。
|
||||
|
||||
### 🔒 遊び心あるプライバシー
|
||||
|
||||
**安全で楽しい**プライバシー機能を体験してください!私たちはプライバシーは基本的な権利であり、複雑さなしに誰もがアクセスできるべきだと信じています。使いやすいプライバシーツールにより、安全なやり取りを楽しくし、従来の複雑なプライバシー技術の概念から脱却します。
|
||||
|
||||
---
|
||||
|
||||
ステータスネットワークに参加して、**あなたの積極的な参加が本当に未来を形作る**、ユニークでプライバシー重視のやりがいのある暗号コミュニティの一員になりましょう!一緒に暗号の遊び場を作りましょう!
|
|
@ -0,0 +1,114 @@
|
|||
# クイックスタート
|
||||
|
||||
このセクションでは、**Status Network テストネット**で10分以内にサンプルコントラクトをデプロイする方法を紹介します。
|
||||
|
||||
シンプルさのために、Remix IDEを使用してStatus Network上でスマートコントラクトをデプロイする方法を見てみましょう。
|
||||
|
||||
## 準備を整える
|
||||
|
||||
始める前に:
|
||||
|
||||
- **MetaMaskにStatus Network テストネットを追加する**:
|
||||
|
||||
MetaMaskにStatus Network テストネットを追加する手順については、[Status Network ドキュメント](/general-info/add-status-network)をご覧ください。ネットワークのRPC URL、チェーンID、その他の詳細が必要です。
|
||||
|
||||
- **テストネットトークンを取得する**:
|
||||
|
||||
このガイドでは、Status NetworkでテストネットETHを取得していることを前提としています。テストトークンをリクエストするには、[Status Network テストネットファウセット](#)を使用できます。
|
||||
|
||||
準備ができました!
|
||||
|
||||
## Remixとサンプルコード
|
||||
|
||||
**Remix**は、スマートコントラクトを開発するためのセットアップ不要のツールです。簡単に始められ、シンプルなデプロイプロセス、デバッグ、スマートコントラクトとのやり取りなどが可能です。デプロイされたスマートコントラクトと対話し、迅速な変更をテストするのに最適なツールです。
|
||||
|
||||
このチュートリアルでは、Remixのサンプルとして提供されている`SimpleStorage.sol`スマートコントラクトをデプロイしますが、ご自身のコードを使用することもできます。
|
||||
|
||||
サンプルコードはこちらです:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: GPL-3.0
|
||||
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
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 Compiler**タブ(左のサイドバー)に移動します。
|
||||
- コンパイラのバージョンがコントラクトのプラグマ文(`0.8.24`)と一致していることを確認します。
|
||||
- **「Compile SimpleStorage.sol」**をクリックします。
|
||||
- コントラクトコードを変更するたびに自動的にコンパイルするには、**「Auto compile」**を有効にできます。
|
||||
|
||||
3. **スマートコントラクトをデプロイする**:
|
||||
|
||||
- **Deploy & Run Transactions**タブに切り替えます。
|
||||
- **「Environment」**ドロップダウンメニューで、**「Injected Provider - MetaMask」**を選択します。これにより、RemixがMetaMaskウォレットに接続されます。
|
||||
- MetaMaskがRemixへの接続を求める場合があります。接続を確認してください。
|
||||
- MetaMaskで**Status Network テストネット**が選択されていることを確認します。
|
||||
- **「Contract」**の下で、`SimpleStorage`が選択されていることを確認します。
|
||||
- **「Deploy」**をクリックします。
|
||||
- MetaMaskがポップアップし、トランザクションの確認を求めます。
|
||||
- トランザクションの詳細を確認し、**「Confirm」**をクリックします。
|
||||
- トランザクションがマイニングされるのを待ちます。RemixやMetaMaskでステータスを追跡できます。
|
||||
|
||||
**おめでとうございます!** Status Network上で初めてのスマートコントラクトをデプロイしました。
|
||||
|
||||
## デプロイしたスマートコントラクトと対話する
|
||||
|
||||
1. **デプロイされたコントラクトにアクセスする**:
|
||||
|
||||
- Remixで、**「Deployed Contracts」**セクションの下に、デプロイされた`SimpleStorage`コントラクトが表示されます。
|
||||
|
||||
2. **数値を保存する**:
|
||||
|
||||
- デプロイされたコントラクトを展開し、その関数を表示します。
|
||||
- **「store」**関数の入力フィールドに、数値(例:`42`)を入力します。
|
||||
- **「transact」**をクリックします。
|
||||
- MetaMaskがトランザクションの確認を求めます。**「Confirm」**をクリックします。
|
||||
- トランザクションが確認されるのを待ちます。
|
||||
|
||||
3. **数値を取得する**:
|
||||
|
||||
- **「retrieve」**関数をクリックします。
|
||||
- 保存された数値がボタンの下に表示されます。
|
||||
|
||||
## 次のステップ
|
||||
|
||||
- **サポートを受ける**:
|
||||
|
||||
- 問題が発生したり質問がある場合は、[Status Network サポート](https://status.app)を訪れるか、コミュニティチャンネルに参加して支援を受けてください。
|
||||
|
||||
## まとめ
|
||||
|
||||
あなたは次のことに成功しました:
|
||||
|
||||
- Status Network テストネットと対話するための環境を設定しました。
|
||||
- Remix IDEとMetaMaskを使用してスマートコントラクトをデプロイしました。
|
||||
- 数値の保存と取得によって、デプロイしたコントラクトと対話しました。
|
||||
|
||||
---
|
||||
|
||||
もっと深く学びたい場合は、より複雑なスマートコントラクトを探求してみてください。追加のチュートリアルは[こちら](/tutorials/ethers-tutorial)からご覧いただけます。
|
||||
|
||||
**楽しいコーディングを!**
|
|
@ -0,0 +1 @@
|
|||
# Audits
|
|
@ -0,0 +1 @@
|
|||
# Branding Guidelines
|
|
@ -0,0 +1 @@
|
|||
# Official Links
|
|
@ -0,0 +1 @@
|
|||
# Status Network Security Model
|
|
@ -0,0 +1 @@
|
|||
# Security Upgrades
|
|
@ -0,0 +1 @@
|
|||
# $AURA token
|
|
@ -0,0 +1 @@
|
|||
# $SNT Token
|
|
@ -0,0 +1 @@
|
|||
# Block Explorers
|
|
@ -0,0 +1 @@
|
|||
# Bridge
|
|
@ -0,0 +1 @@
|
|||
# Data Indexers
|
|
@ -0,0 +1 @@
|
|||
# General Tooling
|
|
@ -0,0 +1 @@
|
|||
# Interoperability
|
|
@ -0,0 +1 @@
|
|||
# Multisig Wallets
|
|
@ -0,0 +1 @@
|
|||
# Node Operators
|
|
@ -0,0 +1 @@
|
|||
# Oracles
|
|
@ -0,0 +1 @@
|
|||
# Randomness
|
|
@ -0,0 +1 @@
|
|||
# RPCs
|
|
@ -0,0 +1 @@
|
|||
# Testnet Faucets
|
|
@ -0,0 +1 @@
|
|||
# Using Foundry
|
|
@ -0,0 +1 @@
|
|||
# Using Hardhat
|
|
@ -0,0 +1 @@
|
|||
# Using Remix
|
|
@ -0,0 +1 @@
|
|||
# Using Thirdweb
|
|
@ -0,0 +1 @@
|
|||
# Interacting with Smart Contracts using ethers.js
|
|
@ -0,0 +1 @@
|
|||
# Using Foundry
|
|
@ -0,0 +1 @@
|
|||
# Using Hardhat
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"title": {
|
||||
"message": "ステータスネットワークドキュメント",
|
||||
"description": "The title in the navbar"
|
||||
},
|
||||
"logo.alt": {
|
||||
"message": "ステータスネットワークロゴ",
|
||||
"description": "The alt text of navbar logo"
|
||||
},
|
||||
"item.label.Tools": {
|
||||
"message": "ツール",
|
||||
"description": "Navbar item with label Tools"
|
||||
},
|
||||
"item.label.Hub": {
|
||||
"message": "ハブ",
|
||||
"description": "Navbar item with label Hub"
|
||||
},
|
||||
"item.label.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "Navbar item with label 🔌 RPC"
|
||||
},
|
||||
"item.label.👥 Multisig Wallets": {
|
||||
"message": "👥 マルチシグウォレット",
|
||||
"description": "Navbar item with label 👥 Multisig Wallets"
|
||||
},
|
||||
"item.label.🌉 Bridge": {
|
||||
"message": "🌉 ブリッジ",
|
||||
"description": "Navbar item with label 🌉 Bridge"
|
||||
},
|
||||
"item.label.🚰 Testnet Faucets": {
|
||||
"message": "🚰 テストネットファウセット",
|
||||
"description": "Navbar item with label 🚰 Testnet Faucets"
|
||||
},
|
||||
"item.label.🔎 Block Explorers": {
|
||||
"message": "🔎 ブロックエクスプローラー",
|
||||
"description": "Navbar item with label 🔎 Block Explorers"
|
||||
},
|
||||
"item.label.📊 Data Indexers": {
|
||||
"message": "📊 データインデクサー",
|
||||
"description": "Navbar item with label 📊 Data Indexers"
|
||||
},
|
||||
"item.label.🔮 Oracles": {
|
||||
"message": "🔮 オラクル",
|
||||
"description": "Navbar item with label 🔮 Oracles"
|
||||
},
|
||||
"item.label.🔗 Interoperability": {
|
||||
"message": "🔗 相互運用性",
|
||||
"description": "Navbar item with label 🔗 Interoperability"
|
||||
},
|
||||
"item.label.🎲 Randomness": {
|
||||
"message": "🎲 ランダムネス",
|
||||
"description": "Navbar item with label 🎲 Randomness"
|
||||
},
|
||||
"item.label.🛠️ General Tooling": {
|
||||
"message": "🛠️ 一般的なツール",
|
||||
"description": "Navbar item with label 🛠️ General Tooling"
|
||||
},
|
||||
"item.label.🖥️ Node Operators": {
|
||||
"message": "🖥️ ノードオペレーター",
|
||||
"description": "Navbar item with label 🖥️ Node Operators"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,309 @@
|
|||
{
|
||||
"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": "Breadcrumbs",
|
||||
"description": "The ARIA label for the breadcrumbs"
|
||||
},
|
||||
"theme.docs.DocCard.categoryDescription.plurals": {
|
||||
"message": "{count} 항목",
|
||||
"description": "The default description for a category card in the generated index about how many items this category includes"
|
||||
},
|
||||
"theme.docs.paginator.navAriaLabel": {
|
||||
"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.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.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,178 @@
|
|||
{
|
||||
"version.label": {
|
||||
"message": "다음",
|
||||
"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.🔍 Verifying Your Smart Contract": {
|
||||
"message": "🔍 스마트 컨트랙트 검증",
|
||||
"description": "The label for category 🔍 Verifying Your Smart Contract in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.SECURITY": {
|
||||
"message": "보안",
|
||||
"description": "The label for category SECURITY in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||
"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 토큰",
|
||||
"description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💠 Aura Token": {
|
||||
"message": "💠 아우라 토큰",
|
||||
"description": "The label for the doc item 💠 Aura Token in sidebar tutorialSidebar, linking to the doc tokenomics/aura-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||
"message": "🌐 네트워크 세부사항",
|
||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar, linking to the doc general-info/network-details"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||
"message": "➕ 스테이터스 네트워크 추가",
|
||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar, linking to the doc general-info/add-status-network"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||
"message": "💰 토큰",
|
||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/tokens"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||
"message": "🧪 테스트넷 컨트랙트",
|
||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/testnet-contracts"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➡️ Bridge to Status": {
|
||||
"message": "➡️ 스테이터스로 브리지",
|
||||
"description": "The label for the doc item ➡️ Bridge to Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-to-status"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⬅️ Bridge from Status": {
|
||||
"message": "⬅️ 스테이터스에서 브리지",
|
||||
"description": "The label for the doc item ⬅️ Bridge from Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-from-status"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||
"message": "🧪 테스트넷 브리지",
|
||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridging-testnet"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar, linking to the doc tools/rpc"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.👥 Multisig Wallets": {
|
||||
"message": "👥 다중서명 지갑",
|
||||
"description": "The label for the doc item 👥 Multisig Wallets in sidebar tutorialSidebar, linking to the doc tools/multisig-wallets"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||
"message": "🌉 브리지",
|
||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar, linking to the doc tools/bridge"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||
"message": "🚰 테스트넷 파우셋",
|
||||
"description": "The label for the doc item 🚰 Testnet Faucets in sidebar tutorialSidebar, linking to the doc tools/testnet-faucets"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||
"message": "🔎 블록 익스플로러",
|
||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar, linking to the doc tools/block-explorers"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.📊 Data Indexers": {
|
||||
"message": "📊 데이터 인덱서",
|
||||
"description": "The label for the doc item 📊 Data Indexers in sidebar tutorialSidebar, linking to the doc tools/data-indexers"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔮 Oracles": {
|
||||
"message": "🔮 오라클",
|
||||
"description": "The label for the doc item 🔮 Oracles in sidebar tutorialSidebar, linking to the doc tools/oracles"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Interoperability": {
|
||||
"message": "🔗 상호운용성",
|
||||
"description": "The label for the doc item 🔗 Interoperability in sidebar tutorialSidebar, linking to the doc tools/interoperability"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎲 Randomness": {
|
||||
"message": "🎲 무작위성",
|
||||
"description": "The label for the doc item 🎲 Randomness in sidebar tutorialSidebar, linking to the doc tools/randomness"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🛠️ General Tooling": {
|
||||
"message": "🛠️ 일반 도구",
|
||||
"description": "The label for the doc item 🛠️ General Tooling in sidebar tutorialSidebar, linking to the doc tools/general-tooling"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🖥️ Node Operators": {
|
||||
"message": "🖥️ 노드 운영자",
|
||||
"description": "The label for the doc item 🖥️ Node Operators in sidebar tutorialSidebar, linking to the doc tools/node-operators"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.📘 Ethers Tutorial": {
|
||||
"message": "📘 Ethers 튜토리얼",
|
||||
"description": "The label for the doc item 📘 Ethers Tutorial in sidebar tutorialSidebar, linking to the doc tutorials/ethers-tutorial"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||
"message": "🎩 하드햇 사용",
|
||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-hardhat"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Using Thirdweb": {
|
||||
"message": "🌐 서드웹 사용",
|
||||
"description": "The label for the doc item 🌐 Using Thirdweb in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-thirdweb"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||
"message": "⚒️ 파운드리 사용",
|
||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-foundry"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||
"message": "🎛️ 리믹스 사용",
|
||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-remix"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🛡️ Security Model": {
|
||||
"message": "🛡️ 보안 모델",
|
||||
"description": "The label for the doc item 🛡️ Security Model in sidebar tutorialSidebar, linking to the doc security/security-model"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⬆️ Security Upgrades": {
|
||||
"message": "⬆️ 보안 업그레이드",
|
||||
"description": "The label for the doc item ⬆️ Security Upgrades in sidebar tutorialSidebar, linking to the doc security/security-upgrades"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔒 Audits": {
|
||||
"message": "🔒 감사",
|
||||
"description": "The label for the doc item 🔒 Audits in sidebar tutorialSidebar, linking to the doc other/audits"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||
"message": "🔗 공식 링크",
|
||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar, linking to the doc other/official-links"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎨 Branding Guidelines": {
|
||||
"message": "🎨 브랜딩 가이드라인",
|
||||
"description": "The label for the doc item 🎨 Branding Guidelines in sidebar tutorialSidebar, linking to the doc other/branding-guidelines"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
# Add Status Network
|
|
@ -0,0 +1 @@
|
|||
# Bridge From Status
|
|
@ -0,0 +1 @@
|
|||
# Bridge To Status
|
|
@ -0,0 +1 @@
|
|||
# Bridging Testnet
|
|
@ -0,0 +1 @@
|
|||
# Testnet Contracts
|
|
@ -0,0 +1 @@
|
|||
# Tokens
|
|
@ -0,0 +1,12 @@
|
|||
# Network Details
|
||||
|
||||
## Status Testnet
|
||||
|
||||
| Name | Value |
|
||||
|---------------------|-------|
|
||||
| **Network Name** | |
|
||||
| **RPC Endpoint** | |
|
||||
| **Chain ID** | |
|
||||
| **Currency Symbol** | |
|
||||
| **Block Explorer** | |
|
||||
| **Bridge** | |
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
id: index
|
||||
title: 스테이터스 네트워크 소개
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# 스테이터스 네트워크에 오신 것을 환영합니다
|
||||
|
||||
블록체인 경험을 재구성하는 크립토 소셜 놀이터 **스테이터스 네트워크**에 오신 것을 환영합니다! [Linea의 최첨단 ZK-EVM 기술](https://docs.linea.build/architecture)을 기반으로 한 **EVM과 동등한 이더리움 레이어 2 롤업**으로 구축된 스테이터스 네트워크는 다른 플랫폼과 차별화되는 독특한 기능을 제공합니다.
|
||||
|
||||
## 우리의 특별함은 무엇인가요?
|
||||
|
||||
### 💰 네이티브 ETH 및 DAI 수익
|
||||
|
||||
당신의 **ETH** 및 **DAI** 자산에 대한 지속적이고 매력적인 수익을 즐기세요! 우리는 레이어 2 솔루션 중에서도 독특한 기능인 네이티브 수익 생성을 제공하여, 네트워크에 참여하면서 손쉽게 암호화폐 자산을 늘릴 수 있습니다.
|
||||
|
||||
### 🏆 $AURA 토큰 획득
|
||||
|
||||
**실시간**으로 참여에 대한 보상을 받으세요! 네트워크 활동에 참여하고 **$SNT를 스테이킹**하여 **$AURA 토큰**을 획득하세요. 거래, 스테이킹 또는 커뮤니티 참여를 통해 더 많이 상호작용할수록 우리 활기찬 커뮤니티 내에서 더 큰 영향력을 얻습니다. 당신의 $AURA는 네트워크의 미래를 형성하는 데 있어 당신의 목소리를 강화합니다.
|
||||
|
||||
### 🔒 재미있는 프라이버시
|
||||
|
||||
**안전하고 재미있는** 프라이버시 기능을 경험하세요! 우리는 프라이버시가 근본적인 권리이며 복잡하지 않아도 모두에게 접근 가능해야 한다고 믿습니다. 사용자 친화적인 프라이버시 도구로 안전한 상호작용을 즐겁게 만들어, 복잡한 프라이버시 기술의 전통적인 개념에서 벗어납니다.
|
||||
|
||||
---
|
||||
|
||||
스테이터스 네트워크에 참여하여 **당신의 적극적인 참여가 진정으로 미래를 형성하는** 독특하고 프라이버시 중심의 보람 있는 크립토 커뮤니티의 일원이 되세요! 함께 크립토 놀이터를 만들어 봅시다!
|
|
@ -0,0 +1,114 @@
|
|||
# 빠른 시작
|
||||
|
||||
이 섹션에서는 **Status Network 테스트넷**에서 10분 이내에 샘플 컨트랙트를 배포해 보겠습니다.
|
||||
|
||||
간단하게 하기 위해 Remix IDE를 사용하여 Status Network에서 스마트 컨트랙트를 배포하는 방법을 살펴보겠습니다.
|
||||
|
||||
## 준비하기
|
||||
|
||||
시작하기 전에:
|
||||
|
||||
- **MetaMask에 Status Network 테스트넷 추가하기**:
|
||||
|
||||
MetaMask에 Status Network 테스트넷을 추가하는 단계별 지침은 [Status Network 문서](/general-info/add-status-network)를 참고하세요. 네트워크의 RPC URL, 체인 ID 및 기타 세부 정보가 필요합니다.
|
||||
|
||||
- **테스트넷 토큰 받기**:
|
||||
|
||||
이 가이드는 Status Network에서 테스트넷 ETH를 얻었다고 가정합니다. 테스트 토큰을 요청하려면 [Status Network 테스트넷 파우셋](#)을 사용할 수 있습니다.
|
||||
|
||||
시작할 준비가 되었습니다!
|
||||
|
||||
## Remix 및 샘플 코드
|
||||
|
||||
**Remix**는 스마트 컨트랙트 개발을 위한 별도의 설정이 필요 없는 도구입니다. 간단한 배포 프로세스, 디버깅, 스마트 컨트랙트와의 상호 작용 등을 가능하게 하여 쉽게 시작할 수 있습니다. 빠른 변경 사항을 테스트하고 배포된 스마트 컨트랙트와 상호 작용하기에 훌륭한 도구입니다.
|
||||
|
||||
이 튜토리얼에서는 Remix에 예제로 제공되는 `SimpleStorage.sol` 스마트 컨트랙트를 배포하겠지만, 원하는 코드를 사용할 수 있습니다.
|
||||
|
||||
여기 샘플 코드가 있습니다:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: GPL-3.0
|
||||
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
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 Compiler** 탭으로 이동합니다 (왼쪽 사이드바).
|
||||
- 컴파일러 버전이 컨트랙트의 pragma 문(`0.8.24`)과 일치하는지 확인합니다.
|
||||
- **"Compile SimpleStorage.sol"**을 클릭합니다.
|
||||
- 컨트랙트 코드를 변경할 때마다 자동으로 컴파일되도록 **"Auto compile"**을 활성화할 수 있습니다.
|
||||
|
||||
3. **스마트 컨트랙트 배포하기**:
|
||||
|
||||
- **Deploy & Run Transactions** 탭으로 전환합니다.
|
||||
- **"Environment"** 드롭다운 메뉴에서 **"Injected Provider - MetaMask"**를 선택합니다. 이것은 Remix를 MetaMask 지갑에 연결합니다.
|
||||
- MetaMask에서 Remix에 연결하라는 메시지가 표시될 수 있습니다. 연결을 확인하세요.
|
||||
- MetaMask에서 **Status Network 테스트넷**이 선택되어 있는지 확인합니다.
|
||||
- **"Contract"** 아래에서 `SimpleStorage`가 선택되어 있는지 확인합니다.
|
||||
- **"Deploy"**를 클릭합니다.
|
||||
- MetaMask가 나타나 트랜잭션 확인을 요청합니다.
|
||||
- 트랜잭션 세부 정보를 검토하고 **"Confirm"**을 클릭합니다.
|
||||
- 트랜잭션이 채굴될 때까지 기다립니다. Remix 또는 MetaMask에서 상태를 추적할 수 있습니다.
|
||||
|
||||
**축하합니다!** Status Network에 첫 스마트 컨트랙트를 배포하셨습니다.
|
||||
|
||||
## 배포한 스마트 컨트랙트와 상호 작용하기
|
||||
|
||||
1. **배포된 컨트랙트 접근하기**:
|
||||
|
||||
- Remix에서 **"Deployed Contracts"** 섹션 아래에 배포된 `SimpleStorage` 컨트랙트가 표시됩니다.
|
||||
|
||||
2. **숫자 저장하기**:
|
||||
|
||||
- 배포된 컨트랙트를 확장하여 함수들을 확인합니다.
|
||||
- **"store"** 함수 입력 필드에 숫자(예: `42`)를 입력합니다.
|
||||
- **"transact"**를 클릭합니다.
|
||||
- MetaMask에서 트랜잭션 확인을 요청합니다. **"Confirm"**을 클릭합니다.
|
||||
- 트랜잭션이 확인될 때까지 기다립니다.
|
||||
|
||||
3. **숫자 가져오기**:
|
||||
|
||||
- **"retrieve"** 함수를 클릭합니다.
|
||||
- 저장된 숫자가 버튼 아래에 표시됩니다.
|
||||
|
||||
## 다음 단계
|
||||
|
||||
- **지원 받기**:
|
||||
|
||||
- 문제가 발생하거나 질문이 있으시면, [Status Network 지원](https://status.app)을 방문하거나 커뮤니티 채널에 참여하여 도움을 받으세요.
|
||||
|
||||
## 요약
|
||||
|
||||
여러분은 성공적으로 다음을 수행하셨습니다:
|
||||
|
||||
- Status Network 테스트넷과 상호 작용하기 위한 환경을 설정했습니다.
|
||||
- Remix IDE와 MetaMask를 사용하여 스마트 컨트랙트를 배포했습니다.
|
||||
- 숫자를 저장하고 가져옴으로써 배포한 컨트랙트와 상호 작용했습니다.
|
||||
|
||||
---
|
||||
|
||||
더 깊이 들어가고 싶다면, 더 복잡한 스마트 컨트랙트를 탐구해 보세요. 추가 튜토리얼은 [여기](/tutorials/ethers-tutorial)에서 확인하세요.
|
||||
|
||||
**즐거운 코딩 되세요!**
|
|
@ -0,0 +1 @@
|
|||
# Audits
|
|
@ -0,0 +1 @@
|
|||
# Branding Guidelines
|
|
@ -0,0 +1 @@
|
|||
# Official Links
|
|
@ -0,0 +1 @@
|
|||
# Status Network Security Model
|
|
@ -0,0 +1 @@
|
|||
# Security Upgrades
|
|
@ -0,0 +1 @@
|
|||
# $AURA token
|
|
@ -0,0 +1 @@
|
|||
# $SNT Token
|
|
@ -0,0 +1 @@
|
|||
# Block Explorers
|
|
@ -0,0 +1 @@
|
|||
# Bridge
|
|
@ -0,0 +1 @@
|
|||
# Data Indexers
|
|
@ -0,0 +1 @@
|
|||
# General Tooling
|
|
@ -0,0 +1 @@
|
|||
# Interoperability
|
|
@ -0,0 +1 @@
|
|||
# Multisig Wallets
|
|
@ -0,0 +1 @@
|
|||
# Node Operators
|
|
@ -0,0 +1 @@
|
|||
# Oracles
|
|
@ -0,0 +1 @@
|
|||
# Randomness
|
|
@ -0,0 +1 @@
|
|||
# RPCs
|
|
@ -0,0 +1 @@
|
|||
# Testnet Faucets
|
|
@ -0,0 +1 @@
|
|||
# Using Foundry
|
|
@ -0,0 +1 @@
|
|||
# Using Hardhat
|
|
@ -0,0 +1 @@
|
|||
# Using Remix
|
|
@ -0,0 +1 @@
|
|||
# Using Thirdweb
|
|
@ -0,0 +1 @@
|
|||
# Interacting with Smart Contracts using ethers.js
|
|
@ -0,0 +1 @@
|
|||
# Using Foundry
|
|
@ -0,0 +1 @@
|
|||
# Using Hardhat
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"title": {
|
||||
"message": "스테이터스 네트워크 문서",
|
||||
"description": "The title in the navbar"
|
||||
},
|
||||
"logo.alt": {
|
||||
"message": "스테이터스 네트워크 로고",
|
||||
"description": "The alt text of navbar logo"
|
||||
},
|
||||
"item.label.Tools": {
|
||||
"message": "도구",
|
||||
"description": "Navbar item with label Tools"
|
||||
},
|
||||
"item.label.Hub": {
|
||||
"message": "허브",
|
||||
"description": "Navbar item with label Hub"
|
||||
},
|
||||
"item.label.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "Navbar item with label 🔌 RPC"
|
||||
},
|
||||
"item.label.👥 Multisig Wallets": {
|
||||
"message": "👥 다중서명 지갑",
|
||||
"description": "Navbar item with label 👥 Multisig Wallets"
|
||||
},
|
||||
"item.label.🌉 Bridge": {
|
||||
"message": "🌉 브리지",
|
||||
"description": "Navbar item with label 🌉 Bridge"
|
||||
},
|
||||
"item.label.🚰 Testnet Faucets": {
|
||||
"message": "🚰 테스트넷 파우셋",
|
||||
"description": "Navbar item with label 🚰 Testnet Faucets"
|
||||
},
|
||||
"item.label.🔎 Block Explorers": {
|
||||
"message": "🔎 블록 익스플로러",
|
||||
"description": "Navbar item with label 🔎 Block Explorers"
|
||||
},
|
||||
"item.label.📊 Data Indexers": {
|
||||
"message": "📊 데이터 인덱서",
|
||||
"description": "Navbar item with label 📊 Data Indexers"
|
||||
},
|
||||
"item.label.🔮 Oracles": {
|
||||
"message": "🔮 오라클",
|
||||
"description": "Navbar item with label 🔮 Oracles"
|
||||
},
|
||||
"item.label.🔗 Interoperability": {
|
||||
"message": "🔗 상호운용성",
|
||||
"description": "Navbar item with label 🔗 Interoperability"
|
||||
},
|
||||
"item.label.🎲 Randomness": {
|
||||
"message": "🎲 난수성",
|
||||
"description": "Navbar item with label 🎲 Randomness"
|
||||
},
|
||||
"item.label.🛠️ General Tooling": {
|
||||
"message": "🛠️ 일반 도구",
|
||||
"description": "Navbar item with label 🛠️ General Tooling"
|
||||
},
|
||||
"item.label.🖥️ Node Operators": {
|
||||
"message": "🖥️ 노드 운영자",
|
||||
"description": "Navbar item with label 🖥️ Node Operators"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,309 @@
|
|||
{
|
||||
"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.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.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.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.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.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,178 @@
|
|||
{
|
||||
"version.label": {
|
||||
"message": "下一个",
|
||||
"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.🔍 Verifying Your Smart Contract": {
|
||||
"message": "🔍 验证您的智能合约",
|
||||
"description": "The label for category 🔍 Verifying Your Smart Contract in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.SECURITY": {
|
||||
"message": "安全",
|
||||
"description": "The label for category SECURITY in sidebar tutorialSidebar"
|
||||
},
|
||||
"sidebar.tutorialSidebar.category.OTHER DOCS": {
|
||||
"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 代币",
|
||||
"description": "The label for the doc item 💎 SNT Token in sidebar tutorialSidebar, linking to the doc tokenomics/snt-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💠 Aura Token": {
|
||||
"message": "💠 Aura 代币",
|
||||
"description": "The label for the doc item 💠 Aura Token in sidebar tutorialSidebar, linking to the doc tokenomics/aura-token"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Network Details": {
|
||||
"message": "🌐 网络详情",
|
||||
"description": "The label for the doc item 🌐 Network Details in sidebar tutorialSidebar, linking to the doc general-info/network-details"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➕ Add Status Network": {
|
||||
"message": "➕ 添加 Status Network",
|
||||
"description": "The label for the doc item ➕ Add Status Network in sidebar tutorialSidebar, linking to the doc general-info/add-status-network"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.💰 Tokens": {
|
||||
"message": "💰 代币",
|
||||
"description": "The label for the doc item 💰 Tokens in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/tokens"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Testnet Contracts": {
|
||||
"message": "🧪 测试网合约",
|
||||
"description": "The label for the doc item 🧪 Testnet Contracts in sidebar tutorialSidebar, linking to the doc general-info/contract-addresses/testnet-contracts"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.➡️ Bridge to Status": {
|
||||
"message": "➡️ 桥接到 Status",
|
||||
"description": "The label for the doc item ➡️ Bridge to Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-to-status"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⬅️ Bridge from Status": {
|
||||
"message": "⬅️ 从 Status 桥接",
|
||||
"description": "The label for the doc item ⬅️ Bridge from Status in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridge-from-status"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🧪 Bridging Testnet": {
|
||||
"message": "🧪 测试网桥接",
|
||||
"description": "The label for the doc item 🧪 Bridging Testnet in sidebar tutorialSidebar, linking to the doc general-info/bridge/bridging-testnet"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔌 RPC": {
|
||||
"message": "🔌 RPC",
|
||||
"description": "The label for the doc item 🔌 RPC in sidebar tutorialSidebar, linking to the doc tools/rpc"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.👥 Multisig Wallets": {
|
||||
"message": "👥 多签钱包",
|
||||
"description": "The label for the doc item 👥 Multisig Wallets in sidebar tutorialSidebar, linking to the doc tools/multisig-wallets"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌉 Bridge": {
|
||||
"message": "🌉 桥接",
|
||||
"description": "The label for the doc item 🌉 Bridge in sidebar tutorialSidebar, linking to the doc tools/bridge"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🚰 Testnet Faucets": {
|
||||
"message": "🚰 测试网水龙头",
|
||||
"description": "The label for the doc item 🚰 测试网水龙头 in sidebar tutorialSidebar, linking to the doc tools/testnet-faucets"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔎 Block Explorers": {
|
||||
"message": "🔎 区块浏览器",
|
||||
"description": "The label for the doc item 🔎 Block Explorers in sidebar tutorialSidebar, linking to the doc tools/block-explorers"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.📊 Data Indexers": {
|
||||
"message": "📊 数据索引器",
|
||||
"description": "The label for the doc item 📊 Data Indexers in sidebar tutorialSidebar, linking to the doc tools/data-indexers"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔮 Oracles": {
|
||||
"message": "🔮 预言机",
|
||||
"description": "The label for the doc item 🔮 Oracles in sidebar tutorialSidebar, linking to the doc tools/oracles"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Interoperability": {
|
||||
"message": "🔗 互操作性",
|
||||
"description": "The label for the doc item 🔗 Interoperability in sidebar tutorialSidebar, linking to the doc tools/interoperability"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎲 Randomness": {
|
||||
"message": "🎲 随机性",
|
||||
"description": "The label for the doc item 🎲 Randomness in sidebar tutorialSidebar, linking to the doc tools/randomness"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🛠️ General Tooling": {
|
||||
"message": "🛠️ 通用工具",
|
||||
"description": "The label for the doc item 🛠️ General Tooling in sidebar tutorialSidebar, linking to the doc tools/general-tooling"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🖥️ Node Operators": {
|
||||
"message": "🖥️ 节点运营商",
|
||||
"description": "The label for the doc item 🖥️ Node Operators in sidebar tutorialSidebar, linking to the doc tools/node-operators"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.📘 Ethers Tutorial": {
|
||||
"message": "📘 Ethers 教程",
|
||||
"description": "The label for the doc item 📘 Ethers Tutorial in sidebar tutorialSidebar, linking to the doc tutorials/ethers-tutorial"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎩 Using Hardhat": {
|
||||
"message": "🎩 使用 Hardhat",
|
||||
"description": "The label for the doc item 🎩 Using Hardhat in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-hardhat"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🌐 Using Thirdweb": {
|
||||
"message": "🌐 使用 Thirdweb",
|
||||
"description": "The label for the doc item 🌐 Using Thirdweb in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-thirdweb"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⚒️ Using Foundry": {
|
||||
"message": "⚒️ 使用 Foundry",
|
||||
"description": "The label for the doc item ⚒️ Using Foundry in sidebar tutorialSidebar, linking to the doc tutorials/verifying-contracts/using-foundry"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎛️ Using Remix": {
|
||||
"message": "🎛️ 使用 Remix",
|
||||
"description": "The label for the doc item 🎛️ Using Remix in sidebar tutorialSidebar, linking to the doc tutorials/deploying-contracts/using-remix"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🛡️ Security Model": {
|
||||
"message": "🛡️ 安全模型",
|
||||
"description": "The label for the doc item 🛡️ Security Model in sidebar tutorialSidebar, linking to the doc security/security-model"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.⬆️ Security Upgrades": {
|
||||
"message": "⬆️ 安全升级",
|
||||
"description": "The label for the doc item ⬆️ Security Upgrades in sidebar tutorialSidebar, linking to the doc security/security-upgrades"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔒 Audits": {
|
||||
"message": "🔒 审计",
|
||||
"description": "The label for the doc item 🔒 Audits in sidebar tutorialSidebar, linking to the doc other/audits"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🔗 Official Links": {
|
||||
"message": "🔗 官方链接",
|
||||
"description": "The label for the doc item 🔗 Official Links in sidebar tutorialSidebar, linking to the doc other/official-links"
|
||||
},
|
||||
"sidebar.tutorialSidebar.doc.🎨 Branding Guidelines": {
|
||||
"message": "🎨 品牌指南",
|
||||
"description": "The label for the doc item 🎨 Branding Guidelines in sidebar tutorialSidebar, linking to the doc other/branding-guidelines"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
# Add Status Network
|
|
@ -0,0 +1 @@
|
|||
# Bridge From Status
|
|
@ -0,0 +1 @@
|
|||
# Bridge To Status
|
|
@ -0,0 +1 @@
|
|||
# Bridging Testnet
|
|
@ -0,0 +1 @@
|
|||
# Testnet Contracts
|
|
@ -0,0 +1 @@
|
|||
# Tokens
|
|
@ -0,0 +1,12 @@
|
|||
# Network Details
|
||||
|
||||
## Status Testnet
|
||||
|
||||
| Name | Value |
|
||||
|---------------------|-------|
|
||||
| **Network Name** | |
|
||||
| **RPC Endpoint** | |
|
||||
| **Chain ID** | |
|
||||
| **Currency Symbol** | |
|
||||
| **Block Explorer** | |
|
||||
| **Bridge** | |
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
id: index
|
||||
title: 介绍 Status Network
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# 欢迎来到 Status Network
|
||||
|
||||
欢迎来到 **Status Network**,这是一个重新构想您区块链体验的加密社交游乐场!作为一个基于 [Linea 的尖端 ZK-EVM 技术](https://docs.linea.build/architecture) 构建的 **与 EVM 等效的以太坊 Layer 2 Rollup**,Status Network 提供了使我们与其他平台区别开来的独特功能。
|
||||
|
||||
## 我们的独特之处是什么?
|
||||
|
||||
### 💰 原生 ETH 和 DAI 收益
|
||||
|
||||
在您的 **ETH** 和 **DAI** 资产上享受可持续且有吸引力的收益!我们提供原生收益生成,这是 Layer 2 解决方案中的一项独特功能,让您在参与网络的同时轻松提升您的加密持有量。
|
||||
|
||||
### 🏆 赚取 $AURA 代币
|
||||
|
||||
**实时**获得您的参与奖励!参与网络活动并 **质押 $SNT** 以赚取 **$AURA 代币**。您互动得越多——无论是通过交易、质押还是社区参与——您在我们充满活力的社区中获得的影响力就越大。您的 $AURA 会增强您在塑造网络未来方面的声音。
|
||||
|
||||
### 🔒 有趣的隐私保护
|
||||
|
||||
体验既**安全又有趣**的隐私功能!我们相信隐私是一项基本权利,应该在不复杂的情况下人人都能访问。我们用户友好的隐私工具使安全的交互变得愉快,打破了传统的复杂隐私技术概念。
|
||||
|
||||
---
|
||||
|
||||
加入 Status Network,成为一个独特的、专注于隐私并有回报的加密社区的一员,在这里,**您的积极参与真正塑造未来**!让我们一起建立加密游乐场!
|
|
@ -0,0 +1,114 @@
|
|||
# 快速开始
|
||||
|
||||
在本节中,我们将在不到 10 分钟的时间内指导您在 **Status Network 测试网** 上部署一个示例合约。
|
||||
|
||||
为了简单起见,我们将使用 Remix IDE 来在 Status Network 上部署智能合约。
|
||||
|
||||
## 准备工作
|
||||
|
||||
在开始之前:
|
||||
|
||||
- **将 Status Network 测试网添加到 MetaMask**:
|
||||
|
||||
请按照 [Status Network 文档](/general-info/add-status-network) 中的分步说明,将 Status Network 测试网添加到 MetaMask。您将需要网络的 RPC URL、链 ID 和其他详细信息。
|
||||
|
||||
- **获取测试网代币**:
|
||||
|
||||
本指南假设您已经在 Status Network 上获得了测试网 ETH。您可以使用 [Status Network 测试网水龙头](#) 来请求测试代币。
|
||||
|
||||
我们已经准备好开始了!
|
||||
|
||||
## Remix 与示例代码
|
||||
|
||||
**Remix** 是一个无需设置的智能合约开发工具。它易于上手,允许简单的部署过程、调试、与智能合约交互等。它是测试快速更改和与已部署智能合约交互的绝佳工具。
|
||||
|
||||
在本教程中,我们将部署 Remix 中作为示例提供的 `SimpleStorage.sol` 智能合约,但您可以使用自己的任何代码。
|
||||
|
||||
以下是示例代码:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: GPL-3.0
|
||||
|
||||
pragma solidity ^0.8.24;
|
||||
|
||||
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 Compiler** 选项卡(在左侧边栏)。
|
||||
- 确保编译器版本与合约中的 pragma 声明(`0.8.24`)匹配。
|
||||
- 点击 **“Compile SimpleStorage.sol”**。
|
||||
- 您可以启用 **“Auto compile”**,以便在更改合约代码时自动编译。
|
||||
|
||||
3. **部署智能合约**:
|
||||
|
||||
- 切换到 **Deploy & Run Transactions** 选项卡。
|
||||
- 在 **“Environment”** 下拉菜单中,选择 **“Injected Provider - MetaMask”**。这会将 Remix 连接到您的 MetaMask 钱包。
|
||||
- MetaMask 可能会提示您连接到 Remix。请确认连接。
|
||||
- 确保在 MetaMask 中选择了 **Status Network 测试网**。
|
||||
- 在 **“Contract”** 下,确保选择了 `SimpleStorage`。
|
||||
- 点击 **“Deploy”**。
|
||||
- MetaMask 将弹出,要求您确认交易。
|
||||
- 查看交易详情并点击 **“Confirm”**。
|
||||
- 等待交易被挖矿。您可以在 Remix 或 MetaMask 中跟踪状态。
|
||||
|
||||
**恭喜您!** 您刚刚在 Status Network 上部署了您的第一个智能合约。
|
||||
|
||||
## 与已部署的智能合约交互
|
||||
|
||||
1. **访问已部署的合约**:
|
||||
|
||||
- 在 Remix 中的 **“Deployed Contracts”** 部分下,您将看到已部署的 `SimpleStorage` 合约。
|
||||
|
||||
2. **存储一个数字**:
|
||||
|
||||
- 展开已部署的合约以查看其函数。
|
||||
- 在 **“store”** 函数的输入字段中,输入一个数字(例如 `42`)。
|
||||
- 点击 **“transact”**。
|
||||
- MetaMask 会提示您确认交易。点击 **“Confirm”**。
|
||||
- 等待交易被确认。
|
||||
|
||||
3. **检索数字**:
|
||||
|
||||
- 点击 **“retrieve”** 函数。
|
||||
- 存储的数字将显示在按钮下方。
|
||||
|
||||
## 下一步
|
||||
|
||||
- **获取支持**:
|
||||
|
||||
- 如果您遇到任何问题或有疑问,请访问 [Status Network 支持](https://status.app) 或加入社区频道寻求帮助。
|
||||
|
||||
## 总结
|
||||
|
||||
您已成功完成:
|
||||
|
||||
- 设置与 Status Network 测试网交互的环境。
|
||||
- 使用 Remix IDE 和 MetaMask 部署了智能合约。
|
||||
- 通过存储和检索数字,与已部署的合约进行了交互。
|
||||
|
||||
---
|
||||
|
||||
如果您想更深入地学习,可以考虑探索更复杂的智能合约。查看更多教程请点击[这里](/tutorials/ethers-tutorial)。
|
||||
|
||||
**祝您编程愉快!**
|
|
@ -0,0 +1 @@
|
|||
# Audits
|
|
@ -0,0 +1 @@
|
|||
# Branding Guidelines
|
|
@ -0,0 +1 @@
|
|||
# Official Links
|
|
@ -0,0 +1 @@
|
|||
# Status Network Security Model
|
|
@ -0,0 +1 @@
|
|||
# Security Upgrades
|
|
@ -0,0 +1 @@
|
|||
# $AURA token
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue