1
1
import { Static , Type } from "@sinclair/typebox" ;
2
+ import { ethers } from "ethers" ;
2
3
import { FastifyInstance } from "fastify" ;
3
4
import { StatusCodes } from "http-status-codes" ;
4
5
import { getWallet } from "../../../utils/cache/getWallet" ;
@@ -7,6 +8,7 @@ import { walletAuthSchema } from "../../schemas/wallet";
7
8
8
9
const BodySchema = Type . Object ( {
9
10
message : Type . String ( ) ,
11
+ isBytes : Type . Optional ( Type . Boolean ( ) ) ,
10
12
} ) ;
11
13
12
14
const ReplySchema = Type . Object ( {
@@ -33,7 +35,7 @@ export async function signMessage(fastify: FastifyInstance) {
33
35
} ,
34
36
} ,
35
37
handler : async ( req , res ) => {
36
- const { message } = req . body ;
38
+ const { message, isBytes } = req . body ;
37
39
const walletAddress = req . headers [ "x-backend-wallet-address" ] as string ;
38
40
39
41
const wallet = await getWallet ( {
@@ -42,7 +44,15 @@ export async function signMessage(fastify: FastifyInstance) {
42
44
} ) ;
43
45
44
46
const signer = await wallet . getSigner ( ) ;
45
- const signedMessage = await signer . signMessage ( message ) ;
47
+
48
+ let signedMessage ;
49
+ if ( isBytes ) {
50
+ signedMessage = await signer . signMessage (
51
+ ethers . utils . arrayify ( message ) ,
52
+ ) ;
53
+ } else {
54
+ signedMessage = await signer . signMessage ( message ) ;
55
+ }
46
56
47
57
res . status ( 200 ) . send ( {
48
58
result : signedMessage ,
0 commit comments