Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

web: LQT integration #2041

Merged
merged 27 commits into from
Feb 19, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
39d87d6
view service: LQT scaffolding (#2035)
TalDerei Feb 12, 2025
2d60fe4
wasm: extending planner with lqt voting action (#2037)
TalDerei Feb 12, 2025
cc0b9c1
indexedDB: LQT historical votes table (#2038)
TalDerei Feb 12, 2025
8159bb1
temporary measure for compilation purposes
TalDerei Feb 12, 2025
80ef6e3
linting
TalDerei Feb 12, 2025
44faa76
continue flushing out LQT integration
TalDerei Feb 13, 2025
698b706
wasm: direct all available voting power to a single asset
TalDerei Feb 13, 2025
cbbb9c6
wasm: informative expect messages
TalDerei Feb 13, 2025
e2a6e78
changeset
TalDerei Feb 13, 2025
d04fba2
wasm: wasm bindgen tests
TalDerei Feb 13, 2025
22a6a8c
view server: expand vitest suite for new view service methods
TalDerei Feb 13, 2025
12ead28
wasm: clippy
TalDerei Feb 13, 2025
f11857e
protobuf: revert temporary workaround and consume fixed protos
TalDerei Feb 13, 2025
cb13f59
Merge branch 'main' into protocol/lqt_branch
TalDerei Feb 13, 2025
febf46d
action view: liquidity tournament visible and opaque views and transl…
TalDerei Feb 17, 2025
98ebc0e
address feedback
TalDerei Feb 17, 2025
1afddaf
linting
TalDerei Feb 17, 2025
aec79e2
nit naming
TalDerei Feb 17, 2025
e898dcf
refactor: account for LQT votes per delegation token
TalDerei Feb 19, 2025
2097f09
action views: fix opaque action view
TalDerei Feb 19, 2025
30db7d3
more feedback
TalDerei Feb 19, 2025
cf88451
attempt to pass ci
TalDerei Feb 19, 2025
f133c63
Merge branch 'main' into protocol/lqt_branch
TalDerei Feb 19, 2025
89299da
satisfy linter
TalDerei Feb 19, 2025
561ab8c
changeset
TalDerei Feb 19, 2025
aab25ae
delete outdated changeset
TalDerei Feb 19, 2025
3ac2a91
stale ref; satisfy linter
TalDerei Feb 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ import { Translator } from './types.js';
export const asOpaqueLiquidityTournamentVoteView: Translator<
ActionLiquidityTournamentVoteView
> = liquidityTournamentVoteView => {
if (liquidityTournamentVoteView?.liquidityTournamentVote.case === 'opaque') {
return liquidityTournamentVoteView;
}

return new ActionLiquidityTournamentVoteView({
liquidityTournamentVote: {
case: 'opaque',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,35 @@ import { ViewBox } from '../viewbox';
import { ValueViewComponent } from '../../value';
import { ActionLiquidityTournamentVoteView } from '@penumbra-zone/protobuf/penumbra/core/component/funding/v1/funding_pb';
import { ActionDetails } from './action-details';
import { ValueView } from '@penumbra-zone/protobuf/penumbra/core/asset/v1/asset_pb';
import { ValueWithAddress } from './value-with-address';
import { getAddress } from '@penumbra-zone/getters/note-view';

let globalValueView: ValueView | undefined;

export const LiquidityTournamentVoteComponent = ({
value,
}: {
value: ActionLiquidityTournamentVoteView;
}) => {
if (value.liquidityTournamentVote.case === 'visible') {
globalValueView = value.liquidityTournamentVote.value.note?.value;
const address = getAddress(value.liquidityTournamentVote.value.note);

// Note: LQT action view is currently implemented in the deprecated-ui library
// for testng purposes, and the actual implementation will display all the relevant
// fields that are lacking here.
return (
<ViewBox
label='Liquidity Tournament Vote'
visibleContent={
<ActionDetails>
<ValueWithAddress addressView={address} label='from'>
<ValueViewComponent view={value.liquidityTournamentVote.value.note?.value} />
</ValueWithAddress>
{value.liquidityTournamentVote.value.vote && (
<ActionDetails.Row label='Liquidity Tournament Vote'>
<ValueViewComponent view={value.liquidityTournamentVote.value.note?.value} />
<ValueViewComponent view={globalValueView} />
</ActionDetails.Row>
)}
{value.liquidityTournamentVote.value.vote?.body?.incentivized && (
Expand All @@ -31,7 +45,25 @@ export const LiquidityTournamentVoteComponent = ({
}

if (value.liquidityTournamentVote.case === 'opaque') {
return <ViewBox label='Liquidity Tournament Vote' />;
return (
<ViewBox
label='Liquidity Tournament Vote'
visibleContent={
<ActionDetails>
{
<ActionDetails.Row label='Liquidity Tournament Vote'>
<ValueViewComponent view={globalValueView} />
</ActionDetails.Row>
}
{value.liquidityTournamentVote.value.vote?.body?.incentivized && (
<ActionDetails.Row label='Voted Asset'>
{value.liquidityTournamentVote.value.vote.body.incentivized.denom}
</ActionDetails.Row>
)}
</ActionDetails>
}
/>
);
}

return <div>Invalid ActionLiquidityTournamentVoteView</div>;
Expand Down
Loading