Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add developer feedback survey and fix broken links #106

Merged
merged 1 commit into from
Jul 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions components/DeveloperSurveyCallout/DeveloperSurveyCallout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { Callout } from 'nextra-theme-docs';

function DeveloperSurveyCallout() {
return (
<div className='my-4'>
<Callout emoji='🔍'>
<p>
<strong>Help Us Improve!</strong>
</p>
<p>
We're conducting a short survey (less than 5 minutes) to gather your feedback and improve your development experience on Sei.{' '}
<a
className='nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]'
href='https://forms.gle/eqkheVTwbK5HheLC6'
target='_blank'
rel='noopener'>
Take the Survey Now
</a>
</p>
</Callout>
</div>
);
}

export default DeveloperSurveyCallout;
1 change: 1 addition & 0 deletions components/DeveloperSurveyCallout/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default as DeveloperSurveyCallout } from './DeveloperSurveyCallout';
25 changes: 0 additions & 25 deletions components/HelpCallout/HelpCallout.tsx

This file was deleted.

1 change: 0 additions & 1 deletion components/HelpCallout/index.ts

This file was deleted.

6 changes: 3 additions & 3 deletions components/index.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
export * from "./AppCard";
export * from './AppCard';
export * from './APIEndpoint';
export * from './APIEndpointRoute';
export * from './APIModule';
export * from './APIModulePaths';
export * from './DeveloperSurveyCallout';
export * from './EcosystemApps';
export * from './EcosystemCard';
export * from './EvmWalletConnect';
export * from './HelpCallout';
export * from './BrandKitGallery';
export * from './ImageWithCaption';
export * from './Logo';
export * from './Nfts';
export * from './VersionFetcher';
export * from "./EcosystemMap";
export * from './EcosystemMap';
1 change: 0 additions & 1 deletion pages/dev-advanced-concepts/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,5 @@
"hd-path-coin-types": "HD Path & Coin Types",
"proposals": "Proposals",
"ibc-relayer": "IBC Relayer",
"evm-rpc-endpoints": "EVM RPC Endpoints",
"differences-with-ethereum": "Differences from Ethereum"
}
2 changes: 1 addition & 1 deletion pages/dev-advanced-concepts/account-structure.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Both EVM derived (0x) and Sei bech32 derived addresses on Sei are derived from t

**Manual Association**:

- If the chain does not yet have the public key, users can manually associate their accounts using the `sei_associate` function. This is a gasless function that requires at least 1 wei in their account to execute. More details can be found in the [EVM RPC Endpoints documentation](./evm-rpc-endpoints).
- If the chain does not yet have the public key, users can manually associate their accounts using the `sei_associate` function. This is a gasless function that requires at least 1 wei in their account to execute. More details can be found in the [EVM RPC Endpoints documentation](../endpoints/evm.mdx#sei_associate).

### Key Points

Expand Down
9 changes: 5 additions & 4 deletions pages/dev-intro.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import { DeveloperSurveyCallout } from '../components';

<DeveloperSurveyCallout />

# Developers Introduction

Sei is a high-performance, low-fee, delegated proof-of-stake blockchain designed for developers. It supports optimistic parallel execution of both EVM and CosmWasm, opening up entirely new design possibilities. With unique optimizations like twin turbo consensus and SeiDB, Sei ensures consistent 400ms block times and a transaction throughput that’s orders of magnitude higher than Ethereum. This means faster, more cost-effective operations. Plus, Sei’s seamless interoperability between EVM and CosmWasm VM's gives EVM developers native access to the entire Cosmos ecosystem, including IBC tokens, multi-sig accounts, fee grants, and more.


## Features

- **Parallel Execution**: The ability to process multiple transactions and smart contracts concurrently, significantly boosting performance for both the EVM and CosmWasm VM's.
Expand All @@ -15,6 +18,7 @@ Sei is a high-performance, low-fee, delegated proof-of-stake blockchain designed
Sei provides two main ways to enable interoperability between the EVM and CosmWasm. Pointer contracts and precompile contracts form the foundation for this interoperability.

### Pointer Contracts

Pointer contracts allow EVM contracts to interact with CosmWasm contracts and vice versa. Pointer contracts can be deployed on both the EVM and CosmWasm sides, acting as proxies that relay messages between the two VMs. Sei supports full interoperability of Sei native and CosmWasm tokens with the EVM and EVM RPC via pointer contacts, enabling EVM dApps access to many new tokens including:

- **Fungible**: ERC20 to CW20 tokens
Expand All @@ -31,6 +35,3 @@ Pointer contracts allow EVM contracts to interact with CosmWasm contracts and vi
- **Staking**: For delegating and managing delegations for both validators and delegators.
- **Governance**: For stakers and validators to participate in [governance](/general-governance) processes.
- **And More**



54 changes: 15 additions & 39 deletions pages/dev-tutorials/nft-contract-tutorial.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Callout, Tabs } from "nextra/components";
import { HelpCallout, Nfts } from "../../components";
import { Callout, Tabs } from 'nextra/components';
import { Nfts } from '../../components';

# NFT Contract Tutorial

Expand All @@ -24,10 +24,7 @@ Before we start, ensure you have:
- A basic understanding of Solidity and smart contract development.
- A wallet with SEI tokens on devnet

<Callout type="info">
You can obtain devnet tokens from one of the faucets listed
[here](../dev-ecosystem-providers/faucets).
</Callout>
<Callout type='info'>You can obtain devnet tokens from one of the faucets listed [here](../dev-ecosystem-providers/faucets).</Callout>

## Setting Up Your Project

Expand Down Expand Up @@ -129,10 +126,7 @@ forge remappings > remappings.txt
- `--private-key`: flag to specify the private key of the account that will deploy the contract.
The private key of your account on the Sei devnet is used in this case.

<Callout type="info">
Make sure to have SEI in your account to cover the gas fees for contract
deployment.
</Callout>
<Callout type='info'>Make sure to have SEI in your account to cover the gas fees for contract deployment.</Callout>

## Interacting With Your NFT

Expand Down Expand Up @@ -163,10 +157,7 @@ seid tx evm register-cw-pointer ERC721 $ERC721_TOKEN_ADDRESS --from $ACCOUNT --c

Executing this command creates an CW721 NFT contract and outputs the contract address. This NFT contract is linked to the ERC721 NFT contract, meaning any activities involving CW721 NFTs will also reflect on the state of the ERC721 NFTs and vice versa.

<Callout type="info">
Learn more about EVM interoperability and pointer contracts
[here](../dev-advanced-concepts/interoperability/introduction.mdx).
</Callout>
<Callout type='info'>Learn more about EVM interoperability and pointer contracts [here](../dev-advanced-concepts/interoperability/introduction.mdx).</Callout>

</Tabs.Tab>
<Tabs.Tab>
Expand All @@ -183,10 +174,7 @@ Before starting, ensure you have:
- **Understanding of CosmWasm**: Familiarize yourself with CosmWasm smart contracts. Start with the [CosmWasm Book](https://book.cosmwasm.com/).
- **Docker**: Required for using the CosmWasm Rust Optimizer tool. Install from [Docker's official website](https://docs.docker.com/engine/install/).

<Callout type="info">
You can obtain devnet tokens from one of the faucets listed
[here](../dev-ecosystem-providers/faucets).
</Callout>
<Callout type='info'>You can obtain devnet tokens from one of the faucets listed [here](../dev-ecosystem-providers/faucets).</Callout>

## Setting Up Your Environment

Expand Down Expand Up @@ -225,11 +213,9 @@ cargo wasm

This compiles a Wasm binary for uploading to Sei.

<Callout type="info">
Note: The generated Wasm file will be located in the root directory of the
`cw-nfts` repository, not in the `cw721-base` subdirectory. Make sure to
navigate to the root directory to see your compiled `.wasm` file in
`target/wasm32-unknown-unknown/`.
<Callout type='info'>
Note: The generated Wasm file will be located in the root directory of the `cw-nfts` repository, not in the `cw721-base` subdirectory. Make sure to navigate to
the root directory to see your compiled `.wasm` file in `target/wasm32-unknown-unknown/`.
</Callout>

Before we can upload the contract to the chain, we have to use the [CosmWasm Rust Optimizer](https://github.com/CosmWasm/rust-optimizer) to reduce the contract size. While not required, this is highly recommended for live contracts.
Expand All @@ -243,13 +229,10 @@ docker run --rm -v "$(pwd)":/code \

This will generate an optimized Wasm contract in `/artifacts`.

<Callout type="warning">
If you're using a Mac M1 machine, you might need to use the Arm 64-bit
optimizer. However, it's important to note that the native Arm version
generates wasm artifacts that differ from those produced by the Intel version.
For production environments, we strongly recommend building contracts with the
Intel optimizers to ensure reliability. Learn more
[here](https://github.com/CosmWasm/rust-optimizer).
<Callout type='warning'>
If you're using a Mac M1 machine, you might need to use the Arm 64-bit optimizer. However, it's important to note that the native Arm version generates wasm
artifacts that differ from those produced by the Intel version. For production environments, we strongly recommend building contracts with the Intel optimizers to
ensure reliability. Learn more [here](https://github.com/CosmWasm/rust-optimizer).
</Callout>

## Deploy the Contract
Expand All @@ -262,9 +245,7 @@ seid tx wasm store artifacts/cw721_base.wasm --from=$ACCOUNT --chain-id=arctic-1

Replace `$ACCOUNT` with your account name or address. This command stores the contract on the chain and outputs a code ID.

<Callout type="info">
For detailed descriptions of these arguments, use `seid help` in the CLI.
</Callout>
<Callout type='info'>For detailed descriptions of these arguments, use `seid help` in the CLI.</Callout>

Instantiate your contract using the code ID:

Expand Down Expand Up @@ -302,16 +283,11 @@ seid tx evm deploy-erccw721 $CW721_TOKEN_ADDRESS $NAME $SYMBOL --from=$SENDER --

Executing this command creates an ERC721 NFT contract and outputs the contract address. This NFT contract is linked to the CW721 NFT contract, meaning any activities involving CW721 NFTs will also reflect on the state of the ERC721 NFTs and vice versa.

<Callout type="info">
Learn more about EVM interoperability and pointer contracts
[here](./pointer-contracts.mdx).
</Callout>
<Callout type='info'>Learn more about EVM interoperability and pointer contracts [here](./pointer-contracts.mdx).</Callout>

</Tabs.Tab>
</Tabs>

## Conclusion

🎉 Congratulations! You've successfully created and deployed an NFT contract on Sei.

<HelpCallout />
73 changes: 29 additions & 44 deletions pages/dev-tutorials/tokenfactory-tutorial.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { Callout } from "nextra/components";
import { HelpCallout } from "../../components";
import { Callout } from 'nextra/components';

# Token Factory Tutorial

Expand All @@ -14,10 +13,7 @@ To create a token on the devnet, ensure you have the following setup:
- The `seid` CLI
- A wallet with SEI tokens on devnet

<Callout type="info">
You can obtain devnet tokens from one of the faucets listed
[here](../dev-ecosystem-providers/faucets).
</Callout>
<Callout type='info'>You can obtain devnet tokens from one of the faucets listed [here](../dev-ecosystem-providers/faucets).</Callout>

## Creating a Denom

Expand Down Expand Up @@ -52,50 +48,47 @@ When executing commands in this tutorial, you'll encounter several arguments. He

Understanding these arguments will help you execute the commands more confidently and customize them as needed for different scenarios.

<Callout type="info">
For detailed descriptions of these arguments, use `seid help` in the CLI.
</Callout>
<Callout type='info'>For detailed descriptions of these arguments, use `seid help` in the CLI.</Callout>

## Updating Token Metadata

When creating a token, it is important to specify details regarding the denom amounts and aliases so your token can be correctly parsed on wallets and explorers.

### 1. Create Token Metadata file

Create a token metadata `json` file. The file below is an example metadata file for the Sei token.

```json
{
"name": "sei",
"description": "The native token of Sei.",
"symbol": "SEI",
"denom_units": [
{
"denom": "usei",
"exponent": 0,
"aliases": [
"microsei"
],
},
{
"denom": "msei",
"exponent": 3,
"aliases": [
"millisei"
]
},
{
"denom": "sei",
"exponent": 6,
}
],
"base": "usei",
"display": "sei",
"name": "sei",
"description": "The native token of Sei.",
"symbol": "SEI",
"denom_units": [
{
"denom": "usei",
"exponent": 0,
"aliases": ["microsei"]
},
{
"denom": "msei",
"exponent": 3,
"aliases": ["millisei"]
},
{
"denom": "sei",
"exponent": 6
}
],
"base": "usei",
"display": "sei"
}
```

The `base` field denotes the smallest denom that this token can be represented in.
Note that if you intend to create a [pointer contract](#create-pointer-contract), the `denom_units` with the largest exponent will be used as the display denom. (`sei` in this case).

### 2. Set token metadata using seid

```sh
seid tx tokenfactory set-denom-metadata $METADATA_FILE --fees 20000usei -b block -y --from $ADDR
```
Expand Down Expand Up @@ -165,20 +158,12 @@ Executing this command creates an ERC20 token and outputs the contract address.

Note that if you wish to specify denoms on your ERC20 tokens, you will need to [set the token metadata](#updating-token-metadata) for the base tokenfactory token. The denom with the largest exponent will be used.

<Callout type="info">
Learn more about EVM interoperability and pointer contracts
[here](../interoperability/overview.mdx).
</Callout>
<Callout type='info'>Learn more about EVM interoperability and pointer contracts [here](../interoperability/overview.mdx).</Callout>

## Next Steps

🎉 Congrats on completing the Token Factory tutorial! You've learned how to create, mint, and burn tokens on Sei using the `tokenfactory` module.

<Callout>
Smart contracts can also create TokenFactory denoms and act as token admins,
allowing for more complex and automated token management strategies.
</Callout>
<Callout>Smart contracts can also create TokenFactory denoms and act as token admins, allowing for more complex and automated token management strategies.</Callout>

For more advanced features and detailed insights, please refer to the [Token Factory module documentation](https://github.com/sei-protocol/sei-chain/tree/main/x/tokenfactory).

<HelpCallout />
2 changes: 1 addition & 1 deletion pages/general-submit-feedback.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

We welcome and encourage the community to provide feedback to help improve the chain. If you encounter a bug or have any feedback, please use the following forms:

- For general feedback, please submit it [here](https://forms.gle/fQVdSChdVkEKfDN87).
- For bug reports, submit via the form [here](https://forms.gle/Jn2uMNeM7zEnxAL46).
- For general feedback, please submit it [here](https://sei-forms.typeform.com/to/sprtIu4T).

Your feedback is invaluable in helping us improve the ecosystem. Thank you for your contributions!
17 changes: 8 additions & 9 deletions pages/index.mdx
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
import { Cards, Card } from "nextra/components";
import { GanttChartSquare, Wallet, Wrench } from "lucide-react";
import { Cards, Card } from 'nextra/components';
import { GanttChartSquare, Wallet, Wrench } from 'lucide-react';
import { DeveloperSurveyCallout } from '../components';

<DeveloperSurveyCallout />

# Introducing Sei

Sei is the first parallelized EVM. This allows Sei to get the best of Solana and Ethereum - a hyper optimized execution layer that benefits from the tooling and mindshare around the EVM.

<Cards>
<Card title="Overview" href="/general-overview" icon={<GanttChartSquare />} />
<Card title="User Guide" href="/user-guides/wallet-setup" icon={<Wallet />} />
<Card
title="For Developers"
href="/dev-intro"
icon={<Wrench />}
/>
<Card title='Overview' href='/general-overview' icon={<GanttChartSquare />} />
<Card title='User Guide' href='/user-guides/wallet-setup' icon={<Wallet />} />
<Card title='For Developers' href='/dev-intro' icon={<Wrench />} />
</Cards>
Loading
Loading