34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { eip712Utils } from '@0x/order-utils';
|
|
import { SignedZeroExTransaction } from '@0x/types';
|
|
import { BigNumber, signTypedDataUtils } from '@0x/utils';
|
|
import * as _ from 'lodash';
|
|
|
|
export const hashUtils = {
|
|
getApprovalHashBuffer(
|
|
transaction: SignedZeroExTransaction,
|
|
verifyingContractAddress: string,
|
|
txOrigin: string,
|
|
approvalExpirationTimeSeconds: BigNumber,
|
|
): Buffer {
|
|
const typedData = eip712Utils.createCoordinatorApprovalTypedData(
|
|
transaction,
|
|
verifyingContractAddress,
|
|
txOrigin,
|
|
approvalExpirationTimeSeconds,
|
|
);
|
|
const hashBuffer = signTypedDataUtils.generateTypedDataHash(typedData);
|
|
return hashBuffer;
|
|
},
|
|
getApprovalHashHex(
|
|
transaction: SignedZeroExTransaction,
|
|
verifyingContractAddress: string,
|
|
txOrigin: string,
|
|
approvalExpirationTimeSeconds: BigNumber,
|
|
): string {
|
|
const hashHex = `0x${hashUtils
|
|
.getApprovalHashBuffer(transaction, verifyingContractAddress, txOrigin, approvalExpirationTimeSeconds)
|
|
.toString('hex')}`;
|
|
return hashHex;
|
|
},
|
|
};
|