feat(builder): lazy UTxO resolvers for retry-safe buildEffect
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 55/100
- Tipo de issue
- Funcionalidade
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- typescript
- Domínio
- backend-api-design
Direção de pesquisa
Comece por BuildOptions e resolveAvailableUtxos em TransactionBuilder.ts e, em seguida, inspecione CollectFromParams.inputs e createCollectFromProgram em Collect.ts. Confirme como os arrays estáticos são tratados antes de estender ambos os inputs para oferecer suporte a lazy Effects. Está concluído quando o comportamento estático permanece compatível e os lazy resolvers são avaliados no momento do build ou da execução do programa, para que os retries obtenham UTxOs novos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
BuildOptions.availableUtxos and collectFrom inputs are static arrays resolved before buildEffect() runs. When an action is retried via Effect.retry, the same stale UTxO arrays are reused — the provider is never queried again.
Proposed Solution
Allow availableUtxos and collectFrom.inputs to also accept a lazy resolver () => Effect<ReadonlyArray<UTxO>> evaluated at build time:
client.newTx()
.collectFrom({ inputs: () => client.Effect.getUtxos(scriptAddress), redeemer })
.buildEffect({ availableUtxos: () => client.Effect.getWalletUtxos() })
.pipe(Effect.flatMap(s => s.Effect.signAndSubmit()))
.pipe(Effect.retry(Schedule.recurs(3)))
Each retry calls the resolver fresh, so UTxOs are always up to date with no extra boilerplate required from the user.
Affected Areas
BuildOptions.availableUtxos— extend type to accept() => Effect<ReadonlyArray<UTxO>>resolveAvailableUtxosinTransactionBuilder.ts— yield the Effect at build time when lazyCollectFromParams.inputs— same lazy extensioncreateCollectFromPrograminCollect.ts— evaluate resolver at program execution time
Non-breaking — static arrays continue to work as-is.
- Linguagem predominante
- TypeScript
- Estrelas
- 22
- Forks
- 33
- Merge médio
- 21h 38min
- PRs com merge (30d)
- 55
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de IntersectMBO/evolution-sdk
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
IntersectMBO/evolution-sdk#696 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
IntersectMBO/evolution-sdk#694 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
IntersectMBO/evolution-sdk#559 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
IntersectMBO/evolution-sdk#557 ·
Mantenedores costumam responder em até 1 dia
-
txBuilder: committee cert redeemers are never resolved to a certificate indexTalvez já em andamento @emmanuel-musau assumiu há 12 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
IntersectMBO/evolution-sdk#518 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de IntersectMBO/evolution-sdk
Issues semelhantes
-
desktop v3 windows
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
esengine/DeepSeek-Reasonix#15016 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
FR: Support CJK brackets, symbols and full-width markers in footnoteHeuristics (EBPAJ support)Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
readest/readest#7413 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
enhancement good first issue priority: medium size: XS
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia
-
content triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
eliasstravik/herdr-projects#788 ·