forked from Aperture-Finance/uniswap-v3-automation-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.ts
45 lines (41 loc) · 1.17 KB
/
utils.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { ethers } from 'ethers';
import stringify from 'json-stable-stringify';
import {
CreateTriggerPayload,
DeleteTriggerPayload,
UpdateTriggerPayload,
} from './interfaces';
/**
* Generate the payload message of a trigger to be signed.
* @param payload The trigger payload.
* @returns The payload message.
*/
export function generatePayloadMessage(
payload: CreateTriggerPayload | DeleteTriggerPayload | UpdateTriggerPayload,
): string {
return stringify(payload);
}
/**
* Sign a payload message with an ethers signer.
* @param payloadMessage The payload message to sign.
* @param signer The ethers signer.
* @returns The signature.
*/
export function signPayloadMessage(
payloadMessage: string,
signer: ethers.Signer,
): Promise<string> {
return signer.signMessage(payloadMessage);
}
/**
* Sign a trigger payload with an ethers signer.
* @param payload The trigger payload.
* @param signer The ethers signer.
* @returns The signature.
*/
export function signPayload(
payload: CreateTriggerPayload | DeleteTriggerPayload | UpdateTriggerPayload,
signer: ethers.Signer,
): Promise<string> {
return signPayloadMessage(generatePayloadMessage(payload), signer);
}