From 1161b71dad276decfc6c922c2711f3b7c2d57c07 Mon Sep 17 00:00:00 2001 From: cryptooda Date: Thu, 4 Sep 2025 02:46:58 +0700 Subject: [PATCH] Add build claim methods to test for UI Fee --- .../src/generated/gmxsdk/configs/markets.ts | 22 +++++++++++++ .../test/plugins/list-market-claims.test.ts | 33 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/Managing.Web3Proxy/test/plugins/list-market-claims.test.ts diff --git a/src/Managing.Web3Proxy/src/generated/gmxsdk/configs/markets.ts b/src/Managing.Web3Proxy/src/generated/gmxsdk/configs/markets.ts index 6b524c62..7274e4f0 100644 --- a/src/Managing.Web3Proxy/src/generated/gmxsdk/configs/markets.ts +++ b/src/Managing.Web3Proxy/src/generated/gmxsdk/configs/markets.ts @@ -844,3 +844,25 @@ export const MARKETS: Record> = { }, }, }; + +export function buildClaimParams(userAddress: string) { + const marketAddresses: string[] = []; + const tokenAddresses: string[] = []; + + for (const [marketAddress, marketConfig] of Object.entries(MARKETS[ARBITRUM])) { + // Add market address twice (for long and short positions) + marketAddresses.push(marketAddress, marketAddress); + + // Add long token and short token addresses + tokenAddresses.push(marketConfig.longTokenAddress, marketConfig.shortTokenAddress); + } + + return [ + marketAddresses, + tokenAddresses, + userAddress + ]; +} + +// Example usage: +// const params = buildClaimParams("0x0AF60B5C1c349744Ef8fa8c4ed78Ee1A0d392Fe9"); diff --git a/src/Managing.Web3Proxy/test/plugins/list-market-claims.test.ts b/src/Managing.Web3Proxy/test/plugins/list-market-claims.test.ts new file mode 100644 index 00000000..32c0aacb --- /dev/null +++ b/src/Managing.Web3Proxy/test/plugins/list-market-claims.test.ts @@ -0,0 +1,33 @@ +import {strict as assert} from 'node:assert'; +import {test} from 'node:test'; +import {buildClaimParams} from '../../src/generated/gmxsdk/configs/markets.js'; + +test('Market Claims Test - should generate claim parameters and output market and token addresses', () => { + const userAddress = "0x0AF60B5C1c349744Ef8fa8c4ed78Ee1A0d392Fe9"; + const claimParams = buildClaimParams(userAddress); + + const [marketAddresses, tokenAddresses, account] = claimParams; + + console.log('Market Addresses:'); + console.log('['); + (Array.isArray(marketAddresses) ? marketAddresses : [marketAddresses]).forEach((address, index, arr) => { + const comma = index < arr.length - 1 ? ',' : ''; + console.log(` ${address}${comma}`); + }); + console.log(']'); + + console.log('\nToken Addresses:'); + console.log('['); + (Array.isArray(tokenAddresses) ? tokenAddresses : [tokenAddresses]).forEach((address, index, arr) => { + const comma = index < tokenAddresses.length - 1 ? ',' : ''; + console.log(` ${address}${comma}`); + }); + console.log(']'); + + console.log(`\nUser Address: ${account}`); + + // Basic validation + assert.equal(marketAddresses.length, tokenAddresses.length); + assert.equal(account, userAddress); + assert.equal(marketAddresses.length % 2, 0); // Should be even (each market twice) +});