В предыдущем посте Что такое атомарные свопы? описан один из возможных вариантов реализации протокола атомарного свопа. Этот протокол был разработан и реализован командой Komodo Platform. Если интересно, можете скачать приложение или сбилдить проект из исходного кода и потестить.
Сейчас идет активная работа над новой версией протокола атомарного свопа — trading protocol upgrade v2 (TPU v2).
На текущий момент TPU v2 поддерживает атомарные свопы для UTXO-монет (в разработке, еще не в продакшене). Это значит, что уже можно обменивать пары монет формата UTXO<->UTXO
(монета мейкера <-> монета тейкера). Поддержка для EVM-совместимых монет также находится в разработке и появится в ближайшее время.
Хочу показать логи примера работы tpu v2 на стороне тэйкера для пар:
- MARTY <-> SEPOLIA
- SEPOLIA <-> MARTY
MARTY — это UTXO-монета. SEPOLIA — это монета EVM-совместимой сети.
Этот пост не является полноценной статьей с детальным разбором процесса — такой материал будет позже (когда-нибудь в прекрасном будущем). Сейчас просто показываю. Рекомендую сначала прочитать предыдущий пост, а затем вернуться сюда.
Хочу дать пару вводных вопросов на подумать:
- Кто первым инициирует своп: мейкер или тейкер?
- Отправляется ли DEX fee отдельной транзакцией?
Помните ниже приведены логи со стороны пользователя, который выступает в роли тейкера. В первом примере основная монета тейкера — EVM-совместимая, а во втором — UTXO.
Итак MARTY/SEPOLIA
· 2024-12-04 12:57:15 +0700 [] lp_ordermatch:3255] Entering the taker_swap_loop MARTY/SEPOLIA with uuid: 26bbcbbb-9d5b-42e0-ba7d-775220dd3be1
04 05:57:17, mm2_main::lp_swap::taker_swap_v2:991] INFO Taker swap 26bbcbbb-9d5b-42e0-ba7d-775220dd3be1 has successfully started
04 05:57:19, coins::eth:2795] INFO get_gas_price…
04 05:57:21, coins::eth:2767] INFO get_addr_nonce…
04 05:57:21, coins::eth:2805] INFO send_raw_transaction…
04 05:57:22, coins::eth:2812] INFO wait_for_tx_appears_on_rpc…
04 05:57:26, mm2_main::lp_swap::taker_swap_v2:1257] INFO Sent taker funding SEPOLIA tx c32dff86aaf180a9ff56bbe682293a6cf4def88bc0d9803c6802b1dc106065e1 during swap 26bbcbbb-9d5b-42e0-ba7d-775220dd3be1
04 05:57:27, coins::utxo::rpc_clients:130] INFO Waiting for tx 9bbe8789bda3fc0870648b1264a16eda0189c8c52f1a9a42e047c5621a2e7e82 confirmations, now 0, required 1, requires_notarization false
04 05:57:37, coins::utxo::rpc_clients:130] INFO Waiting for tx 9bbe8789bda3fc0870648b1264a16eda0189c8c52f1a9a42e047c5621a2e7e82 confirmations, now 0, required 1, requires_notarization false
04 05:57:48, coins::eth:2795] INFO get_gas_price…
04 05:57:49, coins::eth:2767] INFO get_addr_nonce…
04 05:57:50, coins::eth:2805] INFO send_raw_transaction…
04 05:57:51, coins::eth:2812] INFO wait_for_tx_appears_on_rpc…
04 05:57:56, mm2_main::lp_swap::taker_swap_v2:2023] INFO Sent taker funding spend (taker payment spend) SEPOLIA tx 1ed29e7cd56092647a57e1b7fcc80b7bb2933b17a6c4f268a1df18f1a79f3340 during swap 26bbcbbb-9d5b-42e0-ba7d-775220dd3be1
04 05:58:15, mm2_main::lp_swap::taker_swap_v2:1717] INFO Found taker payment spend SEPOLIA tx 9b234933d8b0f720f233689eae28ca274907a50820e320f116bd9f417d934e40 during swap 26bbcbbb-9d5b-42e0-ba7d-775220dd3be1
04 05:58:15, mm2_main::lp_swap::taker_swap_v2:2119] INFO Spent maker payment MARTY tx a8005fc205fd6e374bb6b70eee47bfad16cea2b1b03c8f2225f2c95b888505f9 during swap 26bbcbbb-9d5b-42e0-ba7d-775220dd3be1
04 05:58:15, coins::utxo::rpc_clients:130] INFO Waiting for tx a8005fc205fd6e374bb6b70eee47bfad16cea2b1b03c8f2225f2c95b888505f9 confirmations, now 0, required 1, requires_notarization false
04 05:58:26, coins::utxo::rpc_clients:130] INFO Waiting for tx a8005fc205fd6e374bb6b70eee47bfad16cea2b1b03c8f2225f2c95b888505f9 confirmations, now 0, required 1, requires_notarization false
04 05:58:36, mm2_main::lp_swap::taker_swap_v2:2355] INFO Swap 26bbcbbb-9d5b-42e0-ba7d-775220dd3be1 has been completed
SEPOLIA/MARTY
· 2024-12-04 13:23:11 +0700 [] lp_ordermatch:3255] Entering the taker_swap_loop SEPOLIA/MARTY with uuid: 9a56a3e8-a54a-49b8-a65d-86593e77d504
04 06:23:14, mm2_main::lp_swap::taker_swap_v2:991] INFO Taker swap 9a56a3e8-a54a-49b8-a65d-86593e77d504 has successfully started
04 06:23:16, mm2_main::lp_swap::taker_swap_v2:1257] INFO Sent taker funding MARTY tx 9ff980cfa9574d9280ee9fc1f686ad4b60f5f5ad851bfa2314de14eacee59f62 during swap 9a56a3e8-a54a-49b8-a65d-86593e77d504
+--- 04 06:23:24 -------
| (0:00/43:06) [SEPOLIA] Waiting for confirmations…
· 2024-12-04 13:23:47 +0700 [SEPOLIA] Waiting for confirmations… Confirmed.
04 06:23:47, mm2_main::lp_swap::taker_swap_v2:2023] INFO Sent taker funding spend (taker payment spend) MARTY tx 8501c52432a4f9cd27090841357ded67c6a948f01c1b67bd2ca4b0935a2496d0 during swap 9a56a3e8-a54a-49b8-a65d-86593e77d504
04 06:24:18, mm2_main::lp_swap::taker_swap_v2:1717] INFO Found taker payment spend MARTY tx c3ac45d45cac571068a6237bc8d976195713949b424a95914ba3d2d7d5f04461 during swap 9a56a3e8-a54a-49b8-a65d-86593e77d504
04 06:24:18, coins::eth:2795] INFO get_gas_price…
04 06:24:19, coins::eth:2767] INFO get_addr_nonce…
04 06:24:20, coins::eth:2805] INFO send_raw_transaction…
04 06:24:21, coins::eth:2812] INFO wait_for_tx_appears_on_rpc…
04 06:24:24, mm2_main::lp_swap::taker_swap_v2:2119] INFO Spent maker payment SEPOLIA tx 0bfb6a18f699e12b3063641a64565f53134798610d46b32f9fb63d390630611b during swap 9a56a3e8-a54a-49b8-a65d-86593e77d504
+--- 04 06:24:25 -------
| (0:00/518:46) [SEPOLIA] Waiting for confirmations…
+--- 04 06:24:48 -------
| (0:23/518:46) [SEPOLIA] Waiting for confirmations…
· 2024-12-04 13:24:58 +0700 [SEPOLIA] Waiting for confirmations… Confirmed.
04 06:24:58, mm2_main::lp_swap::taker_swap_v2:2355] INFO Swap 9a56a3e8-a54a-49b8-a65d-86593e77d504 has been complete
Top comments (0)