From aa1aa856957283c0ac1db55137bd9bd3664ca535 Mon Sep 17 00:00:00 2001 From: Oleg Petrov Date: Mon, 15 Jan 2024 10:05:09 -0500 Subject: [PATCH 1/3] safer parsing --- packages/swapkit/types/src/errors/displayMessages.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/swapkit/types/src/errors/displayMessages.ts b/packages/swapkit/types/src/errors/displayMessages.ts index dc28a3dd7..626740bdf 100644 --- a/packages/swapkit/types/src/errors/displayMessages.ts +++ b/packages/swapkit/types/src/errors/displayMessages.ts @@ -60,10 +60,11 @@ export const ERROR_DISPLAY_MESSAGES: Record = { export const getDisplayMessage = (code: ERROR_CODE, displayMessageParams: string[]) => { let displayMessage = ERROR_DISPLAY_MESSAGES[code]; + if (!displayMessage?.length) return displayMessage.replace('{0}', ''); + for (let i = 0; i < displayMessageParams.length; i++) { displayMessage = displayMessage.replace(`{${i}}`, displayMessageParams[i]); } - if (displayMessageParams.length === 0) return displayMessage.replace('{0}', ''); - else return displayMessage; + return displayMessage; }; From 8727d83a22c7c1d5457191c6c8bbd35c1d773d93 Mon Sep 17 00:00:00 2001 From: Oleg Petrov Date: Mon, 15 Jan 2024 10:06:10 -0500 Subject: [PATCH 2/3] change set --- .changeset/tender-coins-sparkle.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tender-coins-sparkle.md diff --git a/.changeset/tender-coins-sparkle.md b/.changeset/tender-coins-sparkle.md new file mode 100644 index 000000000..91193ff0f --- /dev/null +++ b/.changeset/tender-coins-sparkle.md @@ -0,0 +1,5 @@ +--- +"@swapkit/types": minor +--- + +Fix error message unsafe parsing From 81cba1561b5c6e672d311fcb4c926f5c6f03b76b Mon Sep 17 00:00:00 2001 From: Oleg Petrov Date: Mon, 15 Jan 2024 10:19:48 -0500 Subject: [PATCH 3/3] Add missing source address --- packages/swapkit/types/src/errors/displayMessages.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/swapkit/types/src/errors/displayMessages.ts b/packages/swapkit/types/src/errors/displayMessages.ts index 626740bdf..ca411d0da 100644 --- a/packages/swapkit/types/src/errors/displayMessages.ts +++ b/packages/swapkit/types/src/errors/displayMessages.ts @@ -25,6 +25,7 @@ export const ERROR_DISPLAY_MESSAGES: Record = { [ERROR_CODE.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN]: 'Destination address {0} invalid for buy chain.', [ERROR_CODE.PREFERRED_PROVIDER_NOT_SUPPORTED]: 'Preferred provider not supported.', + [ERROR_CODE.SOURCE_ADDRESS_SMART_CONTRACT]: 'Source address is a smart contract.', [ERROR_CODE.DESTINATION_ADDRESS_SMART_CONTRACT]: 'Destination address is a smart contract.', [ERROR_CODE.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER]: 'Buy amount must be a positive integer.', [ERROR_CODE.INVALID_PROVIDER]: 'Invalid provider {0}.', @@ -60,10 +61,10 @@ export const ERROR_DISPLAY_MESSAGES: Record = { export const getDisplayMessage = (code: ERROR_CODE, displayMessageParams: string[]) => { let displayMessage = ERROR_DISPLAY_MESSAGES[code]; - if (!displayMessage?.length) return displayMessage.replace('{0}', ''); + if (!displayMessage) return ''; for (let i = 0; i < displayMessageParams.length; i++) { - displayMessage = displayMessage.replace(`{${i}}`, displayMessageParams[i]); + displayMessage = displayMessage?.replace(`{${i}}`, displayMessageParams[i]) ?? ''; } return displayMessage;