From 0e4ef6991ff28932289d14ed916e86cbd398266f Mon Sep 17 00:00:00 2001 From: Alexandra Tran Date: Thu, 19 Sep 2024 19:26:07 -0700 Subject: [PATCH] Edit non-EVM intro and Starknet intro --- wallet/how-to/use-non-evm-networks/index.md | 12 +-- .../use-non-evm-networks/starknet/index.md | 76 +++++++++++-------- 2 files changed, 52 insertions(+), 36 deletions(-) diff --git a/wallet/how-to/use-non-evm-networks/index.md b/wallet/how-to/use-non-evm-networks/index.md index 88b818cfaf..e63ff72ad6 100644 --- a/wallet/how-to/use-non-evm-networks/index.md +++ b/wallet/how-to/use-non-evm-networks/index.md @@ -7,10 +7,10 @@ import CardList from "@site/src/components/CardList" # Use non-EVM networks -You can connect to non-EVM networks and interact with users' accounts on these networks using existing [MetaMask Snaps](https://metamask.io/snaps/). +You can interact with users' accounts on non-EVM networks by connecting to existing +[MetaMask Snaps](https://metamask.io/snaps/). Non-EVM networks are blockchain networks that are not compatible with the Ethereum Virtual Machine (EVM). - Non-EVM dapps and MetaMask can't directly interact with each other. By connecting to dedicated non-EVM Snaps, you can extend the functionality of MetaMask and integrate non-EVM networks into your existing MetaMask workflow. @@ -20,11 +20,13 @@ MetaMask provides Snaps for the following networks: items={[ { href: "starknet", - title: "📱 Starknet", + title: "Starknet", description: - "Non-EVM Ethereum Layer 2 using zk-rollups.", + "Layer 2 network for Ethereum using ZK rollups.", }, ]} /> -See the [full list of available non-EVM Snaps](https://snaps.metamask.io/interoperability). \ No newline at end of file +:::info +See the [full list of available non-EVM Snaps](https://snaps.metamask.io/interoperability). +::: diff --git a/wallet/how-to/use-non-evm-networks/starknet/index.md b/wallet/how-to/use-non-evm-networks/starknet/index.md index c154747d44..37269ab5a8 100644 --- a/wallet/how-to/use-non-evm-networks/starknet/index.md +++ b/wallet/how-to/use-non-evm-networks/starknet/index.md @@ -5,51 +5,65 @@ sidebar_position: 1 # Use Starknet -Starknet is a non-EVM Layer 2 network. To interact with Starknet accounts in MetaMask, you need to use the Starknet Snap. +[Starknet](https://www.starknet.io/) is a non-EVM Layer 2 network. +You can interact with users' Starknet accounts in MetaMask by connecting to the +[Starknet Snap](https://snaps.metamask.io/snap/npm/consensys/starknet-snap/). -You can use the [`get-starknet`](https://github.com/starknet-io/get-starknet) library or the `wallet_invokeSnap` JSON-RPC method to connect to the Starknet Snap. +You can use the [`get-starknet`](https://github.com/starknet-io/get-starknet) library or the +[`wallet_invokeSnap`](/snaps/reference/wallet-api-for-snaps/#wallet_invokesnap) JSON-RPC method from +your dapp to connect to the Starknet Snap. +See [Connect to Starknet](connect-to-starknet.md) to get started. + +## Connection options + +The [`get-starknet`](architecture) library: -[`get-starknet`](architecture): - Provides a high-level API that abstracts complex operations. -- Offers standardized error handling. +- Supports [a subset of the Starknet Snap API methods](#supported-methods). +- Standardizes error handling. - Supports multiple wallets, not limited to MetaMask. - Manages wallet connections and Starknet interactions. -- Results are in more readable code. +- Provides results in more readable code. + +The [`wallet_invokeSnap`](/snaps/reference/wallet-api-for-snaps/#wallet_invokesnap) method: -[`wallet_invokeSnap`](../../../../snaps/reference/wallet-api-for-snaps/#wallet_invokesnap): - Requires precise method names and parameter structures. +- Supports [all Starknet Snap API methods](#supported-methods). - Handles both MetaMask-specific and Starknet-specific errors. - Is designed for operating within the MetaMask framework. - Manages lower-level Starknet interactions directly. - Provides results in more detailed, lower-level code. -:::note +:::warning Important -We recommend using the `get-starknet` library for most use cases due to its ease of configuration. - -There are [limitations](#limitations) on the methods that are avilabile when using `get-starknet`. For more information on the methods you can use when interacting with users' Starknet accounts, see the [Starknet Snap API documentation](../../../reference/non-evm-apis/starknet-snap-api.md). +We recommend using the `get-starknet` library for most use cases due to its ease of configuration +and multi-wallet support. ::: -## Limitations - -Not all methods are supported by both `get-starknet` and `wallet_invokeSnap`. The following table lists which methods are availabile for the two implemnatations. - -| Method | `wallet_invokeSnap` | `get-starknet` | -|--------|:---:|:---:| -| [`starkNet_createAccount`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_createAccount) | ✓ | | -| [`starkNet_displayPrivateKey`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_displayPrivateKey) | ✓ | | -| [`starkNet_estimateAccountDeployFee`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_estimateAccountDeployFee) | ✓ | | -| [`starkNet_estimateFee`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_estimateFee) | ✓ | | -| [`starkNet_extractPublicKey`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_extractPublicKey) | ✓ | ✓ | -| [`starkNet_getErc20TokenBalance`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getErc20TokenBalance) | ✓ | | -| [`starkNet_getStoredUserAccounts`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getStoredUserAccounts) | ✓ | | -| [`starkNet_getTransactions`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getTransactions) | ✓ | | -| [`starkNet_getTransactionStatus`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getTransactionStatus) | ✓ | | -| [`starkNet_getValue`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getValue) | ✓ | | -| [`starkNet_recoverAccounts`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_recoverAccounts) | ✓ | | -| [`starkNet_sendTransaction`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_sendTransaction) | ✓ | | -| [`starkNet_signMessage`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_signMessage) | ✓ | ✓ | -| [`starkNet_upgradeAccContract`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_upgradeAccContract) | ✓ | ✓ | -| [`starkNet_verifyMessage`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_verifyMessage) | ✓ | ✓ | +## Supported methods + +Once connected to the Starknet Snap, your dapp can call +[Starknet Snap API](../../../reference/non-evm-apis/starknet-snap-api.md) methods to interact with +users' Starknet accounts. +Not all methods are supported by both `get-starknet` and `wallet_invokeSnap`. +The following table lists the supported methods for each connection option: + +| Method | `get-starknet` | `wallet_invokeSnap` | +|-------------------------------------------------------------------------------------------------------------------------------|:--------------:|:----------------------------------------:| +| [`starkNet_createAccount`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_createAccount) | | ✓ | +| [`starkNet_displayPrivateKey`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_displayPrivateKey) | | ✓ | +| [`starkNet_estimateAccountDeployFee`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_estimateAccountDeployFee) | | ✓ | +| [`starkNet_estimateFee`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_estimateFee) | | ✓ | +| [`starkNet_extractPublicKey`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_extractPublicKey) | ✓ | ✓ | +| [`starkNet_getErc20TokenBalance`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getErc20TokenBalance) | | ✓ | +| [`starkNet_getStoredUserAccounts`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getStoredUserAccounts) | | ✓ | +| [`starkNet_getTransactions`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getTransactions) | | ✓ | +| [`starkNet_getTransactionStatus`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getTransactionStatus) | | ✓ | +| [`starkNet_getValue`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getValue) | | ✓ | +| [`starkNet_recoverAccounts`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_recoverAccounts) | | ✓ | +| [`starkNet_sendTransaction`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_sendTransaction) | | ✓ | +| [`starkNet_signMessage`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_signMessage) | ✓ | ✓ | +| [`starkNet_upgradeAccContract`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_upgradeAccContract) | ✓ | ✓ | +| [`starkNet_verifyMessage`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_verifyMessage) | ✓ | ✓ |