Update documentation
This commit is contained in:
parent
2a087da317
commit
9cc6f71a2d
|
@ -1,13 +0,0 @@
|
|||
# What does this PR resolve? 🚀
|
||||
- Example 1
|
||||
- Example 2
|
||||
|
||||
# Details 📝
|
||||
Details about the resolved issues or added features...
|
||||
|
||||
# Checklist ✅
|
||||
- [ ] I have merged the main branch into my branch and resolved all conflicts
|
||||
- [ ] I have documented the new code
|
||||
- [ ] I have smoke tested the new code locally
|
||||
- [ ] I have assigned the PR to myself
|
||||
- [ ] I have named the PR correctly
|
|
@ -1,22 +0,0 @@
|
|||
# Dependencies
|
||||
/node_modules
|
||||
|
||||
# Production
|
||||
/build
|
||||
|
||||
# Generated files
|
||||
.docusaurus
|
||||
.cache-loader
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
.idea
|
|
@ -1,60 +0,0 @@
|
|||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.13'
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux' }
|
||||
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
/* manage how many builds we keep */
|
||||
buildDiscarder(logRotator(
|
||||
numToKeepStr: '20',
|
||||
daysToKeepStr: '30',
|
||||
))
|
||||
}
|
||||
|
||||
environment {
|
||||
GIT_COMMITTER_NAME = 'status-im-auto'
|
||||
GIT_COMMITTER_EMAIL = 'auto@status.im'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Install') {
|
||||
steps {
|
||||
script {
|
||||
nix.develop('yarn install')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
script {
|
||||
nix.develop('yarn build')
|
||||
jenkins.genBuildMetaJSON('build/build.json')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Publish') {
|
||||
steps {
|
||||
sshagent(credentials: ['status-im-auto-ssh']) {
|
||||
script {
|
||||
nix.develop("""
|
||||
ghp-import \
|
||||
-b deploy-master \
|
||||
-c docs.status.network \
|
||||
-p build
|
||||
""",
|
||||
pure: false
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
cleanup { cleanWs() }
|
||||
}
|
||||
}
|
82
README.md
82
README.md
|
@ -1,82 +0,0 @@
|
|||
# Status Network Documentation
|
||||
|
||||
Welcome to the official documentation for Status Network! This repository contains the source code for our documentation website, built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- [Node.js](https://nodejs.org/en/) (v18 or higher)
|
||||
- [Yarn](https://yarnpkg.com/) (v1 or higher)
|
||||
- [Git](https://git-scm.com/)
|
||||
|
||||
If you are familiar with using [Nix shell](https://nix.dev/manual/nix/2.17/command-ref/new-cli/nix3-develop) all of the dependencies will be installed by just running `nix develop` from within this repository which will spawn a new shell.
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/status-network/docs.git
|
||||
cd docs
|
||||
|
||||
# Install dependencies
|
||||
yarn
|
||||
```
|
||||
|
||||
### Local Development
|
||||
|
||||
```bash
|
||||
# Start the development server
|
||||
yarn start
|
||||
```
|
||||
|
||||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
# Build the static site
|
||||
yarn build
|
||||
```
|
||||
|
||||
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
||||
|
||||
|
||||
## CI/CD
|
||||
|
||||
- [CI builds](https://ci.infra.status.im/job/website/job/docs.status.network/) `master` and pushes to `deploy-master` branch, which is hosted at <https://docs.status.network/>.
|
||||
|
||||
The hosting is done using [Caddy server with Git plugin for handling GitHub webhooks](https://github.com/status-im/infra-misc/blob/master/ansible/roles/caddy-git).
|
||||
|
||||
Information about deployed build can be also found in `/build.json` available on the website.
|
||||
|
||||
## 📝 Contributing
|
||||
|
||||
We welcome contributions from the community! Here's how you can help improve our documentation:
|
||||
|
||||
### Making Changes
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a new branch: `git checkout -b feature/your-feature-name`
|
||||
3. Make your changes
|
||||
4. Test locally using `yarn start`
|
||||
5. Commit your changes: `git commit -am 'Add some feature'`
|
||||
6. Push to the branch: `git push origin feature/your-feature-name`
|
||||
7. Submit a pull request
|
||||
|
||||
### Documentation Structure
|
||||
|
||||
```
|
||||
docs/
|
||||
├── introduction/ # Introduction and getting started
|
||||
├── tokenomics/ # SNT and AURA token documentation
|
||||
├── general-info/ # Network details and contracts
|
||||
├── tools/ # Development tools and resources
|
||||
├── tutorials/ # Step-by-step guides
|
||||
├── security/ # Security information
|
||||
└── other/ # Additional resources
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Made with ❤️ by the Status Network community
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[573],{2540:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>o,contentTitle:()=>c,default:()=>p,frontMatter:()=>u,metadata:()=>i,toc:()=>a});var s=r(4848),n=r(8453);const u={},c="Security Upgrades",i={id:"security/security-upgrades",title:"Security Upgrades",description:"",source:"@site/docs/security/security-upgrades.md",sourceDirName:"security",slug:"/security/security-upgrades",permalink:"/security/security-upgrades",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/security/security-upgrades.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udee1\ufe0f Security Model",permalink:"/security/security-model"},next:{title:"\ud83d\udd12 Audits",permalink:"/other/audits"}},o={},a=[];function d(e){const t={h1:"h1",header:"header",...(0,n.R)(),...e.components};return(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"security-upgrades",children:"Security Upgrades"})})}function p(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>c,x:()=>i});var s=r(6540);const n={},u=s.createContext(n);function c(e){const t=s.useContext(u);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),s.createElement(u.Provider,{value:t},e.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[801],{3596:(t,e,r)=>{r.r(e),r.d(e,{assets:()=>u,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>c,toc:()=>a});var s=r(4848),n=r(8453);const o={},i="Status Network Security Model",c={id:"security/security-model",title:"Status Network Security Model",description:"",source:"@site/docs/security/security-model.md",sourceDirName:"security",slug:"/security/security-model",permalink:"/security/security-model",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/security/security-model.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u2692\ufe0f Using Foundry",permalink:"/tutorials/verifying-contracts/using-foundry"},next:{title:"\u2b06\ufe0f Security Upgrades",permalink:"/security/security-upgrades"}},u={},a=[];function d(t){const e={h1:"h1",header:"header",...(0,n.R)(),...t.components};return(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"status-network-security-model",children:"Status Network Security Model"})})}function l(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(d,{...t})}):d(t)}},8453:(t,e,r)=>{r.d(e,{R:()=>i,x:()=>c});var s=r(6540);const n={},o=s.createContext(n);function i(t){const e=s.useContext(o);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:i(t.components),s.createElement(o.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[158],{8158:(s,a,e)=>{e.r(a),e.d(a,{DocSearchModal:()=>t.a1});var t=e(3219)}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
/*! algoliasearch-lite.umd.js | 4.24.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[66],{3297:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var o=n(4848),s=n(8453);const r={},a="Randomness",i={id:"tools/randomness",title:"Randomness",description:"",source:"@site/docs/tools/randomness.md",sourceDirName:"tools",slug:"/tools/randomness",permalink:"/tools/randomness",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/randomness.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udd17 Interoperability",permalink:"/tools/interoperability"},next:{title:"\ud83d\udee0\ufe0f General Tooling",permalink:"/tools/general-tooling"}},c={},d=[];function l(t){const e={h1:"h1",header:"header",...(0,s.R)(),...t.components};return(0,o.jsx)(e.header,{children:(0,o.jsx)(e.h1,{id:"randomness",children:"Randomness"})})}function u(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(l,{...t})}):l(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>a,x:()=>i});var o=n(6540);const s={},r=o.createContext(s);function a(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:a(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]);
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[237],{3363:(e,t,n)=>{n.d(t,{A:()=>a});n(6540);var s=n(4164),o=n(1312),i=n(1107),r=n(4848);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,s.A)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},2237:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});n(6540);var s=n(1312),o=n(9024),i=n(1957),r=n(3363),a=n(4848);function d(){const e=(0,s.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.be,{title:e}),(0,a.jsx)(i.A,{children:(0,a.jsx)(r.A,{})})]})}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[668],{4979:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var r=n(4848),s=n(8453);const o={},i="Using Thirdweb",c={id:"tutorials/deploying-contracts/using-thirdweb",title:"Using Thirdweb",description:"",source:"@site/docs/tutorials/deploying-contracts/using-thirdweb.md",sourceDirName:"tutorials/deploying-contracts",slug:"/tutorials/deploying-contracts/using-thirdweb",permalink:"/tutorials/deploying-contracts/using-thirdweb",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tutorials/deploying-contracts/using-thirdweb.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83c\udfa9 Using Hardhat",permalink:"/tutorials/deploying-contracts/using-hardhat"},next:{title:"\u2692\ufe0f Using Foundry",permalink:"/tutorials/deploying-contracts/using-foundry"}},a={},u=[];function d(t){const e={h1:"h1",header:"header",...(0,s.R)(),...t.components};return(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"using-thirdweb",children:"Using Thirdweb"})})}function l(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(d,{...t})}):d(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>i,x:()=>c});var r=n(6540);const s={},o=r.createContext(s);function i(t){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),r.createElement(o.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[62],{7430:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var n=o(4848),r=o(8453);const s={},l="General Tooling",a={id:"tools/general-tooling",title:"General Tooling",description:"",source:"@site/docs/tools/general-tooling.md",sourceDirName:"tools",slug:"/tools/general-tooling",permalink:"/tools/general-tooling",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/general-tooling.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83c\udfb2 Randomness",permalink:"/tools/randomness"},next:{title:"\ud83d\udda5\ufe0f Node Operators",permalink:"/tools/node-operators"}},i={},c=[];function d(e){const t={h1:"h1",header:"header",...(0,r.R)(),...e.components};return(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"general-tooling",children:"General Tooling"})})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>l,x:()=>a});var n=o(6540);const r={},s=n.createContext(r);function l(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[435],{6545:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(4848),s=n(8453);const i={},o="Using Remix",c={id:"tutorials/deploying-contracts/using-remix",title:"Using Remix",description:"",source:"@site/docs/tutorials/deploying-contracts/using-remix.md",sourceDirName:"tutorials/deploying-contracts",slug:"/tutorials/deploying-contracts/using-remix",permalink:"/tutorials/deploying-contracts/using-remix",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tutorials/deploying-contracts/using-remix.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u2692\ufe0f Using Foundry",permalink:"/tutorials/deploying-contracts/using-foundry"},next:{title:"\ud83c\udfa9 Using Hardhat",permalink:"/tutorials/verifying-contracts/using-hardhat"}},a={},u=[];function d(t){const e={h1:"h1",header:"header",...(0,s.R)(),...t.components};return(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"using-remix",children:"Using Remix"})})}function l(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(d,{...t})}):d(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>o,x:()=>c});var r=n(6540);const s={},i=r.createContext(s);function o(t){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:o(t.components),r.createElement(i.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[416],{416:(s,t,e)=>{e.r(t)}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[87],{6016:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var o=s(4848),n=s(8453);const i={},l="Multisig Wallets",r={id:"tools/multisig-wallets",title:"Multisig Wallets",description:"",source:"@site/docs/tools/multisig-wallets.md",sourceDirName:"tools",slug:"/tools/multisig-wallets",permalink:"/tools/multisig-wallets",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/multisig-wallets.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udd0c RPC",permalink:"/tools/rpc"},next:{title:"\ud83c\udf09 Bridge",permalink:"/tools/bridge"}},a={},u=[];function c(t){const e={h1:"h1",header:"header",...(0,n.R)(),...t.components};return(0,o.jsx)(e.header,{children:(0,o.jsx)(e.h1,{id:"multisig-wallets",children:"Multisig Wallets"})})}function d(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(c,{...t})}):c(t)}},8453:(t,e,s)=>{s.d(e,{R:()=>l,x:()=>r});var o=s(6540);const n={},i=o.createContext(n);function l(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:l(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[252],{5021:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var n=o(4848),r=o(8453);const s={},i="Interoperability",a={id:"tools/interoperability",title:"Interoperability",description:"",source:"@site/docs/tools/interoperability.md",sourceDirName:"tools",slug:"/tools/interoperability",permalink:"/tools/interoperability",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/interoperability.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udd2e Oracles",permalink:"/tools/oracles"},next:{title:"\ud83c\udfb2 Randomness",permalink:"/tools/randomness"}},c={},l=[];function u(t){const e={h1:"h1",header:"header",...(0,r.R)(),...t.components};return(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"interoperability",children:"Interoperability"})})}function d(t={}){const{wrapper:e}={...(0,r.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}},8453:(t,e,o)=>{o.d(e,{R:()=>i,x:()=>a});var n=o(6540);const r={},s=n.createContext(r);function i(t){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:i(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[454],{35:(t,n,e)=>{e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>u,toc:()=>a});var r=e(4848),s=e(8453);const o={},i="Using Foundry",u={id:"tutorials/verifying-contracts/using-foundry",title:"Using Foundry",description:"",source:"@site/docs/tutorials/verifying-contracts/using-foundry.md",sourceDirName:"tutorials/verifying-contracts",slug:"/tutorials/verifying-contracts/using-foundry",permalink:"/tutorials/verifying-contracts/using-foundry",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tutorials/verifying-contracts/using-foundry.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83c\udfa9 Using Hardhat",permalink:"/tutorials/verifying-contracts/using-hardhat"},next:{title:"\ud83d\udee1\ufe0f Security Model",permalink:"/security/security-model"}},c={},a=[];function d(t){const n={h1:"h1",header:"header",...(0,s.R)(),...t.components};return(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"using-foundry",children:"Using Foundry"})})}function l(t={}){const{wrapper:n}={...(0,s.R)(),...t.components};return n?(0,r.jsx)(n,{...t,children:(0,r.jsx)(d,{...t})}):d(t)}},8453:(t,n,e)=>{e.d(n,{R:()=>i,x:()=>u});var r=e(6540);const s={},o=r.createContext(s);function i(t){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof t?t(n):{...n,...t}}),[n,t])}function u(t){let n;return n=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),r.createElement(o.Provider,{value:n},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[794],{8217:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var r=o(4848),n=o(8453);const s={},a="Node Operators",i={id:"tools/node-operators",title:"Node Operators",description:"",source:"@site/docs/tools/node-operators.md",sourceDirName:"tools",slug:"/tools/node-operators",permalink:"/tools/node-operators",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/node-operators.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udee0\ufe0f General Tooling",permalink:"/tools/general-tooling"},next:{title:"\ud83d\udcd8 Ethers Tutorial",permalink:"/tutorials/ethers-tutorial"}},c={},d=[];function l(t){const e={h1:"h1",header:"header",...(0,n.R)(),...t.components};return(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"node-operators",children:"Node Operators"})})}function u(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(l,{...t})}):l(t)}},8453:(t,e,o)=>{o.d(e,{R:()=>a,x:()=>i});var r=o(6540);const n={},s=r.createContext(n);function a(t){const e=r.useContext(s);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:a(t.components),r.createElement(s.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[870],{2858:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>i});var n=s(4848),o=s(8453);const r={},c="Testnet Faucets",a={id:"tools/testnet-faucets",title:"Testnet Faucets",description:"",source:"@site/docs/tools/testnet-faucets.md",sourceDirName:"tools",slug:"/tools/testnet-faucets",permalink:"/tools/testnet-faucets",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/testnet-faucets.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83c\udf09 Bridge",permalink:"/tools/bridge"},next:{title:"\ud83d\udd0e Block Explorers",permalink:"/tools/block-explorers"}},u={},i=[];function l(t){const e={h1:"h1",header:"header",...(0,o.R)(),...t.components};return(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"testnet-faucets",children:"Testnet Faucets"})})}function d(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(l,{...t})}):l(t)}},8453:(t,e,s)=>{s.d(e,{R:()=>c,x:()=>a});var n=s(6540);const o={},r=n.createContext(o);function c(t){const e=n.useContext(r);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:c(t.components),n.createElement(r.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[647],{7121:(s,e,r)=>{r.r(e),r.d(e,{default:()=>d});r(6540);var t=r(4164),u=r(9024),a=r(7559),c=r(2831),n=r(1957),o=r(4848);function d(s){return(0,o.jsx)(u.e3,{className:(0,t.A)(a.G.wrapper.docsPages),children:(0,o.jsx)(n.A,{children:(0,c.v)(s.route.routes)})})}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[683],{2908:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>a});var s=n(4848),r=n(8453);const d={},o="Network Details",i={id:"general-info/network-details",title:"Network Details",description:"Status Testnet",source:"@site/docs/general-info/network-details.md",sourceDirName:"general-info",slug:"/general-info/network-details",permalink:"/general-info/network-details",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/general-info/network-details.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udca0 Aura Token",permalink:"/tokenomics/aura-token"},next:{title:"\u2795 Add Status Network",permalink:"/general-info/add-status-network"}},l={},a=[{value:"Status Testnet",id:"status-testnet",level:2}];function c(t){const e={h1:"h1",h2:"h2",header:"header",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"network-details",children:"Network Details"})}),"\n",(0,s.jsx)(e.h2,{id:"status-testnet",children:"Status Testnet"}),"\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{children:"Name"}),(0,s.jsx)(e.th,{children:"Value"})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:(0,s.jsx)(e.strong,{children:"Network Name"})}),(0,s.jsx)(e.td,{})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:(0,s.jsx)(e.strong,{children:"RPC Endpoint"})}),(0,s.jsx)(e.td,{})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:(0,s.jsx)(e.strong,{children:"Chain ID"})}),(0,s.jsx)(e.td,{})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:(0,s.jsx)(e.strong,{children:"Currency Symbol"})}),(0,s.jsx)(e.td,{})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:(0,s.jsx)(e.strong,{children:"Block Explorer"})}),(0,s.jsx)(e.td,{})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:(0,s.jsx)(e.strong,{children:"Bridge"})}),(0,s.jsx)(e.td,{})]})]})]})]})}function h(t={}){const{wrapper:e}={...(0,r.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(c,{...t})}):c(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>o,x:()=>i});var s=n(6540);const r={},d=s.createContext(r);function o(t){const e=s.useContext(d);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:o(t.components),s.createElement(d.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[553],{2960:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var s=o(4848),n=o(8453);const r={},i="Bridge",c={id:"tools/bridge",title:"Bridge",description:"",source:"@site/docs/tools/bridge.md",sourceDirName:"tools",slug:"/tools/bridge",permalink:"/tools/bridge",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/bridge.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udc65 Multisig Wallets",permalink:"/tools/multisig-wallets"},next:{title:"\ud83d\udeb0 Testnet Faucets",permalink:"/tools/testnet-faucets"}},a={},d=[];function l(t){const e={h1:"h1",header:"header",...(0,n.R)(),...t.components};return(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"bridge",children:"Bridge"})})}function u(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(l,{...t})}):l(t)}},8453:(t,e,o)=>{o.d(e,{R:()=>i,x:()=>c});var s=o(6540);const n={},r=s.createContext(n);function i(t){const e=s.useContext(r);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:i(t.components),s.createElement(r.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[784],{641:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var o=n(4848),r=n(8453);const s={},a="$AURA token",i={id:"tokenomics/aura-token",title:"$AURA token",description:"",source:"@site/docs/tokenomics/aura-token.md",sourceDirName:"tokenomics",slug:"/tokenomics/aura-token",permalink:"/tokenomics/aura-token",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tokenomics/aura-token.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udc8e SNT Token",permalink:"/tokenomics/snt-token"},next:{title:"\ud83c\udf10 Network Details",permalink:"/general-info/network-details"}},c={},u=[];function k(t){const e={h1:"h1",header:"header",...(0,r.R)(),...t.components};return(0,o.jsx)(e.header,{children:(0,o.jsx)(e.h1,{id:"aura-token",children:"$AURA token"})})}function d(t={}){const{wrapper:e}={...(0,r.R)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(k,{...t})}):k(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>a,x:()=>i});var o=n(6540);const r={},s=o.createContext(r);function a(t){const e=o.useContext(s);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:a(t.components),o.createElement(s.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[928],{3714:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>u,toc:()=>c});var s=n(4848),r=n(8453);const o={},i="Audits",u={id:"other/audits",title:"Audits",description:"",source:"@site/docs/other/audits.md",sourceDirName:"other",slug:"/other/audits",permalink:"/other/audits",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/other/audits.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u2b06\ufe0f Security Upgrades",permalink:"/security/security-upgrades"},next:{title:"\ud83d\udd17 Official Links",permalink:"/other/official-links"}},a={},c=[];function d(t){const e={h1:"h1",header:"header",...(0,r.R)(),...t.components};return(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"audits",children:"Audits"})})}function l(t={}){const{wrapper:e}={...(0,r.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(d,{...t})}):d(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>i,x:()=>u});var s=n(6540);const r={},o=s.createContext(r);function i(t){const e=s.useContext(o);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function u(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:i(t.components),s.createElement(o.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[584],{6001:(t,n,e)=>{e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>u,toc:()=>a});var o=e(4848),r=e(8453);const s={},i="Using Foundry",u={id:"tutorials/deploying-contracts/using-foundry",title:"Using Foundry",description:"",source:"@site/docs/tutorials/deploying-contracts/using-foundry.md",sourceDirName:"tutorials/deploying-contracts",slug:"/tutorials/deploying-contracts/using-foundry",permalink:"/tutorials/deploying-contracts/using-foundry",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tutorials/deploying-contracts/using-foundry.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83c\udf10 Using Thirdweb",permalink:"/tutorials/deploying-contracts/using-thirdweb"},next:{title:"\ud83c\udf9b\ufe0f Using Remix",permalink:"/tutorials/deploying-contracts/using-remix"}},c={},a=[];function d(t){const n={h1:"h1",header:"header",...(0,r.R)(),...t.components};return(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"using-foundry",children:"Using Foundry"})})}function l(t={}){const{wrapper:n}={...(0,r.R)(),...t.components};return n?(0,o.jsx)(n,{...t,children:(0,o.jsx)(d,{...t})}):d(t)}},8453:(t,n,e)=>{e.d(n,{R:()=>i,x:()=>u});var o=e(6540);const r={},s=o.createContext(r);function i(t){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof t?t(n):{...n,...t}}),[n,t])}function u(t){let n;return n=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:i(t.components),o.createElement(s.Provider,{value:n},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[475],{6895:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var i=n(4848),o=n(8453);const s={},r="Official Links",c={id:"other/official-links",title:"Official Links",description:"",source:"@site/docs/other/official-links.md",sourceDirName:"other",slug:"/other/official-links",permalink:"/other/official-links",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/other/official-links.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udd12 Audits",permalink:"/other/audits"},next:{title:"\ud83c\udfa8 Branding Guidelines",permalink:"/other/branding-guidelines"}},a={},l=[];function u(t){const e={h1:"h1",header:"header",...(0,o.R)(),...t.components};return(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"official-links",children:"Official Links"})})}function d(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(u,{...t})}):u(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>r,x:()=>c});var i=n(6540);const o={},s=i.createContext(o);function r(t){const e=i.useContext(s);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:r(t.components),i.createElement(s.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[913],{8913:(s,t,e)=>{e.r(t)}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[286],{1546:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var s=n(4848),o=n(8453);const r={},i="RPCs",c={id:"tools/rpc",title:"RPCs",description:"",source:"@site/docs/tools/rpc.md",sourceDirName:"tools",slug:"/tools/rpc",permalink:"/tools/rpc",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/rpc.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83e\uddea Bridging Testnet",permalink:"/general-info/bridge/bridging-testnet"},next:{title:"\ud83d\udc65 Multisig Wallets",permalink:"/tools/multisig-wallets"}},a={},l=[];function u(t){const e={h1:"h1",header:"header",...(0,o.R)(),...t.components};return(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"rpcs",children:"RPCs"})})}function d(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(u,{...t})}):u(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>i,x:()=>c});var s=n(6540);const o={},r=s.createContext(o);function i(t){const e=s.useContext(r);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:i(t.components),s.createElement(r.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[846],{5617:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>l,toc:()=>i});var s=o(4848),r=o(8453);const n={},c="Block Explorers",l={id:"tools/block-explorers",title:"Block Explorers",description:"",source:"@site/docs/tools/block-explorers.md",sourceDirName:"tools",slug:"/tools/block-explorers",permalink:"/tools/block-explorers",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/block-explorers.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udeb0 Testnet Faucets",permalink:"/tools/testnet-faucets"},next:{title:"\ud83d\udcca Data Indexers",permalink:"/tools/data-indexers"}},a={},i=[];function u(e){const t={h1:"h1",header:"header",...(0,r.R)(),...e.components};return(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"block-explorers",children:"Block Explorers"})})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>c,x:()=>l});var s=o(6540);const r={},n=s.createContext(r);function c(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[98],{4532:(n,s,e)=>{e.r(s),e.d(s,{default:()=>d});e(6540);var r=e(9024),t=e(2565),o=e(3025),c=e(2831),i=e(1463),u=e(4848);function a(n){const{version:s}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.A,{version:s.version,tag:(0,t.k)(s.pluginId,s.version)}),(0,u.jsx)(r.be,{children:s.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(n){const{version:s,route:e}=n;return(0,u.jsx)(r.e3,{className:s.className,children:(0,u.jsx)(o.n,{version:s,children:(0,c.v)(e.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a,{...n}),(0,u.jsx)(l,{...n})]})}}}]);
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[742],{7093:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[386],{1163:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var o=n(4848),s=n(8453);const r={},c="$SNT Token",i={id:"tokenomics/snt-token",title:"$SNT Token",description:"",source:"@site/docs/tokenomics/snt-token.md",sourceDirName:"tokenomics",slug:"/tokenomics/snt-token",permalink:"/tokenomics/snt-token",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tokenomics/snt-token.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u26a1 Quick Start",permalink:"/introduction/quick-start"},next:{title:"\ud83d\udca0 Aura Token",permalink:"/tokenomics/aura-token"}},a={},u=[];function k(t){const e={h1:"h1",header:"header",...(0,s.R)(),...t.components};return(0,o.jsx)(e.header,{children:(0,o.jsx)(e.h1,{id:"snt-token",children:"$SNT Token"})})}function d(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(k,{...t})}):k(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>c,x:()=>i});var o=n(6540);const s={},r=o.createContext(s);function c(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:c(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[957],{936:s=>{s.exports=JSON.parse('{"name":"docusaurus-theme-search-algolia","id":"default"}')}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[121],{6350:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>i});var o=n(4848),s=n(8453);const r={},a="Data Indexers",c={id:"tools/data-indexers",title:"Data Indexers",description:"",source:"@site/docs/tools/data-indexers.md",sourceDirName:"tools",slug:"/tools/data-indexers",permalink:"/tools/data-indexers",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/data-indexers.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udd0e Block Explorers",permalink:"/tools/block-explorers"},next:{title:"\ud83d\udd2e Oracles",permalink:"/tools/oracles"}},d={},i=[];function l(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"data-indexers",children:"Data Indexers"})})}function u(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>c});var o=n(6540);const s={},r=o.createContext(s);function a(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[465],{9141:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var r=n(4848),s=n(8453);const o={},i="Bridge To Status",a={id:"general-info/bridge/bridge-to-status",title:"Bridge To Status",description:"",source:"@site/docs/general-info/bridge/bridge-to-status.md",sourceDirName:"general-info/bridge",slug:"/general-info/bridge/bridge-to-status",permalink:"/general-info/bridge/bridge-to-status",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/general-info/bridge/bridge-to-status.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83e\uddea Testnet Contracts",permalink:"/general-info/contract-addresses/testnet-contracts"},next:{title:"\u2b05\ufe0f Bridge from Status",permalink:"/general-info/bridge/bridge-from-status"}},d={},c=[];function u(t){const e={h1:"h1",header:"header",...(0,s.R)(),...t.components};return(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"bridge-to-status",children:"Bridge To Status"})})}function l(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(u,{...t})}):u(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>i,x:()=>a});var r=n(6540);const s={},o=r.createContext(s);function i(t){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),r.createElement(o.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[361],{8321:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=n(4848),i=n(8453);const a={id:"index",title:"Introducing Status Network",slug:"/",sidebar_position:1},o="Welcome to Status Network",s={id:"index",title:"Introducing Status Network",description:"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, Status Network offers unique features that set us apart from other platforms.",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{id:"index",title:"Introducing Status Network",slug:"/",sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"\u26a1 Quick Start",permalink:"/introduction/quick-start"}},u={},c=[{value:"What Makes Us Unique?",id:"what-makes-us-unique",level:2},{value:"\ud83d\udcb0 Native ETH and DAI Yield",id:"-native-eth-and-dai-yield",level:3},{value:"\ud83c\udfc6 Earn $AURA Tokens",id:"-earn-aura-tokens",level:3},{value:"\ud83d\udd12 Privacy with a Playful Twist",id:"-privacy-with-a-playful-twist",level:3}];function l(e){const t={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"welcome-to-status-network",children:"Welcome to Status Network"})}),"\n",(0,r.jsxs)(t.p,{children:["Welcome to ",(0,r.jsx)(t.strong,{children:"Status Network"}),", the crypto social playground that reimagines your blockchain experience! Built as an ",(0,r.jsx)(t.strong,{children:"EVM-equivalent Ethereum Layer 2 rollup"})," on ",(0,r.jsx)(t.a,{href:"https://docs.linea.build/architecture",children:"Linea's cutting-edge ZK-EVM technology"}),", Status Network offers unique features that set us apart from other platforms."]}),"\n",(0,r.jsx)(t.h2,{id:"what-makes-us-unique",children:"What Makes Us Unique?"}),"\n",(0,r.jsx)(t.h3,{id:"-native-eth-and-dai-yield",children:"\ud83d\udcb0 Native ETH and DAI Yield"}),"\n",(0,r.jsxs)(t.p,{children:["Enjoy sustainable and attractive yields on your ",(0,r.jsx)(t.strong,{children:"ETH"})," and ",(0,r.jsx)(t.strong,{children:"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."]}),"\n",(0,r.jsx)(t.h3,{id:"-earn-aura-tokens",children:"\ud83c\udfc6 Earn $AURA Tokens"}),"\n",(0,r.jsxs)(t.p,{children:["Get rewarded for your engagement in ",(0,r.jsx)(t.strong,{children:"real time"}),"! Participate in network activities and ",(0,r.jsx)(t.strong,{children:"stake $SNT"})," to earn ",(0,r.jsx)(t.strong,{children:"$AURA tokens"}),". The more you interact\u2014be it through transactions, staking, or community involvement\u2014the more influence you gain within our vibrant community. Your $AURA amplifies your voice in shaping the future of the network."]}),"\n",(0,r.jsx)(t.h3,{id:"-privacy-with-a-playful-twist",children:"\ud83d\udd12 Privacy with a Playful Twist"}),"\n",(0,r.jsxs)(t.p,{children:["Experience privacy features that are both ",(0,r.jsx)(t.strong,{children:"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."]}),"\n",(0,r.jsx)(t.hr,{}),"\n",(0,r.jsxs)(t.p,{children:["Join Status Network and be part of a unique, privacy-focused, and rewarding crypto community where ",(0,r.jsx)(t.strong,{children:"your active participation truly shapes the future"}),"! Let's build the crypto playground together!"]})]})}function d(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var r=n(6540);const i={},a=r.createContext(i);function o(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[774],{3442:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>i,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var s=o(4848),n=o(8453);const r={},a="Oracles",c={id:"tools/oracles",title:"Oracles",description:"",source:"@site/docs/tools/oracles.md",sourceDirName:"tools",slug:"/tools/oracles",permalink:"/tools/oracles",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tools/oracles.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udcca Data Indexers",permalink:"/tools/data-indexers"},next:{title:"\ud83d\udd17 Interoperability",permalink:"/tools/interoperability"}},i={},l=[];function u(t){const e={h1:"h1",header:"header",...(0,n.R)(),...t.components};return(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"oracles",children:"Oracles"})})}function d(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(u,{...t})}):u(t)}},8453:(t,e,o)=>{o.d(e,{R:()=>a,x:()=>c});var s=o(6540);const n={},r=s.createContext(n);function a(t){const e=s.useContext(r);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:a(t.components),s.createElement(r.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[743],{6686:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>g,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var n=r(4848),s=r(8453);const o={},i="Bridge From Status",a={id:"general-info/bridge/bridge-from-status",title:"Bridge From Status",description:"",source:"@site/docs/general-info/bridge/bridge-from-status.md",sourceDirName:"general-info/bridge",slug:"/general-info/bridge/bridge-from-status",permalink:"/general-info/bridge/bridge-from-status",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/general-info/bridge/bridge-from-status.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u27a1\ufe0f Bridge to Status",permalink:"/general-info/bridge/bridge-to-status"},next:{title:"\ud83e\uddea Bridging Testnet",permalink:"/general-info/bridge/bridging-testnet"}},d={},u=[];function c(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"bridge-from-status",children:"Bridge From Status"})})}function g(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>i,x:()=>a});var n=r(6540);const s={},o=n.createContext(s);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[676],{5928:(t,n,e)=>{e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var r=e(4848),s=e(8453);const i={},o="Using Hardhat",a={id:"tutorials/verifying-contracts/using-hardhat",title:"Using Hardhat",description:"",source:"@site/docs/tutorials/verifying-contracts/using-hardhat.md",sourceDirName:"tutorials/verifying-contracts",slug:"/tutorials/verifying-contracts/using-hardhat",permalink:"/tutorials/verifying-contracts/using-hardhat",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/tutorials/verifying-contracts/using-hardhat.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83c\udf9b\ufe0f Using Remix",permalink:"/tutorials/deploying-contracts/using-remix"},next:{title:"\u2692\ufe0f Using Foundry",permalink:"/tutorials/verifying-contracts/using-foundry"}},c={},u=[];function d(t){const n={h1:"h1",header:"header",...(0,s.R)(),...t.components};return(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"using-hardhat",children:"Using Hardhat"})})}function l(t={}){const{wrapper:n}={...(0,s.R)(),...t.components};return n?(0,r.jsx)(n,{...t,children:(0,r.jsx)(d,{...t})}):d(t)}},8453:(t,n,e)=>{e.d(n,{R:()=>o,x:()=>a});var r=e(6540);const s={},i=r.createContext(s);function o(t){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof t?t(n):{...n,...t}}),[n,t])}function a(t){let n;return n=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:o(t.components),r.createElement(i.Provider,{value:n},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[556],{5169:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>l,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var i=t(4848),r=t(8453);const s={},o="Branding Guidelines",d={id:"other/branding-guidelines",title:"Branding Guidelines",description:"",source:"@site/docs/other/branding-guidelines.md",sourceDirName:"other",slug:"/other/branding-guidelines",permalink:"/other/branding-guidelines",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/other/branding-guidelines.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udd17 Official Links",permalink:"/other/official-links"}},a={},c=[];function u(e){const n={h1:"h1",header:"header",...(0,r.R)(),...e.components};return(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"branding-guidelines",children:"Branding Guidelines"})})}function l(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>d});var i=t(6540);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[885],{8052:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>i,contentTitle:()=>c,default:()=>l,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=n(4848),r=n(8453);const o={},c="Testnet Contracts",a={id:"general-info/contract-addresses/testnet-contracts",title:"Testnet Contracts",description:"",source:"@site/docs/general-info/contract-addresses/testnet-contracts.md",sourceDirName:"general-info/contract-addresses",slug:"/general-info/contract-addresses/testnet-contracts",permalink:"/general-info/contract-addresses/testnet-contracts",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/general-info/contract-addresses/testnet-contracts.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udcb0 Tokens",permalink:"/general-info/contract-addresses/tokens"},next:{title:"\u27a1\ufe0f Bridge to Status",permalink:"/general-info/bridge/bridge-to-status"}},i={},d=[];function u(t){const e={h1:"h1",header:"header",...(0,r.R)(),...t.components};return(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"testnet-contracts",children:"Testnet Contracts"})})}function l(t={}){const{wrapper:e}={...(0,r.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(u,{...t})}):u(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>c,x:()=>a});var s=n(6540);const r={},o=s.createContext(r);function c(t){const e=s.useContext(o);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),s.createElement(o.Provider,{value:e},t.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[301],{7371:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>i});var s=n(4848),o=n(8453);const r={},a="Tokens",c={id:"general-info/contract-addresses/tokens",title:"Tokens",description:"",source:"@site/docs/general-info/contract-addresses/tokens.md",sourceDirName:"general-info/contract-addresses",slug:"/general-info/contract-addresses/tokens",permalink:"/general-info/contract-addresses/tokens",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/general-info/contract-addresses/tokens.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u2795 Add Status Network",permalink:"/general-info/add-status-network"},next:{title:"\ud83e\uddea Testnet Contracts",permalink:"/general-info/contract-addresses/testnet-contracts"}},d={},i=[];function u(e){const t={h1:"h1",header:"header",...(0,o.R)(),...e.components};return(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"tokens",children:"Tokens"})})}function l(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>c});var s=n(6540);const o={},r=s.createContext(o);function a(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]);
|
|
@ -0,0 +1 @@
|
|||
"use strict";(self.webpackChunkstatus_network_docs=self.webpackChunkstatus_network_docs||[]).push([[847],{3091:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var r=n(4848),i=n(8453);const s={},o="Bridging Testnet",d={id:"general-info/bridge/bridging-testnet",title:"Bridging Testnet",description:"",source:"@site/docs/general-info/bridge/bridging-testnet.md",sourceDirName:"general-info/bridge",slug:"/general-info/bridge/bridging-testnet",permalink:"/general-info/bridge/bridging-testnet",draft:!1,unlisted:!1,editUrl:"https://github.com/status-im/status-network-docs/tree/main/docs/general-info/bridge/bridging-testnet.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u2b05\ufe0f Bridge from Status",permalink:"/general-info/bridge/bridge-from-status"},next:{title:"\ud83d\udd0c RPC",permalink:"/tools/rpc"}},a={},c=[];function g(e){const t={h1:"h1",header:"header",...(0,i.R)(),...e.components};return(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"bridging-testnet",children:"Bridging Testnet"})})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>d});var r=n(6540);const i={},s=r.createContext(i);function o(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]);
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,64 @@
|
|||
/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
|
||||
* @license MIT */
|
||||
|
||||
/*! Bundled license information:
|
||||
|
||||
prismjs/prism.js:
|
||||
(**
|
||||
* Prism: Lightweight, robust, elegant syntax highlighting
|
||||
*
|
||||
* @license MIT <https://opensource.org/licenses/MIT>
|
||||
* @author Lea Verou <https://lea.verou.me>
|
||||
* @namespace
|
||||
* @public
|
||||
*)
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-jsx-runtime.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* scheduler.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license React v16.13.1
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
File diff suppressed because one or more lines are too long
|
@ -1,3 +0,0 @@
|
|||
module.exports = {
|
||||
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
||||
};
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"timestamp": "2024-10-30T11:32:04Z",
|
||||
"git": {
|
||||
"commit": "24a3023288759de7075543dc295428fdd58a0afb",
|
||||
"branch": "origin/develop",
|
||||
"url": "git@github.com:status-im/status-network-docs.git"
|
||||
},
|
||||
"build": {
|
||||
"id": "3",
|
||||
"number": "3",
|
||||
"name": "website/dev-docs.status.network",
|
||||
"slave": "linux-01",
|
||||
"url": "https://ci.infra.status.im/job/website/job/dev-docs.status.network/3/"
|
||||
}
|
||||
}
|
|
@ -1,84 +0,0 @@
|
|||
# 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 +0,0 @@
|
|||
# Bridge From Status
|
|
@ -1 +0,0 @@
|
|||
# Bridge To Status
|
|
@ -1 +0,0 @@
|
|||
# Bridging Testnet
|
|
@ -1 +0,0 @@
|
|||
# Testnet Contracts
|
|
@ -1 +0,0 @@
|
|||
# Tokens
|
|
@ -1,12 +0,0 @@
|
|||
# Network Details
|
||||
|
||||
## Status Testnet
|
||||
|
||||
| Name | Value |
|
||||
|---------------------|-------|
|
||||
| **Network Name** | |
|
||||
| **RPC Endpoint** | |
|
||||
| **Chain ID** | |
|
||||
| **Currency Symbol** | |
|
||||
| **Block Explorer** | |
|
||||
| **Bridge** | |
|
|
@ -1,28 +0,0 @@
|
|||
---
|
||||
id: index
|
||||
title: Introducing Status Network
|
||||
slug: /
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# 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,114 +0,0 @@
|
|||
# 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 +0,0 @@
|
|||
# Audits
|
|
@ -1 +0,0 @@
|
|||
# Branding Guidelines
|
|
@ -1 +0,0 @@
|
|||
# Official Links
|
|
@ -1 +0,0 @@
|
|||
# Status Network Security Model
|
|
@ -1 +0,0 @@
|
|||
# Security Upgrades
|
|
@ -1 +0,0 @@
|
|||
# $AURA token
|
|
@ -1 +0,0 @@
|
|||
# $SNT Token
|
|
@ -1 +0,0 @@
|
|||
# Block Explorers
|
|
@ -1 +0,0 @@
|
|||
# Bridge
|
|
@ -1 +0,0 @@
|
|||
# Data Indexers
|
|
@ -1 +0,0 @@
|
|||
# General Tooling
|
|
@ -1 +0,0 @@
|
|||
# Interoperability
|
|
@ -1 +0,0 @@
|
|||
# Multisig Wallets
|
|
@ -1 +0,0 @@
|
|||
# Node Operators
|
|
@ -1 +0,0 @@
|
|||
# Oracles
|
|
@ -1 +0,0 @@
|
|||
# Randomness
|
|
@ -1 +0,0 @@
|
|||
# RPCs
|
|
@ -1 +0,0 @@
|
|||
# Testnet Faucets
|
|
@ -1 +0,0 @@
|
|||
# Using Foundry
|
|
@ -1,319 +0,0 @@
|
|||
# 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 +0,0 @@
|
|||
# Using Remix
|
|
@ -1 +0,0 @@
|
|||
# Using Thirdweb
|
|
@ -1,407 +0,0 @@
|
|||
# Interacting with Smart Contracts Using ethers.js
|
||||
|
||||
Learn how to interact with smart contracts deployed on **Status Network** from a frontend using **ethers.js**.
|
||||
|
||||
In this tutorial, we'll walk through setting up a basic web application, deploying a smart contract on the **Status Network Testnet**, and interacting with it using **ethers.js**.
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have the following:
|
||||
|
||||
- **MetaMask** installed in your browser.
|
||||
- **Node.js** and **npm** installed on your computer.
|
||||
- Basic understanding of **React.js** and how **blockchains** work.
|
||||
|
||||
### Set Up Status Network Testnet
|
||||
|
||||
1. **Add Status Network Testnet to MetaMask**:
|
||||
|
||||
- Follow the guide [Adding Status Network to MetaMask](/general-info/add-status-network) to add the testnet network to your wallet.
|
||||
|
||||
2. **Obtain Test ETH**:
|
||||
|
||||
- Use the [Status Network Testnet Faucet](/tools/testnet-faucets) to get test ETH for deploying and interacting with contracts.
|
||||
|
||||
3. **Bridge Assets (Optional)**:
|
||||
|
||||
- If needed, bridge assets to the Status Network Testnet using the [Testnet Bridge](/general-info/bridge/bridging-testnet).
|
||||
|
||||
---
|
||||
|
||||
## Smart Contract Deployment on Status Network
|
||||
|
||||
We'll use a simple smart contract called **BidBoard** for this tutorial. The contract allows advertisers to bid for space on an advertising board.
|
||||
|
||||
### BidBoard Smart Contract
|
||||
|
||||
Here's the `BidBoard.sol` contract code:
|
||||
|
||||
```solidity
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
contract BidBoard {
|
||||
string public currentAd;
|
||||
address public advertiser;
|
||||
uint256 public currentBid;
|
||||
|
||||
event AdUpdated(string newAd, address newAdvertiser, uint256 newBid);
|
||||
|
||||
constructor() {
|
||||
currentAd = "Welcome to Status Network!";
|
||||
advertiser = msg.sender;
|
||||
currentBid = 0;
|
||||
}
|
||||
|
||||
function updateAd(string memory newAd) public payable {
|
||||
require(msg.value > currentBid, "Bid must be higher than current bid");
|
||||
currentAd = newAd;
|
||||
advertiser = msg.sender;
|
||||
currentBid = msg.value;
|
||||
emit AdUpdated(newAd, msg.sender, msg.value);
|
||||
}
|
||||
|
||||
function getCurrentAd() public view returns (string memory, address, uint256) {
|
||||
return (currentAd, advertiser, currentBid);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> **Note:** You can use your own smart contract if you prefer.
|
||||
|
||||
### Deploying the Contract
|
||||
|
||||
Follow the guide [Deploying a Smart Contract Using Remix](/tutorials/deploying-contracts/using-remix) to deploy the `BidBoard.sol` contract to the Status Network Testnet.
|
||||
|
||||
---
|
||||
|
||||
## Setting Up the Frontend Application
|
||||
|
||||
We'll create a React.js application to interact with the deployed smart contract.
|
||||
|
||||
### Step 1: Create a React App
|
||||
|
||||
Open your terminal and run:
|
||||
|
||||
```bash
|
||||
npx create-react-app bidboard-ui
|
||||
```
|
||||
|
||||
This command creates a new React application named `bidboard-ui`.
|
||||
|
||||
### Step 2: Install ethers.js
|
||||
|
||||
Navigate to the project directory and install **ethers.js**:
|
||||
|
||||
```bash
|
||||
cd bidboard-ui
|
||||
npm install ethers
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Building the Main Application Component
|
||||
|
||||
Open the project in your code editor and navigate to `src/App.js`.
|
||||
|
||||
### Import Required Libraries
|
||||
|
||||
Replace the content of `App.js` with the following code:
|
||||
|
||||
```jsx
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { ethers } from "ethers";
|
||||
import "./App.css";
|
||||
|
||||
const App = () => {
|
||||
// Contract details
|
||||
const contractAddress = "YOUR_CONTRACT_ADDRESS";
|
||||
const abi = [/* ABI JSON CODE */];
|
||||
|
||||
// State variables
|
||||
const [currentAd, setCurrentAd] = useState("");
|
||||
const [currentBid, setCurrentBid] = useState(0);
|
||||
const [advertiser, setAdvertiser] = useState("");
|
||||
const [newAd, setNewAd] = useState("");
|
||||
const [bidAmount, setBidAmount] = useState("");
|
||||
const [provider, setProvider] = useState(null);
|
||||
const [status, setStatus] = useState("");
|
||||
|
||||
// Rest of the code...
|
||||
};
|
||||
|
||||
export default App;
|
||||
```
|
||||
|
||||
> **Important:** Replace `"YOUR_CONTRACT_ADDRESS"` with the address of your deployed `BidBoard` contract. Paste the ABI of your contract in the `abi` array.
|
||||
|
||||
### Setting Up the Provider
|
||||
|
||||
Add the following code inside the `App` component to set up the provider:
|
||||
|
||||
```jsx
|
||||
useEffect(() => {
|
||||
if (typeof window.ethereum !== "undefined") {
|
||||
const newProvider = new ethers.providers.Web3Provider(window.ethereum);
|
||||
setProvider(newProvider);
|
||||
} else {
|
||||
console.error("Please install MetaMask!");
|
||||
}
|
||||
}, []);
|
||||
```
|
||||
|
||||
### Fetch Current Advertisement Data
|
||||
|
||||
Add a function to fetch the current advertisement data:
|
||||
|
||||
```jsx
|
||||
const fetchCurrentAd = async () => {
|
||||
try {
|
||||
const contract = new ethers.Contract(contractAddress, abi, provider);
|
||||
const adData = await contract.getCurrentAd();
|
||||
setCurrentAd(adData[0]);
|
||||
setAdvertiser(adData[1]);
|
||||
setCurrentBid(ethers.utils.formatEther(adData[2]));
|
||||
} catch (error) {
|
||||
console.error("Error fetching current ad:", error);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (provider) {
|
||||
fetchCurrentAd();
|
||||
}
|
||||
}, [provider]);
|
||||
```
|
||||
|
||||
### Submit a New Bid
|
||||
|
||||
Add a function to submit a new bid:
|
||||
|
||||
```jsx
|
||||
const submitBid = async () => {
|
||||
if (!newAd || !bidAmount) {
|
||||
setStatus("Please enter an ad message and bid amount.");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const signer = provider.getSigner();
|
||||
const contract = new ethers.Contract(contractAddress, abi, signer);
|
||||
const tx = await contract.updateAd(newAd, {
|
||||
value: ethers.utils.parseEther(bidAmount),
|
||||
});
|
||||
setStatus("Transaction sent, waiting for confirmation...");
|
||||
await tx.wait();
|
||||
setStatus("Transaction confirmed!");
|
||||
setNewAd("");
|
||||
setBidAmount("");
|
||||
fetchCurrentAd();
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
setStatus("Error: " + err.message);
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
### Listen to Contract Events
|
||||
|
||||
Add code to listen to the `AdUpdated` event:
|
||||
|
||||
```jsx
|
||||
useEffect(() => {
|
||||
let contract;
|
||||
|
||||
const setupEventListener = async () => {
|
||||
if (provider) {
|
||||
contract = new ethers.Contract(contractAddress, abi, provider);
|
||||
contract.on("AdUpdated", (newAd, newAdvertiser, newBid) => {
|
||||
setCurrentAd(newAd);
|
||||
setAdvertiser(newAdvertiser);
|
||||
setCurrentBid(ethers.utils.formatEther(newBid));
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
setupEventListener();
|
||||
|
||||
return () => {
|
||||
if (contract) {
|
||||
contract.removeAllListeners("AdUpdated");
|
||||
}
|
||||
};
|
||||
}, [provider]);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Creating the User Interface
|
||||
|
||||
Update the `return` statement in the `App` component:
|
||||
|
||||
```jsx
|
||||
return (
|
||||
<div className="app">
|
||||
{/* Header */}
|
||||
<header>
|
||||
<h1>BidBoard</h1>
|
||||
<p>Status: {status}</p>
|
||||
</header>
|
||||
|
||||
{/* Current Advertisement */}
|
||||
<section className="current-ad-section">
|
||||
<h2>Current Advertisement</h2>
|
||||
<p className="ad-message">"{currentAd}"</p>
|
||||
<p className="ad-details">
|
||||
<strong>Advertiser:</strong> {advertiser}
|
||||
</p>
|
||||
<p className="ad-details">
|
||||
<strong>Current Bid:</strong> {currentBid} ETH
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* Submit a New Bid */}
|
||||
<section className="new-bid-section">
|
||||
<h2>Submit a New Bid</h2>
|
||||
<input
|
||||
type="text"
|
||||
value={newAd}
|
||||
onChange={(e) => setNewAd(e.target.value)}
|
||||
placeholder="Your Ad Message"
|
||||
/>
|
||||
<input
|
||||
type="number"
|
||||
value={bidAmount}
|
||||
onChange={(e) => setBidAmount(e.target.value)}
|
||||
placeholder="Bid Amount in ETH"
|
||||
/>
|
||||
<button onClick={submitBid}>Submit Bid</button>
|
||||
</section>
|
||||
|
||||
{/* Footer */}
|
||||
<footer>
|
||||
<p>
|
||||
<a
|
||||
href="https://github.com/your-repo"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
GitHub Repository
|
||||
</a>
|
||||
</p>
|
||||
</footer>
|
||||
</div>
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Styling the Application
|
||||
|
||||
Create a `App.css` file in the `src` directory and add your preferred styles. Here's a basic example:
|
||||
|
||||
```css
|
||||
.app {
|
||||
text-align: center;
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
header {
|
||||
background-color: #282c34;
|
||||
padding: 20px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
section {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
input {
|
||||
margin: 5px;
|
||||
padding: 10px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 40px;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Running the Application
|
||||
|
||||
In your terminal, navigate to your project directory and run:
|
||||
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
|
||||
This command starts the development server. Open [http://localhost:3000](http://localhost:3000) in your browser to view the application.
|
||||
|
||||
---
|
||||
|
||||
## Testing the Application
|
||||
|
||||
1. **View Current Advertisement**:
|
||||
|
||||
- The application should display the current ad message, advertiser address, and current bid.
|
||||
|
||||
2. **Submit a New Bid**:
|
||||
|
||||
- Enter a new ad message and a bid amount higher than the current bid.
|
||||
- Click **"Submit Bid"**.
|
||||
- MetaMask will prompt you to confirm the transaction.
|
||||
- Wait for the transaction to be confirmed.
|
||||
|
||||
3. **Observe Real-Time Updates**:
|
||||
|
||||
- Upon confirmation, the application should automatically update with the new ad, advertiser, and bid amount.
|
||||
|
||||
---
|
||||
|
||||
## Conclusion
|
||||
|
||||
You've successfully created a web application that interacts with a smart contract deployed on the Status Network Testnet using **ethers.js**. This tutorial covered:
|
||||
|
||||
- Setting up a React application.
|
||||
- Deploying a smart contract to the Status Network.
|
||||
- Connecting the frontend to the smart contract using ethers.js.
|
||||
- Handling user interactions and real-time updates via events.
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- **Explore More Tutorials**:
|
||||
|
||||
- Check out other tutorials in the [Status Network Documentation](/tutorials/ethers-tutorial).
|
||||
|
||||
- **Enhance the Application**:
|
||||
|
||||
- Add error handling for edge cases.
|
||||
- Improve the UI/UX design.
|
||||
- Implement additional features like user authentication.
|
||||
|
||||
- **Deploy to Production**:
|
||||
|
||||
- Learn how to deploy your application for production use.
|
||||
|
||||
---
|
||||
|
||||
## Resources
|
||||
|
||||
- [Status Network Official Website](https://status.network/)
|
||||
- [Status Network Documentation](https://docs.status.network/)
|
||||
- [ethers.js Documentation](https://docs.ethers.io/)
|
||||
- [React.js Documentation](https://reactjs.org/)
|
||||
|
||||
---
|
||||
|
||||
**Happy Coding!**
|
|
@ -1 +0,0 @@
|
|||
# Using Foundry
|
|
@ -1 +0,0 @@
|
|||
# Using Hardhat
|
|
@ -1,141 +0,0 @@
|
|||
import type * as Preset from '@docusaurus/preset-classic';
|
||||
import type { Config } from '@docusaurus/types';
|
||||
|
||||
const config: Config = {
|
||||
title: 'Status Network Documentation',
|
||||
tagline: 'The Social Playground',
|
||||
url: 'https://docs.status.network',
|
||||
baseUrl: '/',
|
||||
favicon: 'img/favicon.ico',
|
||||
organizationName: 'status-network',
|
||||
projectName: 'docs',
|
||||
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en', 'zh', 'ko', 'ja'],
|
||||
localeConfigs: {
|
||||
en: {
|
||||
label: 'English',
|
||||
htmlLang: 'en-US',
|
||||
},
|
||||
zh: {
|
||||
label: '中文',
|
||||
htmlLang: 'zh-CN',
|
||||
},
|
||||
ko: {
|
||||
label: '한국어',
|
||||
htmlLang: 'ko-KR',
|
||||
},
|
||||
ja: {
|
||||
label: '日本語',
|
||||
htmlLang: 'ja-JP',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
presets: [
|
||||
[
|
||||
'classic',
|
||||
{
|
||||
docs: {
|
||||
sidebarPath: './sidebars.ts',
|
||||
editUrl: 'https://github.com/status-im/status-network-docs/tree/main/',
|
||||
routeBasePath: '/',
|
||||
},
|
||||
blog: false,
|
||||
pages: false,
|
||||
theme: {
|
||||
customCss: './src/css/custom.css',
|
||||
},
|
||||
} satisfies Preset.Options,
|
||||
],
|
||||
],
|
||||
|
||||
themeConfig: {
|
||||
image: 'https://docs.status.network/img/sn_logo.png',
|
||||
colorMode: {
|
||||
defaultMode: 'dark',
|
||||
respectPrefersColorScheme: true,
|
||||
},
|
||||
navbar: {
|
||||
title: 'Status Network Docs',
|
||||
logo: {
|
||||
alt: 'Status Network Logo',
|
||||
src: 'img/sn_logo.svg',
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: 'dropdown',
|
||||
label: 'Tools',
|
||||
position: 'left',
|
||||
items: [
|
||||
{
|
||||
label: '🔌 RPC',
|
||||
to: '/tools/rpc',
|
||||
},
|
||||
{
|
||||
label: '👥 Multisig Wallets',
|
||||
to: '/tools/multisig-wallets',
|
||||
},
|
||||
{
|
||||
label: '🌉 Bridge',
|
||||
to: '/tools/bridge',
|
||||
},
|
||||
{
|
||||
label: '🚰 Testnet Faucets',
|
||||
to: '/tools/testnet-faucets',
|
||||
},
|
||||
{
|
||||
label: '🔎 Block Explorers',
|
||||
to: '/tools/block-explorers',
|
||||
},
|
||||
{
|
||||
label: '📊 Data Indexers',
|
||||
to: '/tools/data-indexers',
|
||||
},
|
||||
{
|
||||
label: '🔮 Oracles',
|
||||
to: '/tools/oracles',
|
||||
},
|
||||
{
|
||||
label: '🔗 Interoperability',
|
||||
to: '/tools/interoperability',
|
||||
},
|
||||
{
|
||||
label: '🎲 Randomness',
|
||||
to: '/tools/randomness',
|
||||
},
|
||||
{
|
||||
label: '🛠️ General Tooling',
|
||||
to: '/tools/general-tooling',
|
||||
},
|
||||
{
|
||||
label: '🖥️ Node Operators',
|
||||
to: '/tools/node-operators',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'localeDropdown',
|
||||
position: 'right',
|
||||
className: 'language-dropdown',
|
||||
},
|
||||
{
|
||||
href: 'https://hub.status.network',
|
||||
label: 'Hub',
|
||||
position: 'right',
|
||||
className: 'hub-button',
|
||||
},
|
||||
],
|
||||
},
|
||||
algolia: {
|
||||
// it is safe to commit these
|
||||
appId: 'M7J93TRPJ9',
|
||||
apiKey: '17befa84094fd9acddd40cbb64012976',
|
||||
indexName: 'status',
|
||||
contextualSearch: true,
|
||||
},
|
||||
},
|
||||
} satisfies Config;
|
||||
|
||||
export default config;
|
26
flake.lock
26
flake.lock
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1729973466,
|
||||
"narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
33
flake.nix
33
flake.nix
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ self, nixpkgs }:
|
||||
let
|
||||
supportedSystems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
forEachSystem = nixpkgs.lib.genAttrs supportedSystems;
|
||||
pkgsFor = forEachSystem (system: import nixpkgs { inherit system; });
|
||||
in
|
||||
rec {
|
||||
formatter = forEachSystem (system: pkgsFor.${system}.nixpkgs-fmt);
|
||||
|
||||
devShells = forEachSystem (system: {
|
||||
default = pkgsFor.${system}.mkShellNoCC {
|
||||
packages = with pkgsFor.${system}.buildPackages; [
|
||||
yarn # 1.22.22
|
||||
git # 2.44.1
|
||||
openssh # 9.7p1
|
||||
nodejs_20 # v20.15.1
|
||||
ghp-import # 2.1.0
|
||||
];
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue