LPsLux Proposals
LRC Standards
LP-3025

LRC-20 Votes Extension

Implemented

LRC-20 Votes Extension for Lux Network

Category
LRC
Created
2025-01-23

Abstract

LRC-20 Votes extension for governance tokens with delegation and vote checkpointing.

Specification

Implements delegation, vote checkpointing, and EIP-712 signatures for governance participation.

Motivation

This standard ensures compatibility with the broader EVM ecosystem while enabling Lux-specific optimizations.

Rationale

Mirrors the corresponding Ethereum standard for maximum compatibility.

Backwards Compatibility

Fully compatible with existing ERC implementations.

Reference Implementation

Repository: https://github.com/luxfi/standard Local Path: /Users/z/work/lux/standard/

Contracts

ContractDescription
lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.solERC20 with voting/delegation
lib/openzeppelin-contracts/contracts/governance/utils/IVotes.solVotes interface

Interfaces

Upgradeable Variants

For proxy-based upgradeable contracts:

ContractDescription
ERC20VotesUpgradeable.solUpgradeable votes

Usage: Initialize in initialize() instead of constructor. See OpenZeppelin Upgrades.

Build and Test

cd /Users/z/work/lux/standard/

# Build all contracts
forge build

# Run tests
forge test -vvv

# Gas report
forge test --gas-report

Security Considerations

Implementations should follow established security best practices for the corresponding ERC.

Copyright and related rights waived via CC0.