Skip to content

Commit b22b545

Browse files
committed
updates
1 parent 99839e7 commit b22b545

File tree

4 files changed

+63
-50
lines changed

4 files changed

+63
-50
lines changed

wallet/how-to/use-non-evm-networks/starknet/about-get-starknet.md

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ network interactions.
1010
It works with the [Starknet Snap](https://snaps.metamask.io/snap/npm/consensys/starknet-snap/) to
1111
enable dapps to interact with users' Starknet accounts in MetaMask.
1212

13-
When you integrate `get-starknet` into your dapp, it creates a `WalletAccount` object, which acts as
13+
When you integrate `get-starknet` into your dapp, it creates a [Starknet
14+
Windows Object (SWO)](https://github.com/starknet-io/get-starknet/blob/get-starknet-core%403.3.0/packages/core/src/StarknetWindowObject.ts), which acts as
1415
the connection between the dapp and MetaMask, and manages Starknet interactions.
1516
This allows users to send Starknet transactions, sign Starknet messages, and manage Starknet
1617
accounts within MetaMask, and this functionality can be extended to multiple wallets in the Starknet
@@ -26,11 +27,13 @@ A dapp with `get-starknet` installed interacts with MetaMask as follows:
2627
1. After the dapp is connected to MetaMask and the Starknet Snap, `get-starknet` receives a Starknet
2728
Windows Object (SWO), which represents the MetaMask wallet with Starknet functionality.
2829

29-
1. `get-starknet` creates a [`WalletAccount`](http://starknetjs.com/docs/guides/walletAccount/) instance.
30+
1. You can retrieve an [Account Object](https://starknetjs.com/docs/API/#account) from the Starknet Windows Object (SWO) when you access `swo.account`.
31+
This Account Object enables you to manage Starknet interactions.
3032
This instance manages the Starknet account within MetaMask.
3133

3234
```mermaid
3335
sequenceDiagram
36+
participant user as End User
3437
participant dapp as Dapp
3538
participant get as get-starknet
3639
participant mm as MetaMask
@@ -41,23 +44,32 @@ sequenceDiagram
4144
get->>mm: Request connection
4245
mm->>Snap: Activate
4346
Snap-->>mm: Activated
44-
mm-->>get: Return SWO
45-
get->>network: Create WalletAccount
46-
get-->>dapp: Connection established
47+
get->>Snap: Request Starknet account address
48+
Snap-->>mm: Recover account and return Starknet account address
49+
mm-->>get: Return Starknet account address
50+
get-->>dapp: Connection established with SWO return
4751
4852
dapp->>get: Read blockchain data
4953
get->>network: Query data
5054
network-->>get: Return data
5155
get-->>dapp: Processed data
5256
5357
dapp->>get: Write transaction
54-
get->>mm: Request signature
55-
mm->>Snap: Sign transaction
56-
Snap-->>mm: Signed transaction
57-
mm-->>get: Return signature
58-
get->>network: Submit transaction
59-
network-->>get: Transaction result
60-
get-->>dapp: Transaction confirmation
58+
get->>mm: Request write transaction
59+
mm->>Snap: write transaction
60+
Snap-->>mm: Request confirmation to write transaction
61+
mm-->>user: Request confirmation
62+
user-->>mm: Confirm transaction
63+
mm-->>Snap: Confirm transaction
64+
65+
alt If the Account has deployed
66+
Snap-->>network: deploying account transaction
67+
end
68+
Snap-->>network: Submit transaction
69+
network-->>Snap: Transaction result
70+
Snap-->>mm: Return Transaction result
71+
mm-->>get: Return Transaction result
72+
get-->>dapp: Return Transaction result
6173
```
6274

6375
The `get-starknet` library offers several features that improve how dapps interact with the Starknet

wallet/how-to/use-non-evm-networks/starknet/connect-to-starknet.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@ If you're new to Starknet, you can also follow the
3737

3838
### 1. Set up the project
3939

40-
If you don't have an existing React project set up, you can create a new one using
41-
[Create React App](https://create-react-app.dev/):
40+
If you don't have an existing React project set up, you can create a new
41+
[React project](https://create-react-app.dev/) project with TypeScript and set up the necessary dependencies for working with Starknet.
42+
43+
Create a new directory called `get-starknet-dapp` with a basic React app using TypeScript:
4244

4345
<Tabs>
4446
<TabItem value="yarn" label="Yarn" default>
@@ -57,13 +59,13 @@ npm create react-app get-starknet-dapp
5759
</TabItem>
5860
</Tabs>
5961

60-
Navigate into the project:
62+
Change into the project directory:
6163

6264
```bash
6365
cd get-starknet-dapp
6466
```
6567

66-
### 2. Install `get-starknet`
68+
### 2. Add `get-starknet` and `starknet.js`
6769

6870
Add [`get-starknet`](https://github.com/starknet-io/get-starknet) version `3.3.0` and `starknet.js`
6971
version `6.11.0` to your project's dependencies:

wallet/how-to/use-non-evm-networks/starknet/create-a-simple-starknet-dapp.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ You'll also display the balance of an ERC-20 token and perform a token transfer.
1919

2020
Create a new React project with TypeScript and set up the necessary dependencies for working with Starknet.
2121

22-
### 1.1 Create a new React project with TypeScript
23-
2422
Create a new directory called `get-starknet-tutorial` with a basic React app using TypeScript:
2523

2624
```bash
@@ -33,9 +31,10 @@ Change into the project directory:
3331
cd get-starknet-tutorial
3432
```
3533

36-
### 1.2 Add `get-starknet` and `starknet.js`
34+
## 2. Add `get-starknet` and `starknet.js`
3735

38-
Add the required libraries for interacting with Starknet:
36+
Add [`get-starknet`](https://github.com/starknet-io/get-starknet) version `3.3.0` and `starknet.js`
37+
version `6.11.0` to your project's dependencies:
3938

4039
```bash
4140
yarn add get-starknet@3.3.0 starknet@6.11.0
@@ -47,9 +46,6 @@ yarn add get-starknet@3.3.0 starknet@6.11.0
4746

4847
See how to [troubleshoot](troubleshoot.md) connection issues when configuring your dapp.
4948

50-
Alternatively, you can review [Connect to Starknet](connect-to-starknet.md#1-set-up-the-project) to set up
51-
your React TypeScript project and install the `get-starknet` library.
52-
5349
</div>
5450
</details>
5551

wallet/how-to/use-non-evm-networks/starknet/index.md

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -42,30 +42,33 @@ Learn more [about how `get-starknet` interacts with MetaMask](about-get-starknet
4242

4343
:::
4444

45-
## Supported methods
46-
47-
Once connected to the Starknet Snap, your dapp can call
48-
[Starknet Snap API](../../../reference/non-evm-apis/starknet-snap-api.md) methods to interact with
49-
users' Starknet accounts.
50-
Not all methods are supported by both `get-starknet` and `wallet_invokeSnap`.
51-
The following table lists the supported methods for each connection option:
52-
53-
Here's the fixed table with proper formatting:
54-
55-
| Method | `get-starknet` | `wallet_invokeSnap` |
56-
|:-----------------------------------------------------------------------------------------------------------------------------:|:--------------:|:-------------------:|
57-
| [`starkNet_createAccount`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_createAccount) | ||
58-
| [`starkNet_displayPrivateKey`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_displayPrivateKey) | ||
59-
| [`starkNet_estimateAccountDeployFee`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_estimateAccountDeployFee) | ||
60-
| [`starkNet_estimateFee`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_estimateFee) | ||
61-
| [`starkNet_extractPublicKey`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_extractPublicKey) |||
62-
| [`starkNet_getErc20TokenBalance`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getErc20TokenBalance) | ||
63-
| [`starkNet_getStoredUserAccounts`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getStoredUserAccounts) | ||
64-
| [`starkNet_getTransactions`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getTransactions) | ||
65-
| [`starkNet_getTransactionStatus`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getTransactionStatus) | ||
66-
| [`starkNet_getValue`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getValue) | ||
67-
| [`starkNet_recoverAccounts`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_recoverAccounts) | ||
68-
| [`starkNet_sendTransaction`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_sendTransaction) | ||
69-
| [`starkNet_signMessage`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_signMessage) |||
70-
| [`starkNet_upgradeAccContract`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_upgradeAccContract) |||
71-
| [`starkNet_verifyMessage`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_verifyMessage) |||
45+
## Interaction with Starknet Snap
46+
47+
After it is connected to the Starknet Snap, your dapp can interact with the Starknet network through two main integration options: `get-starknet` and `wallet_invokeSnap`.
48+
Both options provide access to similar functionalities, but offer different ways of interacting with users' Starknet accounts.
49+
50+
- `wallet_invokeSnap: Manages direct interactions between the dApp and the Starknet Snap. It facilitates network communication for account creation, transaction signing, fee estimation, and other Starknet-related actions.
51+
52+
- `get-starknet`: Provides the same functionalities as `wallet_invokeSnap` and integrates a Starknet Window Object (SWO).
53+
The SWO simplifies account management and signing, and enhances the experience of handling account states and transactions.
54+
You interact with the [Account object](https://starknetjs.com/docs/API/classes/Account) in the SWO for operations.
55+
56+
The following table lists the core functionalities that each integration option supports:
57+
58+
| Functionality | `get-starknet` | `wallet_invokeSnap` |
59+
|---------------|----------------|---------------------|
60+
| Create an account | | [`starkNet_createAccount`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_createAccount) |
61+
| Estimate a fee | [`estimateFeeBulk`](https://starknetjs.com/docs/API/classes/Account/#estimatefeebulk) | [`starkNet_estimateFee`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_estimateFee) |
62+
| Estimate the account deploy fee | [`estimateAccountDeployFee`](https://starknetjs.com/docs/API/classes/Account/#estimateaccountdeployfee) | [`starkNet_estimateAccountDeployFee`](../../../reference/non-evm-apis/starknet-snap-api.md#starknet_estimateaccountdeployfee) |
63+
| Extract the public key | [`getPublicKey`](https://starknetjs.com/docs/api/classes/Signer/#getpubkey) | [`starkNet_extractPublicKey`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_extractPublicKey) |
64+
| Get an ERC20 token balance | [`callContract`](http://starknetjs.com/docs/API/classes/Provider/#callcontract) | [`starkNet_getErc20TokenBalance`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getErc20TokenBalance) |
65+
| Recover an account address | [`getAddress`](https://github.com/starknet-io/get-starknet/blob/ff37390b25b8368ebeb5f2323e2d8826964b41ae/packages/core/src/StarknetWindowObject.ts#L95) | [`starkNet_recoverAccounts`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_recoverAccounts) |
66+
| Get transaction status | [`getTransactionStatus`](https://starknetjs.com/docs/API/classes/Account/#gettransactionstatus) | [`starkNet_getTransactionStatus`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getTransactionStatus) |
67+
| Sign a message | [`signMessage`](https://starknetjs.com/docs/API/classes/Signer#signmessage) | [`starkNet_signMessage`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_signMessage) |
68+
| Sign a transaction | [`signTransaction`](https://starknetjs.com/docs/API/classes/Signer#signtransaction) | [`starkNet_signTransaction`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_signTransaction) |
69+
| Sign eclare Transaction | [`signDeclareTransaction`](https://starknetjs.com/docs/API/classes/Signer#signdeclaretransaction) | [`starkNet_signDeclareTransaction`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_signDeclareTransaction) |
70+
| Execute a transaction | [`execute`](https://starknetjs.com/docs/API/classes/Account/#execute) | [`starkNet_executeTxn`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_executeTxn) |
71+
| Add an ERC20 token | [`watchAsset`](https://github.com/starknet-io/get-starknet/blob/ff37390b25b8368ebeb5f2323e2d8826964b41ae/packages/core/src/StarknetWindowObject.ts#L58) | [`starkNet_addErc20Token`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_addErc20Token) |
72+
| Switch networks | [`switchNetwork`](https://github.com/starknet-io/get-starknet/blob/ff37390b25b8368ebeb5f2323e2d8826964b41ae/packages/core/src/StarknetWindowObject.ts#L58) | [`starkNet_switchNetwork`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_switchNetwork) |
73+
| Get the current network | [`getChainId`](https://starknetjs.com/docs/API/classes/Provider#getchainid) | [`starkNet_getCurrentNetwork`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_getCurrentNetwork) |
74+
| Declare a contract | [`declareContract`](https://starknetjs.com/docs/API/classes/Account/#declarecontract) | [`starkNet_declareContract`](../../../reference/non-evm-apis/starknet-snap-api.md#starkNet_declareContract) |

0 commit comments

Comments
 (0)