8a04474934
Created new state var amountRangeEnabled to control the new switch when advanced options is enabled. Created memo var makerHasAmountRange to control boolean state of amount exact/range switch using maker.advancedOptions and amountRangeEnabled. Used makerHasAmountRange instead of maker.advancedOptions when testing if maker is using amount range or exact amount (changeds places: handleCreateOrder, disableSubmit, amountToString in SummaryText, and in the Amount fields). Change the default value of amountRageEnabled Changed the default value of state var "amountRageEnabled" to true, and removed unnecessary use of the method "setAmountRangeEnabled" when chaging between advanced and default options. Fix style of switch Exact/Range Amount Fixing the style of the div of the "Exact/Range Amount" Switch removing the unecessary "width" and "height" props and adding a negative marginTop to reduce the gap between buy/sell buttons and the amount input commented in the PR, and added a padding bottom to the label of the amount (exact) to not hide the switch. Inverting the position of the icon to match the style of the "Advanced Options" Switch. Fixing the title from tooltip of the switch (the order of the titles was inversed and the text of the Exact Amount was wrong). Define style of Exact/Range Amount Switch Last change in the style of the new Exact/Range Amount Switch, following the review recommendations. |
||
---|---|---|
.github | ||
api | ||
chat | ||
control | ||
docker | ||
docs | ||
frontend | ||
mobile | ||
nodeapp | ||
robosats | ||
scripts | ||
.dockerignore | ||
.editorconfig | ||
.env-sample | ||
.flake8 | ||
.gitignore | ||
.pre-commit-config.yaml | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE | ||
manage.py | ||
pyproject.toml | ||
README.md | ||
requirements.txt | ||
setup.md | ||
version.json |
RoboSats - Buy and sell Satoshis Privately
RoboSats is a simple and private way to exchange bitcoin for national currencies. Robosats simplifies the peer-to-peer user experience and uses lightning hold invoices to minimize custody and trust requirements. The deterministically generated avatars help users stick to best privacy practices.
Try it out!
Bitcoin Mainnet
- TOR URL: RoboSats6tkf3eva7x2voqso3a5wcorsnw34jveyxfqi2fu7oyheasid.onion ( Open with Tor Browser)
- Clearnet URL: unsafe.robosats.com (not recommended!)
- Clearnet Mirrors: unsafe2 || unsafe3 (not recommended!)
Always use Tor Browser and .onion for best privacy. The Clearnet URL redirects to a third party Tor2web service. Your privacy cannot be guaranteed to be respected. Use clearnet only to check around the app, never use for trading!
How to use it
Written guides
Video guides
How it works
Alice wants to buy satoshis privately:
- Alice generates an avatar (AdequateAlice01) using her private random token.
- Alice stores safely the token in case she needs to recover AdequateAlice01 in the future.
- Alice makes a new order and locks a small hold invoice to publish it (maker bond).
- Bob wants to sell satoshis, sees Alice's order in the book and takes it.
- Bob scans a small hold invoice as his taker bond. The contract is final.
- Bob posts the traded satoshis with a hold invoice. While Alice submits her payout invoice.
- On a private chat, Bob tells Alice how to send him fiat.
- Alice pays Bob, then they confirm the fiat has been sent and received.
- Bob's trade hold invoice is charged and the satoshis are sent to Alice.
- Bob and Alice's bonds return automatically, since they complied by the rules.
- The bonds would be charged (lost) in case of unilateral cancellation or cheating (lost dispute).
Contribute to the Robotic Satoshis Open Source Project
Check out our Contribution Guide to find how you can make RoboSats great.
⚡Developer Rewards ⚡
Check out the Developer Rewards Panel for tasks paid in Sats.
Sponsors
Inspiration
The concept of a simple custody-minimized lightning exchange with hold invoices is inspired in P2PLNBOT by @grunch
License
The Robotic Satoshis Open Source Project is released under the terms of the AGPL3.0 license. See LICENSE for more details.