https://github.com/fielding/web3-test
https://github.com/fielding/web3-test
Last synced: 9 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/fielding/web3-test
- Owner: fielding
- Created: 2023-06-06T02:54:55.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-06-06T02:54:56.000Z (about 3 years ago)
- Last Synced: 2025-10-25T10:38:07.191Z (9 months ago)
- Language: TypeScript
- Size: 26.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Svelte Kit Ethers Template
## Basic Setup
Install dependencies
```bash
yarn
```
Enter your own or a RPC provider endpoint for your project in the `rpcUrl` parameter of `./src/lib/config.ts` to make on-chain calls, and interact with Metamask, etc. You can use the default RPC provider used, or replace `https://rpc.ankr.com/eth` with your RPC provider.
```js
export const NETWORKS: Network[] = [
{
chainId: 1,
rpcUrl: 'https://rpc.ankr.com/eth', // Your RPC endpoint, add here
...
```
Start development server
```bash
yarn dev
```
**Building**
Before creating a production version of your app, install an [adapter](https://kit.svelte.dev/docs#adapters) for your target environment. Then:
```bash
yarn build
```
## Features
### Wallet & Providers
After adding a list of networks in `./src/lib/config.ts`, you have access to ethers providers for each network.
```ts
import { networkProviders: { [chainId: string]: providers.JsonRpcProvider } } from '$lib/stores/provider'
```
Methods to connect wallets
* `connectMetamask` - Connect Metamask or other injected wallets
* `connectWalletConnect` - Wallet Connect Connection
* and `disconnect`
Stores for the connection information are also provided
```ts
import {
accountChainId,
accountProvider,
connected,
walletAddress
} from '$lib/stores/provider'
```
* `accountChainId` - `{ chainId: number, supportedNetwork: boolean } ` supportedNetwork is `true` if you have provided configuration options for this network
* `accountProvider` - [EIP-11933](https://eips.ethereum.org/EIPS/eip-1193) compliant provider object. Generally used with ethers.providers.Web3Provider($accountProvider)
* `connected` - boolean
* `walletAddress` - Defaults to 0x0000000000000000000000000000000000000000 if not connected
### Contract State Syncing
In `src/lib/globalState.ts` is an example usage of [ether-state](https://github.com/decentralisedtech/ether-state) - A library for syncing the state of smart contracts in your frontend.