Как импортировать смарт-контракт на github в трюфельный контракт?

Я использую смарт-контракт, который импортирует и использует контракт 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 строк кода.

Как это сделать?

Ответы (2)

Я скопировал контракт 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.