209 похожих чатов

Всем привет! У меня есть контракт, в который можно вводить и

выводить токены. Внутри вычисляется процент, который остается в контракте. Этот процент указывается овнером. Как сделать так, чтобы этот процент мог быть не целым? к примеру 0.1%

11 ответов

11 просмотров

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

Johan-Liebert Автор вопроса
cryshado
Ну сохрани 10 и дели на 100, чтобы узнать реальный...

а что это за ссылка? там нет sol контрактов

Johan Liebert
а что это за ссылка? там нет sol контрактов

У тебя контракт на солане, чат про EVM контракты, а ссылка вообще на контракт под TVM (тон) 🙂

Например что бы можно было сделать 2 знака после запятой, например так 0.01, то мы условимся что 10000 - это 100%, тогда 10 - это 0.1%. В расчётах примерно так tokens * percent / 10000

/** * @param amount number from whom we take fee * @param scale scale for rounding. 100 is 1/100 (percent). we can encreace scale if we want better division (like we need to take 0.5% instead of 5%, then scale = 1000) */ function calculateFee(uint256 amount, uint256 scale) internal view returns (uint256) { uint a = amount / scale; uint b = amount % scale; uint c = promille_fee / scale; uint d = promille_fee % scale; return a * c * scale + a * d + b * c + (b * d + scale - 1) / scale; }

Sam Becket
/** * @param amount number from whom we ...

последняя строчка округляет net до ближайшего целочисленного значения (в большую сторону) с точностью до 18 знаков после запятой я использовал эту функцию для высчета суммы комиссии (которую потом вычитал) p.s. последнюю строчку я скопипастил со стэковерфлоу и не имею ни малейшего понятия как она работает, но работает

Sam Becket
/** * @param amount number from whom we ...

так же с помощью этой штуки можно брать и более мелкие проценты и работать с пылью

Alex Korolev
Что даёт "internal view"?

Internal подразумевает что это прост служебная функция контракта которая видна только внутри

Johan-Liebert Автор вопроса
Sam Becket
последняя строчка округляет net до ближайшего цело...

то есть все равно не получается идеально точное значение сделать

Похожие вопросы

Обсуждают сегодня

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта