Was sind *C*-, *E*- und *S*-Eigenschaften im Nachrichtenaufruf-Rückgabeobjekt?

(JS)

 var contract = web3.eth.contract(abiDefinition).at(address);
     contract.test(value, gotResult);
     function gotResult(error, result) {
            if(!error) {
                console.log(error);
            }
            else {
                console.log(result);
            }                               
    }

(SOL)

 contract A {
     function test(uint8 x) constant returns(uint8) {
         return x + 10;
     }
  }

(BROWSER)

Geben Sie hier die Bildbeschreibung ein

Antworten (1)

resultist ein BigNumber- Objekt , das zu so etwas wie gestringt ist { [String: '5'] s: 1, e: 0, c: [ 5 ] }. Sie können BigNumber-Methoden verwenden, result.toNumber()um es besser zu sehen.

Wenn es sich um Ganzzahlen handelt, verwendet web3.js BigNumber, da native Javascript-Zahlen nicht groß genug sind.

Es würde hier den Rahmen sprengen, auf die Interna einer allgemeinen externen Bibliothek wie BigNumber einzugehen.

Das Wichtigste, was hilft, ist zu erkennen, dass es sich bei einem Objekt, das so aussieht, wahrscheinlich um eine BigNumber handelt und Sie Methoden darauf aufrufen sowie andere zusätzliche BigNumber-Operationen ausführen können (ohne die Interna kennen zu müssen).

Wofür stehen S, C, E?
@quantumpotato Laut dem BigNumber- Repo steht S für Vorzeichen, E für Exponent und C für Koeffizient (oder Signifikand).