Solidity: Premint amounts below 1 with a leading fractional zero generate code that does not compile
Los mantenedores suelen responder en 1 día
@RaphaelFakhri ya está trabajando en esto.
Desde el 25/10/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- solidity, typescript
- Área
- blockchain, tooling
Línea de trabajo
Inspect calculatePremint in packages/core/solidity/src/erc20.ts where leading fractional zeros remain when integer part is empty. Run the issue's snippet with premint '0.05' to reproduce bad output. Open PR #894 already fixes this, so coordinate there. Done: generated constructor compiles with 5 * 10 ** (decimals() - 2).
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
- In the Solidity ERC20 tab, set Premint to
0.05. - Compile the generated contract.
Or with the package:
const { erc20 } = require('@openzeppelin/wizard');
console.log(erc20.print({ name: 'MyToken', symbol: 'MTK', premint: '0.05' }));
Actual behavior
The constructor contains:
_mint(recipient, 05 * 10 ** (decimals() - 2));
solc fails with:
ParserError: Octal numbers not allowed.
The same happens for other amounts such as 0.001 or 0.001e1, and for Stablecoin, RWA, and Confidential ERC7984, which share calculatePremint.
Expected behavior
The generated line is _mint(recipient, 5 * 10 ** (decimals() - 2));, which compiles.
Cause
calculatePremint in packages/core/solidity/src/erc20.ts strips leading zeros from the integer part and trailing zeros from the fractional part, then concatenates them. Leading zeros of the fractional part remain at the start of units when the integer part is empty.
- Lenguaje dominante
- TypeScript
- Estrellas
- 296
- Forks
- 188
- Merge medio
- 3 h 24 min
- PR fusionados (30 d)
- 11
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenZeppelin/contracts-wizard
-
Stellar: Generated test asserts against the contract identifier instead of the stored token nameAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
OpenZeppelin/contracts-wizard#805 ·
Los mantenedores suelen responder en 1 día
-
Document properly that yarn classic is required (v1.X)Posiblemente ocupada @0xMayurrr la tomó hace 245 días. Abierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
OpenZeppelin/contracts-wizard#739 ·
Los mantenedores suelen responder en 1 día
-
Solidity: Governor absolute quorum values accepted by validation generate code that does not compilePosiblemente ocupada @RaphaelFakhri la tomó hace 17 días. Abierto
Dificultad 3/5 Medio día Aptitud para principiantes 62/100
OpenZeppelin/contracts-wizard#895 ·
Los mantenedores suelen responder en 1 día
-
Follow-ups from the Chainlink CCIP and ACE integration (#880)Posiblemente ocupada @nahimterrazas la tomó hace 25 días. Abierto
OpenZeppelin/contracts-wizard#881 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Solidity: Validate user-supplied option strings at build entry pointsQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
OpenZeppelin/contracts-wizard#804 ·
Los mantenedores suelen responder en 1 día
Todos los issues de OpenZeppelin/contracts-wizard
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
jeanibarz/knowledge-base-mcp-server#1268 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Koenkk/zigbee-herdsman-converters#13820 ·
Los mantenedores suelen responder en 2 días
-
[prefer-expect-resolves] autofix leaves a stray ")" when the awaited expression is parenthesizedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jest-community/eslint-plugin-jest#2052 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Wallet functions throws TypeError when the wallet has no account IDPosiblemente ocupada @Medhansh-741 la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
hiero-ledger/hiero-sdk-js#4781 · 1 comentario ·
Los mantenedores suelen responder en 1 día