¿Cómo importar un contrato inteligente en github en un contrato de trufa?

Estoy usando un contrato inteligente que importa y usa el contrato de Oraclize en https://github.com/oraclize/ethereum-api/blob/master/oraclizeAPI_0.4.sol , si en el editor de remezclas esto se puede hacer de la siguiente manera:

import "http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol";

Sin embargo, si hago esto con un contrato que quiero compilar con Truffle, aparece este error:

No se pudo encontrar http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol de ninguna fuente;

Intenté simplemente copiar y pegar todo el contrato de Oracle en mi archivo de contrato de Truffle, pero esto da como resultado el error "El código del contrato no se pudo almacenar, verifique la cantidad de gas" independientemente de la cantidad de gas que use (incluso el absoluto máximo) - Supongo que se debe a que el contrato de Oraclize tiene más de 1000 líneas de código.

¿Cómo debe hacerse esto?

Respuestas (2)

Copié y pegué el contrato de Oraclize en mi Truffle y pude migrar los contratos a Kovan ejecutando un nodo Parity localmente. ¿Tenías una cuenta que tenía Ether?

Mirando los documentos de Truffle, hay un registro de EthPM que sugieren instalar dependencias usando: http://truffleframework.com/docs/getting_started/packages-ethpm . En EthPM, veo que hay un paquete de Oracle. Lo intenté truffle install oraclize, pero no parecía hacer nada. No estoy seguro de si esta función funciona correctamente.

Editar: truffle install oraclizede hecho, está funcionando y coloca los contratos en un directorio llamado installed_contracts.

La otra cosa que puede hacer para usar Oracle con Truffle es simplemente copiar el archivo http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol localmente e importar ese archivo en el contrato donde desea usarlo.

Truffle necesita que el contrato tenga el mismo nombre que el archivo para compilarlo, por lo que deberá cambiar el nombre del archivo de Oraclize a UsingOraclize.sol.