Skip to content

Commit b99290f

Browse files
committed
fix: verifyTransaction parameters in submitTransaction function
1 parent 0884785 commit b99290f

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

packages/web-provider/src/vault-service/vault-service.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ import dayjs from "dayjs"
88
import Client from "mina-signer"
99

1010
import type { SignedTransaction } from "@mina-js/utils"
11+
import type {
12+
SignableData,
13+
ZkappCommand,
14+
} from "mina-signer/dist/node/mina-signer/src/types"
1115
import type { IVaultService } from "./types"
1216

1317
export enum AuthorizationState {
@@ -74,9 +78,27 @@ export const createVaultService = (): IVaultService => {
7478
const accounts = await getAccounts()
7579
const publicKey = accounts?.[0]
7680
if (!publicKey) throw new Error("Wallet is not initialized.")
77-
const validTransaction = signer.verifyTransaction(sendable.input as never)
78-
if (!validTransaction) throw new Error("Invalid transaction.")
7981
const type = getTxType(sendable.input as never)
82+
const signedData: SignableData | ZkappCommand = sendable.input as any
83+
const verifyTransactionParams =
84+
typeof signedData === "object"
85+
? "feePayer" in signedData
86+
? {
87+
signature: signedData.zkappCommand.feePayer.authorization,
88+
publicKey: signedData.zkappCommand.feePayer.body.publicKey,
89+
data: signedData,
90+
}
91+
: {
92+
signature: (sendable as any).signature,
93+
publicKey: signedData.from,
94+
data: signedData,
95+
}
96+
: undefined
97+
if (
98+
!verifyTransactionParams ||
99+
!signer.verifyTransaction(verifyTransactionParams)
100+
)
101+
throw new Error("Invalid transaction.")
80102
const payload =
81103
type === "zkapp"
82104
? { input: sendable.input }

0 commit comments

Comments
 (0)