@@ -63,52 +63,73 @@ const connectors = [
63
63
64
64
### Cartridge Controller
65
65
66
- The Cartridge Controller wallet is supported however, you need to install the
67
- ` @cartridge/connector ` package.
66
+ The Cartridge Controller wallet is supported however, you need to install both the
67
+ ` @cartridge/connector ` and ` @cartridge/controller ` packages.
68
68
69
69
The Controller enables seamless use of Session Keys.
70
70
71
71
``` bash
72
- pnpm i @cartridge/connector
72
+ pnpm i @cartridge/connector @cartridge/controller
73
73
```
74
74
75
75
``` tsx twoslash
76
- import React , { useCallback } from " react" ;
77
76
import { ControllerConnector } from " @cartridge/connector" ;
78
77
import { Connector } from " @starknet-react/core" ;
79
-
80
- const rpc = useCallback (() => {
81
- return { nodeUrl: ' https://api.cartridge.gg/x/starknet/mainnet' };
82
- }, []);
78
+ import { constants } from " starknet" ;
83
79
84
80
// Without Session Keys
85
81
const connectors = [
86
82
new ControllerConnector ({
87
- rpc: rpc ().nodeUrl ,
88
- }) as never as Connector ,
83
+ chains: [
84
+ {
85
+ rpcUrl: " https://api.cartridge.gg/x/starknet/sepolia" ,
86
+ },
87
+ {
88
+ rpcUrl: " https://api.cartridge.gg/x/starknet/mainnet" ,
89
+ },
90
+ ],
91
+ defaultChainId: constants .StarknetChainId .SN_SEPOLIA ,
92
+ }),
89
93
];
90
94
```
91
95
92
96
93
97
``` tsx twoslash
94
- import React , { useCallback } from " react" ;
95
98
import { ControllerConnector } from " @cartridge/connector" ;
99
+ import { SessionPolicies } from " @cartridge/controller" ;
96
100
import { Connector } from " @starknet-react/core" ;
97
-
98
- const rpc = useCallback (() => {
99
- return { nodeUrl: ' https://api.cartridge.gg/x/starknet/mainnet' };
100
- }, []);
101
-
102
- // With Session Keys // [!code focus]
103
- const connectors = [// [!code focus]
104
- new ControllerConnector ({// [!code focus]
105
- rpc: rpc ().nodeUrl , // [!code focus]
106
- policies:[ // [!code focus]
107
- { // [!code focus]
108
- target: " 0x3f96056436be253753351fe689110ced7d53f5db3fd98f13df3f19058311b95" , // [!code focus]
109
- method: " create" , // [!code focus]
110
- }, // [!code focus]
111
- ], // [!code focus]
112
- }) as never as Connector ,// [!code focus]
113
- ];// [!code focus]
101
+ import { constants } from " starknet" ;
102
+
103
+ // Define session policies
104
+ const policies: SessionPolicies = {
105
+ contracts: {
106
+ " 0x3f96056436be253753351fe689110ced7d53f5db3fd98f13df3f19058311b95" : {
107
+ name: " Example Contract" ,
108
+ description: " Example contract interaction" ,
109
+ methods: [
110
+ {
111
+ name: " Create" ,
112
+ description: " Create a new instance" ,
113
+ entrypoint: " create"
114
+ }
115
+ ]
116
+ }
117
+ }
118
+ };
119
+
120
+ // With Session Keys
121
+ const connectors = [
122
+ new ControllerConnector ({
123
+ chains: [
124
+ {
125
+ rpcUrl: " https://api.cartridge.gg/x/starknet/sepolia" ,
126
+ },
127
+ {
128
+ rpcUrl: " https://api.cartridge.gg/x/starknet/mainnet" ,
129
+ },
130
+ ],
131
+ defaultChainId: constants .StarknetChainId .SN_SEPOLIA ,
132
+ policies ,
133
+ }),
134
+ ];
114
135
```
0 commit comments