@@ -63,11 +63,11 @@ export class WalletconnectV2Handler implements WalletconnectHandler<Walletconnec
63
63
}
64
64
65
65
// eslint-disable-next-line prettier/prettier
66
- const requiredEthNamespace : Web3WalletTypes . SessionProposal [ 'params' ] [ 'requiredNamespaces' ] [ string ] =
67
- ( proposal . params . requiredNamespaces ?? { } ) [ Namespace . ETH ] ?? { methods : [ ] , events : [ ] }
66
+ const requiredEthNamespace : Web3WalletTypes . SessionProposal [ 'params' ] [ 'requiredNamespaces' ] [ string ] = ( proposal . params
67
+ . requiredNamespaces ?? { } ) [ Namespace . ETH ] ?? { methods : [ ] , events : [ ] }
68
68
// eslint-disable-next-line prettier/prettier
69
- const optionalEthNamespace : Web3WalletTypes . SessionProposal [ 'params' ] [ 'optionalNamespaces' ] [ string ] =
70
- ( proposal . params . optionalNamespaces ?? { } ) [ Namespace . ETH ] ?? { methods : [ ] , events : [ ] }
69
+ const optionalEthNamespace : Web3WalletTypes . SessionProposal [ 'params' ] [ 'optionalNamespaces' ] [ string ] = ( proposal . params
70
+ . optionalNamespaces ?? { } ) [ Namespace . ETH ] ?? { methods : [ ] , events : [ ] }
71
71
72
72
// for now, let's use the selected account for all required chains
73
73
if ( ethAccounts . length === 1 ) {
@@ -147,12 +147,54 @@ export class WalletconnectV2Handler implements WalletconnectHandler<Walletconnec
147
147
case EthMethods . WALLET_SWITCH_ETHEREUM_CHAIN :
148
148
return this . readWalletSwitchEthereumChain ( request , client )
149
149
case EthMethods . ETH_SIGN_TYPED_DATA :
150
- return { type : 'unsupported' , namespace : Namespace . ETH , method : EthMethods . ETH_SIGN_TYPED_DATA }
150
+ case EthMethods . ETH_SIGN_TYPED_DATA_V3 :
151
+ case EthMethods . ETH_SIGN_TYPED_DATA_V4 :
152
+ return this . readEthSignTypedData ( request , client )
153
+ case EthMethods . ETH_SIGN :
154
+ return this . readEthSign ( request , client )
155
+ // return { type: 'unsupported', namespace: Namespace.ETH, method: EthMethods.ETH_SIGN_TYPED_DATA }
151
156
default :
152
157
return { type : 'unsupported' , namespace : Namespace . ETH }
153
158
}
154
159
}
155
160
161
+ private readEthSign ( request : Web3WalletTypes . SessionRequest , client : V2Client ) : WalletconnectMessage {
162
+ request . params . request . params = [ request . params . request . params [ 1 ] , request . params . request . params [ 0 ] ]
163
+ return {
164
+ type : 'signRequest' ,
165
+ version : 2 ,
166
+ namespace : Namespace . ETH ,
167
+ chain : request . params . chainId ,
168
+ request : {
169
+ id : `${ request . id } :${ request . topic } ` ,
170
+ method : EthMethods . ETH_SIGN ,
171
+ params : request . params . request . params
172
+ } ,
173
+ cancel : async ( ) : Promise < void > => {
174
+ rejectRequest ( client , request . id , request . topic )
175
+ }
176
+ }
177
+ }
178
+
179
+ private readEthSignTypedData ( request : Web3WalletTypes . SessionRequest , client : V2Client ) : WalletconnectMessage {
180
+ request . params . request . params = [ request . params . request . params [ 1 ] , request . params . request . params [ 0 ] ]
181
+
182
+ return {
183
+ type : 'signRequest' ,
184
+ version : 2 ,
185
+ namespace : Namespace . ETH ,
186
+ chain : request . params . chainId ,
187
+ request : {
188
+ id : `${ request . id } :${ request . topic } ` ,
189
+ method : EthMethods . ETH_SIGN_TYPED_DATA ,
190
+ params : request . params . request . params
191
+ } ,
192
+ cancel : async ( ) : Promise < void > => {
193
+ rejectRequest ( client , request . id , request . topic )
194
+ }
195
+ }
196
+ }
197
+
156
198
private readEthSendTransaction ( request : Web3WalletTypes . SessionRequest , client : V2Client ) : WalletconnectMessage {
157
199
return {
158
200
type : 'signRequest' ,
0 commit comments