Coder Social home page Coder Social logo

atomex-me / atomex.client.core Goto Github PK

View Code? Open in Web Editor NEW
11.0 4.0 11.0 2.87 MB

Atomic swap exchange client core library

License: GNU General Public License v3.0

C# 100.00%
atomic-swap dotnet net-standard cryptocurrency wallet cryptowallet bitcoin ethereum tezos litecoin

atomex.client.core's Introduction

Atomex Client Core library

Made With License: GPL v3

Atomex is a hybrid exchange based on atomic swap technology and multicurrency HD wallet. This repository contains crossplatform .NET standard Atomex.Client.Core library.

atomex.client.core's People

Contributors

a1excoon avatar dmirgaleev avatar groxan avatar k-karuna avatar m-kus avatar matsakiv avatar maxima-net avatar mismirnov avatar skubarenko avatar vvuwei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

atomex.client.core's Issues

Collectibles page

Отличие от обычных токенов в том что нужен предпросмотр картинки + на странице токена картинка крупным планом. Balance и amount при отправке это всегда целые числа.

image.png

image.png

Optimize updating balances for all currencies

For some currencies such as USDT, updating balances is slow when there are a large number of transactions. It is necessary to remove unnecessary calls to the database and make the most of the information obtained earlier for optimization. In BTC replace the calculation of the balance for transits with requests to API.

What if I wanted to explore many addresses for other currencies like Tezos and Ethereum.

  • My use case is that I have generated many addresses programatically using and I have a mnemonic.

  • I use the addresses to receive payments. One address per payment.

  • Using your wallet I can see it explores more paths for bitcion so I'm able to see all the addresses that have actually received paymen.t

  • But for other currencies like Tezos and Ethereum, I am not able to see for all since it only explores the first two paths for them.

  • Is there any settings I can use to modify the number of paths explored

  • Or maybe if not could you point me to a part of the code where I can make such changes and use just for my use case.

Thanks.

Create client for ChainSo Realtime API

I as developer want to use ChainSo Realtime API for getting notifications about balance updates in BTC and LTC chains (including testnets) for specified addresses.

Insecure secret generation based on current time

https://www.thegeeksearch.com/leap-seconds-in-linux/

Linux handles leap seconds by replaying seconds, not smearing them. Because of that, this has a chance to generate existing secrets on such events.

It also generally can't be guaranteed that clocks are atomically advanced. While C# may offer that guarantee, I do know Rust has specific code in its time handler to ensure only fresh values are returned.

Finally, if more than 1000 swaps are made per second, this will also fail.

Solution to all of the above is a global variable which keeps track of the last used time, compared any freshly grabbed time values to it, and if they're older, uses the latest one plus 1 ms. That said, this will break if you reboot, as you'll lose context on how you're operating with future time values. Saving this value to disk and loading it at the start would work. In order to minimize future drift, you can also differentiate each millisecond with an i value, referring to how many requests were handled for that millisecond. That said, you'll need to save the latest millisecond and the i.

It should not be feasible to exploit either of these due to how there's no nearby leap second and because the initiator generates the secret, meaning any flood (legit or illegitimate) against your servers of swap requests would only put the requester at risk. You would have to run malicious code to take advantage of this under your current setup. That said, this does potentially break the atomic promise of swaps by using known secrets, so it should be fixed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.