Author

Topic: Получение курсов USD, RUB, EUR в смарт-контракт (Read 667 times)

copper member
Activity: 103
Merit: 1
member
Activity: 134
Merit: 10
Лишь бы команды выдавали реальные и актуальные значения, а не выдуманные или устаревшие.

Данные о курсе ETH/USD сейчас берутся с Etherscan
member
Activity: 183
Merit: 10
Для чего это нужно?
Например, для проведения ICO где стоимость токена привязана к фиату
   ----- пока такого не встречал, чтобы цена во время ICO привязывалась к фиату. Первична всегда крипта - например, за 1 эфир дают 400 каких-то токенов. Хотя где-то может и проводят подобные ICO, за всем не уследишь)

были такие проекты бетон, точно видел и не один. Да взять тот же red pulse, за NEO в эквиваленте 50$ давали 1000 токенов.

 Даже к кубометру песка видел привязку  Grin
newbie
Activity: 1
Merit: 0
Лишь бы команды выдавали реальные и актуальные значения, а не выдуманные или устаревшие.

На данный момент мы думаем над способом подтверждения верности данных.

Пока, это видится как создание некоего аналога PageSigner ( https://tlsnotary.org/pagesigner.html ), через который бы шло обращение нашего сервиса к API бирж, являющихся источником данных о курсах.

legendary
Activity: 2548
Merit: 2259
Code:
my_DRate.getUSDRate.value(msg.value)();
Лишь бы команды выдавали реальные и актуальные значения, а не выдуманные или устаревшие.
full member
Activity: 490
Merit: 103
Для чего это нужно?
Например, для проведения ICO где стоимость токена привязана к фиату
   ----- пока такого не встречал, чтобы цена во время ICO привязывалась к фиату. Первична всегда крипта - например, за 1 эфир дают 400 каких-то токенов. Хотя где-то может и проводят подобные ICO, за всем не уследишь)

были такие проекты бетон, точно видел и не один. Да взять тот же red pulse, за NEO в эквиваленте 50$ давали 1000 токенов.
member
Activity: 134
Merit: 10
А и да еще гляньте в сторону проекта LINK - они тоже хотят котировки и всякие внешние данные в блокчейн писать.

Вы говорите про ChainLink?
full member
Activity: 252
Merit: 101
А и да еще гляньте в сторону проекта LINK - они тоже хотят котировки и всякие внешние данные в блокчейн писать.
full member
Activity: 252
Merit: 101
Если хотите знать про ICO где такое нужно - это наш проект sintez.global. На втором этапе смарт-контракт учитывает цену токена за предудущий период, сначала в эфирах, потом когда он появиться на бирже - в курсах к баксу. Так что вы полезную штуку делаете - подтверждаю. Только вот ваш оракул если он один - является точкой отказа, нужно создавать сеть оракулов, построенную тоже на децентрализованных принципах, правда консенсус конечно не на блокчейне придеться пилить.
member
Activity: 134
Merit: 10

Хм, интересно. Вероятно протестим, спасибо.

Если есть вопросы по использованию, задавайте. С радостью поможем!
full member
Activity: 378
Merit: 101
пока такого не встречал, чтобы цена во время ICO привязывалась к фиату. Первична всегда крипта - например, за 1 эфир дают 400 каких-то токенов. Хотя где-то может и проводят подобные ICO, за всем не уследишь)

Мы такой сервис и сделали, потому что у заказчиков смарт-контрактов в последнее время наметилась тенденция указывать стоимость токена в USD или RUB. Это сделано чтобы, избежать высокой волатильности криптовалют, особенно если ICO проводится на длинной дистанции.

Хм, интересно. Вероятно протестим, спасибо.
member
Activity: 134
Merit: 10
пока такого не встречал, чтобы цена во время ICO привязывалась к фиату. Первична всегда крипта - например, за 1 эфир дают 400 каких-то токенов. Хотя где-то может и проводят подобные ICO, за всем не уследишь)

Мы такой сервис и сделали, потому что у заказчиков смарт-контрактов в последнее время наметилась тенденция указывать стоимость токена в USD или RUB. Это сделано чтобы, избежать высокой волатильности криптовалют, особенно если ICO проводится на длинной дистанции.
full member
Activity: 364
Merit: 102
[Proof-of-contract protocol]
Для чего это нужно?
Например, для проведения ICO где стоимость токена привязана к фиату
   ----- пока такого не встречал, чтобы цена во время ICO привязывалась к фиату. Первична всегда крипта - например, за 1 эфир дают 400 каких-то токенов. Хотя где-то может и проводят подобные ICO, за всем не уследишь)
member
Activity: 134
Merit: 10
Добрый день, господа разработчики


В настоящее время мы делаем сервис, который позволит вашим смарт-контрактам получать курсы криптовалют к фиатным валютам в рамках одной транзакции. Например, курс ETH/USD или BTC/RUB и т.д.

Для чего это нужно?
Например, для проведения ICO где стоимость токена привязана к фиату

Мы бы хотели предложить вам потестировать данный сервис

Мы создали смарт-контракт в тестовой сети rinkeby, который возвращает курс ETH/USD.
Курс обновляется приблизительно 1 раз в 3-7 минут на основании API Etherscan

Ниже расположен пример смарт-контракта, обращающийся к нашему сервису:


Code:
pragma solidity ^0.4.13;

contract AbstractDRate {
    
    function getUSDRate() payable returns(uint);
}

contract Test2DRate {
    uint public USDRate;
    
    
  function test() payable returns(uint) {
    address  addressOfDRate = 0x0F196688e8289ceB6f3cF0A3F3e67f1e2B0F5E55;
      
    USDRate = 0;
    
    AbstractDRate my_DRate;  
    my_DRate = AbstractDRate(addressOfDRate);
    USDRate = my_DRate.getUSDRate.value(msg.value)(); // 0.01 ETH minimum
  }
}


В ваш смарт-контракт вам необходимо добавить абстрактный класс контракта:

Code:
contract AbstractDRate {
 
    function getUSDRate() payable returns(uint);
}

Далее в коде вашего контракта вы создаете объект:

Code:
AbstractDRate my_DRate;  
my_DRate = AbstractDRate(addressOfDRate);
   
где addressOfDRate это адрес нашего контракта в тестовой сети rinkeby (0x0F196688e8289ceB6f3cF0A3F3e67f1e2B0F5E55)

Далее вы можете обращаться к методу getUSDRate, который будет возвращать вам курс ETH/USD в центах
Вызов данного метода требует оплаты 0.01 ETH (тестовый эфир в rinkeby)

То есть вся строка вызова выглядит следующим образом:

Code:
my_DRate.getUSDRate.value(msg.value)();

где msg.value это сумма в ETH, которая будет отправлена. Её вам надо передать при вызове функции test данного смарт-контракта


Хотелось бы услышать ваши комментарии и замечания, а также интересен ли вам подобный сервис в основной сети Ethereum?
Jump to: