В солидности, как я могу жестко закодировать байты> 32 байта

Я хочу создать контракт с жестко закодированной переменной bytes.

contract Test(){
   function Test(){
      bytes x = 0x..... //greater than 32 bytes 
   }
}

Вышеприведенное возвращает Type int_const not implicitly convertible to expected type bytes storage pointerошибку.

Ответы (1)

contract C1 {
    function f1() returns(bytes) {
        bytes memory bb = "\x00\x01\x02";  // you can extend this
        return(bb);
    }
}

Протестировано с помощью онлайн-браузера Solidity, вывод:

Result: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030001020000000000000000000000000000000000000000000000000000000000"
Cost: 25630 gas. 
что странно, с 0x000102 работает, а с 0x0001a2 вылетает...
Открыта проблема: github.com/chriseth/browser-solidity/issues/114 .