# Смарт-контракт для обмена валют Контракт позволяет пользователю обменивать криптовалюты на его кошельке с одной на другую. Для упрощения курс криптовалют фиксирован и задается при создании контракта. Курсы доступных валют: | | | |:--------:|:--------:| | XMR | 152.1 | | XRP | 0.6035 | | ADA | 0.5793 | | AVAX | 39.69 | | BNB | 308.3 | | BTC | 46648.92 | | ETH | 2623.0 | | SOL | 101.18 | ### Пополнение кошелька ``` $ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet.json <номер контракта> topUp <учетная запись> <валюта> <сумма пополнения> ``` `<учетная запись>` - адрес пользователя, например NVTiAjNgagDkTr5HTzDmQP9kPwPHN5BgVq `<валюта>`- аббревиатура названия валюты `<сумма>`- целое количество токенов для перевода на кошелек Функция пополняет кошелек на указанную сумму. Возвращает `true`, если выполнилась успешно и `false` иначе. ### Обмен валют ``` $ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet.json <номер контракта> exchange <учетная запись> <сумма обмена> <валюта 1> <валюта 2> ``` `<сумма>`- целое количество токенов для обмена `<валюта 1>`- валюта из которой выполняется перевод `<валюта 2>`- валюта в которую выполняется перевод Функция производит обмен валют и выводит об этом сообщение. Возвращает `true`, если выполнилась успешно и `false` иначе. ### Проверка баланса валюты ``` $ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet.json <номер контракта> getTokenBalance <учетная запись> <валюта> ``` Функция возвращает целое число токенов указанной валюты на кошельке. ### Вывод баланса валют на кошельке ``` $ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet.json <номер контракта> printWallet <учетная запись> ``` Функция выводит в консоль все имеющиеся в кошельке валюты и их баланс.