Immortal Articles
December 17, 2022

Транзакция с 0 fees /// v1.0

Отправляем транзакцию в cosmos-based сетях с нулём комиссии на примере Quicksilver.


Есть токены с генезиса, но они все залоченные, то есть нетрансферабельные.

Как же оплатить транзакцию того же делегирования, если Keplr просит оплатить комиссию трансферабельными токенами, которых у нас попросту не может быть?

Гениальный мув от команды Quicksilver, похлопаем.

Решение простое: добавить сеть в кеплер с кастомным рпц, нода которого принимает транзакции с 0 fees.

РЕШЕНИЕ ПРОБЛЕМЫ

Первым делом импортируем кошель в Keplr по мнемонике из тестнета.

Если ваше расширение успело обновиться до v0.11.25 (где подвезли нативную поддержку Quicksilver сети), то вам потребуется удалить экстеншн, затем скачать предыдущую версию, v0.11.24, и установить расширение из zip-архива.

Разумеется, если у вас много импортированных кошельков, то можно воспользоваться другим браузером или другим профилем, чтобы не восстанавливать все кошельки заново.

К сожалению, если расширение успело обновиться, то удалить дефолтную Quicksilver сеть не получится, нужна версия v0.11.24 или ниже.

Теперь нам нужно добавить сеть quicksilver-1 в Keplr, для этого воспользуемся тулзой от акселара. Вставляем в поле конфиг нашего квиксильвера:

{
    "chainId": "quicksilver-1",
    "chainName": "quicksilver-m",
    "rpc": "http://quick.cyberomanov.tech:11241",
    "rest": "https://quick.api.m.stavr.tech",
    "bip44": {
        "coinType": 118
    },
    "coinType": 118,
    "bech32Config": {
        "bech32PrefixAccAddr": "quick",
        "bech32PrefixAccPub": "quickpub",
        "bech32PrefixValAddr": "quickvaloper",
        "bech32PrefixValPub": "quickvaloperpub",
        "bech32PrefixConsAddr": "quickvalcons",
        "bech32PrefixConsPub": "quickvalconspub"
    },
    "currencies": [
        {
            "coinDenom": "uqck",
            "coinMinimalDenom": "uqck",
            "coinDecimals": 6,
            "coinGeckoId": "unknown"
        }
    ],
    "feeCurrencies": [
        {
            "coinDenom": "uqck",
            "coinMinimalDenom": "uqck",
            "coinDecimals": 6,
            "coinGeckoId": "unknown"
        }
    ],
    "stakeCurrency": {
        "coinDenom": "uqck",
        "coinMinimalDenom": "uqck",
        "coinDecimals": 6,
        "coinGeckoId": "unknown"
    },
    "gasPriceStep": {
        "low": 0,
        "average": 0.025,
        "high": 0.03
    },
    "features": []
}

И добавляем сеть в кеплер:

Не апрувим, а нажимаем Add chain as suggested:

А теперь апрувим. Если добавилась сеть Quicksilver, то удаляем её и начинаем заново процедуру. Нам нужна сеть quicksilver-m.

Супер, сеть добавлена. Теперь попробуем заделегировать наши нетрансферабельные токены с 0 fees.

Переходим по ссылке и выбираем любого валидатора. Я показывать буду на своём, делегации приветствуются. Нажимаем Delegate:

Затем коннектим кошелёк:

Отлично, аккаунт добавлен. Теперь нужно вернуться на страницу с кнопкой Delegate и попытаться заделегировать с 0 fees.

Обязательно открываем Advanced настройки и выставляем Fee - 0, Gas - 250k.

Обязательно выбираем Low:

Возможно, придётся подождать несколько минут, пока транзакция с 0 fees (с меньшим приоритетом) долетит до блокчейна, но в итоге мы лутаем транзакцию с 0 fees.

БЛАГОДАРНОСТИ

мамичу за то, что родила такого гения.

ПОЛЕЗНЫЕ РЕСУРСЫ

@how_to_node - канал, где я выкладываю свои гайды.

Полезные ресурсы.

Крипто-кошельки автора гайда.