Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

345
Visualizações
Passing array to smart contract from web3

I'm having a problem passing an array from web3 to smart contract. I have an array declared as names=[] with data parsed as int;

I am planning to send a value to my smart contract with the function:

function vote(uint[] memory candID,uint id,uint elid) public {
   //code here
  }

using this code in my frontend:

await contract.methods.vote([names],BigInt(election),BigInt(electClickedID)).send({ from: accounts[0], gas: 3000000 });

I always face an error, but when passing data manually, like :

await contract.methods.vote([0,1,5],BigInt(election),BigInt(electClickedID)).send({ from: accounts[0], gas: 3000000 });

it succeeds.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Your variable names is an empty 1-dimensional array, By wrapping it in the additional [] expression, you're effectively passing a 2-dimensional array to the Solidity function.

For example, if the value of names was [0,1,5], you'd be passing [[0,1,5]] - an array of one item, which [the item] is another array of three items.

Which is not valid, as the Solidity function accepts a 1D array.

Solution: Remove the array wrapper.

let names = [];

await contract.methods.vote(
    names, // instead of `[names]`
    BigInt(election),
    BigInt(electClickedID)
).send({
    from: accounts[0],
    gas: 3000000
});
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda