diff --git a/prisma/migrations/20240926212516_update_rpc_proxy_submission_params/migration.sql b/prisma/migrations/20240926212516_update_rpc_proxy_submission_params/migration.sql new file mode 100644 index 0000000..b6b48b8 --- /dev/null +++ b/prisma/migrations/20240926212516_update_rpc_proxy_submission_params/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "ContactlessPaymentTxOrMsg" ALTER COLUMN "rpcProxySubmissionParams" SET DATA TYPE TEXT; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index a7ac96e..ca625ec 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -13,7 +13,7 @@ model ContactlessPaymentTxOrMsg { payloadType String chainId String txParams Json? - rpcProxySubmissionParams Json? + rpcProxySubmissionParams String? // stored as a stringified Json to preserve field order additionalPayload Json? dappName String? dappUrl String? diff --git a/src/services/paymentTxOrMsgService.ts b/src/services/paymentTxOrMsgService.ts index 8ac0e6d..29e357e 100644 --- a/src/services/paymentTxOrMsgService.ts +++ b/src/services/paymentTxOrMsgService.ts @@ -27,7 +27,7 @@ export const createPaymentTxOrMsg = async (payload: Payload) => { dappName: payload.dappName, payloadType: payload.payloadType, additionalPayload: payload.additionalPayload, - rpcProxySubmissionParams: payload.rpcProxySubmissionParams, + rpcProxySubmissionParams: JSON.stringify(payload.rpcProxySubmissionParams), // we stringify ths object to store it in the database to preserve field order }; let txParams: Prisma.JsonValue; @@ -47,7 +47,8 @@ export const createPaymentTxOrMsg = async (payload: Payload) => { paymentTx: payload.paymentTx, }; } else if (isEip712Payload(payload)) { - txParams = { message: payload.message }; + // noop, rpcProxySubmissionParams contains the message needed to be signed and submitted + txParams = {}; } else { throw new Error('Invalid payload type'); } @@ -75,9 +76,10 @@ export const getPaymentTxOrMsg = async (uuid: string) => { } // remove the txParams prop and flatten - const { txParams, ...rest } = paymentTxOrMsg; + const { txParams, rpcProxySubmissionParams, ...rest } = paymentTxOrMsg; return { ...rest, + rpcProxySubmissionParams: typeof rpcProxySubmissionParams === 'string' ? JSON.parse(rpcProxySubmissionParams) : undefined, ...(txParams as Record), }; };