Skip to content

Commit 770ee0a

Browse files
committed
deprecate use of ethers-eip712, instead use signTypedData methods from ethers direct
1 parent 35d5882 commit 770ee0a

6 files changed

Lines changed: 25 additions & 24 deletions

File tree

packages/0xsequence/tests/browser/window-transport/dapp.test.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ import { ethers } from 'ethers'
33
import { Web3Provider } from '@ethersproject/providers'
44
import { test, assert } from '../../utils/assert'
55

6-
import { TypedDataUtils } from 'ethers-eip712'
7-
86
import { isValidSignature, packMessageData, recoverConfig } from '@0xsequence/wallet'
97
import { addressOf } from '@0xsequence/config'
108
import { testWalletContext } from '../testutils'
@@ -129,15 +127,9 @@ export const tests = async () => {
129127

130128
const typedData = {
131129
types: {
132-
EIP712Domain: [
133-
{name: "name", type: "string"},
134-
{name: "version", type: "string"},
135-
{name: "chainId", type: "uint256"},
136-
{name: "verifyingContract", type: "address"},
137-
],
138130
Person: [
139131
{name: "name", type: "string"},
140-
{name: "wallet", type: "address"},
132+
{name: "wallet", type: "address"},
141133
]
142134
},
143135
primaryType: 'Person' as const,
@@ -172,8 +164,9 @@ export const tests = async () => {
172164
//
173165
// Verify the message signature
174166
//
175-
const message = TypedDataUtils.encodeDigest(typedData)
176-
const messageDigest = ethers.utils.arrayify(ethers.utils.keccak256(message))
167+
168+
const messageHash = ethers.utils._TypedDataEncoder.hash(typedData.domain, typedData.types, typedData.message)
169+
const messageDigest = ethers.utils.arrayify(ethers.utils.keccak256(messageHash))
177170
const isValid = await isValidSignature(address, messageDigest, sig, provider, testWalletContext, await signer.getChainId())
178171
assert.true(isValid, 'signature is valid')
179172

packages/provider/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
"@0xsequence/transactions": "^0.7.0",
1919
"@0xsequence/utils": "^0.7.0",
2020
"@0xsequence/wallet": "^0.7.0",
21+
"@ethersproject/abstract-signer": "5.0.11",
2122
"@ethersproject/hash": "^5.0.10",
2223
"@ethersproject/providers": "^5.0.17",
2324
"@ethersproject/web": "^5.0.12",
2425
"ethers": "^5.0.24",
25-
"ethers-eip712": "^0.2.0",
2626
"eventemitter3": "^4.0.7",
2727
"platform": "^1.3.6"
2828
},

packages/provider/src/types.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NetworkConfig, JsonRpcRequest, JsonRpcResponse, JsonRpcHandler } from '@0xsequence/network'
2+
import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer'
23

34
// export class SequenceError extends Error {}
45

@@ -100,6 +101,10 @@ export interface MessageToSign {
100101
chainId?: number
101102
}
102103

103-
// TODO: deprecate
104-
import { TypedData } from 'ethers-eip712'
105-
export type { TypedData }
104+
export interface TypedData {
105+
domain: TypedDataDomain
106+
types: Record<string, Array<TypedDataField>>
107+
value: Record<string, any>
108+
}
109+
110+
export type { TypedDataDomain, TypedDataField }

packages/wallet/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"@ethersproject/properties": "^5.0.7",
2727
"@ethersproject/providers": "^5.0.17",
2828
"ethers": "^5.0.24",
29-
"ethers-eip712": "^0.2.0",
3029
"eventemitter3": "^4.0.6",
3130
"fetch-ponyfill": "^7.0.0"
3231
},

packages/wallet/tests/wallet.spec.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ const Web3 = require('web3')
3535
const { expect } = chai.use(chaiAsPromised)
3636

3737
import hardhat from 'hardhat'
38-
import { TypedDataUtils } from 'ethers-eip712'
3938

4039
type EthereumInstance = {
4140
chainId?: number
@@ -153,12 +152,6 @@ describe('Wallet integration', function () {
153152
it('Should sign a typed message', async () => {
154153
const typedData = {
155154
types: {
156-
EIP712Domain: [
157-
{ name: "name", type: "string" },
158-
{ name: "version", type: "string" },
159-
{ name: "chainId", type: "uint256" },
160-
{ name: "verifyingContract", type: "address" },
161-
],
162155
Person: [
163156
{ name: "name", type: "string" },
164157
{ name: "wallet", type: "address" },
@@ -177,7 +170,7 @@ describe('Wallet integration', function () {
177170
}
178171
}
179172

180-
const digest = TypedDataUtils.encodeDigest(typedData)
173+
const digest = ethers.utils._TypedDataEncoder.hash(typedData.domain, typedData.types, typedData.message)
181174

182175
const sig = await wallet.signTypedData(typedData.domain, typedData.types, typedData.message)
183176

yarn.lock

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1150,6 +1150,17 @@
11501150
"@ethersproject/transactions" "^5.0.9"
11511151
"@ethersproject/web" "^5.0.12"
11521152

1153+
"@ethersproject/abstract-signer@5.0.11":
1154+
version "5.0.11"
1155+
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.11.tgz#675da9ec168905c60ee79a6da95f7157ca956f46"
1156+
integrity sha512-RKOgPSEYafknA62SrD3OCK42AllHE4YBfKYXyQeM+sBP7Nq3X5FpzeoY4uzC43P4wIhmNoTHCKQuwnX7fBqb6Q==
1157+
dependencies:
1158+
"@ethersproject/abstract-provider" "^5.0.8"
1159+
"@ethersproject/bignumber" "^5.0.13"
1160+
"@ethersproject/bytes" "^5.0.9"
1161+
"@ethersproject/logger" "^5.0.8"
1162+
"@ethersproject/properties" "^5.0.7"
1163+
11531164
"@ethersproject/abstract-signer@5.0.9", "@ethersproject/abstract-signer@^5.0.4", "@ethersproject/abstract-signer@^5.0.6":
11541165
version "5.0.9"
11551166
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.9.tgz#238ddc06031aeb9dfceee2add965292d7dd1acbf"

0 commit comments

Comments
 (0)