bug: maxRefScriptSizePerTx limit is 200,000 bytes instead of 204,800

Fechada
#178 0 comentários 1 reação 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
1/5
Tempo estimado
Menos de uma hora
Facilidade para iniciantes
58/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
typescript
Domínio
blockchain

Direção de pesquisa

Abra packages/evolution/src/sdk/builders/TxBuilderImpl.ts e inspecione calculateReferenceScriptFee e sua comparação atual de 200,000 bytes. Altere o limite da era Conway para 204,800 bytes (200 KiB) e verifique se os totais de até 204,800 bytes são aceitos, enquanto totais maiores são rejeitados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug

Summary

calculateReferenceScriptFee in TxBuilderImpl.ts rejects transactions whose total reference script size exceeds 200,000 bytes. The correct Conway-era hard cap is 204,800 bytes (200 × 1024 = 200 KiB).

Transactions with total reference script sizes between 200,001 and 204,800 bytes are incorrectly rejected by the SDK but would be accepted by the node.

Root Cause

// current (wrong)
if (totalScriptSize > 200_000) {

The Cardano Conway ledger hardcodes the limit as 200 * 1024:

ppMaxRefScriptSizePerTxG = L.to . const $ 200 * 1024  -- 204,800 bytes

Source: ConwayEraPParams instance in eras/conway/impl/src/Cardano/Ledger/Conway/PParams.hs. Documented in ADR-009.

Note: these become proper protocol parameters in Dijkstra era (ppMaxRefScriptSizePerTxL).

Fix

if (totalScriptSize > 204_800) {
  // maxRefScriptSizePerTx: 200 * 1024 = 204,800 bytes (200 KiB)
  // Hardcoded in Conway era, becomes a protocol parameter in Dijkstra era.

Affected File

packages/evolution/src/sdk/builders/TxBuilderImpl.ts — calculateReferenceScriptFee

Linguagem predominante
TypeScript
Estrelas
22
Forks
34
Merge médio
21h 10min
PRs com merge (30d)
67

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de IntersectMBO/evolution-sdk

Todas as issues de IntersectMBO/evolution-sdk

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.