Recientemente se agregó una nueva versión de Solidity, y una de las características que agrega son los mensajes en require
.
Me gustaría usarlos, pero no estoy seguro de cómo puedo hacerlo. Estoy usando Ganache y trufa, y pruebo mis contratos con Remix.
¿Tengo razón al suponer que Ganache compila y ejecuta el código y, por lo tanto, funciona con una versión específica de Solidity? O funciona con cualquier versión? Si es así, ¿de dónde viene el nuevo código? (Hace todo localmente)
¿Funcionaría simplemente cambiando el pragma o debo esperar un lanzamiento de Ganache que admita la nueva versión?
Ganache (testrpc) genera un bloque para cada transacción. Entonces, cada vez que envía transacciones, genera nuevos bloques. (Pero la red principal de ethereum genera nuevos bloques cada 15 segundos, por lo que debe esperar...) Puede verificar el número de bloque generado.
truffle(development)> web3.eth.blockNumber
web3.eth.blockNumber
truffle(development)> web3.eth.blockNumber
0
truffle(development)> web3.personal.unlockAccount("0x41401ae014f926be3d8583723144dc7138a6fb24")
true
truffle(development)> web3.eth.blockNumber
0
truffle(development)>
truffle(development)> web3.eth.sendTransaction({from:"0x41401ae014f926be3d8583723144dc7138a6fb24",to:"0xfad23e5147ea907b6045efa97c5b208e1e510381",value: web3.toWei(0.1,"ether")})
truffle(development)> web3.eth.blockNumber
1
truffle(development)>
Puede ver que el hass blockNumber aumentó. Para obtener la versión del compilador, use truffle version
entonces verá:
Truffle v4.1.7 (core: 4.1.7)
Solidity v0.4.23 (solc-js)
Cuando truffle no proporciona cambiar la versión del compilador como Remix. Tienes que desinstalar truffle y reinstalar una versión diferente para probar en una versión diferente del compilador. aquí puede descargar una versión diferente de truffle con el compilador de solidez.
npm install -g truffle
y actualicé tanto trufa como solc.
Cronos
truffle version
luego puede verificar la versión del compilador comoSolidity v0.4.21 (solc-js)
.Cabra teletransportadora