Skip to content

Commit e7039d9

Browse files
authored
Merge pull request #797 from PayButton/feat/broadcast-parsed-op-return
[#774] feat: broadcast parsed op return
2 parents d950e6b + 1f564f9 commit e7039d9

3 files changed

Lines changed: 15 additions & 2 deletions

File tree

constants/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ export const RESPONSE_MESSAGES = {
7777
INVALID_DATA_JSON_WITH_VARIABLES_400: (variables: string[]) => { return { statusCode: 400, message: `Data is not valid. Make sure that ${variables.join(', ')} are not inside quotes.` } },
7878
PAGE_SIZE_LIMIT_EXCEEDED_400: { statusCode: 400, message: `Page size limit should be at most ${TX_PAGE_SIZE_LIMIT}.` },
7979
PAGE_SIZE_AND_PAGE_SHOULD_BE_NUMBERS_400: { statusCode: 400, message: 'pageSize and page parameters should be valid integers.' },
80-
INVALID_OUTPUT_SCRIPT_LENGTH_500: (l: number) => { return { statusCode: 500, message: `Invalid outputScript length ${l}` } }
80+
INVALID_OUTPUT_SCRIPT_LENGTH_500: (l: number) => { return { statusCode: 500, message: `Invalid outputScript length ${l}` } },
81+
FAILED_TO_PARSE_TX_OP_RETURN_500: { statusCode: 500, message: 'Failed to parse OP_RETURN data in Tx.' }
8182
}
8283

8384
export type KeyValueT<T> = Record<string, T>

prisma/seeds/triggers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export const paybuttonTriggers = [
55
sendEmail: false,
66
postData: `{
77
"env": "dev",
8-
"OP_RETURN": <opReturn>,
8+
"opReturn": <opReturn>,
99
"name": <buttonName>,
1010
"address": <address>,
1111
"amount": <amount>,

ws-service/server.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ const addressRouteConnection = (socket: Socket): void => {
4646

4747
const broadcastTxs = async (broadcastTxData: BroadcastTxData): Promise<void> => {
4848
console.log('broadcasting', broadcastTxData.txs.length, broadcastTxData.messageType, 'txs to', broadcastTxData.address)
49+
try {
50+
const parsedTxs = broadcastTxData.txs.map(
51+
t => {
52+
const parsedOpReturnData = t.opReturn === '' ? null : JSON.parse(t.opReturn)
53+
t.opReturn = parsedOpReturnData
54+
return t
55+
})
56+
broadcastTxData.txs = parsedTxs
57+
} catch (err: any) {
58+
console.error(RESPONSE_MESSAGES.FAILED_TO_PARSE_TX_OP_RETURN_500.message)
59+
console.error('Error stack:', err.stack)
60+
}
4961
if (broadcastTxData?.txs?.length === 0) {
5062
console.warn(RESPONSE_MESSAGES.BROADCAST_EMPTY_TX_400)
5163
return

0 commit comments

Comments
 (0)