shapeshift / lib Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Implement CLI for local dev testing
we have this in web, do the same in lib
Lint test build step for lib
Implement method and tests
We are currently calling toUpperCase()
on symbol everywhere in web. Standard style is uppercase symbol anyway so we should follow that
captured in shapeshift/web#65
Implement method and tests
Once Thorchain is added, choose best quote given a set of assets.
Note: getQuote can be expensive. This may need to only happen when assets are changed. This actually probably should be getBestSwapper. More discussion is needed when we get here
Implement method and tests
We need a way to get market cap data, so we can sort assets in the UI (and display market cap obv).
Use coingecko API to get this, cache the calls, and generate static data and commit to github (like we do in the asset service) as a fallback for when clients inevitably get rate limited.
when we get an address from chain adapters, we currently need to specify a path
const address = await chainAdapter.getAddress({ wallet, path: "m/44'/60'/0'/0/0" })
most times this is the same default path. make the path a default param with the value above, and make it overridable
this is being captured in the bitcoin chain adapters branch
We are currently not showing any feedback to the user for basic trade errors, (ie: input value is less than min trade amount). We need to add some basic error handling for these states:
Copy the spec for ethereum and write all the functions needed by the interface but for BTC.
Bring over the swapper from platform-shared into lib
For example: getZrxQuote, buildZrxTx
Setup semantic release to do CI on merging to main
We will need something to get a call to get available assets using all swappers in the manager
There are going to be a few utility type functions that we want to share between packages in lib.
We don't want to define these within each package and they should live happily together.
Create a utils
package within lib to host shared functions.
this is not production ready and isn't the solution. we need to fork this repo and fix it.
I yolo'd the package version higher to get semantic release to publish.
It published based on the actually "semantic" versions it should.
Go back and change all the package.json versions to match the latest
tag published on npm.
MrNerdHair convinced us this is correct so make the change now before it's called this everywhere
This was way more agro than I anticipated. I'd hoped it would only lint the merge commit message to main
and develop
, not every commit on a branch going into them.
It doesn't seem configurable to allow this behavior.
For discussion
pros
cons
Implement method and tests
In order to sign an ETH tx, we need getAddress
to return the addressNList
. Currently, it only returns the address.
Implement method and tests
Implement method and tests
lint warnings should fail CI
We need docs that describe conventional commits: https://www.conventionalcommits.org/en/v1.0.0/
We also need a way to enforce conventional commits.
AC:
Implement method and tests
We already have a few shared types and enums between packages. These should belong in a shared/common package and will avoid circular dependencies in future.
Create a types
package within lib and move things like ChainType
NetworkType
or Asset
in there and fix in the imports in the other package.
sometimes it shows "asset service is not initialized"
also seeing this error:
GET http://localhost:3000/assets/bitcoin 404 (Not Found)
Implement method and tests
Implement method and tests
Implement method and tests
Implement method and tests
Implement getName
method and tests
Chain adapters are an abstraction layer that our applications use to hide chain specific functionality. Currently we have implemented a BitcoinChainAdapter that should be able to be made generic enough to be turned into a UTXOChainAdapter that supports all UTXO base chains (LTC, DOGE, etc)
This will require some modifications to inject chain specific dependencies via the constructor, and it's internal functionality. This will allow us to support many utxo chains in the future by instantiating a new instance of the adapter with appropriate constructor arguments.
AbstractUTXOChainAdapter
BitcoinChainAdapter
and DogecoinChainAdapter
See #289 as a reference to how this is being done for Cosmos.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.