From c0e9ffcb0ed412de2b7c01ebf0c156ec81813e83 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Thu, 5 Apr 2018 13:14:56 +0200 Subject: [PATCH] Update list-asset.adoc to reflect new process See bisq-network/bisq-core#32 --- exchange/howto/images/asset-hierarchy.png | Bin 0 -> 22643 bytes exchange/howto/list-asset.adoc | 114 ++++++++++++---------- 2 files changed, 62 insertions(+), 52 deletions(-) create mode 100644 exchange/howto/images/asset-hierarchy.png diff --git a/exchange/howto/images/asset-hierarchy.png b/exchange/howto/images/asset-hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..d6dcfdd6ff4485d08c6e6bf34674668bb6109c91 GIT binary patch literal 22643 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 Z&s%Exnp|G`lR96`@T#e9nYPp8e*o;+Vb1^n literal 0 HcmV?d00001 diff --git a/exchange/howto/list-asset.adoc b/exchange/howto/list-asset.adoc index 4531315..8ba539a 100644 --- a/exchange/howto/list-asset.adoc +++ b/exchange/howto/list-asset.adoc @@ -1,84 +1,88 @@ -= How to list a token += How to list an asset :toc: == Introduction -This document describes the process how to submit a request for adding a new altcoin or token (we use the general term _token_ in this document) to the currency list in Bisq. Adding a token does not mean any endorsement of the token. For making decisions in case of controversial requests we use the Bisq DAO voting process. The maintainers of the GH repository have the authority to merge or reject the PR based on the formal requirements but not on "political" objections (e.g. if we consider the token to be a scam, etc). +This document describes the process for listing a new ("crypto") asset on the Bisq exchange. Anyone with sufficient technical skill to follow the instructions below can list any asset. There are no fees involved in this process. -Please note that Bisq is not implementing technically any token infrastructure, e.g. wallet, full node, block explorer, etc. Rather, we only support users adding a token address as a payment account that will be used to settle a trade for bitcoin. The process of sending and receiving the token is not part of the Bisq application; traders must use their own token wallets to perform the actual transfer. +Please note that Bisq does not implement any technical infrastructure for listed assets, such as wallets, full nodes, block explorers, etc. Rather, Bisq simply supports users adding an address for any listed asset as a _payment account_ that can be used to settle trades for bitcoin. The process of sending and receiving such asset payments, like the process of sending and receiving fiat payments, is not an integrated part of the Bisq application; traders must use their own wallet software to perform actual transfers for such assets. -NOTE: This document replaces the earlier process description in the link:https://bisq.community/t/how-to-add-your-favorite-Altcoin/46[Bisq forum]. +NOTE: This document replaces the earlier process description in the link:https://bisq.community/t/how-to-add-your-favorite-Altcoin/46[Bisq forum] and the earlier document at https://bisq.network/list-token. == Prerequisites -=== Block explorer +=== The asset must have an official block explorer -The token must have an active, publicly available block explorer. +The asset must have an active, publicly available block explorer. -=== The ticker symbol does not conflict with national currency tickers +=== The asset ticker symbol must not conflict with national currency tickers The ticker symbol must not conflict with one of the national currency ISO 4217 ticker symbols listed at https://en.wikipedia.org/wiki/ISO_4217. -=== The ticker symbol does not conflict with other crypto-currency tickers +=== The asset ticker symbol must not conflict with other asset ticker symbols -The ticker symbol must not conflict with one of the top 100 cryptocurrency ticker symbols listed at: https://coinmarketcap.com/currencies at the time of PR creation. +The ticker symbol must not conflict with one of the top 100 cryptocurrency / crypto-asset ticker symbols listed at: https://coinmarketcap.com/currencies at the time of PR creation. -=== The token does not have extra requirements +=== The asset must not impose additional technical requirements -Be sure that the requirements to add the token does not cause extra effort for Bisq maintainers, e.g. requiring additional input fields because the address alone is not sufficient for a trade. +Be sure that the requirements to add the asset do not cause extra effort for Bisq maintainers, e.g. requiring additional input fields because the address alone is not sufficient for a trade. -=== Arbitrators must be able to look up transactions in the block explorer +=== Arbitrators must be able to look up transactions in the asset block explorer -The arbitrator must be able to look up transaction in the token's block explorer by using the receiver's address. In case that is not possible as a result of enhanced privacy features (Zcash, Monero, CryptoNote coins, etc) a suggested solution needs to be added to the PR (e.g. in Zcash we support only transparent addresses not z-addresses; in Monero we require that the user is using a Monero wallet which supports transaction keys to enable 3rd party audits of the transaction which is used in case of a dispute). As such additional cases require additional effort (popup with background info) it will be up to Bisq contributors whether to add a PR for the popup and translation strings. Of course the code or the popup can be part of the PR as well but a more detailed description is out of scope of this document. +A Bisq arbitrator must be able to look up transactions in the asset's block explorer by using the receiver's address. In case that is not possible as a result of enhanced privacy features e.g. in Zcash, Monero and CryptoNote coins, a suggested solution needs to be added to the asset listing pull request (e.g. in Zcash we support only transparent addresses not z-addresses; in Monero we require that the user is using a Monero wallet which supports transaction keys to enable 3rd party audits of the transaction which is used in case of a dispute). As such additional cases require additional effort (popup with background info) it will be up to Bisq contributors whether to add a pull request for the popup and translation strings. Of course the code or the popup can be part of the PR as well but a more detailed description is out of scope of this document. == Instructions -IMPORTANT: Each of the classes below reside in the https://github.com/bisq-network/bisq-core repository. You will need to fork this repository, make the specified modifications, and then submit them as a SINGLE COMMIT within a SINGLE PULL REQUEST. Please DO NOT issue several pull requests by attempting to modify the sources one by one via the GitHub web UI. You need to have a competent developer make these changes and actually run the tests. *To be extra clear:* If you don't know what a "pull request" is, or have never created one yourself, please do not attempt to follow the instructions below on your own. +IMPORTANT: Each of the steps described below deal with code in the https://github.com/bisq-network/bisq-core repository. You will need to fork this repository, make the specified changes, and then submit those changes as a SINGLE COMMIT within a SINGLE PULL REQUEST. Please DO NOT issue several pull requests by attempting to modify the sources one by one via the GitHub web UI. You need to have a competent developer make these changes and actually run the tests. *To be extra clear:* If you are unfamiliar with Java, don't know what a "pull request" is, or have never created a pull request yourself, please do not attempt to follow the instructions below on your own. -=== Step 1. Add address validation logic +=== Step 1. Implement your asset -Add code for address validation to the `validate` method in `bisq.core.payment.validation.AltCoinAddressValidator` class. +[#asset-hierarchy] +.The `bisq.asset.Asset` type hierarchy +image::images/asset-hierarchy.png[Asset Hierarchy] -=== Step 2. Add address validation tests +All assets listed on the Bisq exchange ultimately implement the https://jitpack.io/com/github/bisq-network/bisq-core/-SNAPSHOT/javadoc/bisq/asset/Asset.html[`bisq.asset.Asset`] interface. Your asset implementation will need to extend the https://jitpack.io/com/github/bisq-network/bisq-core/-SNAPSHOT/javadoc/bisq/asset/Coin.html[`Coin`], https://jitpack.io/com/github/bisq-network/bisq-core/-SNAPSHOT/javadoc/bisq/asset/Token.html[`Token`] or https://jitpack.io/com/github/bisq-network/bisq-core/-SNAPSHOT/javadoc/bisq/asset/Erc20Token.html[`Erc20Token`] subtypes as appropriate. -Add unit tests with different addresses of the token to the `bisq.core.payment.validation.AltCoinAddressValidatorTest` class and *run the tests* to ensure they pass. +TIP: The links above point to Javadoc for each respective type. Read it! -=== Step 3. Add token to currency list +TIP: Look through existing concrete `Asset` implementations for one most similar to yours and use it as a baseline. -Add an entry for the token to the `createAllSortedCryptoCurrenciesList` method in the `bisq.core.locale.CurrencyUtil` class. The first parameter is the ticker, the second parameter is the token name and the optional third parameter is the boolean `isAsset` parameter. Set that to `true` in case the token is not using a dedicated blockchain but is issued on other blockchains (e.g. colored coins, ETH tokens, etc). The list is *ordered alphabetically by token name*—please add your entry at the correct position! +`Coin` implementations must be located within the `bisq.asset.coins` package. `Token` implementations must be located within the `bisq.asset.tokens` package. -==== Examples +For example, if you are listing a new `Coin` named `FooCoin`, its fully-qualified name should be `bisq.asset.coins.FooCoin`. ----- -// token with dedicated blockchain -result.add(new CryptoCurrency("XMR", "Monero")); +TIP: Follow existing coding conventions. Everything from license headers to import statements to indentation and blank lines matters. Make your implementation look _exactly_ like the other `Asset` implementations you see. -// token issued on another blockchain -result.add(new CryptoCurrency("MT", "Mycelium Token", true)); ----- +=== Step 2. Register your asset -=== Step 4. Add token to trade statistics manager +Register your asset by adding an entry to the `META-INF/services/bisq.asset.Asset` provider-configuration file. -Open the `bisq.core.trade.statistics.TradeStatisticsManager` class and add an entry like the following at the end of the list in the `printAllCurrencyStats` method: +Entries in this file must be kept in alphabetical order. ----- -newlyAdded.add([ticker symbol]); ----- +=== Step 3. Write tests for your asset -=== Step 5. Compile and test +Create a new `AbstractAssetTest` subclass for your asset, named e.g. `FooCoinTest` and implement the required methods as appropriate. + +TIP: Again, look to existing `AbstractAssetTest` implementations for a baseline as to how your own should look. + +=== Step 4. Compile and test everything + +Run the following command and ensure you get a successful result. ---- ./gradlew build +[...] +BUILD SUCCESSFUL ---- -=== Step 6. Create well-formed Git commit +=== Step 5. Create a well-formed Git commit Your changes should be squashed into a SINGLE GIT COMMIT with a commit message that reads as follows: ---- -List [token name] ([ticker symbol]) +List [asset name] ([ticker symbol]) ---- For example: @@ -96,16 +100,15 @@ Date: Wed Aug 1 00:00:00 1979 -0800 List OtherPlane (OTP) ---- -=== Step 7. Submit pull request +=== Step 6. Submit your pull request -Your pull request should be submitted against the bisq-network/bisq-core repository's `master` branch. Make sure you do this from a dedicated topic branch in your fork named, for example, `list-foo-token`. Do not submit your pull request directly from your `master` branch, as this can make things unnecessarily complex if and when there are merge conflicts. +Your pull request should be submitted against the bisq-network/bisq-core repository's `master` branch. Make sure you do this from a dedicated topic branch in your fork named, for example, `list-foo-asset`. Do not submit your pull request directly from your `master` branch, as this can make things unnecessarily complex if and when there are merge conflicts. Copy and paste the form template below into the description of the pull request and fill it out. ---- -- Official block explorer URL: [url] -- Is this an _altcoin_ with a dedicated blockchain or a _token_ based on another blockchain, (e.g. Ethereum-based ERC-20 tokens): [altcoin | token] - Official project URL: [url] +- Official block explorer URL: [url] ---- IMPORTANT: When submitting your pull request, please check the `Allow edits from maintainers` box. See https://github.com/bisq-network/style/issues/4 for details. @@ -113,23 +116,30 @@ IMPORTANT: When submitting your pull request, please check the `Allow edits from == Caveats -=== Controversial tokens may be put to a vote +=== Controversial assets may be put to a vote + +Accepting a request to list a given asset does not imply endorsement of that asset by Bisq maintainers, contributors or co-founders. Bisq maintainers merge or reject asset listing pull requests based strictly on the formal requirements laid out in this document, not on any political, legal or ethical grounds. + +However, any BSQ stakeholder can request that listing a given asset be put to a vote under the normal Bisq DAO voting process. + +If such a request for voting is filed, the PR will be delayed until the next voting period. Filing a request for voting is described at https://bisq.network/phase-zero. + +If the vote has greater than 50% approval and reaches the required quorum (at least 5% of total BSQ stake need to vote on it) the result will be used to accept or reject the asset. Not reaching the quorum results in a rejection. + +To request listing an asset that has already been rejected by such a vote, the requester must include a clear statement about what has changed since the original vote. + +Any BSQ stakeholder can also request a vote to remove an already-listed asset. - - Any BSQ token holder can request that a decision for adding the token should be decided in the Bisq DAO voting process (the Bisq DAO will be executed in a manual manner as long the full DAO version is not implemented according to the DAO phase 0 doc TODO: add link, not available atm). - - If such a request for voting is filed the PR will be delayed until the next voting period. Filing a request for voting is described in the DOA voting document (TODO: add link, not available atm). - - If the voting has > 50% of votes and reaches the required quorum (at least 5% of total BSQ stake need to vote on it) the result will be used to accept or reject the token. Not reaching the quorum results in a rejection. - - For requesting again a token which got rejected by voting it requires a clear statement about the changed circumstances. Objecting the political positions is not sufficient (e.g. Coin XXX is not a scamcoin because of ....). - - Any BSQ token holder can also request a voting to remove an already supported token. +=== Inactive assets will be de-listed -=== Inactive tokens will be de-listed +At each new release we will check whether already-listed assets have been traded in the past 4 months. If this requirement is not met the asset will be removed. The Bisq trade statistics are used as a reference. Removal of an un-traded asset will not be announced outside of normal release notes. - - At each new release we will check if already added tokens have been traded in the past 4 months. If this requirement is not met the token will be removed. The Bisq trade statistics are taken as reference. Removal of a not-traded token will not be announced beside in the release notes of the new release. - - Adding the token again requires a statement about the changed circumstances (e.g. link to discussions where demand for the token is documented, etc). +Listing the asset again will require a statement about what has changed since the original de-listing, e.g.: links to discussions where demand for the asset is documented, etc. -=== Getting a new token into production may take a while +=== Getting a new asset into production may take a while -Adding a new token will be part of the normal release cycle. Whenever we ship the next Bisq release, your token will be included. +Whenever we ship the next Bisq release, your newly-listed asset will be included and become available for trading. We typically ship once every few weeks, but there is no fixed release schedule, and release intervals can vary widely. -=== Pull requests that do not conform to the requirements will be ignored and closed +=== Pull requests that do not conform to the requirements above will be rejected -If your pull request is for any reason incorrect, e.g. code does not compile, tests do not pass, steps have been missed in the instructions, your changes will be ignored and your pull request will be closed. Getting your token listed is 100% your responsibility. If you follow the instructions, the `bisq-core` maintainers will merge it; if you don't, they won't. It's that simple. +If your pull request is for any reason incorrect, e.g. code does not compile, tests do not pass, steps have been missed in the instructions, your changes will be ignored and your pull request will be closed. Getting your asset successfully listed is 100% your responsibility. If you follow the instructions, the `bisq-core` maintainers will merge it; if you don't, they won't. It's that simple.