Skip to content

Commit 18664a0

Browse files
committed
change: properly implement gnosis signTypedMessage
1 parent 1cfc30f commit 18664a0

File tree

1 file changed

+15
-25
lines changed

1 file changed

+15
-25
lines changed

src/components/SignForm/SignForm.js

+15-25
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ const SignForm = ({ selectedForm, setShareModalLink }) => {
7676
const availableWalletLabels = currentState.walletModules.map((module) => module.label)
7777

7878
// Check if Safe is available, because autoselecting will fail if it's not
79-
if (!availableWalletLabels.includes('Gnosis Safe')) return
79+
if (!availableWalletLabels.includes('Safe')) return
8080

8181
connect({
8282
autoSelect: {
83-
label: 'Gnosis Safe',
83+
label: 'Safe',
8484
},
8585
})
8686
} else {
@@ -100,34 +100,24 @@ const SignForm = ({ selectedForm, setShareModalLink }) => {
100100
const signer = provider.getUncheckedSigner()
101101

102102
if (messageType === 'humanMessage') {
103-
if (wallet.label === 'Gnosis Safe') {
104-
return (await wallet.provider.sdk.txs.signMessage(hexlify(ethers.utils.toUtf8Bytes(message)))).safeTxHash
105-
// @TODO: implement on update @web3-onboard/gnosis > @2.2
106-
// return (await wallet.instance.txs.signMessage(hexlify(ethers.utils.toUtf8Bytes(message)))).safeTxHash
103+
if (wallet.label === 'Safe') {
104+
return (await wallet.instance.txs.signMessage(hexlify(ethers.utils.toUtf8Bytes(message)))).safeTxHash
107105
}
108106
return signer.signMessage(message)
109107
} else if (messageType === 'hexMessage') {
110-
if (wallet.label === 'Gnosis Safe') {
111-
return (await wallet.provider.sdk.txs.signMessage(message)).safeTxHash
112-
// @TODO: implement on update @web3-onboard/gnosis > @2.2
113-
// return (await wallet.instance.txs.signMessage(message)).safeTxHash
108+
if (wallet.label === 'Safe') {
109+
return (await wallet.instance.txs.signMessage(message)).safeTxHash
114110
}
115111
return signer.signMessage(arrayify(message))
116112
} else if (messageType === 'typedData') {
117-
if (wallet.label === 'Gnosis Safe') {
118-
return (
119-
await wallet.provider.sdk.txs.signMessage({
120-
signType: 'eth_signTypedData_v4',
121-
message,
122-
})
123-
).safeTxHash
124-
// @TODO: implement on update @web3-onboard/gnosis > @2.2
125-
// return (
126-
// await wallet.instance.txs.signMessage({
127-
// signType: 'eth_signTypedData_v4',
128-
// message,
129-
// })
130-
// ).safeTxHash
113+
if (wallet.label === 'Safe') {
114+
try {
115+
const { safeTxHash } = await wallet.instance.txs.signTypedMessage(JSON.parse(message))
116+
117+
return safeTxHash
118+
} catch {
119+
setError('Sign error: Unable to sign typed data')
120+
}
131121
} else {
132122
const parsedMessage = JSON.parse(message)
133123
return signer._signTypedData(parsedMessage.domain, parsedMessage.types, parsedMessage.message)
@@ -170,6 +160,7 @@ const SignForm = ({ selectedForm, setShareModalLink }) => {
170160
setIsSigning(false)
171161
})
172162
.then((signature) => {
163+
console.log('signature', signature)
173164
setSignature(signature)
174165
setIsSigning(false)
175166
})
@@ -344,7 +335,6 @@ const SignForm = ({ selectedForm, setShareModalLink }) => {
344335
)}
345336

346337
<div className='connectedBar'>
347-
{connectedAccount && console.log(connectedAccount)}
348338
{connectedAccount ? (
349339
<>
350340
<span>

0 commit comments

Comments
 (0)