From bfb98651dc3fd7472b9b529934fcfdea1dcbcb87 Mon Sep 17 00:00:00 2001 From: Kirill Kuznetcov Date: Thu, 2 May 2024 23:13:15 +0400 Subject: [PATCH] chore: migrate sign typed data to ethers --- package.json | 4 +--- .../private-key-provider.connector.ts | 22 +++++++++---------- src/index.ts | 4 +++- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 0a85dab..9d8ba9f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@1inch/fusion-sdk", "version": "2.0.1", - "description": "1inch Fusion Mode SDK", + "description": "1inch Fusion SDK", "author": "@1inch", "private": false, "main": "dist/index.js", @@ -29,8 +29,6 @@ "dependencies": { "@1inch/byte-utils": "2.2.1", "@1inch/limit-order-sdk": "^4.8.7", - "@metamask/eth-sig-util": "^5.1.0", - "bn.js": "^5.2.1", "ethers": "6.11.0", "tslib": "^2.6.2", "ws": "^8.16.0" diff --git a/src/connector/blockchain/private-key-provider.connector.ts b/src/connector/blockchain/private-key-provider.connector.ts index f53a604..3e4cbe0 100644 --- a/src/connector/blockchain/private-key-provider.connector.ts +++ b/src/connector/blockchain/private-key-provider.connector.ts @@ -1,33 +1,33 @@ -import {signTypedData, SignTypedDataVersion} from '@metamask/eth-sig-util' import {EIP712TypedData} from '@1inch/limit-order-sdk' +import {Wallet} from 'ethers' import {BlockchainProviderConnector} from './blockchain-provider.connector' import {Web3Like} from './web3-provider-connector' +import {add0x} from '../../utils' export class PrivateKeyProviderConnector implements BlockchainProviderConnector { - private readonly privateKeyBuffer: Buffer + private readonly wallet: Wallet constructor( readonly privateKey: string, protected readonly web3Provider: Web3Like ) { - this.privateKeyBuffer = Buffer.from(privateKey.replace('0x', ''), 'hex') + this.wallet = new Wallet(add0x(privateKey)) } signTypedData( _walletAddress: string, typedData: EIP712TypedData ): Promise { - const result = signTypedData({ - privateKey: this.privateKeyBuffer, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - data: typedData, - version: SignTypedDataVersion.V4 - }) + const primaryTypes = {...typedData.types} + delete primaryTypes['EIP712Domain'] - return Promise.resolve(result) + return this.wallet.signTypedData( + typedData.domain, + primaryTypes, + typedData.message + ) } ethCall(contractAddress: string, callData: string): Promise { diff --git a/src/index.ts b/src/index.ts index 6f1b011..aab0284 100644 --- a/src/index.ts +++ b/src/index.ts @@ -28,5 +28,7 @@ export { QuoterCustomPresetRequest, PresetEnum, Preset, - Quote + Quote, + OrderStatusResponse, + OrderStatus } from './api'