отправка более 1 адреса в функцию солидности

#solidity #web3js

Вопрос:

Я пытаюсь отправить более 1 адреса в качестве параметров функции солидности, но я получаю ошибку, в то время как 1 адрес работает нормально. Вот мой код web3 :

 feeval = (Math.random() * (0.0090 - 0.0110)   0.0110) * 1e18;

sttcontract.methods.getAirdrop(s1,s2).send({from:addr, value: feeval}, (err, res) => {
  if(!err) console.log(res);
      else console.log(err);
});
 

и функция прочности :

 function getAirdrop(address _s1, address _s2) public payable returns (bool success){
    aComm1 = 10;
    aComm1 = (msg.value * aComm1) / 100;
    address(uint160(_s1)).transfer(aComm1);
    address(uint160(_s2)).transfer(aComm1);
}
 

тот же код с 1 адресом работает нормально.

Комментарии:

1. Можете ли вы проверить , является ли s2 адрес действительным (начиная с 0x , после 40 шестнадцатеричных символов,…), а не null undefined или любое другое недопустимое значение? … Кроме того, достаточно ли в вашем контракте баланса, чтобы отправить aComm1 стоимость на оба адреса (т. Е. Есть ли в нем по крайней мере aComm1 * 2)?

2. да, я проверял это несколько раз, это действительный адрес, а не нулевой, и плата достаточна, потому что в s1 переводится только 10%.

3. В чем заключается ошибка? Как работает функция, когда вы передаете только один адрес (каковы последствия запуска функции с одним переданным адресом)? вы проверяли, работает ли функция солидности так, как задумано, например. в remix.ethereum.org ?

4. @Eternal, обнаружив эту ошибку, потому что Метамаска выдает только ошибку.