Почему метод возвращает массив вместо числа или строки? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытался получить данные из договора о солидности через web3 в Метамаске.Я не понимаюПочему я получил массив вместо числа или строки?Может быть, вы знаете другой способ получения нормальных данных из контрактов на эфириум?Рассмотрим мой код:

let contractAddress = $("#addressContract").val();
instaceContract = web3.eth.contract(contract.abi);
contractInstance= instaceContract.at(contractAddress);

contractInstance.name.call((err, result)=>{
            if(!err){
                console.log('Name ', result)
            } else {
                console.log(err);
            }

        });

contractInstance.decimals.call((err, result)=>{
            if(!err){
                console.log('Decimals ', result)
            } else {
                console.log(err);
            }

        });

Я получил ответы: Для имени: enter image description here

Для десятичных дробей: enter image description here

1 Ответ

0 голосов
/ 13 февраля 2019

Обозначение BigNumber.

Твердость использует большие числа для точности.Числа Javascript имеют математическую задачу с плавающей запятой, которая означает, что они округляются в большую или меньшую сторону, когда числа становятся очень большими или очень маленькими.Не идеально, когда эти цифры могут обозначать деньги, так как они основательны.

result.toNumber() должно помочь вам.

...