Commit Graph

125 Commits

Author SHA1 Message Date
noot
ea8bae1416 feat: add dockerfile (#387)
Co-authored-by: Dmitry Holodov <dimalinux@protonmail.com>
2023-04-21 15:37:10 -05:00
noot
dbcc97f9c1 feat: add bootnode binary (#397) 2023-04-21 12:52:07 -04:00
noot
f344d09fc6 add AUTHORS file and update copyright in license header (#389) 2023-04-18 12:25:30 -04:00
Dmitry Holodov
15b8378c76 ERC20 balance support (#380)
* Added --token flag to swapcli's balances request allowing the user to query their token balance
* --eth-asset flag on swapcli make changed to --token
* Added TokenInfo RPC API method to retrieve an ERC20 token's metadata
* Added an end-to-end ERC20 unit test to the daemon package
* Fixed ERC20 token approval amount to SwapCreator contract to use the minimum value required (instead of approving the entire user's balance for transfer by the contract)
* Fixed a race condition between concurrent contract calls to approve/new_swap in ERC20 token swaps
* Removed hard coded assumptions that all tokens have 18 decimals
* Maked the decimal places in our test ERC20 token configurable
* Fixed token exchange rate calculations
* Updated ongoing and past swap queries to correctly support ERC20 tokens
* Initial unit tests in swapcli's main package
2023-04-17 11:59:47 -05:00
Matt
8bd9281a4e swapd version & shutdown (#379) 2023-04-14 17:35:00 -05:00
Dmitry Holodov
a17f95d414 SwapFactory to SwapCreator rename, upgrade to solc 0.8.19 (#372) 2023-04-09 03:08:17 -05:00
Dmitry Holodov
7fef2d7b76 XMR taker is relayer of last resort for the maker (#366)
Co-authored-by: noot <36753753+noot@users.noreply.github.com>
2023-04-05 20:16:41 -05:00
noot
4545aff7cd remove swap_refund in favour of swap_cancel (#371) 2023-04-04 20:52:27 -04:00
noot
b26228805c add license header to files; update readme disclaimer (#368) 2023-04-04 13:12:12 -04:00
noot
bf0443c5bc xmrmaker: check if swap was completed already when restarting swap (#361) 2023-04-01 18:04:28 -04:00
Dmitry Holodov
528715b602 swapd daemon setup/start decoupled from CLI parsing (#354) 2023-03-25 19:18:51 -05:00
noot
58d94723e1 add estimated time for swap to complete for swap_getOngoing (#351) 2023-03-20 22:49:17 -04:00
noot
310bafbc7e update swap_getPast to match swap_getOngoing; update docs (#350) 2023-03-19 20:27:31 -04:00
Dmitry Holodov
0e80eee4dc integrated relayer into swapd (#342) 2023-03-17 14:22:16 -05:00
noot
baea93c839 fix xmrmaker exit when claim fails (#347) 2023-03-11 23:03:01 -06:00
doonte
98f4e91ba1 Make subscribing the default behavior with --detached (#345) 2023-03-07 16:40:11 -05:00
Dmitry Holodov
51d89a4d18 added more required tags to serialized structs (#330) 2023-02-28 22:41:03 -06:00
noot
b097cbbba4 add timeouts to swap.Info (#331)
Co-authored-by: Dmitry Holodov <dimalinux@protonmail.com>
2023-02-27 20:31:03 -05:00
noot
f7d244754c update relayer fee to be fixed at 0.009 ETH (#316) 2023-02-25 13:04:58 -05:00
Dmitry Holodov
1d7c00a8ed dedicated monero address type (#327)
Adds custom type for monero addresses with better validations.
2023-02-25 11:18:16 -06:00
noot
59eaccaa0c feat: add start/end times to swap.Info and swap RPC returns (#317) 2023-02-22 09:59:47 -05:00
Dmitry Holodov
8ca306af68 added JSON marshaling support to the Status type (#323) 2023-02-22 09:25:28 -05:00
Dmitry Holodov
3d92587e21 added address QR code feature to swapcli (#313) 2023-02-20 22:20:13 -06:00
Dmitry Holodov
94a67b9949 swapd error on subcommand (#311) 2023-02-20 15:05:38 -06:00
noot
19c89ba5a5 add timestamps to status updates in swapcli make/take (#308)
Co-authored-by: Dmitry Holodov <dimalinux@protonmail.com>
2023-02-19 16:45:03 -05:00
Dmitry Holodov
c5dacd1b59 fixes mock generation and attempts to fix TestDaemon_PersistOffers (#303)
* fixes mock generation
* ensures mock generation is working in CI for future PRs
* attempts to fix TestDaemon_PersistOffers failures deleting its temporary data directory
* updates some library dependencies
2023-02-09 07:53:14 -06:00
Dmitry Holodov
bb9a50dd7f upgrade linter (#297)
Upgraded linter to 1.50.1 and improved protocol documentation.
2023-02-07 22:31:06 -06:00
noot
17ab2f11ff feat: add relayer discovery and transaction submission via network (#291)
Co-authored-by: Dmitry Holodov <dimalinux@protonmail.com>
2023-02-03 19:01:32 -05:00
Dmitry Holodov
d2f6079a49 rounding fixes (#292)
* Fixed apd.Decimal tests to see if rounding occurred to use "Inexact"
* calculateRelayerCommission rounds to nearest wei
* Updated our pricefeed tests to read environment variable for the ETH mainnet endpoint if set
2023-01-30 16:20:29 -06:00
Dmitry Holodov
82a3f884d4 reduce monero wallet contention (#285)
Сreates a new monero-wallet-rpc instance for temporary swap wallets, eliminating the need for monero wallet locks.
2023-01-29 14:10:23 -06:00
noot
ba9f0298c9 fix: minor log fixes (#289) 2023-01-26 00:47:47 -05:00
noot
ea43b6a86c feat: implement swap relayer cmd package (#282) 2023-01-25 01:17:55 -05:00
Janaka-Steph
d13521daef Modify scripts to run on MacOS (#233)
Updates scripts/docs to support macOS as well as Linux/aarch64 (arm64)
2023-01-16 14:05:35 -06:00
Dmitry Holodov
b78cf06870 check ethereum chain ID (#278)
validates that the expected chain ID for the given environment matches the chain ID returned by the ethereum endpoint
2023-01-14 14:20:02 -06:00
noot
8e1db226fd implement suggested exchange rate (#262)
Pulls chainlink's ETH and XMR price feeds to create suggested exchange rates.
Co-authored-by: Dmitry Holodov <dimalinux@protonmail.com>
2023-01-12 22:50:52 -06:00
Dmitry Holodov
2905d1b1f9 Fixed Point Math (#269)
Updates our code to use the fixed point match library apd.Decimal.
2023-01-10 16:03:22 -06:00
noot
5068dab46a remove previous net/* contents, move net/swapnet/* to net/ (#270) 2023-01-09 17:09:11 -05:00
noot
3ef8ae9427 refactor net package to separate generic and swap-specific functionality (#268) 2023-01-08 09:59:34 -05:00
Dmitry Holodov
6e146f0dc5 support fallback monero nodes in default configs (#265)
Allows configuring multiple monerod nodes in our default configs. They get tried sequentially and the first one that works gets used.
2022-12-20 15:10:40 -06:00
Dmitry Holodov
ed15ed9c82 libp2p QUIC and NAT traversal features (#251)
Enables additional libp2p NAT traversal features and enables nodes to communicate using UDP/QUIC in addition to TCP. Switches to using libp2p's "routed host". Most commands that previously accepted multiaddress values now accept a Peer IDs instead.
2022-12-19 18:25:24 -06:00
phazejeff
b6f07845b9 feat: get-swap-timeout functionality (#260) 2022-12-19 14:59:30 -05:00
Dmitry Holodov
1e83673f23 add package comments (#236)
package comments added to all packages
2022-12-02 00:43:32 -06:00
noot
4d95c4d9a9 implement get-offers for swapcli (#248) 2022-12-01 11:24:33 -05:00
Dmitry Holodov
7dd84a1d77 Cleanup RPC posting (#241)
* Moves RPC posting out of the `rpctypes` package making it a member function of the RPC client type
* Does proper context handling when making http POSTs
* Handles JSON serialization/deserialization in the POST method, simplifying code for callers
* Takes advantage of the Gorilla JSON-RPC 2.0 client library which simplifies error handling
* Updates HTTP transport to use DialContext in place of the deprecated Dial
2022-11-29 22:36:34 -06:00
noot
cac8928e22 implement auto-recover for xmrmaker (#235) 2022-11-22 07:14:44 -05:00
noot
04cd5b4809 store swap recovery information in database, remove "infofile" (#227) 2022-11-19 10:52:15 -05:00
noot
591046e787 handle decimals of ERC20 tokens properly (#231) 2022-11-18 18:45:10 -05:00
Dmitry Holodov
ec89cd684a misc fixes (#232)
* Relayer now runs as a dedicated binary in integration tests
* Binaries are now in `bin/` folder
* Removed warnings in our github actions
* Libp2p libs updated
* Signal handling improvements
* xmrmaker instance locking fix added
2022-11-18 16:47:16 -06:00
Dmitry Holodov
bfefd3bb45 rework backend wallet interfaces (#224)
Refactored the Monero and Ethereum wallet/node sub-interfaces into a has-a relationship with the backend.
2022-11-14 18:19:20 -06:00
noot
36518eae87 persist swap info to disk (#213) 2022-11-07 14:42:35 -05:00