Size: a a a

2017 August 29

AE

Alexey Elizarov in DeСenter Dev
без пояснения на словах эти расчеты выглядят странными.
к тому же, почему бы им не происходить при деплое или в каком нибудь методе
источник

AG

Alexey Gebbels in DeСenter Dev
Ой, случайно не туда кинул)
источник

AG

Alexey Gebbels in DeСenter Dev
Alexey Elizarov
без пояснения на словах эти расчеты выглядят странными.
к тому же, почему бы им не происходить при деплое или в каком нибудь методе
uint256 tokens = weiAmount.mul(rate);
Читаю эту строку и не могу разобрать. (Это из примера DeCenter)

Например, хочу купить Токены на 2.5 ether, по курсу 9.5 за токен. (2.5 ether * 9.5) = tokens
Учитывая, что все в wei по молчанию: (2.5 * (10^18)) * 9.5 = tokens  - как хранить в массиве коэффициенты, записывать их с 18ю нулями?
источник

AE

Alexey Elizarov in DeСenter Dev
msg.value в wei, поэтому нужно только рейт перевести в wei
источник

AE

Alexey Elizarov in DeСenter Dev
mapping(address => uint256) public tokens
источник

AE

Alexey Elizarov in DeСenter Dev
и зачем нужен массив коэффициентов?
источник

AG

Alexey Gebbels in DeСenter Dev
У меня все коэффициенты хранятся в массиве.

То есть для того, чтобы хранить коэффициенты - нужно каждый из них умножить на 10**18.
Таким образом msg.value * coef = tokens
(чтобы получить правильное значение токенов - tokens / weiPerToken)
источник

AG

Alexey Gebbels in DeСenter Dev
То, что msg.value автоматически в wei понятно. И что для того, чтобы в конце получить правильное кол-во токенов нужно конечный результат преобразовать делением на weiPerToken.

Непонятно как записать хранимые коэффициенты с плавающей запятой.
источник

AE

Alexey Elizarov in DeСenter Dev
под коэффициентами вы имеете в виду количество токенов которое приобретено конкретным адресом?
источник

AE

Alexey Elizarov in DeСenter Dev
или какие то коэффициенты которые меняются в зависимости от условий, если так то да, храните в wei, чтобы меньше газа тратить при расчетах в момент оплаты
источник

AG

Alexey Gebbels in DeСenter Dev
Второй вариант.
В том то и дело, что я не могу сообразить, как коэф. 9.5 хранить в wei...
Не подскажите, как это записать?
источник

RP

Roman P. in DeСenter Dev
не храните коэффициент в wei, а то квадратные wei получите %)
источник

AG

Alexey Gebbels in DeСenter Dev
Окей. Как тогда получить из 2.5 ether * coef (например 9.5) правильное число токенов, т.е 23.75?
источник

AG

Alexey Gebbels in DeСenter Dev
Тут либо все в wei, чтобы все в итоге преобразовать, либо я понятия не имею.
источник

AE

Alexey Elizarov in DeСenter Dev
Roman P.
не храните коэффициент в wei, а то квадратные wei получите %)
почему?
источник

AE

Alexey Elizarov in DeСenter Dev
во первых вы коэффициенты свои откуда берете?
возьмите из расчета количество токенов за 1 eth
умножьте на 1e18
получили weiPerToken

если у вас там какой то кросскурс выходит, то стоит описать задачу, а то вы вокруг да около ходите
источник

RP

Roman P. in DeСenter Dev
Alexey Elizarov
почему?
там выше эфиры умножались на 9.5 (коэффициент). Эфиры в веях - логично, но умножать веи на веи не надо, что за квадратный литр )
источник

AE

Alexey Elizarov in DeСenter Dev
а умножать wei на wei вообще конечно реально огромные числа выходят, ту деление нужно
источник

RP

Roman P. in DeСenter Dev
* 95 / 10
источник

AG

Alexey Gebbels in DeСenter Dev
Alexey Elizarov
во первых вы коэффициенты свои откуда берете?
возьмите из расчета количество токенов за 1 eth
умножьте на 1e18
получили weiPerToken

если у вас там какой то кросскурс выходит, то стоит описать задачу, а то вы вокруг да около ходите
Не, коэффициенты просто хранятся в массиве.
источник