diff --git a/libs/liquidity/src/lib/liquidity-table.spec.tsx b/libs/liquidity/src/lib/liquidity-table.spec.tsx index 3ddf048fc..47b64a845 100644 --- a/libs/liquidity/src/lib/liquidity-table.spec.tsx +++ b/libs/liquidity/src/lib/liquidity-table.spec.tsx @@ -51,6 +51,7 @@ describe('LiquidityTable', () => { 'Party', 'Status', 'Commitment ()', + 'Obligation', 'Fee', 'Adjusted stake share', 'Share', diff --git a/libs/liquidity/src/lib/liquidity-table.tsx b/libs/liquidity/src/lib/liquidity-table.tsx index 83d13b371..d78ea51e3 100644 --- a/libs/liquidity/src/lib/liquidity-table.tsx +++ b/libs/liquidity/src/lib/liquidity-table.tsx @@ -220,6 +220,57 @@ export const LiquidityTable = ({ headerTooltip: t( 'The amount committed to the market by this liquidity provider.' ), + cellRenderer: ({ + data, + value, + }: VegaICellRendererParams< + LiquidityProvisionData, + 'commitmentAmount' + >) => { + if (!value) return '-'; + const currentCommitmentAmount = data?.currentCommitmentAmount; + const pendingCommitmentAmount = value; + + const formattedPendingCommitmentAmount = + addDecimalsFormatNumberQuantum( + pendingCommitmentAmount, + assetDecimalPlaces ?? 0, + quantum ?? 0 + ); + + if ( + currentCommitmentAmount && + currentCommitmentAmount !== pendingCommitmentAmount + ) { + const formattedCurrentCommitmentAmount = + addDecimalsFormatNumberQuantum( + currentCommitmentAmount, + assetDecimalPlaces ?? 0, + quantum ?? 0 + ); + + return ( + <> + {formattedCurrentCommitmentAmount} ( + + {formattedPendingCommitmentAmount} + + ) + + ); + } else { + return formattedPendingCommitmentAmount; + } + }, + tooltipValueGetter: assetDecimalsFormatter, + }, + { + headerName: t('Obligation'), + field: 'commitmentAmount', + type: 'rightAligned', + headerTooltip: t( + `The liquidity provider's obligation to the market, calculated as the liquidity commitment amount multiplied by the value of the stake_to_ccy_volume network parameter to convert into units of liquidity volume.` + ), cellRenderer: ({ data, value,