Wie kann ich ein dynamisches uint8[]-Array in uint[] umwandeln?

Wie kann ich mein uint8[] in Solidity in uint[] konvertieren? Ich habe eine Funktion, die uint[] erwartet, aber mein Array hat den Typ uint8[].

Antworten (2)

Da Sie nicht nur implizit oder explizit von uint8[] nach uint256[] konvertieren können, müssten Sie etwa so vorgehen:

contract array {


function conversion (uint8[] array8) returns(uint[] array256) {
   for (uint i = 0 ; i < array8.length ; i++ ) {
       array256[i] = array8[i];

   }

   return array256;
}

}

Vielleicht so etwas?

contract X {
    uint8[] public arr8 = [3,4,5];
    uint256[] public arr256;

    function myFunc(uint[] _arr256) public {
        arr256 = _arr256;
    }

    function proxyFunc(uint8[] _arr8) public {
        uint[] memory _arr256 = new uint[](_arr8.length);
        for (uint i = 0; i < _arr8.length; i++) {
            _arr256[i] = uint256(_arr8[i]);
        }
        myFunc(_arr256);
    }
}