Я использую смарт-контракт, который импортирует и использует контракт Oraclize по адресу https://github.com/oraclize/ethereum-api/blob/master/oraclizeAPI_0.4.sol , если в редакторе ремиксов это можно сделать следующим образом:
import "http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol";
Однако, если я сделаю это с контрактом, который я хочу скомпилировать с Truffle, возникнет эта ошибка:
Не удалось найти http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol ни в одном из источников;
Я попытался просто скопировать и вставить весь контракт Oraclize в свой файл контракта Truffle, но это приводит к ошибке «Код контракта не может быть сохранен, пожалуйста, проверьте количество газа» независимо от того, сколько газа я использую (даже абсолютное максимум) - я предполагаю, что контракт Oraclize состоит из более чем 1000 строк кода.
Как это сделать?
Я скопировал контракт Oraclize в свой Truffle и смог перенести контракты в Kovan, запустив узел Parity локально. У вас была учетная запись, на которой был эфир?
Глядя на документы Truffle, есть реестр EthPM, который они предлагают для установки зависимостей, используя: http://truffleframework.com/docs/getting_started/packages-ethpm . На EthPM я вижу пакет Oraclize. Я пытался truffle install oraclize
, но, похоже, ничего не получилось. Я не уверен, что эта функция работает должным образом.
Изменить: truffle install oraclize
действительно работает и помещает контракты в каталог с именем installed_contracts
.
Другая вещь, которую вы можете сделать, чтобы использовать Oraclize с Truffle, — это просто скопировать файл http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol локально и импортировать этот файл в контракт, где вы хотите его использовать.
Для компиляции Truffle необходимо, чтобы контракт назывался так же, как и файл, поэтому вам нужно будет переименовать файл Oraclize в UsingOraclize.sol.