diff --git a/app/quest-boost/claim/[boostId]/page.tsx b/app/quest-boost/claim/[boostId]/page.tsx index 0c2b33c2..b058e84b 100644 --- a/app/quest-boost/claim/[boostId]/page.tsx +++ b/app/quest-boost/claim/[boostId]/page.tsx @@ -144,6 +144,14 @@ export default function Page({ params }: BoostQuestPageProps) { height={97} alt="usdc icon" /> + ) : boost && getTokenName(boost?.token) === "LORDS" ? ( + ) : ( = ({ setTokenImageLink("/icons/eth.svg"); imageDimensions = { width: 15, height: 20 }; break; + case TOKEN_ADDRESS_MAP[network].LORDS: + setTokenImageLink("/icons/lord.webp"); + imageDimensions = { width: 20, height: 20 }; + break; default: setTokenImageLink("/icons/usdc.svg"); break; diff --git a/components/quests/questDetails.tsx b/components/quests/questDetails.tsx index 885a64c1..adc79c9f 100644 --- a/components/quests/questDetails.tsx +++ b/components/quests/questDetails.tsx @@ -379,7 +379,7 @@ const QuestDetails: FunctionComponent = ({ verifyRedirect={task.verify_redirect} verifyEndpoint={ task.verify_endpoint_type && - task.verify_endpoint_type === "default" + task.verify_endpoint_type.startsWith("default") ? `${task.verify_endpoint}?addr=${hexToDecimal(address)}` : task.verify_endpoint_type === "quiz" ? task.verify_endpoint diff --git a/components/quests/task.tsx b/components/quests/task.tsx index 7b6be8de..481947aa 100644 --- a/components/quests/task.tsx +++ b/components/quests/task.tsx @@ -73,6 +73,12 @@ const Task: FunctionComponent = ({ } if (verifyRedirect) { + // if the verify_endpoint_type contains a timeout indication we use it, + // otherwise we use the default timeout of 15 seconds + const timeout = + verifyEndpointType.split("_").length === 2 + ? parseInt(verifyEndpointType.split("_")[1]) ?? 15000 + : 15000; await new Promise((resolve) => setTimeout(() => { setIsVerified(true); @@ -80,7 +86,7 @@ const Task: FunctionComponent = ({ refreshRewards(); setIsLoading(false); resolve(null); - }, 15000) + }, timeout) ); } else { setIsVerified(true); diff --git a/public/braavos/realms.webp b/public/braavos/realms.webp new file mode 100644 index 00000000..8fa1777e Binary files /dev/null and b/public/braavos/realms.webp differ diff --git a/public/icons/lord.webp b/public/icons/lord.webp new file mode 100644 index 00000000..501ee243 Binary files /dev/null and b/public/icons/lord.webp differ diff --git a/tests/utils/tokenService.test.js b/tests/utils/tokenService.test.js index a3d6b90a..31e75f0f 100644 --- a/tests/utils/tokenService.test.js +++ b/tests/utils/tokenService.test.js @@ -14,6 +14,12 @@ describe("getTokenName function", () => { expect(tokenName).toBe("ETH"); }); + it("should return 'LORDS' for LORDS token address on the current network", () => { + // Assuming TOKEN_ADDRESS_MAP is defined and has the necessary structure + const tokenName = getTokenName(TOKEN_ADDRESS_MAP["MAINNET"].LORDS); + expect(tokenName).toBe("LORDS"); + }); + it("should return 'USDC' for unknown token addresses on the current network", () => { // Assuming TOKEN_ADDRESS_MAP is defined and has the necessary structure const tokenName = getTokenName("unknownTokenAddress"); diff --git a/utils/constants.ts b/utils/constants.ts index ee2f2c5b..53b19b28 100644 --- a/utils/constants.ts +++ b/utils/constants.ts @@ -29,9 +29,11 @@ export const TOKEN_ADDRESS_MAP = { MAINNET: { USDC: "0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8", ETH: "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", + LORDS: "0x0124aeb495b947201f5fac96fd1138e326ad86195b98df6dec9009158a533b49", }, TESTNET: { USDC: "0x005a643907b9a4bc6a55e9069c4fd5fd1f5c79a22470690f75556c4736e34426", ETH: "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", + LORDS: "0x05e367ac160e5f90c5775089b582dfc987dd148a5a2f977c49def2a6644f724b", }, }; diff --git a/utils/tokenService.ts b/utils/tokenService.ts index 1e1a29dd..79bad0a7 100644 --- a/utils/tokenService.ts +++ b/utils/tokenService.ts @@ -8,6 +8,8 @@ export const getTokenName = (token: string) => { return "USDC"; case TOKEN_ADDRESS_MAP[network].ETH: return "ETH"; + case TOKEN_ADDRESS_MAP[network].LORDS: + return "LORDS"; default: return "USDC"; }