diff --git a/COPYING b/COPYING new file mode 100644 index 000000000..be3f7b28e --- /dev/null +++ b/COPYING @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/LICENSE b/LICENSE index c4670fc9f..f21c46044 100644 --- a/LICENSE +++ b/LICENSE @@ -1,35 +1,15 @@ -MIT License with Commons Clause License Condition v1.0 +The Mempool Open Source Project +Copyright (c) 2019-2021 The Mempool Open Source Project Developers -Copyright (c) 2019-2020 The Mempool Open Source Project +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or (at your +option) any later version. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, and/or sublicense -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public +License for more details. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Commons Clause License Condition v1.0 - -Without limiting other conditions in the License, the grant of rights under -the License will not include, and the License does not grant to you, the -right to Sell the Software. - -For purposes of the foregoing, “Sell” means practicing any or all of the -rights granted to you under the License to provide to third parties, for a -fee or other consideration (including without limitation fees for hosting or -consulting/ support services related to the Software), a product or service -whose value derives, entirely or substantially, from the functionality of -the Software. Any license notice or attribution required by the License must -also include this Commons Cause License Condition notice. +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . diff --git a/README.md b/README.md index e65422775..deb89708f 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ Install mempool dependencies from npm and build the backend: ```bash # backend - cd ../backend/ + cd backend npm install npm run build ``` diff --git a/backend/mempool-config.sample.json b/backend/mempool-config.sample.json index 82bcfbe56..c444929b5 100644 --- a/backend/mempool-config.sample.json +++ b/backend/mempool-config.sample.json @@ -7,7 +7,8 @@ "API_URL_PREFIX": "/api/v1/", "POLL_RATE_MS": 2000, "CACHE_DIR": "./cache", - "CLEAR_PROTECTION_MINUTES": 20 + "CLEAR_PROTECTION_MINUTES": 20, + "RECOMMENDED_FEE_PERCENTILE": 50 }, "CORE_RPC": { "HOST": "127.0.0.1", diff --git a/backend/package.json b/backend/package.json index a8add53e8..676b2e4dc 100644 --- a/backend/package.json +++ b/backend/package.json @@ -2,7 +2,7 @@ "name": "mempool-backend", "version": "2.0.0", "description": "Bitcoin mempool visualizer and blockchain explorer backend", - "license": "MIT", + "license": "GNU Affero General Public License v3.0", "homepage": "https://mempool.space", "repository": { "type": "git", diff --git a/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts b/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts index 951d9576c..697c68e43 100644 --- a/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts +++ b/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts @@ -3,7 +3,6 @@ import { IEsploraApi } from './esplora-api.interface'; export interface AbstractBitcoinApi { $getRawMempool(): Promise; $getRawTransaction(txId: string, skipConversion?: boolean, addPrevout?: boolean): Promise; - $getRawTransactionBitcoind(txId: string, skipConversion?: boolean, addPrevout?: boolean): Promise; $getBlockHeightTip(): Promise; $getTxIdsForBlock(hash: string): Promise; $getBlockHash(height: number): Promise; diff --git a/backend/src/api/bitcoin/bitcoin-api.ts b/backend/src/api/bitcoin/bitcoin-api.ts index 919b06092..2abebeb07 100644 --- a/backend/src/api/bitcoin/bitcoin-api.ts +++ b/backend/src/api/bitcoin/bitcoin-api.ts @@ -22,16 +22,6 @@ class BitcoinApi implements AbstractBitcoinApi { }); } - $getRawTransactionBitcoind(txId: string, skipConversion = false, addPrevout = false): Promise { - return this.bitcoindClient.getRawTransaction(txId, true) - .then((transaction: IBitcoinApi.Transaction) => { - if (skipConversion) { - return transaction; - } - return this.$convertTransaction(transaction, addPrevout); - }); - } - $getRawTransaction(txId: string, skipConversion = false, addPrevout = false): Promise { // If the transaction is in the mempool we already converted and fetched the fee. Only prevouts are missing const txInMempool = mempool.getMempool()[txId]; @@ -47,6 +37,9 @@ class BitcoinApi implements AbstractBitcoinApi { return this.bitcoindClient.getRawTransaction(txId, true) .then((transaction: IBitcoinApi.Transaction) => { if (skipConversion) { + transaction.vout.forEach((vout) => { + vout.value = vout.value * 100000000; + }); return transaction; } return this.$convertTransaction(transaction, addPrevout); diff --git a/backend/src/api/bitcoin/esplora-api.ts b/backend/src/api/bitcoin/esplora-api.ts index a98941899..5aa9f7fec 100644 --- a/backend/src/api/bitcoin/esplora-api.ts +++ b/backend/src/api/bitcoin/esplora-api.ts @@ -48,11 +48,6 @@ class ElectrsApi implements AbstractBitcoinApi { throw new Error('Method getAddressTransactions not implemented.'); } - $getRawTransactionBitcoind(txId: string): Promise { - return axios.get(config.ESPLORA.REST_API_URL + '/tx/' + txId, this.axiosConfig) - .then((response) => response.data); - } - $getAddressPrefix(prefix: string): string[] { throw new Error('Method not implemented.'); } diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 7f9581ea9..25f92ff5c 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -84,14 +84,21 @@ class Blocks { } } + transactions.forEach((tx) => { + if (!tx.cpfpChecked) { + Common.setRelativesAndGetCpfpInfo(tx, mempool); + } + }); + logger.debug(`${transactionsFound} of ${txIds.length} found in mempool. ${txIds.length - transactionsFound} not found.`); const blockExtended: BlockExtended = Object.assign({}, block); blockExtended.reward = transactions[0].vout.reduce((acc, curr) => acc + curr.value, 0); blockExtended.coinbaseTx = transactionUtils.stripCoinbaseTransaction(transactions[0]); - transactions.sort((a, b) => b.feePerVsize - a.feePerVsize); - blockExtended.medianFee = transactions.length > 1 ? Common.median(transactions.map((tx) => tx.feePerVsize)) : 0; - blockExtended.feeRange = transactions.length > 1 ? Common.getFeesInRange(transactions.slice(0, transactions.length - 1), 8) : [0, 0]; + transactions.shift(); + transactions.sort((a, b) => b.effectiveFeePerVsize - a.effectiveFeePerVsize); + blockExtended.medianFee = transactions.length > 1 ? Common.median(transactions.map((tx) => tx.effectiveFeePerVsize)) : 0; + blockExtended.feeRange = transactions.length > 1 ? Common.getFeesInRange(transactions, 8) : [0, 0]; if (block.height % 2016 === 0) { this.lastDifficultyAdjustmentTime = block.timestamp; diff --git a/backend/src/api/common.ts b/backend/src/api/common.ts index 1c0fa7b77..130e0205d 100644 --- a/backend/src/api/common.ts +++ b/backend/src/api/common.ts @@ -1,4 +1,4 @@ -import { TransactionExtended, TransactionStripped } from '../mempool.interfaces'; +import { CpfpInfo, TransactionExtended, TransactionStripped } from '../mempool.interfaces'; export class Common { static median(numbers: number[]) { @@ -12,17 +12,24 @@ export class Common { return medianNr; } + static percentile(numbers: number[], percentile: number) { + if (percentile === 50) return this.median(numbers); + const index = Math.ceil(numbers.length * (100 - percentile) * 1e-2); + if (index < 0 || index > numbers.length - 1) return 0; + return numbers[index]; + } + static getFeesInRange(transactions: TransactionExtended[], rangeLength: number) { - const arr = [transactions[transactions.length - 1].feePerVsize]; + const arr = [transactions[transactions.length - 1].effectiveFeePerVsize]; const chunk = 1 / (rangeLength - 1); let itemsToAdd = rangeLength - 2; while (itemsToAdd > 0) { - arr.push(transactions[Math.floor(transactions.length * chunk * itemsToAdd)].feePerVsize); + arr.push(transactions[Math.floor(transactions.length * chunk * itemsToAdd)].effectiveFeePerVsize); itemsToAdd--; } - arr.push(transactions[0].feePerVsize); + arr.push(transactions[0].effectiveFeePerVsize); return arr; } @@ -64,4 +71,69 @@ export class Common { }, ms); }); } + + static shuffleArray(array: any[]) { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } + } + + static setRelativesAndGetCpfpInfo(tx: TransactionExtended, memPool: { [txid: string]: TransactionExtended }): CpfpInfo { + const parents = this.findAllParents(tx, memPool); + + let totalWeight = tx.weight + parents.reduce((prev, val) => prev + val.weight, 0); + let totalFees = tx.fee + parents.reduce((prev, val) => prev + val.fee, 0); + + tx.ancestors = parents + .map((t) => { + return { + txid: t.txid, + weight: t.weight, + fee: t.fee, + }; + }); + + // Add high (high fee) decendant weight and fees + if (tx.bestDescendant) { + totalWeight += tx.bestDescendant.weight; + totalFees += tx.bestDescendant.fee; + } + + tx.effectiveFeePerVsize = totalFees / (totalWeight / 4); + tx.cpfpChecked = true; + + return { + ancestors: tx.ancestors, + bestDescendant: tx.bestDescendant || null, + }; + } + + + private static findAllParents(tx: TransactionExtended, memPool: { [txid: string]: TransactionExtended }): TransactionExtended[] { + let parents: TransactionExtended[] = []; + tx.vin.forEach((parent) => { + const parentTx = memPool[parent.txid]; + if (parentTx) { + if (tx.bestDescendant && tx.bestDescendant.fee / (tx.bestDescendant.weight / 4) > parentTx.feePerVsize) { + if (parentTx.bestDescendant && parentTx.bestDescendant.fee < tx.fee + tx.bestDescendant.fee) { + parentTx.bestDescendant = { + weight: tx.weight + tx.bestDescendant.weight, + fee: tx.fee + tx.bestDescendant.fee, + txid: tx.txid, + }; + } + } else if (tx.feePerVsize > parentTx.feePerVsize) { + parentTx.bestDescendant = { + weight: tx.weight, + fee: tx.fee, + txid: tx.txid + }; + } + parents.push(parentTx); + parents = parents.concat(this.findAllParents(parentTx, memPool)); + } + }); + return parents; + } } diff --git a/backend/src/api/disk-cache.ts b/backend/src/api/disk-cache.ts index cbdff49f0..909f12681 100644 --- a/backend/src/api/disk-cache.ts +++ b/backend/src/api/disk-cache.ts @@ -6,6 +6,7 @@ import blocks from './blocks'; import logger from '../logger'; import config from '../config'; import { TransactionExtended } from '../mempool.interfaces'; +import { Common } from './common'; class DiskCache { private static FILE_NAME = config.MEMPOOL.CACHE_DIR + '/cache.json'; @@ -27,6 +28,8 @@ class DiskCache { mempoolArray.push(mempool[tx]); } + Common.shuffleArray(mempoolArray); + const chunkSize = Math.floor(mempoolArray.length / DiskCache.CHUNK_FILES); await fsPromises.writeFile(DiskCache.FILE_NAME, JSON.stringify({ diff --git a/backend/src/api/mempool-blocks.ts b/backend/src/api/mempool-blocks.ts index d3dbfcb16..c52c458e9 100644 --- a/backend/src/api/mempool-blocks.ts +++ b/backend/src/api/mempool-blocks.ts @@ -1,5 +1,7 @@ +import logger from '../logger'; import { MempoolBlock, TransactionExtended, MempoolBlockWithTransactions } from '../mempool.interfaces'; import { Common } from './common'; +import config from '../config'; class MempoolBlocks { private static DEFAULT_PROJECTED_BLOCKS_AMOUNT = 8; @@ -32,9 +34,40 @@ class MempoolBlocks { memPoolArray.push(latestMempool[i]); } } + const start = new Date().getTime(); + + // Clear bestDescendants & ancestors + memPoolArray.forEach((tx) => { + tx.bestDescendant = null; + tx.ancestors = []; + tx.cpfpChecked = false; + if (!tx.effectiveFeePerVsize) { + tx.effectiveFeePerVsize = tx.feePerVsize; + } + }); + + // First sort memPoolArray.sort((a, b) => b.feePerVsize - a.feePerVsize); - const transactionsSorted = memPoolArray.filter((tx) => tx.feePerVsize); - this.mempoolBlocks = this.calculateMempoolBlocks(transactionsSorted); + + // Loop through and traverse all ancestors and sum up all the sizes + fees + // Pass down size + fee to all unconfirmed children + let sizes = 0; + memPoolArray.forEach((tx, i) => { + sizes += tx.weight + if (sizes > 4000000 * 8) { + return; + } + Common.setRelativesAndGetCpfpInfo(tx, memPool); + }); + + // Final sort, by effective fee + memPoolArray.sort((a, b) => b.effectiveFeePerVsize - a.effectiveFeePerVsize); + + const end = new Date().getTime(); + const time = end - start; + logger.debug('Mempool blocks calculated in ' + time / 1000 + ' seconds'); + + this.mempoolBlocks = this.calculateMempoolBlocks(memPoolArray); } private calculateMempoolBlocks(transactionsSorted: TransactionExtended[]): MempoolBlockWithTransactions[] { @@ -76,7 +109,7 @@ class MempoolBlocks { blockVSize: blockVSize, nTx: transactions.length, totalFees: transactions.reduce((acc, cur) => acc + cur.fee, 0), - medianFee: Common.median(transactions.map((tx) => tx.feePerVsize)), + medianFee: Common.percentile(transactions.map((tx) => tx.effectiveFeePerVsize), config.MEMPOOL.RECOMMENDED_FEE_PERCENTILE), feeRange: Common.getFeesInRange(transactions, rangeLength), transactionIds: transactions.map((tx) => tx.txid), }; diff --git a/backend/src/api/statistics.ts b/backend/src/api/statistics.ts index dbac2936e..468f136b9 100644 --- a/backend/src/api/statistics.ts +++ b/backend/src/api/statistics.ts @@ -68,13 +68,13 @@ class Statistics { } } // Remove 0 and undefined - memPoolArray = memPoolArray.filter((tx) => tx.feePerVsize); + memPoolArray = memPoolArray.filter((tx) => tx.effectiveFeePerVsize); if (!memPoolArray.length) { return; } - memPoolArray.sort((a, b) => a.feePerVsize - b.feePerVsize); + memPoolArray.sort((a, b) => a.effectiveFeePerVsize - b.effectiveFeePerVsize); const totalWeight = memPoolArray.map((tx) => tx.vsize).reduce((acc, curr) => acc + curr) * 4; const totalFee = memPoolArray.map((tx) => tx.fee).reduce((acc, curr) => acc + curr); @@ -85,7 +85,7 @@ class Statistics { memPoolArray.forEach((transaction) => { for (let i = 0; i < logFees.length; i++) { - if ((logFees[i] === 2000 && transaction.feePerVsize >= 2000) || transaction.feePerVsize <= logFees[i]) { + if ((logFees[i] === 2000 && transaction.effectiveFeePerVsize >= 2000) || transaction.effectiveFeePerVsize <= logFees[i]) { if (weightVsizeFees[logFees[i]]) { weightVsizeFees[logFees[i]] += transaction.vsize; } else { diff --git a/backend/src/api/transaction-utils.ts b/backend/src/api/transaction-utils.ts index 8c6b89a6b..2a5d3a9ad 100644 --- a/backend/src/api/transaction-utils.ts +++ b/backend/src/api/transaction-utils.ts @@ -26,9 +26,16 @@ class TransactionUtils { } private extendTransaction(transaction: IEsploraApi.Transaction): TransactionExtended { + // @ts-ignore + if (transaction.vsize) { + // @ts-ignore + return transaction; + } + const feePerVbytes = Math.max(1, (transaction.fee || 0) / (transaction.weight / 4)); const transactionExtended: TransactionExtended = Object.assign({ vsize: Math.round(transaction.weight / 4), - feePerVsize: Math.max(1, (transaction.fee || 0) / (transaction.weight / 4)), + feePerVsize: feePerVbytes, + effectiveFeePerVsize: feePerVbytes, }, transaction); if (!transaction.status.confirmed) { transactionExtended.firstSeen = Math.round((new Date().getTime() / 1000)); diff --git a/backend/src/config.ts b/backend/src/config.ts index b213d5edc..ace63394c 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -10,6 +10,7 @@ interface IConfig { POLL_RATE_MS: number; CACHE_DIR: string; CLEAR_PROTECTION_MINUTES: number; + RECOMMENDED_FEE_PERCENTILE: number; }; ESPLORA: { REST_API_URL: string; @@ -64,6 +65,7 @@ const defaults: IConfig = { 'POLL_RATE_MS': 2000, 'CACHE_DIR': './cache', 'CLEAR_PROTECTION_MINUTES': 20, + 'RECOMMENDED_FEE_PERCENTILE': 50, }, 'ESPLORA': { 'REST_API_URL': 'http://127.0.0.1:3000', diff --git a/backend/src/index.ts b/backend/src/index.ts index 2754cdfbd..e96347337 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -73,6 +73,8 @@ class Server { this.server = http.createServer(this.app); this.wss = new WebSocket.Server({ server: this.server }); + this.setUpWebsocketHandling(); + diskCache.loadMempoolCache(); if (config.DATABASE.ENABLED) { @@ -86,7 +88,6 @@ class Server { fiatConversion.startService(); this.setUpHttpApiRoutes(); - this.setUpWebsocketHandling(); this.runMainUpdateLoop(); if (config.BISQ_BLOCKS.ENABLED) { @@ -145,6 +146,7 @@ class Server { setUpHttpApiRoutes() { this.app .get(config.MEMPOOL.API_URL_PREFIX + 'transaction-times', routes.getTransactionTimes) + .get(config.MEMPOOL.API_URL_PREFIX + 'cpfp/:txId', routes.getCpfpInfo) .get(config.MEMPOOL.API_URL_PREFIX + 'fees/recommended', routes.getRecommendedFees) .get(config.MEMPOOL.API_URL_PREFIX + 'fees/mempool-blocks', routes.getMempoolBlocks) .get(config.MEMPOOL.API_URL_PREFIX + 'backend-info', routes.getBackendInfo) diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index 0bc077df8..012c381bc 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -26,6 +26,27 @@ export interface TransactionExtended extends IEsploraApi.Transaction { vsize: number; feePerVsize: number; firstSeen?: number; + effectiveFeePerVsize: number; + ancestors?: Ancestor[]; + bestDescendant?: BestDescendant | null; + cpfpChecked?: boolean; +} + +interface Ancestor { + txid: string; + weight: number; + fee: number; +} + +interface BestDescendant { + txid: string; + weight: number; + fee: number; +} + +export interface CpfpInfo { + ancestors: Ancestor[]; + bestDescendant: BestDescendant | null; } export interface TransactionStripped { diff --git a/backend/src/routes.ts b/backend/src/routes.ts index c4da9feda..7d4bd844e 100644 --- a/backend/src/routes.ts +++ b/backend/src/routes.ts @@ -94,6 +94,31 @@ class Routes { res.json(times); } + public getCpfpInfo(req: Request, res: Response) { + if (!/^[a-fA-F0-9]{64}$/.test(req.params.txId)) { + res.status(501).send(`Invalid transaction ID.`); + return; + } + + const tx = mempool.getMempool()[req.params.txId]; + if (!tx) { + res.status(404).send(`Transaction doesn't exist in the mempool.`); + return; + } + + if (tx.cpfpChecked) { + res.json({ + ancestors: tx.ancestors, + bestDescendant: tx.bestDescendant || null, + }); + return; + } + + const cpfpInfo = Common.setRelativesAndGetCpfpInfo(tx, mempool.getMempool()); + + res.json(cpfpInfo); + } + public getBackendInfo(req: Request, res: Response) { res.json(backendInfo.getBackendInfo()); } diff --git a/docker/README.md b/docker/README.md index fa8f44bb2..aad836609 100644 --- a/docker/README.md +++ b/docker/README.md @@ -58,15 +58,17 @@ services: RPC_PORT: "8332" RPC_USER: "mempool" RPC_PASS: "mempool" - ELECTRS_HOST: "127.0.0.1" - ELECTRS_PORT: "50002" + ELECTRUM_HOST: "127.0.0.1" + ELECTRUM_PORT: "50002" + ELECTRUM_TLS: "false" MYSQL_HOST: "db" MYSQL_PORT: "3306" MYSQL_DATABASE: "mempool" MYSQL_USER: "mempool" MYSQL_PASS: "mempool" BACKEND_MAINNET_HTTP_PORT: "8999" - CACHE_DIR: "/backend/cache/" + CACHE_DIR: "/backend/cache" + MEMPOOL_CLEAR_PROTECTION_MINUTES: "20" db: image: mariadb:10.5.8 user: "1000:1000" @@ -83,7 +85,7 @@ services: ``` -You can update all the environment variables inside the API container, especially the RPC and ELECTRS ones +You can update all the environment variables inside the API container, especially the RPC and ELECTRUM ones ## Run it diff --git a/docker/backend/mempool-config.json b/docker/backend/mempool-config.json index 7f3ae6729..ea0034aab 100644 --- a/docker/backend/mempool-config.json +++ b/docker/backend/mempool-config.json @@ -6,7 +6,8 @@ "SPAWN_CLUSTER_PROCS": 0, "API_URL_PREFIX": "/api/v1/", "POLL_RATE_MS": 2000, - "CACHE_DIR": "__MEMPOOL_BACKEND_MAINNET_CACHE_DIR__" + "CACHE_DIR": "__MEMPOOL_BACKEND_MAINNET_CACHE_DIR__", + "CLEAR_PROTECTION_MINUTES": __MEMPOOL_BACKEND_CLEAR_PROTECTION_MINUTES__ }, "CORE_RPC": { "HOST": "__BITCOIN_MAINNET_RPC_HOST__", @@ -15,10 +16,9 @@ "PASSWORD": "__BITCOIN_MAINNET_RPC_PASS__" }, "ELECTRUM": { - "HOST": "__ELECTRS_MAINNET_HTTP_HOST__", - "PORT": __ELECTRS_MAINNET_HTTP_PORT__, - "TLS_ENABLED": false, - "TX_LOOKUPS": true + "HOST": "__ELECTRUM_MAINNET_HTTP_HOST__", + "PORT": __ELECTRUM_MAINNET_HTTP_PORT__, + "TLS_ENABLED": __ELECTRUM_MAINNET_TLS_ENABLED__ }, "ESPLORA": { "REST_API_URL": "http://127.0.0.1:3000" diff --git a/docker/backend/start.sh b/docker/backend/start.sh index 6b01c2632..22715f8b1 100644 --- a/docker/backend/start.sh +++ b/docker/backend/start.sh @@ -2,15 +2,17 @@ #MEMPOOL __MEMPOOL_BACKEND_MAINNET_HTTP_PORT__=${BACKEND_MAINNET_HTTP_PORT:=8999} -__MEMPOOL_BACKEND_MAINNET_CACHE_DIR__=${CACHE_DIR:=./} +__MEMPOOL_BACKEND_MAINNET_CACHE_DIR__=${CACHE_DIR:=./cache} +__MEMPOOL_BACKEND_CLEAR_PROTECTION_MINUTES__=${MEMPOOL_CLEAR_PROTECTION_MINUTES:=20} # BITCOIN __BITCOIN_MAINNET_RPC_HOST__=${RPC_HOST:=127.0.0.1} __BITCOIN_MAINNET_RPC_PORT__=${RPC_PORT:=8332} __BITCOIN_MAINNET_RPC_USER__=${RPC_USER:=mempool} __BITCOIN_MAINNET_RPC_PASS__=${RPC_PASS:=mempool} # ELECTRUM -__ELECTRS_MAINNET_HTTP_HOST__=${ELECTRS_HOST:=127.0.0.1} -__ELECTRS_MAINNET_HTTP_PORT__=${ELECTRS_PORT:=50002} +__ELECTRUM_MAINNET_HTTP_HOST__=${ELECTRUM_HOST:=127.0.0.1} +__ELECTRUM_MAINNET_HTTP_PORT__=${ELECTRUM_PORT:=50002} +__ELECTRUM_MAINNET_TLS_ENABLED__=${ELECTRUM_TLS:=false} # MYSQL __MYSQL_HOST__=${MYSQL_HOST:=127.0.0.1} __MYSQL_PORT__=${MYSQL_PORT:=3306} @@ -24,8 +26,9 @@ sed -i "s/__BITCOIN_MAINNET_RPC_HOST__/${__BITCOIN_MAINNET_RPC_HOST__}/g" mempoo sed -i "s/__BITCOIN_MAINNET_RPC_PORT__/${__BITCOIN_MAINNET_RPC_PORT__}/g" mempool-config.json sed -i "s/__BITCOIN_MAINNET_RPC_USER__/${__BITCOIN_MAINNET_RPC_USER__}/g" mempool-config.json sed -i "s/__BITCOIN_MAINNET_RPC_PASS__/${__BITCOIN_MAINNET_RPC_PASS__}/g" mempool-config.json -sed -i "s/__ELECTRS_MAINNET_HTTP_HOST__/${__ELECTRS_MAINNET_HTTP_HOST__}/g" mempool-config.json -sed -i "s/__ELECTRS_MAINNET_HTTP_PORT__/${__ELECTRS_MAINNET_HTTP_PORT__}/g" mempool-config.json +sed -i "s/__ELECTRUM_MAINNET_HTTP_HOST__/${__ELECTRUM_MAINNET_HTTP_HOST__}/g" mempool-config.json +sed -i "s/__ELECTRUM_MAINNET_HTTP_PORT__/${__ELECTRUM_MAINNET_HTTP_PORT__}/g" mempool-config.json +sed -i "s/__ELECTRUM_MAINNET_TLS_ENABLED__/${__ELECTRUM_MAINNET_TLS_ENABLED__}/g" mempool-config.json sed -i "s/__MYSQL_HOST__/${__MYSQL_HOST__}/g" mempool-config.json sed -i "s/__MYSQL_PORT__/${__MYSQL_PORT__}/g" mempool-config.json sed -i "s/__MYSQL_DATABASE__/${__MYSQL_DATABASE__}/g" mempool-config.json @@ -33,5 +36,6 @@ sed -i "s/__MYSQL_USERNAME__/${__MYSQL_USERNAME__}/g" mempool-config.json sed -i "s/__MYSQL_PASSWORD__/${__MYSQL_PASSWORD__}/g" mempool-config.json sed -i "s!__MEMPOOL_BACKEND_MAINNET_CACHE_DIR__!${__MEMPOOL_BACKEND_MAINNET_CACHE_DIR__}!g" mempool-config.json sed -i "s/__MEMPOOL_BACKEND_MAINNET_HTTP_PORT__/${__MEMPOOL_BACKEND_MAINNET_HTTP_PORT__}/g" mempool-config.json +sed -i "s/__MEMPOOL_BACKEND_CLEAR_PROTECTION_MINUTES__/${__MEMPOOL_BACKEND_CLEAR_PROTECTION_MINUTES__}/g" mempool-config.json node /backend/dist/index.js diff --git a/frontend/package.json b/frontend/package.json index a72a5c940..806df56a9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -2,7 +2,7 @@ "name": "mempool-frontend", "version": "2.0.0", "description": "Bitcoin mempool visualizer and blockchain explorer backend", - "license": "MIT", + "license": "GNU Affero General Public License v3.0", "homepage": "https://mempool.space", "repository": { "type": "git", diff --git a/frontend/src/app/components/about/about.component.html b/frontend/src/app/components/about/about.component.html index c2acd7172..273495658 100644 --- a/frontend/src/app/components/about/about.component.html +++ b/frontend/src/app/components/about/about.component.html @@ -10,40 +10,42 @@
+
The Mempool Open Source Project
-

mempool.space is developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers.

+

An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers.

-
+ + + + + -

Maintainers

+ + + + + -
-
-
- -
- @softsimon_ -
-
- Development -
-
- -
- @wiz -
-
- Operations -
-
-
+ + + + + -

+ + + + + -

Sponsors ❤️

+


+ +

Enterprise Sponsors

+ +

Community Sponsors ❤️


@@ -176,35 +178,180 @@


- - - - +

Community Integrations

+ +
+
+ + Bisq +
- - - - + +
+ + Umbrel +
- - - - + +
+ + RaspiBlitz +
- - - - + +
+ + MyNode +
+ +
+ + RoninDojo +
+
+ + +
+ + Phoenix +
+
+ + +
+ + Specter +
+
+ + +
+ + Electrum +
+
+ + +
+ + Blixt +
+
+ + +
+ + Satpile +
+
+ + +
+ + BLW +
+
+ + +
+ + Sparrow +
+
+ + +
+ + WARden +
+
+ +


+ +

Community Alliances

+ + + + + + + + + + + + + +


+ +

Project Contributors

+ +
+
+
+
+ + + +
+ + {{ contributor.name }} +
+
+
+ +


+ +

Project Maintainers

+ + +
+ Copyright (c) 2019-2021
+ The Mempool Open Source Project
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
+ License for more details.
+ +
+ GNU Affero General Public License v3.0 +

+ Third Party Licenses
-

+
Terms of Service diff --git a/frontend/src/app/components/about/about.component.ts b/frontend/src/app/components/about/about.component.ts index 6d7b3dbc1..59e941465 100644 --- a/frontend/src/app/components/about/about.component.ts +++ b/frontend/src/app/components/about/about.component.ts @@ -19,9 +19,11 @@ export class AboutComponent implements OnInit, OnDestroy { paymentForm: FormGroup; donationStatus = 1; sponsors$: Observable; + contributors$: Observable; donationObj: any; sponsorsEnabled = this.stateService.env.OFFICIAL_MEMPOOL_SPACE; sponsors = null; + contributors = null; requestSubscription: Subscription | undefined; constructor( @@ -51,6 +53,11 @@ export class AboutComponent implements OnInit, OnDestroy { .subscribe((sponsors) => { this.sponsors = sponsors; }); + + this.apiService.getContributor$() + .subscribe((contributors) => { + this.contributors = contributors; + }); } ngOnDestroy() { diff --git a/frontend/src/app/components/api-docs/api-docs.component.html b/frontend/src/app/components/api-docs/api-docs.component.html index 14204e36d..583f89008 100644 --- a/frontend/src/app/components/api-docs/api-docs.component.html +++ b/frontend/src/app/components/api-docs/api-docs.component.html @@ -40,6 +40,10 @@ GET {{ network.val === '' ? '' : '/' + network.val }}/api/v1/fees/mempool-blocks Returns current mempool as projected blocks. + + GET {{ network.val === '' ? '' : '/' + network.val }}/api/v1/cpfp/:txid + Returns the ancestors and the best descendant fees for a transaction. + diff --git a/frontend/src/app/components/mempool-graph/mempool-graph.component.ts b/frontend/src/app/components/mempool-graph/mempool-graph.component.ts index 285c46df4..4bdcd01cb 100644 --- a/frontend/src/app/components/mempool-graph/mempool-graph.component.ts +++ b/frontend/src/app/components/mempool-graph/mempool-graph.component.ts @@ -32,7 +32,6 @@ export class MempoolGraphComponent implements OnInit, OnChanges { ) { } ngOnInit(): void { - const showLegend = !this.isMobile && this.showLegend; let labelHops = !this.showLegend ? 48 : 24; if (this.small) { labelHops = labelHops / 2; @@ -73,28 +72,28 @@ export class MempoolGraphComponent implements OnInit, OnChanges { }, axisY: { labelInterpolationFnc: (value: number): any => this.vbytesPipe.transform(value, 2), - offset: showLegend ? 160 : 60, + offset: this.showLegend ? 160 : 60, }, plugins: this.inverted ? [Chartist.plugins.ctTargetLine({ value: 1000000 })] : [] }; - if (showLegend) { - this.mempoolVsizeFeesOptions.plugins.push( - Chartist.plugins.legend({ - legendNames: [1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100, 125, 150, 175, 200, + if (this.showLegend) { + const legendNames: string[] = [1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100, 125, 150, 175, 200, 250, 300, 350, 400].map((sat, i, arr) => { if (sat === 400) { - return '350+'; + return '350+'; } if (i === 0) { - if (this.stateService.network === 'liquid') { - return '0 - 1'; - } - return '1 sat/vB'; + return '0 - 1'; } return arr[i - 1] + ' - ' + sat; - }) - }) + }); + // Only Liquid has lower than 1 sat/vb transactions + if (this.stateService.network !== 'liquid') { + legendNames.shift(); + } + this.mempoolVsizeFeesOptions.plugins.push( + Chartist.plugins.legend({ legendNames: legendNames }) ); } } diff --git a/frontend/src/app/components/statistics/chartist.component.ts b/frontend/src/app/components/statistics/chartist.component.ts index b0e9aff3a..924a4a598 100644 --- a/frontend/src/app/components/statistics/chartist.component.ts +++ b/frontend/src/app/components/statistics/chartist.component.ts @@ -309,7 +309,7 @@ const defaultOptions = { Chartist.plugins.legend = function (options: any) { let cachedDOMPosition; - let cacheInactiveLegends: any = []; + let cacheInactiveLegends: { [key:number]: boolean } = {}; // Catch invalid options if (options && options.position) { if (!(options.position === 'top' || options.position === 'bottom' || options.position instanceof HTMLElement)) { @@ -449,32 +449,29 @@ Chartist.plugins.legend = function (options: any) { const legendIndex = parseInt(li.getAttribute('data-legend')); const legend = legends[legendIndex]; - if (!legend.active) { - legend.active = true; - li.classList.remove('inactive'); + const activateLegend = (_legendIndex: number): void => { + legends[_legendIndex].active = true; + legendElement.childNodes[_legendIndex].classList.remove('inactive'); - var indexOfInactiveLegend = cacheInactiveLegends.indexOf(legendIndex, 0) - if (indexOfInactiveLegend > -1) { - cacheInactiveLegends.splice(indexOfInactiveLegend, 1); - } + cacheInactiveLegends[_legendIndex] = false; + } - } else { - legend.active = false; - li.classList.add('inactive'); - cacheInactiveLegends.push(legendIndex); + const deactivateLegend = (_legendIndex: number): void => { + legends[_legendIndex].active = false; + legendElement.childNodes[_legendIndex].classList.add('inactive'); + cacheInactiveLegends[_legendIndex] = true; + } - const activeCount = legends.filter(function(legend: any) { return legend.active; }).length; - if (!options.removeAll && activeCount == 0) { - // If we can't disable all series at the same time, let's - // reenable all of them: - for (let i = 0; i < legends.length; i++) { - legends[i].active = true; - legendElement.childNodes[i].classList.remove('inactive'); - } - - cacheInactiveLegends = []; + for (let i = legends.length - 1; i >= 0; i--) { + if (i >= legendIndex) { + if (!legend.active) activateLegend(i); + } else { + if (legend.active) deactivateLegend(i); } } + // Make sure all values are undefined (falsy) when clicking the first legend + // After clicking the first legend all indices should be falsy + if (legendIndex === 0) cacheInactiveLegends = {}; const newSeries = []; const newLabels = []; @@ -512,7 +509,8 @@ Chartist.plugins.legend = function (options: any) { const legendSeries = legend.series || [i]; const li = createNameElement(i, legendText, classNamesViable); - const isActive: boolean = !(cacheInactiveLegends.indexOf(i) > -1); + // If the value is undefined or false, isActive is true + const isActive: boolean = !cacheInactiveLegends[i]; if (isActive) { activeSeries.push(seriesMetadata[i].data); activeLabels.push(seriesMetadata[i].label); diff --git a/frontend/src/app/components/terms-of-service/terms-of-service.component.html b/frontend/src/app/components/terms-of-service/terms-of-service.component.html index 20fcf311d..9d1e0a43f 100644 --- a/frontend/src/app/components/terms-of-service/terms-of-service.component.html +++ b/frontend/src/app/components/terms-of-service/terms-of-service.component.html @@ -1,16 +1,19 @@

- +

Terms of Service

-
Updated: October 12, 2020
+
Updated: March 09, 2021


+

The official mempool.space website and its API service are operated by Mempool Space K.K.

+

This website and its API service are operated by an individual member of the Bitcoin community, who is not affiliated with Mempool Space K.K.

+
By using this website or accessing its API, you agree to these Terms of Service:

@@ -29,16 +32,44 @@

PRIVACY POLICY

-

The operators of this website may collect your IP address as part of basic webserver logs and a self-hosted statistics application, but this data will never be sold or shared with third parties. Please use Tor when accessing this website to protect your privacy.

+

Out of respect for the Bitcoin community, this website does not utilize any third-party trackers or cookies, and the operators of this website do not share any user data with third-parties. However, your IP address may be collected as part of basic webserver logs necessary for systems administration purposes, and as part of an anonymized self-hosted statistics application for analytics. To protect your privacy, use Tor browser to access this website's Tor V3 onion hostname to conceal your IP address, or alternatively install and use your own self-hosted instance of this website.

-

SPONSOR POLICY

+
-

If you donate at least 0.01 BTC to mempool.space and submit your Twitter username at the time of donation, we will generally feature your Twitter profile photo on our About page with a link to your Twitter account. However, we reserve the right to remove sponsors listed on our website that in our sole discretion are inappropriate. All donations made are non-refundable.

+

BITCOIN ONLY POLICY

-
+

Out of respect for the Bitcoin community, this website does not support altcoins, and is generally "Bitcoin Only". The IOU tokens for Bitcoin and fiat currencies on the Liquid network, and the BSQ colored Bitcoin for DAO governance on the Bisq Network, are not considered altcoins as they do not distract users from Bitcoin and are part of our stated mission to support the entire Bitcoin ecosystem including Bitcoin Layer 2 Networks.

-

+
+ +

EXTERNAL LINK POLICY

+ +

Out of respect for the Bitcoin community, this website does not display advertising, and generally does not link to external websites. However, exceptions are made for references to Bitcoin's technical documentation, for acknowledgements of individual members and open-source projects within the Bitcoin community, and for direct contributors and supporters of The Mempool Open Source Project, as follows:

+
    +
  • In order to refer to Bitcoin technical documentation, external links may by added where applicable, to informational websites that respect that Bitcoin community and do not display advertising, altcoins, or third-party trackers, such as bitcoin.it and bitcoin.org.
  • +
    +
  • In order to acknowledge individual contributors to The Mempool Open Source Project who have made at least 10 contributions visible on GitHub, the contributor's GitHub profile photo will automatically be displayed on mempool.space/about, with a link to their GitHub profile.
  • +
    +
  • In order to acknowledge members of the Bitcoin community who have made a one-time donation of at least 0.01 BTC to The Mempool Open Source Project on mempool.space/about, the Bitcoin community members's Twitter profile photo will automatically be displayed on mempool.space/about, with a link to their Twitter profile.
  • +
    +
  • In order to acknowledge members of the Bitcoin community who have made recurring donations of at least $100 USD per month to The Mempool Open Source Project through our GitHub Sponsors program for at least 6 months, the Bitcoin community member's GitHub profile photo will automatically be displayed on mempool.space/about, with a link to their GitHub profile.
  • +
    +
  • In order to acknowledge open source projects that benefit the Bitcoin community and have integrated The Mempool Open Source Project into their software, the open source project's logo may be displayed on mempool.space/about, with a link to the project's GitHub repository.
  • +
    +
  • In order to acknowledge federations or alliances within the Bitcoin community that have a relationship to The Mempool Open Source Project, the federation or alliance logo may be displayed on mempool.space/about, with a link to the alliance website.
  • +
    +
  • In order to acknowledge the enterprise organizations within the Bitcoin community that have made a significant one-time donation of at least $25,000 USD to The Mempool Open Source Project, the organization's logo may be displayed on mempool.space/about, with a link to the organization's website.
  • +
+

However, we reserve the right to remove any links from our website that in our sole discretion are inappropriate. All donations are non-refundable.

+ +
+ +

EOF

+ +
+

+
diff --git a/frontend/src/app/components/terms-of-service/terms-of-service.component.ts b/frontend/src/app/components/terms-of-service/terms-of-service.component.ts index c45547be5..66367dc49 100644 --- a/frontend/src/app/components/terms-of-service/terms-of-service.component.ts +++ b/frontend/src/app/components/terms-of-service/terms-of-service.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { Env, StateService } from '../../services/state.service'; @Component({ selector: 'app-terms-of-service', templateUrl: './terms-of-service.component.html' }) export class TermsOfServiceComponent { - constructor() { } + officialMempoolSpace = this.stateService.env.OFFICIAL_MEMPOOL_SPACE; + + constructor( + private stateService: StateService, + ) { } } diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index 48e6db4b8..7938429fa 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -73,22 +73,7 @@
- - - - - - - - - - - -
Fee{{ tx.fee | number }} sat ()
Fee per vByte - {{ tx.fee / (tx.weight / 4) | number : '1.1-1' }} sat/vB -   - -
+
@@ -146,18 +131,7 @@
- - - - - - - - - - - -
Fee{{ tx.fee | number }} sat ()
Fee per vByte{{ tx.fee / (tx.weight / 4) | number : '1.1-1' }} sat/vB
+
@@ -295,4 +269,36 @@ In ~{{ i }} minute {{ i }} block -{{ i }} blocks \ No newline at end of file +{{ i }} blocks + + + + + + + + + + + + + + + + + +
Fee{{ tx.fee | number }} sat ()
Fee per vByte + {{ tx.fee / (tx.weight / 4) | number : '1.1-1' }} sat/vB + +   + + +
Effective fee + {{ tx.effectiveFeePerVsize | number : '1.1-1' }} sat/vB + +   + + +
+ +
\ No newline at end of file diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index cbd3916fc..d0c396959 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -91,10 +91,28 @@ export class TransactionComponent implements OnInit, OnDestroy { this.getTransactionTime(); } } + if (this.tx.status.confirmed) { this.stateService.markBlock$.next({ blockHeight: tx.status.block_height }); } else { - this.stateService.markBlock$.next({ txFeePerVSize: tx.fee / (tx.weight / 4) }); + if (tx.effectiveFeePerVsize) { + this.stateService.markBlock$.next({ txFeePerVSize: tx.effectiveFeePerVsize }); + } else { + this.apiService.getCpfpinfo$(this.tx.txid) + .subscribe((cpfpInfo) => { + let totalWeight = tx.weight + cpfpInfo.ancestors.reduce((prev, val) => prev + val.weight, 0); + let totalFees = tx.fee + cpfpInfo.ancestors.reduce((prev, val) => prev + val.fee, 0); + + if (cpfpInfo.bestDescendant) { + totalWeight += cpfpInfo.bestDescendant.weight; + totalFees += cpfpInfo.bestDescendant.fee; + } + + const effectiveFeePerVsize = totalFees / (totalWeight / 4); + this.tx.effectiveFeePerVsize = effectiveFeePerVsize; + this.stateService.markBlock$.next({ txFeePerVSize: effectiveFeePerVsize }); + }); + } } }, (error) => { @@ -139,7 +157,7 @@ export class TransactionComponent implements OnInit, OnDestroy { return; } - const txFeePerVSize = this.tx.fee / (this.tx.weight / 4); + const txFeePerVSize = this.tx.effectiveFeePerVsize || this.tx.fee / (this.tx.weight / 4); for (const block of mempoolBlocks) { for (let i = 0; i < block.feeRange.length - 1; i++) { diff --git a/frontend/src/app/components/tx-fee-rating/tx-fee-rating.component.html b/frontend/src/app/components/tx-fee-rating/tx-fee-rating.component.html index ff2ab4e33..4bfdf885d 100644 --- a/frontend/src/app/components/tx-fee-rating/tx-fee-rating.component.html +++ b/frontend/src/app/components/tx-fee-rating/tx-fee-rating.component.html @@ -1,3 +1,3 @@ Optimal -Overpaid {{ overpaidTimes }}x -Overpaid {{ overpaidTimes }}x +Overpaid {{ overpaidTimes }}x +Overpaid {{ overpaidTimes }}x diff --git a/frontend/src/app/components/tx-fee-rating/tx-fee-rating.component.ts b/frontend/src/app/components/tx-fee-rating/tx-fee-rating.component.ts index a1a7b0b3c..2055e995f 100644 --- a/frontend/src/app/components/tx-fee-rating/tx-fee-rating.component.ts +++ b/frontend/src/app/components/tx-fee-rating/tx-fee-rating.component.ts @@ -52,7 +52,7 @@ export class TxFeeRatingComponent implements OnInit, OnChanges, OnDestroy { } calculateRatings(block: Block) { - const feePervByte = this.tx.fee / (this.tx.weight / 4); + const feePervByte = this.tx.effectiveFeePerVsize || this.tx.fee / (this.tx.weight / 4); this.medianFeeNeeded = block.medianFee; // Block not filled diff --git a/frontend/src/app/interfaces/electrs.interface.ts b/frontend/src/app/interfaces/electrs.interface.ts index b53c01ef9..1ea0184ae 100644 --- a/frontend/src/app/interfaces/electrs.interface.ts +++ b/frontend/src/app/interfaces/electrs.interface.ts @@ -11,6 +11,7 @@ export interface Transaction { // Custom properties firstSeen?: number; + effectiveFeePerVsize?: number; } export interface Recent { diff --git a/frontend/src/app/interfaces/node-api.interface.ts b/frontend/src/app/interfaces/node-api.interface.ts index 56b7c90c9..24e6bf35d 100644 --- a/frontend/src/app/interfaces/node-api.interface.ts +++ b/frontend/src/app/interfaces/node-api.interface.ts @@ -8,3 +8,20 @@ export interface OptimizedMempoolStats { mempool_byte_weight: number; vsizes: number[] | string[]; } + +interface Ancestor { + txid: string; + weight: number; + fee: number; +} + +interface BestDescendant { + txid: string; + weight: number; + fee: number; +} + +export interface CpfpInfo { + ancestors: Ancestor[]; + bestDescendant: BestDescendant | null; +} diff --git a/frontend/src/app/services/api.service.ts b/frontend/src/app/services/api.service.ts index b31bb24f3..32ff8b092 100644 --- a/frontend/src/app/services/api.service.ts +++ b/frontend/src/app/services/api.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; -import { OptimizedMempoolStats } from '../interfaces/node-api.interface'; +import { CpfpInfo, OptimizedMempoolStats } from '../interfaces/node-api.interface'; import { Observable } from 'rxjs'; import { StateService } from './state.service'; import { WebsocketResponse } from '../interfaces/websocket.interface'; @@ -77,6 +77,10 @@ export class ApiService { return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/donations'); } + getContributor$(): Observable { + return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/contributors'); + } + checkDonation$(orderId: string): Observable { return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/donations/check?order_id=' + orderId); } @@ -84,4 +88,8 @@ export class ApiService { getInitData$(): Observable { return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/init-data'); } + + getCpfpinfo$(txid: string): Observable { + return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/cpfp/' + txid); + } } diff --git a/frontend/src/app/services/audio.service.ts b/frontend/src/app/services/audio.service.ts index 78b072bfc..bb765aa38 100644 --- a/frontend/src/app/services/audio.service.ts +++ b/frontend/src/app/services/audio.service.ts @@ -20,6 +20,7 @@ export class AudioService { this.isPlaying = true; this.audio.src = '../../../resources/sounds/' + name + '.mp3'; this.audio.load(); + this.audio.volume = 0.65; // 65% volume this.audio.play().catch((e) => { console.log('Play sound failed' + e); }); diff --git a/frontend/src/app/shared/pipes/hex2ascii/hex2ascii.pipe.ts b/frontend/src/app/shared/pipes/hex2ascii/hex2ascii.pipe.ts index caf81dd82..3d62ae7d6 100644 --- a/frontend/src/app/shared/pipes/hex2ascii/hex2ascii.pipe.ts +++ b/frontend/src/app/shared/pipes/hex2ascii/hex2ascii.pipe.ts @@ -15,11 +15,11 @@ export class Hex2asciiPipe implements PipeTransform { if (!hex) { return ''; } - let str = ''; + let bytes: number[] = []; for (let i = 0; i < hex.length; i += 2) { - str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); + bytes.push(parseInt(hex.substr(i, 2), 16)); } - return str; + return new TextDecoder('utf8').decode(Uint8Array.from(bytes)); } } diff --git a/frontend/src/index.html b/frontend/src/index.html index 7df913c67..7f344bc08 100644 --- a/frontend/src/index.html +++ b/frontend/src/index.html @@ -5,16 +5,16 @@ mempool - Bitcoin Explorer - + - - - - + + + + @@ -40,7 +40,7 @@ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { - var u="//stats.wiz.biz/"; + var u="//stats.mempool.space/"; _paq.push(['setTrackerUrl', u+'m.php']); _paq.push(['setSiteId', '5']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; diff --git a/frontend/src/locale/messages.ar.xlf b/frontend/src/locale/messages.ar.xlf index c88ce8b88..36f035147 100644 --- a/frontend/src/locale/messages.ar.xlf +++ b/frontend/src/locale/messages.ar.xlf @@ -1009,11 +1009,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1068,7 +1068,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1118,7 +1118,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1131,7 +1131,7 @@ حول src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1162,7 +1162,7 @@ شبكات الطبقة ٢ src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1171,7 +1171,7 @@ احصائيات src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1180,7 +1180,7 @@ لوحة التحكم src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1189,7 +1189,7 @@ الرسوم البيانية src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1202,7 +1202,7 @@ وضع التلفزيون src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1215,7 +1215,7 @@ الأصول src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1223,56 +1223,26 @@ master-page.assets - - About the project - نبذه عن المشروع + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - يهدف مشروع mempool المفتوح المصدر إلى صنع مستعرض عالي الجودة وبشكل صوري لنظام Bitcoin بأكمله، دون تشتيت الانتباه لأشياء مثل الـ altcoins أو وضع اعلانات أو متتبعات طرف ثالث. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - فريق الصيانة + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - تطوير - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - العمليات - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - الرعاة ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1281,7 +1251,7 @@ كن راعياً ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1290,16 +1260,40 @@ طلب الفاتوره src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service شروط الخدمة src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1317,7 +1311,7 @@ انتقل إلى https://mempool.space/about للاعلان src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1326,7 +1320,7 @@ المبلغ المطلوب src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1335,7 +1329,7 @@ الحد الأدنى هو 0.001 بتكوين src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1344,7 +1338,7 @@ إذا تبرعت بمبلغ 0.01 بتكوين أو أكثر ، فستتم إضافة صورة ملفك الشخصي إلى قائمة الرعاة أعلاه :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1353,7 +1347,7 @@ في إنتظار التحويلات src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1362,7 +1356,7 @@ تم تأكيد التبرع! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1371,7 +1365,7 @@ شكراً لك! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.cs.xlf b/frontend/src/locale/messages.cs.xlf index edd3ee204..126f5348b 100644 --- a/frontend/src/locale/messages.cs.xlf +++ b/frontend/src/locale/messages.cs.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ O projektu src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ Sítě 2. vrstvy src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ Statistiky src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ Rozcestník src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ Grafy src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ TV pohled src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ Aktiva src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - O projektu + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Cílem open-source mempool projektu je implementace vysoce kvalitního průzkumného a vizualizačního webu pro celý bitcoinový ekosystém, bez rušivých prvků, jako jsou altcoiny, reklama nebo sledovače třetích stran. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Správci + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Vývoj - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Obsluha - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponzoři ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ Staňte se sponzorem ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ Vyžádat si fakturu src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Podmínky služby src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ Přejít na https://mempool.space/about na sponzory src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ Požadovaná částka src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ Minimální částka je 0,001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ Pokud darujete 0,01 BTC nebo více, vaše profilová fotka bude přidána do seznamu sponzorů výše :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ Čekání na transakci... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ Dar potvrzen! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ Děkujeme! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.de.xlf b/frontend/src/locale/messages.de.xlf index 1203dbad6..ee74e80fd 100644 --- a/frontend/src/locale/messages.de.xlf +++ b/frontend/src/locale/messages.de.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ Über src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ Layer 2-Netzwerke src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ Statistiken src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ Dashboard src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ Grafiken src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ TV-Ansicht src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ Vermögenswerte src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - Über das Projekt + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Das Open-Source-Projekt von mempool zielt darauf ab, eine qualitativ hochwertige Explorer- und Visualisierungswebsite für das gesamte Bitcoin-Ökosystem zu implementieren, ohne Ablenkungen durch Altcoins, Werbung oder Tracker von Drittanbietern. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Maintainer + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Entwicklung - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Betrieb - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsoren ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ Werde ein Sponsor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ Rechnung anfordern src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Nutzungsbedingungen src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ Um ein Sponsor zu werden, navigieren Sie zu https://mempool.space/about src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ Mindestbetrag src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ Der Mindestbetrag beträgt 0,001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ Wenn Sie 0,01 BTC oder mehr spenden, wird Ihr Profilfoto zur Liste der Sponsoren oben hinzugefügt :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ Warten auf die Transaktion ... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ Spende bestätigt! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ Vielen Dank! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.en_US.xlf b/frontend/src/locale/messages.en_US.xlf index 41ed33bb6..046c91aeb 100644 --- a/frontend/src/locale/messages.en_US.xlf +++ b/frontend/src/locale/messages.en_US.xlf @@ -939,11 +939,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -995,7 +995,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1043,7 +1043,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1055,7 +1055,7 @@ About src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1083,7 +1083,7 @@ Layer 2 Networks src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1091,7 +1091,7 @@ Stats src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1099,7 +1099,7 @@ Dashboard src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1107,7 +1107,7 @@ Graphs src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1119,7 +1119,7 @@ TV view src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1131,7 +1131,7 @@ Assets src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1139,50 +1139,26 @@ master-page.assets - - About the project + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1190,7 +1166,7 @@ Become a sponsor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1198,15 +1174,39 @@ Request invoice src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1223,7 +1223,7 @@ Navigate to https://mempool.space/about to sponsor src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1231,7 +1231,7 @@ Amount required src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1239,7 +1239,7 @@ Minimum amount is 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1247,7 +1247,7 @@ If you donate 0.01 BTC or more, your profile photo will be added to the list of sponsors above :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1255,7 +1255,7 @@ Waiting for transaction... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1263,7 +1263,7 @@ Donation confirmed! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1271,7 +1271,7 @@ Thank you! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.es.xlf b/frontend/src/locale/messages.es.xlf index 8351c4815..f9e7191c5 100644 --- a/frontend/src/locale/messages.es.xlf +++ b/frontend/src/locale/messages.es.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ Sobre nosotros src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ Redes de segunda capa src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ Estadísticas src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ Dashboard src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ Gráficos src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ Vista de TV src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ Activos src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - Sobre el proyecto + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Mempool es un proyecto de código abierto cuyo objetivo es proporcionar una web donde explorar y visualizar todo el ecosistema de Bitcoin de la mejor forma posible, sin distracciones como altcoins, publicidad o rastreadores de terceros. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Mantenedores + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Desarrollo - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operaciones - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Patrocinadores ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ Sé patrocinador ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ Solicitar factura src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Términos de servicio src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ Vaya a https://mempool.space/about para patrocinarnos src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ Cantidad requerida src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ La cantidad mínima es 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ Si donas 0.01 BTC o más, tu foto de perfil aparecerá en la lista de patrocinadores que puedes ver aquí arriba :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ Cargando transacción... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ ¡Donación confirmada! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ ¡Gracias! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.fa.xlf b/frontend/src/locale/messages.fa.xlf index 9b1018230..d137faf71 100644 --- a/frontend/src/locale/messages.fa.xlf +++ b/frontend/src/locale/messages.fa.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1125,7 +1125,7 @@ رابط برنامه‌نویسی نرم‌افزار (API) src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1138,7 +1138,7 @@ درباره src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1169,7 +1169,7 @@ شبکه‌های لایه 2 src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1178,7 +1178,7 @@ آمار src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1187,7 +1187,7 @@ داشبورد src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1196,7 +1196,7 @@ گراف‌ها src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1209,7 +1209,7 @@ نمایش تلویزیونی src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1222,7 +1222,7 @@ دارایی‌ها src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1230,56 +1230,26 @@ master-page.assets - - About the project - درباره پروژه + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - پروژه متن‌باز ممپول یک کاوشگر باکیفیت و سایت بصری‌ساز برای همه زیست‌بوم بیت‌کوین است و کاربر را درگیر حواس‌پرتی‌هایی مثل آلت‌کوین‌ها، تبلیغات و جاسوس‌افزارها نمی‌کند. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - توسعه‌دهنده‌ها + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - توسعه‌دهنده - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - امور عملیاتی - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - حامیان ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1288,7 +1258,7 @@ حامی شوید ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1297,16 +1267,40 @@ درخواست فاکتور src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service شرایط خدمات src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1324,7 +1318,7 @@ برای حامی شدن به اینجا برو https://mempool.space/about src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1333,7 +1327,7 @@ مبلغ مورد نیاز است src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1342,7 +1336,7 @@ حداقل مبلغ 0.001 بیت‌کوین است src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1351,7 +1345,7 @@ اگر 0.01 بیت‌کوین یا بیشتر اهدا کنید، تصویر شما به لیست حامیان بالا اضافه می‌شود :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1360,7 +1354,7 @@ منتظر تراکنش... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1369,7 +1363,7 @@ اهدا هدیه تایید شد! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1378,7 +1372,7 @@ ممنون! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.fi.xlf b/frontend/src/locale/messages.fi.xlf index e6e473642..82285d0d0 100644 --- a/frontend/src/locale/messages.fi.xlf +++ b/frontend/src/locale/messages.fi.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1125,7 +1125,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1138,7 +1138,7 @@ Tietoja src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1169,7 +1169,7 @@ Toisen kerroksen verkot src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1178,7 +1178,7 @@ Tilastot src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1187,7 +1187,7 @@ Kojelauta src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1196,7 +1196,7 @@ Kaaviot src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1209,7 +1209,7 @@ TV näkymä src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1222,7 +1222,7 @@ Omaisuuserät src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1230,56 +1230,26 @@ master-page.assets - - About the project - Tietoja projektista + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Mempool avoimen lähdekoodin projektissa tarkoituksena on toteuttaa korkealaatuinen tutkimus- ja visualisointisivusto koko Bitcoin-ekosysteemille ilman häiriötekijöitä, kuten altcoineja, mainontaa tai kolmannen osapuolen seurantalaitteita. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Ylläpitäjät + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Kehitys - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Toiminnot - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsorit ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1288,7 +1258,7 @@ Ryhdy sponsoriksi ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1297,16 +1267,40 @@ Pyydä lasku src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Käyttöehdot src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1324,7 +1318,7 @@ Sponsoroidaksesi navigoi osoitteeseen https://mempool.space/about src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1333,7 +1327,7 @@ Vaadittu määrä src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1342,7 +1336,7 @@ Vähimmäismäärä on 0,001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1351,7 +1345,7 @@ Jos lahjoitat 0,01 BTC tai enemmän, profiilikuvasi lisätään yllä olevaan sponsoriluetteloon :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1360,7 +1354,7 @@ Odotetaan siirtotapahtumaa... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1369,7 +1363,7 @@ Lahjoitus vahvistettu! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1378,7 +1372,7 @@ Kiitos! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.fr.xlf b/frontend/src/locale/messages.fr.xlf index 9a59db7f1..2b51ed971 100644 --- a/frontend/src/locale/messages.fr.xlf +++ b/frontend/src/locale/messages.fr.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ A propos src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ Réseaux de couche 2 src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ Statistiques src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ Tableau de bord src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ Graphiques src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ Vue TV src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ Actifs src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - À propos du projet + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Le projet open-source mempool vise à implémenter un explorateur de haute qualité pour l'entièreté de l'éco-système Bitcoin, sans distraction telles que les altcoins, les publicités, ou les traqueurs tiers. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Mainteneurs + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Développement - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Opérations - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsors ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ Devenir sponsor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ Demander une facture src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Conditions d'utilisation src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ Aller à https://mempool.space/aboutpour sponsoriser src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ Montant requis src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ Le montant minimum est de 0,001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ Si vous donnez 0,01 BTC ou plus, votre photo de profil sera ajoutée à la liste des sponsors ci-dessus :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ En attente de la transaction... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ Don confirmé! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ Merci! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.he.xlf b/frontend/src/locale/messages.he.xlf index 2d26ebcaa..fdf4ec666 100644 --- a/frontend/src/locale/messages.he.xlf +++ b/frontend/src/locale/messages.he.xlf @@ -42,7 +42,7 @@ confirmation - אישור + אישורים src/app/components/transaction/transaction.component.html 17 @@ -86,7 +86,7 @@ Unconfirmed - טרם אושר + טרם אושרו src/app/components/transaction/transaction.component.html 22 @@ -215,7 +215,7 @@ sat - סאט + סאטושיז src/app/components/transaction/transaction.component.html 80 @@ -365,7 +365,7 @@ ETA - זמן הגעה משוער + זמן אישור משוער src/app/components/transaction/transaction.component.html 119 @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1095,7 +1095,7 @@ multisig of - MultiSig מ + multisig of src/app/components/address-labels/address-labels.component.html 5 @@ -1113,7 +1113,7 @@ Liquid - רשת הנזילות + Liquid src/app/components/address-labels/address-labels.component.html 17 @@ -1125,7 +1125,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1138,7 +1138,7 @@ אודות src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1169,7 +1169,7 @@ רשתות שכבה שנייה src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1178,7 +1178,7 @@ סטטיסטיקה src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1187,7 +1187,7 @@ לוח מחוונים src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1196,7 +1196,7 @@ גרפים src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1209,7 +1209,7 @@ תצוגת מרקע src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1222,7 +1222,7 @@ נכסים src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1230,56 +1230,26 @@ master-page.assets - - About the project - על הפרוייקט + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - מטרת פרויקט הקוד הפתוח של Mempool הינה יישום סייר והדמיה באיכות גבוהה עבור כל המערכות של ביטקוין, ללא הסחות דעת כמו אלטקוינז, פרסום או מעקב אחר משתמשים. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - מתחזקים + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - פיתוח - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - תפעול - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - תומכים ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1288,7 +1258,7 @@ הצטרף כתומך ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1297,16 +1267,40 @@ בקשת חשבונית src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service תנאי השירות src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1324,7 +1318,7 @@ עבור ל https://mempool.space/about כדי לתמוך src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1333,7 +1327,7 @@ כמות נדרשת src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1342,7 +1336,7 @@ הסכום המינימלי הינו 0.001 ביטקוין src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1351,7 +1345,7 @@ בתרומה של 0.01 ביטקוין או יותר, תמונת הפרופיל שלך תתווסף לרשימת התורמים מעלה :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1360,7 +1354,7 @@ ממתין לטרנזקציה... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1369,7 +1363,7 @@ תרומה אושרה! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1378,7 +1372,7 @@ תודה לך! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you @@ -1967,7 +1961,7 @@ Difficulty adjustment - התאמת קושי + התאמת קושי הכרייה src/app/dashboard/dashboard.component.html 209 @@ -1976,7 +1970,7 @@ API Service - ממשק API + API Service src/app/components/api-docs/api-docs.component.html 4 @@ -2090,7 +2084,7 @@ Returns our currently suggested fees for new transactions. - הצג עמלות מומלצות לטרנזקציות חדשות + Returns our currently suggested fees for new transactions. src/app/components/api-docs/api-docs.component.html 37 @@ -2100,7 +2094,7 @@ Returns current mempool as projected blocks. - מאחזר את הממפול הנוכחי כבלוקים + Returns current mempool as projected blocks. src/app/components/api-docs/api-docs.component.html 41 @@ -2110,7 +2104,7 @@ Mempool - ממפול + Mempool src/app/components/api-docs/api-docs.component.html 49 @@ -2120,7 +2114,7 @@ Returns current mempool backlog statistics. - הצג את סטטיסטיקת הממפול העכשיווית + Returns current mempool backlog statistics. src/app/components/api-docs/api-docs.component.html 59 @@ -2182,7 +2176,7 @@ Returns the raw block representation in binary. - מאחזר תצוגת בלוק בבינארי. + Returns the raw block representation in binary. src/app/components/api-docs/api-docs.component.html 105 @@ -2190,7 +2184,7 @@ Returns the hash of the block currently at :height. - מאחזר את הגיבוב של הבלוק שכרגע ב: בגובה + Returns the hash of the block currently at :height. src/app/components/api-docs/api-docs.component.html 109 @@ -2198,7 +2192,7 @@ Returns the 10 newest blocks starting at the tip or at :start_height if specified. - מאחזר את 10 הבלוקים החדשים ביותר, מתחיל בקצה או ב :start_height אם הוגדר. + Returns the 10 newest blocks starting at the tip or at :start_height if specified. src/app/components/api-docs/api-docs.component.html 113 @@ -2206,7 +2200,7 @@ Returns the height of the last block. - מאחזר את גובה הבלוק האחרון. + Returns the height of the last block. src/app/components/api-docs/api-docs.component.html 117 @@ -2214,7 +2208,7 @@ Returns the hash of the last block. - מאחזר את גיבוב הבלוק האחרון. + Returns the hash of the last block. src/app/components/api-docs/api-docs.component.html 121 @@ -2230,7 +2224,7 @@ Transactions - טרנזקציות + Transactions src/app/components/api-docs/api-docs.component.html 129 @@ -2288,7 +2282,7 @@ Returns the spending status of all transaction outputs. - מאחזר מצב הבזבוז של כל הפלטים של הטרנזקציה. + Returns the spending status of all transaction outputs. src/app/components/api-docs/api-docs.component.html 167 @@ -2312,7 +2306,7 @@ Addresses - כתובות + Addresses src/app/components/api-docs/api-docs.component.html 179 @@ -2362,7 +2356,7 @@ Assets - נכסים + Assets src/app/components/api-docs/api-docs.component.html 213 @@ -2372,7 +2366,7 @@ Returns information about a Liquid asset. - מאחזר את כל המידע על נכסים נזילים. + Returns information about a Liquid asset. src/app/components/api-docs/api-docs.component.html 223 @@ -2470,7 +2464,7 @@ This transaction saved % on fees by using native SegWit-Bech32 - טרנזקציה זו חסכה % בעמלות בשימוש של Native SegWit-Bech32 + טרנזקציה זו חסכה % בעמלות בשימוש של Native SegWit-Bech32 src/app/components/tx-features/tx-features.component.html 1 @@ -2497,7 +2491,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit-Bech32 - טרנזקציה זו חסכה % בעמלות בשימוש של SegWit ויכלה לחסוך % יותר בשדרוג לNative SegWit-Bech32 + טרנזקציה זו חסכה % בעמלות בשימוש של SegWit ויכלה לחסוך % יותר בשדרוג לNative SegWit-Bech32 src/app/components/tx-features/tx-features.component.html 3 @@ -2506,7 +2500,7 @@ This transaction could save % on fees by upgrading to native SegWit-Bech32 or % by upgrading to SegWit-P2SH - טנרזקציה זו יכלה לחסוך % בעמלה בשדרוג לNative SegWit-Bech32 או % בשדרוג לSegWit-P2SH + טנרזקציה זו יכלה לחסוך % בעמלה בשדרוג לNative SegWit-Bech32 או % בשדרוג לSegWit-P2SH src/app/components/tx-features/tx-features.component.html 5 diff --git a/frontend/src/locale/messages.hr.xlf b/frontend/src/locale/messages.hr.xlf index c291d33e8..34db31bd9 100644 --- a/frontend/src/locale/messages.hr.xlf +++ b/frontend/src/locale/messages.hr.xlf @@ -956,11 +956,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1012,7 +1012,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1060,7 +1060,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1072,7 +1072,7 @@ About src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1100,7 +1100,7 @@ Layer 2 Networks src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1108,7 +1108,7 @@ Stats src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1116,7 +1116,7 @@ Dashboard src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1124,7 +1124,7 @@ Graphs src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1136,7 +1136,7 @@ TV view src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1148,7 +1148,7 @@ Assets src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1156,50 +1156,26 @@ master-page.assets - - About the project + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1207,7 +1183,7 @@ Become a sponsor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1215,15 +1191,39 @@ Request invoice src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1240,7 +1240,7 @@ Navigate to https://mempool.space/about to sponsor src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1248,7 +1248,7 @@ Amount required src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1256,7 +1256,7 @@ Minimum amount is 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1264,7 +1264,7 @@ If you donate 0.01 BTC or more, your profile photo will be added to the list of sponsors above :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1272,7 +1272,7 @@ Waiting for transaction... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1280,7 +1280,7 @@ Donation confirmed! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1288,7 +1288,7 @@ Thank you! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.hu.xlf b/frontend/src/locale/messages.hu.xlf index 48a94de45..960a95ee4 100644 --- a/frontend/src/locale/messages.hu.xlf +++ b/frontend/src/locale/messages.hu.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1125,7 +1125,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1138,7 +1138,7 @@ Részletek src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1169,7 +1169,7 @@ Második Réteg Hálózatok src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1178,7 +1178,7 @@ Adatok src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1187,7 +1187,7 @@ Irányítópult src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1196,7 +1196,7 @@ Grafikon src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1209,7 +1209,7 @@ TV nézet src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1222,7 +1222,7 @@ Assetok src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1230,56 +1230,26 @@ master-page.assets - - About the project - Bővebben a projektről + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - A mempool egy nyílt fórráskódú projekt amelyel azt szeretnénk elérni, hogy kimagasló minőségű keresőt és vizualizációs webhelyet tartsunk fenn a teljes bitcoin ökoszitéma számára annélkül hogy figyelemelterelő szarpénzek, idegesítő hirdetések vagy más harmadik fél általi nyomkövetőket használnánk ehhez. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Fenntartók + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Fejlesztés - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operáció - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Támogatóink ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1288,7 +1258,7 @@ Legyél te is támogatónk! ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1297,16 +1267,40 @@ Számla kérése src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Általános Szolgáltatási Feltételek src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1324,7 +1318,7 @@ Navigálj a https://mempool.space/about-ra hogy támogasd a projektet src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1333,7 +1327,7 @@ Összeg szükséges src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1342,7 +1336,7 @@ A minimum mennyiség 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1351,7 +1345,7 @@ Ha 0.01 BTC-t vagy többet adományozol, akkor a profilkéedet a támogatól listáján feltüntetjük :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1360,7 +1354,7 @@ Tranzakcióra vár... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1369,7 +1363,7 @@ Adomány megerősítve! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1378,7 +1372,7 @@ Köszönjük! ❤️ src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.it.xlf b/frontend/src/locale/messages.it.xlf index 69412fb7f..ecc8eabaa 100644 --- a/frontend/src/locale/messages.it.xlf +++ b/frontend/src/locale/messages.it.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1125,7 +1125,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1138,7 +1138,7 @@ Su di noi src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1169,7 +1169,7 @@ Reti Layer 2 src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1178,7 +1178,7 @@ Statistiche src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1187,7 +1187,7 @@ Dashboard src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1196,7 +1196,7 @@ Grafici src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1209,7 +1209,7 @@ Vista TV src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1222,7 +1222,7 @@ Assets src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1230,56 +1230,26 @@ master-page.assets - - About the project - Sul progetto + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Il progetto open-source mempool si prefigge di sviluppare un explorer di alta qualità per l'intero ecosistema del Bitcoin, senza distrazioni quali altcoins, pubblicità e tracker esterni. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Manutentori + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Sviluppo - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operazioni - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsors ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1288,7 +1258,7 @@ Diventa uno sponsor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1297,16 +1267,40 @@ Richiedi una fattura src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Condizioni d'uso src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1324,7 +1318,7 @@ Visitate https://mempool.space/about per sponsorizzare src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1333,7 +1327,7 @@ Importo richiesto src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1342,7 +1336,7 @@ L'importo minimo è di 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1351,7 +1345,7 @@ Se doni almeno 0.01 BTC la tua foto di profilo sarà aggiunta alla lista degli sponsors qui sopra :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1360,7 +1354,7 @@ In attesa della transazione... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1369,7 +1363,7 @@ Donazione confermata! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1378,7 +1372,7 @@ Grazie! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.ja.xlf b/frontend/src/locale/messages.ja.xlf index b32a90ba1..121912ea6 100644 --- a/frontend/src/locale/messages.ja.xlf +++ b/frontend/src/locale/messages.ja.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ このアプリについて src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ レイヤー2のネットワーク src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ 統計 src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ ダッシュボード src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ グラフ src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ テレビ src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ 資産 src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - プロジェクトについて + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - mempoolオープンソースプロジェクトは、アルトコイン、広告、サードパーティのトラッカーなどの気が散るものなく、ビットコインエコシステム全体に高品質のエクスプローラーと視覚化Webサイトを実装することを目的としています。 + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - メンテナー + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - 開発 - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - オペレーション - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - スポンサー❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ スポンサーになる❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ 請求書を依頼する src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service 利用規約 src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ スポンサーになるには、https://mempool.space/aboutに移動します。 src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ 必要な金額 src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ 最小額は0.001BTCです src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ 0.01 BTC以上を寄付すると、プロフィール写真が上記のスポンサーリストに追加されます:) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ トランザクションを待ち... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ 寄付が確定しました! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ ありがとうございました! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.ka.xlf b/frontend/src/locale/messages.ka.xlf index 2704a453c..febc33a9b 100644 --- a/frontend/src/locale/messages.ka.xlf +++ b/frontend/src/locale/messages.ka.xlf @@ -1003,11 +1003,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1062,7 +1062,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1112,7 +1112,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1125,7 +1125,7 @@ ჩვენს შესახებ src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1156,7 +1156,7 @@ ქსელის 2-ე ფენა src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1165,7 +1165,7 @@ სტატისტიკა src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1174,7 +1174,7 @@ დაფა src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1183,7 +1183,7 @@ დიაგრამები src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1196,7 +1196,7 @@ სატელევიზიო ხედვა src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1209,7 +1209,7 @@ აქტივები src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1217,56 +1217,26 @@ master-page.assets - - About the project - პროექტის შესახებ + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - mempool open-source პროექტია, რომლის მიზანია მაღალი ხარისხის ექსპლორერის შექმნა და ბლოქჩეინის ვიზუალიზაცია ბიტკოინ ეკოსისტემისთვის, შემაწუხებელი ალტკოინების, რეკლამის, და third-party ტრეკერების გარეშე + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - შემნახველები + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - დეველოპერი - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - ოპერაცია - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - სპონსორები ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1275,7 +1245,7 @@ გახდი სპონსორი ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1284,16 +1254,40 @@ მოითხოვეთ ინვოისი src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Მომსახურების პირობები src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1311,7 +1305,7 @@ სპონსორობისთვის გადადით https://mempool.space/about - ზე src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1320,7 +1314,7 @@ საჭირო თანხა src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1329,7 +1323,7 @@ მინიმალური თანხაა 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1338,7 +1332,7 @@ თუ თქვენ გადარიცხავთ 0.01 BTC ან მეტს, თქვენი პროფილი დაემატება სპონსორების სიას :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1347,7 +1341,7 @@ ტრანსაქციის მოლოდინში... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1356,7 +1350,7 @@ გადარიცხვა დადასტურებულია! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1365,7 +1359,7 @@ დიდი მადლობა! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.ko.xlf b/frontend/src/locale/messages.ko.xlf index 289a2b970..adb1ed398 100644 --- a/frontend/src/locale/messages.ko.xlf +++ b/frontend/src/locale/messages.ko.xlf @@ -1011,11 +1011,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1070,7 +1070,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1119,7 +1119,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1132,7 +1132,7 @@ 대하여 src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1163,7 +1163,7 @@ 레이어 2 네트워크들 src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1172,7 +1172,7 @@ 통계 src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1181,7 +1181,7 @@ 대시보드 src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1190,7 +1190,7 @@ 그래프 src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1203,7 +1203,7 @@ TV 뷰 src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1216,7 +1216,7 @@ 자산 src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1224,56 +1224,26 @@ master-page.assets - - About the project - 프로젝트에 대하여 + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - mempool은 오픈소스 프로젝트이며 비트코인 생태계에 고품질 탐색기와 시각화 웹사이트의 제공을 목표로 두고 있습니다. 알트코인, 광고 또는 웹트래킹 같이 불필요한 요소는 일절 포함하지 않습니다. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - 메인테이너들 + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - 개발 - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - 운영 - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - 후원 ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1282,7 +1252,7 @@ 후원하기 ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1291,16 +1261,40 @@ 인보이스 요청하기 src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service 이용약관 src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1318,7 +1312,7 @@ 후원은 https://mempool.space/about 에서 하실 수 있습니다 src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1327,7 +1321,7 @@ 필요한 금액 src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1336,7 +1330,7 @@ 최소 금액은 0.001 BTC입니다 src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1345,7 +1339,7 @@ 0.01BTC 이상을 기부하시면 위의 후원 목록에 프로필 사진이 추가됩니다. :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1354,7 +1348,7 @@ 트랜잭션을 기다리는 중... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1363,7 +1357,7 @@ 후원이 완료되었습니다! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1372,7 +1366,7 @@ 감사합니다! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.nb.xlf b/frontend/src/locale/messages.nb.xlf index 02caa8d78..c93a87d48 100644 --- a/frontend/src/locale/messages.nb.xlf +++ b/frontend/src/locale/messages.nb.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1125,7 +1125,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1138,7 +1138,7 @@ Om src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1169,7 +1169,7 @@ Lag 2-nettverk src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1178,7 +1178,7 @@ Statistikk src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1187,7 +1187,7 @@ Dashbord src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1196,7 +1196,7 @@ Grafer src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1209,7 +1209,7 @@ TV-modus src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1222,7 +1222,7 @@ Ressurser src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1230,56 +1230,26 @@ master-page.assets - - About the project - Om prosjektet + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Mempool er et åpen-kildekode prosjekt som prøver å implementere en utforsker og visualiserings webside av høy kvalitet for hele Bitcoin økosystemet, uten distraksjoner som altcoins, reklame eller tredjeparts trackere. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Vedlikeholdere + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Utvikling - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operasjoner - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsorer ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1288,7 +1258,7 @@ Bli en sponsor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1297,16 +1267,40 @@ Be om faktura src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Bruksvilkår src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1324,7 +1318,7 @@ Gå til https://mempool.space/about for å sponse src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1333,7 +1327,7 @@ Beløp som kreves src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1342,7 +1336,7 @@ Minimum beløp er 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1351,7 +1345,7 @@ Hvis du donerer 0.01 BTC eller mer, så blir ditt profilbilde lagt til i listen av sponsorer ovenfor :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1360,7 +1354,7 @@ Venter på transaksjon... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1369,7 +1363,7 @@ Donasjon bekreftet! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1378,7 +1372,7 @@ Tusen takk! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.nl.xlf b/frontend/src/locale/messages.nl.xlf index 50ed5fc7b..f2a8df086 100644 --- a/frontend/src/locale/messages.nl.xlf +++ b/frontend/src/locale/messages.nl.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ Over src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ Laag-2-netwerken src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ Statistieken src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ Dashboard src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ Grafieken src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ TV-weergave src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ Activa src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - Over het project + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Het (open source) mempool project heeft als doel om een hoge kwaliteit explorer en visaulisatie te bieden voor het gehele Bitcoin-ecosysteem, zonder afleidingen als altcoins, reclame of trackers. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Onderhouders + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Ontwikkeling - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operationeel - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsoren ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ Wordt een sponsor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ Verzoek factuur src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Servicevoorwaarden src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ Navigeer naar https://mempool.space/about om te sponsoren src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ Bedrag vereist src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ Minimumbedrag is 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ Als je 0.01 BTC of meer doneert, wordt je profielfoto aan de bovenstaande lijst van sponsoren toegevoegd :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ Wachten op transactie... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ Donatie bevestigd! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ Bedankt! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.pl.xlf b/frontend/src/locale/messages.pl.xlf index 35b55f2cb..f8d0349d2 100644 --- a/frontend/src/locale/messages.pl.xlf +++ b/frontend/src/locale/messages.pl.xlf @@ -1010,11 +1010,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1069,7 +1069,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1119,7 +1119,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1132,7 +1132,7 @@ O stronie src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1163,7 +1163,7 @@ Sieci Warstwy 2 src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1172,7 +1172,7 @@ Statystyki src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1181,7 +1181,7 @@ Dashboard src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1190,7 +1190,7 @@ Wykresy src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1203,7 +1203,7 @@ Widok TV src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1216,7 +1216,7 @@ Zasoby src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1224,55 +1224,26 @@ master-page.assets - - About the project - O projekcie + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Opiekunowie + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Rozwój - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operacje - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsorzy ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1281,7 +1252,7 @@ Zostań sponsorem ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1290,16 +1261,40 @@ Poproś o fakturę src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Warunki korzystania z usługi src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1316,7 +1311,7 @@ Navigate to https://mempool.space/about to sponsor src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1325,7 +1320,7 @@ Wymagana ilość src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1334,7 +1329,7 @@ Minimalna ilość to 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1343,7 +1338,7 @@ Jeśli przekażesz 0.01 BTC lub więcej, Twoje zdjęcie profilowe zostanie dodane do listy sponsorów powyżej :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1352,7 +1347,7 @@ Oczekiwanie na transakcje... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1361,7 +1356,7 @@ Darowizna potwierdzona! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1370,7 +1365,7 @@ Dziękujemy! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.pt.xlf b/frontend/src/locale/messages.pt.xlf index 41f9b5844..e71790e6d 100644 --- a/frontend/src/locale/messages.pt.xlf +++ b/frontend/src/locale/messages.pt.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ Sobre src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ Rede 2ª Camada src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ Estatísticas src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ Painel de controle src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ Gráficos src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ Visualização da TV src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ Ativos src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - Sobre o projeto + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - O projeto de código aberto mempool visa implementar um explorador de alta qualidade e um site de visualização para todo o ecossistema Bitcoin, sem distrações como altcoins, publicidade ou rastreadores de terceiros. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Mantenedores + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Desenvolvimento - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operação - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Patrocinadores ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ Seja um patrocinador ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ Solicitação de Pagamento src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Termos de Serviço src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ Acesse https://mempool.space/about para patrocinar src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ Quantidade necessária src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ Quantidade mínima é 0,001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ Se você doar 0,01 BTC ou mais, sua foto de perfil será adicionada na lista de patrocinadores acima :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ Aguardando transação... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ Doação confirmada! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ Obrigado! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.sl.xlf b/frontend/src/locale/messages.sl.xlf index 52d478f09..ec1742081 100644 --- a/frontend/src/locale/messages.sl.xlf +++ b/frontend/src/locale/messages.sl.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1125,7 +1125,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1138,7 +1138,7 @@ O projektu src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1169,7 +1169,7 @@ Omrežja 2. plasti src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1178,7 +1178,7 @@ Statistika src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1187,7 +1187,7 @@ Pregledna plošča src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1196,7 +1196,7 @@ Grafi src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1209,7 +1209,7 @@ TV pogled src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1222,7 +1222,7 @@ Sredstva src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1230,56 +1230,26 @@ master-page.assets - - About the project - O projektu + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Cilj odprtokodnega projekta mempool, je ustvariti visokokakovostno spletno mesto za raziskovanje in vizualizacijo celotnega Bitcoin ekosistema, brez motečih vsebin, kot so alternativne kriptovalute, oglaševanje ali sledilci tretjih ponudnikov. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Vzdrževalci + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Razvoj - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operacije - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponzorji ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1288,7 +1258,7 @@ Postanite sponzor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1297,16 +1267,40 @@ Ustvari račun src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Pogoji storitve src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1324,7 +1318,7 @@ Pojdite na https://mempool.space/about za sponzorstvo. src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1333,7 +1327,7 @@ Znesek je zahtevan src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1342,7 +1336,7 @@ Najmanjši znesek je 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1351,7 +1345,7 @@ Če prispevate 0.01 BTC ali več, bo vaša fotografija profila dodana na zgornji seznam sponzorjev :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1360,7 +1354,7 @@ Čakanje na transakcijo... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1369,7 +1363,7 @@ Prispevek potrjen! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1378,7 +1372,7 @@ Hvala vam! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.sv.xlf b/frontend/src/locale/messages.sv.xlf index 0f17c12a2..c1e8d2af2 100644 --- a/frontend/src/locale/messages.sv.xlf +++ b/frontend/src/locale/messages.sv.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1104,6 +1104,7 @@ Lightning + Lightning src/app/components/address-labels/address-labels.component.html 11 @@ -1112,6 +1113,7 @@ Liquid + Liquid src/app/components/address-labels/address-labels.component.html 17 @@ -1123,7 +1125,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1138,7 @@ Om src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1169,7 @@ Lager 2-nätverk src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1178,7 @@ Stats src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1187,7 @@ Instrumentbräda src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1196,7 @@ Grafer src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1209,7 @@ TV-vy src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1222,7 @@ Assets src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1230,29 @@ master-page.assets - - About the project - Om projektet + + The Mempool Open Source Project + Open Source-projektet Mempool src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Öppen källkodsprojektet Mempool har som mål att implementera en högkvalitativ utforskare och visualiserare för hela Bitcoins ekosystem, utan distraktioner som altcoins, reklam eller tredjepartsspårare. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. + En utforskare och API som utvecklas och drivs för Bitcoin-communityt, med fokus på den nya marknaden för transaktionsavgifter för att hjälpa vår övergång till ett ekosystem i flera lager, utan annonser, altcoins eller tredjepartsspårare. src/app/components/about/about.component.html 16 - - Maintainers - Ansvariga + + Community Sponsors ❤️ + Communitysponsorer ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Utveckling - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Drift - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsorer ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1261,7 @@ Bli sponsor ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1270,43 @@ Begär faktura src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + Communityintegrationer + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + Communityallianser + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + Projektunderhållare + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Användarvillkor src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1324,7 @@ Navigera till https://mempool.space/about för att sponsra src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1333,7 @@ Belopp som krävs src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1342,7 @@ Lägsta belopp är 0,001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1351,7 @@ Om du donerar 0,01 BTC eller mer läggs din profilbild till i listan över sponsorer ovan :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1360,7 @@ Väntar på transaktion... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1369,7 @@ Donation bekräftad! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1378,7 @@ Tack! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.tr.xlf b/frontend/src/locale/messages.tr.xlf index 55bc2456a..c13177618 100644 --- a/frontend/src/locale/messages.tr.xlf +++ b/frontend/src/locale/messages.tr.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ Hakkında src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ 2. Katman Ağlar src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ Stat src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ Panel src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ Grafikler src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ TV görünümü src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ Varlıklar src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - Proje hakkında + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Açık kaynak kodlu mempool projemiz ile Bitcoin ekosistemi tarafından tercih edildiği şekilde altcoinler, reklam ve 3. parti takipçiler olmayan, görsel olarak zengin bir blok gezgini yaratıyoruz. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Kahramanlar + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Geliştirici - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Operasyonlar - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Sponsorlar ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ Sponsor olun ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ Fatura isteyin src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Hizmet Koşulları src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ Sponsorluk hakkındaya https://mempool.space/about yönlendir. src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ Gereken miktar src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ Minimum izin verilen miktar 0.001 BTC'dir. src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ 0.01 BTC veya üstünde bağış yaparsanız, profil resminiz yukarıdaki listeye eklenecektir :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ İşlem bekleniyor... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ Bağış onaylandı! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ Teşekkürler! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.uk.xlf b/frontend/src/locale/messages.uk.xlf index 93258e8ba..defa22992 100644 --- a/frontend/src/locale/messages.uk.xlf +++ b/frontend/src/locale/messages.uk.xlf @@ -1014,11 +1014,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1073,7 +1073,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1123,7 +1123,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1136,7 +1136,7 @@ Про src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1167,7 +1167,7 @@ Мережі 2 шару src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1176,7 +1176,7 @@ Статистика src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1185,7 +1185,7 @@ Панель src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1194,7 +1194,7 @@ Графіки src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1207,7 +1207,7 @@ TV перегляд src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1220,7 +1220,7 @@ Активи src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1228,56 +1228,26 @@ master-page.assets - - About the project - Про проект + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Mempool це проект з відкритим кодом націлений на створення високоякісного експлореру та сайту з візуалізацією для всієї екосистеми Біткоїна, без відволікаючих фактів на кшталт альткоїнів, реклами чи сторонніх трекерів. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Розробники + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Розробка - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Операції - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Спонсори ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1286,7 +1256,7 @@ Стати спонсором ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1295,16 +1265,40 @@ Отримати рахунок src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Умови використання src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1322,7 +1316,7 @@ Перейдіть до https://mempool.space/about щоб спонсорувати src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1331,7 +1325,7 @@ Необхідна сума src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1340,7 +1334,7 @@ Мінімальна сума 0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1349,7 +1343,7 @@ Якщо ви пожертвуєте 0.01 BTC або більше, фото вашого профілю буде додане до списку спонсорів вище :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1358,7 +1352,7 @@ Очікуємо на транзакцію... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1367,7 +1361,7 @@ Пожертвування підтверджене! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1376,7 +1370,7 @@ Дякую вам! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.vi.xlf b/frontend/src/locale/messages.vi.xlf index 0035507a2..4b2b13555 100644 --- a/frontend/src/locale/messages.vi.xlf +++ b/frontend/src/locale/messages.vi.xlf @@ -1013,11 +1013,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1072,7 +1072,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1122,7 +1122,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1135,7 +1135,7 @@ Về chúng tôi src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1166,7 +1166,7 @@ Mạng lớp 2 src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1175,7 +1175,7 @@ Số liệu src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1184,7 +1184,7 @@ bảng điều khiển src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1193,7 +1193,7 @@ Đồ thị src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1206,7 +1206,7 @@ Giao diện TV src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1219,7 +1219,7 @@ Tài sản src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1227,56 +1227,26 @@ master-page.assets - - About the project - Về dự án + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Dự án mã nguồn mở mempool hướng đến triển khai một trang web trực quan và chất lượng cao cho toàn bộ hệ sinh thái Bitcoin, không có sự phiền nhiễu khác như altcoin, quảng cáo hoặc trình theo dõi của bên thứ ba. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - Bảo trì + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - Phát triển - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - Vận hành - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - Nhà tài trợ ❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1285,7 +1255,7 @@ Trở thành nhà tài trợ ❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1294,16 +1264,40 @@ Yêu cầu hoá đơn src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service Điều khoản Dịch vụ src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1321,7 +1315,7 @@ Điều hướng đến https://mempool.space/about để tài trợ src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1330,7 +1324,7 @@ Số lượng yêu cầu src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1339,7 +1333,7 @@ Số lượng tối thiểu là 0,001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1348,7 +1342,7 @@ Nếu bạn quyên góp từ 0,01 BTC trở lên, ảnh hồ sơ của bạn sẽ được thêm vào danh sách các nhà tài trợ ở trên :) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1357,7 +1351,7 @@ Đang chờ giao dịch ... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1366,7 +1360,7 @@ Đã xác nhận tài trợ! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1375,7 +1369,7 @@ Cảm ơn bạn! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index 4140d8340..cc70645cc 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -97,7 +97,7 @@ Inputs & Outputs src/app/components/transaction/transaction.component.html - 168 + 142 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -114,7 +114,7 @@ Details src/app/components/transaction/transaction.component.html - 170 + 144 Transaction Details transaction.details @@ -123,11 +123,11 @@ Details src/app/components/transaction/transaction.component.html - 176 + 150 src/app/components/transaction/transaction.component.html - 252 + 226 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -143,7 +143,7 @@ Size src/app/components/transaction/transaction.component.html - 181 + 155 Transaction Size transaction.size @@ -152,7 +152,7 @@ Virtual size src/app/components/transaction/transaction.component.html - 185 + 159 Transaction Virtual Size transaction.vsize @@ -161,7 +161,7 @@ Weight src/app/components/transaction/transaction.component.html - 189 + 163 Transaction Weight transaction.weight @@ -187,15 +187,156 @@ Transaction Timestamp transaction.timestamp + + Included in block + + src/app/components/transaction/transaction.component.html + 55 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 36 + + Transaction included in block + transaction.included-in-block + + + Confirmed + + src/app/components/transaction/transaction.component.html + 62 + + Transaction Confirmed state + transaction.confirmed + + + After + + src/app/components/transaction/transaction.component.html + 63 + + Transaction confirmed after + transaction.confirmed.after + + + Features + + src/app/components/transaction/transaction.component.html + 67 + + + src/app/components/transaction/transaction.component.html + 125 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 42 + + Transaction features + transaction.features + + + ETA + + src/app/components/transaction/transaction.component.html + 104 + + Transaction ETA + transaction.eta + + + First seen + + src/app/components/transaction/transaction.component.html + 98 + + Transaction first seen + transaction.first-seen + + + In several hours (or more) + + src/app/components/transaction/transaction.component.html + 111 + + Transaction ETA in several hours or more + transaction.eta.in-several-hours + + + Transaction not found. + + src/app/components/transaction/transaction.component.html + 251 + + transaction.error.transaction-not-found + + + Waiting for it to appear in the mempool... + + src/app/components/transaction/transaction.component.html + 252 + + transaction.error.waiting-for-it-to-appear + + + In ~ minutes + + src/app/components/transaction/transaction.component.html + 267 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 41 + + Block Frequency (plural) + mempool-blocks.eta-of-next-block-plural + + + In ~ minute + + src/app/components/transaction/transaction.component.html + 269 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 43 + + Block Frequency + mempool-blocks.eta-of-next-block + + + block + + src/app/components/transaction/transaction.component.html + 271 + + + src/app/components/footer/footer.component.html + 22 + + shared.block + + + blocks + + src/app/components/transaction/transaction.component.html + 272 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 30 + + + src/app/components/footer/footer.component.html + 23 + + shared.blocks + Fee src/app/components/transaction/transaction.component.html - 79 - - - src/app/components/transaction/transaction.component.html - 152 + 278 Transaction fee transaction.fee @@ -204,11 +345,7 @@ sat src/app/components/transaction/transaction.component.html - 80 - - - src/app/components/transaction/transaction.component.html - 153 + 279 Transaction Fee sat transaction.fee.sat @@ -217,11 +354,7 @@ Fee per vByte src/app/components/transaction/transaction.component.html - 83 - - - src/app/components/transaction/transaction.component.html - 156 + 282 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -234,11 +367,11 @@ sat/vB src/app/components/transaction/transaction.component.html - 85 + 284 src/app/components/transaction/transaction.component.html - 157 + 294 src/app/components/transactions-list/transactions-list.component.html @@ -295,150 +428,14 @@ sat/vB shared.sat-vbyte - - Included in block + + Effective fee src/app/components/transaction/transaction.component.html - 55 + 292 - - src/app/bisq/bisq-transaction/bisq-transaction.component.html - 36 - - Transaction included in block - transaction.included-in-block - - - Confirmed - - src/app/components/transaction/transaction.component.html - 62 - - Transaction Confirmed state - transaction.confirmed - - - After - - src/app/components/transaction/transaction.component.html - 63 - - Transaction confirmed after - transaction.confirmed.after - - - Features - - src/app/components/transaction/transaction.component.html - 67 - - - src/app/components/transaction/transaction.component.html - 140 - - - src/app/bisq/bisq-transaction/bisq-transaction.component.html - 42 - - Transaction features - transaction.features - - - ETA - - src/app/components/transaction/transaction.component.html - 119 - - Transaction ETA - transaction.eta - - - First seen - - src/app/components/transaction/transaction.component.html - 113 - - Transaction first seen - transaction.first-seen - - - In several hours (or more) - - src/app/components/transaction/transaction.component.html - 126 - - Transaction ETA in several hours or more - transaction.eta.in-several-hours - - - Transaction not found. - - src/app/components/transaction/transaction.component.html - 277 - - transaction.error.transaction-not-found - - - Waiting for it to appear in the mempool... - - src/app/components/transaction/transaction.component.html - 278 - - transaction.error.waiting-for-it-to-appear - - - In ~ minutes - - src/app/components/transaction/transaction.component.html - 293 - - - src/app/components/mempool-blocks/mempool-blocks.component.html - 41 - - Block Frequency (plural) - mempool-blocks.eta-of-next-block-plural - - - In ~ minute - - src/app/components/transaction/transaction.component.html - 295 - - - src/app/components/mempool-blocks/mempool-blocks.component.html - 43 - - Block Frequency - mempool-blocks.eta-of-next-block - - - block - - src/app/components/transaction/transaction.component.html - 297 - - - src/app/components/footer/footer.component.html - 22 - - shared.block - - - blocks - - src/app/components/transaction/transaction.component.html - 298 - - - src/app/components/mempool-blocks/mempool-blocks.component.html - 30 - - - src/app/components/footer/footer.component.html - 23 - - shared.blocks + Effective transaction fee + transaction.effective-fee Coinbase @@ -929,7 +926,7 @@ src/app/components/api-docs/api-docs.component.html - 75 + 79 @@ -940,11 +937,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -996,7 +993,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1044,7 +1041,7 @@ API src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1056,11 +1053,11 @@ About src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts - 38 + 40 master-page.about @@ -1084,7 +1081,7 @@ Layer 2 Networks src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1092,7 +1089,7 @@ Stats src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1100,7 +1097,7 @@ Dashboard src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1108,7 +1105,7 @@ Graphs src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1120,7 +1117,7 @@ TV view src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1132,7 +1129,7 @@ Assets src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1140,50 +1137,34 @@ master-page.assets - - About the project + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers + + Enterprise Sponsors src/app/components/about/about.component.html - 22 + 46 - about.maintainers + about.sponsors.enterprise - - Development + + Community Sponsors ❤️ src/app/components/about/about.component.html - 32 - - about.development - - - Operations - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - - src/app/components/about/about.component.html - 47 + 48 about.sponsors.withHeart @@ -1191,7 +1172,7 @@ Become a sponsor ❤️ src/app/components/about/about.component.html - 63 + 64 about.become-a-sponsor @@ -1199,15 +1180,47 @@ Request invoice src/app/components/about/about.component.html - 85 + 86 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 181 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 276 + + about.alliances + + + Project Contributors + + src/app/components/about/about.component.html + 292 + + about.contributors + + + Project Maintainers + + src/app/components/about/about.component.html + 310 + + about.maintainers + Terms of Service src/app/components/about/about.component.html - 205 + 357 src/app/dashboard/dashboard.component.html @@ -1215,7 +1228,7 @@ src/app/components/api-docs/api-docs.component.html - 284 + 288 Terms of Service shared.terms-of-service @@ -1224,7 +1237,7 @@ Navigate to https://mempool.space/about to sponsor src/app/components/about/about.component.html - 65 + 66 about.navigate-to-sponsor @@ -1232,7 +1245,7 @@ Amount required src/app/components/about/about.component.html - 82 + 83 about.sponsor.amount-required @@ -1240,7 +1253,7 @@ Minimum amount is 0.001 BTC src/app/components/about/about.component.html - 83 + 84 about.sponsor.minimum-amount @@ -1248,7 +1261,7 @@ If you donate 0.01 BTC or more, your profile photo will be added to the list of sponsors above :) src/app/components/about/about.component.html - 92 + 93 about.sponsor.description @@ -1256,7 +1269,7 @@ Waiting for transaction... src/app/components/about/about.component.html - 170 + 171 about.sponsor.waiting-for-transaction @@ -1264,7 +1277,7 @@ Donation confirmed! src/app/components/about/about.component.html - 175 + 176 about.sponsor.donation-confirmed @@ -1272,7 +1285,7 @@ Thank you! src/app/components/about/about.component.html - 175 + 176 about.sponsor.thank-you @@ -1839,27 +1852,27 @@ src/app/components/api-docs/api-docs.component.html - 54 + 58 src/app/components/api-docs/api-docs.component.html - 80 + 84 src/app/components/api-docs/api-docs.component.html - 134 + 138 src/app/components/api-docs/api-docs.component.html - 184 + 188 src/app/components/api-docs/api-docs.component.html - 218 + 222 src/app/components/api-docs/api-docs.component.html - 243 + 247 API Docs Endpoint api-docs.shared.endpoint @@ -1876,27 +1889,27 @@ src/app/components/api-docs/api-docs.component.html - 55 + 59 src/app/components/api-docs/api-docs.component.html - 81 + 85 src/app/components/api-docs/api-docs.component.html - 135 + 139 src/app/components/api-docs/api-docs.component.html - 185 + 189 src/app/components/api-docs/api-docs.component.html - 219 + 223 src/app/components/api-docs/api-docs.component.html - 244 + 248 API Docs Description api-docs.shared.description @@ -1936,11 +1949,20 @@ API Docs for /api/v1/fees/mempool-blocks api-docs.fees.mempool-blocks + + Returns the ancestors and the best descendant fees for a transaction. + + src/app/components/api-docs/api-docs.component.html + 45 + + API Docs for /api/v1/fees/cpfp + api-docs.fees.cpfp + Mempool src/app/components/api-docs/api-docs.component.html - 49 + 53 API Docs tab for Mempool api-docs.tab.mempool @@ -1949,7 +1971,7 @@ Returns current mempool backlog statistics. src/app/components/api-docs/api-docs.component.html - 59 + 63 API Docs for /api/mempool api-docs.mempool.mempool @@ -1958,7 +1980,7 @@ Get the full list of txids in the mempool as an array. The order of the txids is arbitrary and does not match bitcoind. src/app/components/api-docs/api-docs.component.html - 63 + 67 API Docs for /api/mempool/txids api-docs.mempool.txids @@ -1967,7 +1989,7 @@ Get a list of the last 10 transactions to enter the mempool. Each transaction object contains simplified overview data, with the following fields: txid, fee, vsize, and value. src/app/components/api-docs/api-docs.component.html - 67 + 71 API Docs for /api/mempool/recent api-docs.mempool.recent @@ -1976,77 +1998,77 @@ Returns the confirmation status of a block. Available fields: in_best_chain (boolean, false for orphaned blocks), next_best (the hash of the next block, only available for blocks in the best chain). src/app/components/api-docs/api-docs.component.html - 89 + 93 Returns a list of transactions in the block (up to 25 transactions beginning at start_index). Transactions returned here do not have the status field, since all the transactions share the same block and confirmation status. src/app/components/api-docs/api-docs.component.html - 93 + 97 Returns a list of all txids in the block. src/app/components/api-docs/api-docs.component.html - 97 + 101 Returns the transaction at index :index within the specified block. src/app/components/api-docs/api-docs.component.html - 101 + 105 Returns the raw block representation in binary. src/app/components/api-docs/api-docs.component.html - 105 + 109 Returns the hash of the block currently at :height. src/app/components/api-docs/api-docs.component.html - 109 + 113 Returns the 10 newest blocks starting at the tip or at :start_height if specified. src/app/components/api-docs/api-docs.component.html - 113 + 117 Returns the height of the last block. src/app/components/api-docs/api-docs.component.html - 117 + 121 Returns the hash of the last block. src/app/components/api-docs/api-docs.component.html - 121 + 125 Returns details about a block. Available fields: id, height, version, timestamp, bits, nonce, merkle_root, tx_count, size, weight,proof, and previousblockhash. src/app/components/api-docs/api-docs.component.html - 85 + 89 Transactions src/app/components/api-docs/api-docs.component.html - 129 + 133 API Docs tab for Transactions api-docs.tab.transactions @@ -2055,70 +2077,70 @@ Returns details about a transaction. Available fields: txid, version, locktime, size, weight, fee, vin, vout, and status. src/app/components/api-docs/api-docs.component.html - 139 + 143 Returns the confirmation status of a transaction. Available fields: confirmed (boolean), block_height (optional), and block_hash (optional). src/app/components/api-docs/api-docs.component.html - 143 + 147 Returns a transaction serialized as hex. src/app/components/api-docs/api-docs.component.html - 147 + 151 Returns a transaction as binary data. src/app/components/api-docs/api-docs.component.html - 151 + 155 Returns a merkle inclusion proof for the transaction using Electrum's blockchain.transaction.get_merkle format. src/app/components/api-docs/api-docs.component.html - 159 + 163 Returns the spending status of a transaction output. Available fields: spent (boolean), txid (optional), vin (optional), and status (optional, the status of the spending tx). src/app/components/api-docs/api-docs.component.html - 163 + 167 Returns the spending status of all transaction outputs. src/app/components/api-docs/api-docs.component.html - 167 + 171 Broadcast a raw transaction to the network. The transaction should be provided as hex in the request body. The txid will be returned on success. src/app/components/api-docs/api-docs.component.html - 171 + 175 Returns a merkle inclusion proof for the transaction using bitcoind's merkleblock format. src/app/components/api-docs/api-docs.component.html - 155 + 159 Addresses src/app/components/api-docs/api-docs.component.html - 179 + 183 API Docs tab for Addresses api-docs.tab.addresses @@ -2127,42 +2149,42 @@ Returns details about an address. Available fields: address, chain_stats, and mempool_stats. chain,mempool_stats each contain an object with tx_count, funded_txo_count, funded_txo_sum, spent_txo_count, and spent_txo_sum. src/app/components/api-docs/api-docs.component.html - 189 + 193 Get transaction history for the specified address/scripthash, sorted with newest first. Returns up to 50 mempool transactions plus the first 25 confirmed transactions. You can request more confirmed transactions using :last_seen_txid (see below). src/app/components/api-docs/api-docs.component.html - 193,194 + 197,198 Get confirmed transaction history for the specified address/scripthash, sorted with newest first. Returns 25 transactions per page. More can be requested by specifying the last txid seen by the previous query. src/app/components/api-docs/api-docs.component.html - 197 + 201 Get unconfirmed transaction history for the specified address/scripthash. Returns up to 50 transactions (no paging). src/app/components/api-docs/api-docs.component.html - 201 + 205 Get the list of unspent transaction outputs associated with the address/scripthash. Available fields: txid, vout, value, and status (with the status of the funding tx).There is also a valuecommitment field that may appear in place of value, plus the following additional fields: asset/assetcommitment, nonce/noncecommitment, surjection_proof, and range_proof. src/app/components/api-docs/api-docs.component.html - 205 + 209 Assets src/app/components/api-docs/api-docs.component.html - 213 + 217 API Docs tab for Assets api-docs.tab.assets @@ -2171,28 +2193,28 @@ Returns information about a Liquid asset. src/app/components/api-docs/api-docs.component.html - 223 + 227 Returns transactions associated with the specified Liquid asset. For the network's native asset, returns a list of peg in, peg out, and burn transactions. For user-issued assets, returns a list of issuance, reissuance, and burn transactions. Does not include regular transactions transferring this asset. src/app/components/api-docs/api-docs.component.html - 227 + 231 Get the current total supply of the specified asset. For the native asset (L-BTC), this is calculated as [chain,mempool]_stats.peg_in_amount - [chain,mempool]_stats.peg_out_amount - [chain,mempool]_stats.burned_amount. For issued assets, this is calculated as [chain,mempool]_stats.issued_amount - [chain,mempool]_stats.burned_amount. Not available for assets with blinded issuances. If /decimal is specified, returns the supply as a decimal according to the asset's divisibility. Otherwise, returned in base units. src/app/components/api-docs/api-docs.component.html - 231 + 235 BSQ src/app/components/api-docs/api-docs.component.html - 238 + 242 API Docs tab for BSQ api-docs.tab.bsq @@ -2201,49 +2223,49 @@ Returns statistics about all Bisq transactions. src/app/components/api-docs/api-docs.component.html - 248 + 252 Returns details about a Bisq transaction. src/app/components/api-docs/api-docs.component.html - 252 + 256 Returns :length of latest Bisq transactions, starting from :index. src/app/components/api-docs/api-docs.component.html - 256 + 260 Returns all Bisq transactions that exist in a Bitcoin block. src/app/components/api-docs/api-docs.component.html - 260 + 264 Returns :length Bitcoin blocks that contain Bisq transactions, starting from :index. src/app/components/api-docs/api-docs.component.html - 264 + 268 Returns the most recently processed Bitcoin block height processed by Bisq. src/app/components/api-docs/api-docs.component.html - 268 + 272 Returns all Bisq transactions belonging to a Bitcoin address, with 'B' prefixed in front of the address. src/app/components/api-docs/api-docs.component.html - 272 + 276 diff --git a/frontend/src/locale/messages.zh.xlf b/frontend/src/locale/messages.zh.xlf index 27265bfc7..d45b56dfe 100644 --- a/frontend/src/locale/messages.zh.xlf +++ b/frontend/src/locale/messages.zh.xlf @@ -1011,11 +1011,11 @@ src/app/components/master-page/master-page.component.html - 34 + 35 src/app/components/master-page/master-page.component.html - 45 + 46 src/app/bisq/bisq-blocks/bisq-blocks.component.ts @@ -1070,7 +1070,7 @@ src/app/components/master-page/master-page.component.html - 31 + 32 src/app/components/mempool-block/mempool-block.component.html @@ -1120,7 +1120,7 @@ 应用程序接口 src/app/components/master-page/master-page.component.html - 58 + 59 src/app/components/api-docs/api-docs.component.ts @@ -1133,7 +1133,7 @@ 关于 src/app/components/master-page/master-page.component.html - 61 + 62 src/app/components/about/about.component.ts @@ -1164,7 +1164,7 @@ 第2层网络 src/app/components/master-page/master-page.component.html - 21 + 22 master-page.layer2-networks-header @@ -1173,7 +1173,7 @@ 统计 src/app/components/master-page/master-page.component.html - 37 + 38 master-page.stats @@ -1182,7 +1182,7 @@ 仪表板 src/app/components/master-page/master-page.component.html - 42 + 43 master-page.dashboard @@ -1191,7 +1191,7 @@ 图表 src/app/components/master-page/master-page.component.html - 48 + 49 src/app/components/statistics/statistics.component.ts @@ -1204,7 +1204,7 @@ TV模式 src/app/components/master-page/master-page.component.html - 51 + 52 src/app/components/television/television.component.ts @@ -1217,7 +1217,7 @@ 资产 src/app/components/master-page/master-page.component.html - 55 + 56 src/app/assets/assets.component.ts @@ -1225,56 +1225,26 @@ master-page.assets - - About the project - 项目介绍 + + The Mempool Open Source Project src/app/components/about/about.component.html 13 about.about-the-project - - The mempool open-source project aims to implement a high quality explorer and visualization website for the entire Bitcoin ecosystem, without distractions like altcoins, advertising, or third-party trackers. - Mempool开源项目旨在为整个比特币生态系统搭建一个高质量、可视化,但不会像其他加密货币、广告或第三方中介这些分散注意力的网站。 + + An explorer and API developed and operated for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem, without ads, altcoins, or third-party trackers. src/app/components/about/about.component.html 16 - - Maintainers - 维护人员 + + Community Sponsors ❤️ src/app/components/about/about.component.html - 22 - - about.maintainers - - - Development - 开发总工程师 - - src/app/components/about/about.component.html - 32 - - about.development - - - Operations - 首席运营官 - - src/app/components/about/about.component.html - 40 - - about.operations - - - Sponsors ❤️ - 赞助商❤️ - - src/app/components/about/about.component.html - 47 + 46 about.sponsors.withHeart @@ -1283,7 +1253,7 @@ 成为赞助商❤️ src/app/components/about/about.component.html - 63 + 62 about.become-a-sponsor @@ -1292,16 +1262,40 @@ 请求开票 src/app/components/about/about.component.html - 85 + 84 about.sponsor.request-invoice + + Community Integrations + + src/app/components/about/about.component.html + 179 + + about.integrations + + + Community Alliances + + src/app/components/about/about.component.html + 253 + + about.alliances + + + Project Maintainers + + src/app/components/about/about.component.html + 269 + + about.maintainers + Terms of Service 服务条款 src/app/components/about/about.component.html - 205 + 293 src/app/dashboard/dashboard.component.html @@ -1319,7 +1313,7 @@ 转到 https://mempool.space/about 成为赞助人 src/app/components/about/about.component.html - 65 + 64 about.navigate-to-sponsor @@ -1328,7 +1322,7 @@ 所需金额 src/app/components/about/about.component.html - 82 + 81 about.sponsor.amount-required @@ -1337,7 +1331,7 @@ 最低金额为0.001 BTC src/app/components/about/about.component.html - 83 + 82 about.sponsor.minimum-amount @@ -1346,7 +1340,7 @@ 如果您捐赠超过0.01 BTC,您的个人资料与照片将被添加到赞助商列表中:) src/app/components/about/about.component.html - 92 + 91 about.sponsor.description @@ -1355,7 +1349,7 @@ 交易等待中... src/app/components/about/about.component.html - 170 + 169 about.sponsor.waiting-for-transaction @@ -1364,7 +1358,7 @@ 确认捐赠! src/app/components/about/about.component.html - 175 + 174 about.sponsor.donation-confirmed @@ -1373,7 +1367,7 @@ 感谢! src/app/components/about/about.component.html - 175 + 174 about.sponsor.thank-you diff --git a/frontend/src/resources/mempool-space-logo-bigger.png b/frontend/src/resources/mempool-space-logo-bigger.png new file mode 100644 index 000000000..e8b0a384c Binary files /dev/null and b/frontend/src/resources/mempool-space-logo-bigger.png differ diff --git a/frontend/src/resources/profile/bisq.svg b/frontend/src/resources/profile/bisq.svg new file mode 100644 index 000000000..a0ea96c6e --- /dev/null +++ b/frontend/src/resources/profile/bisq.svg @@ -0,0 +1,18 @@ + + + + bisq_logo_green + Created with Sketch. + + + + + + + + + + + + + diff --git a/frontend/src/resources/profile/bisq_network.png b/frontend/src/resources/profile/bisq_network.png new file mode 100644 index 000000000..93b7410b9 Binary files /dev/null and b/frontend/src/resources/profile/bisq_network.png differ diff --git a/frontend/src/resources/profile/blixt.png b/frontend/src/resources/profile/blixt.png new file mode 100644 index 000000000..da7b8e23b Binary files /dev/null and b/frontend/src/resources/profile/blixt.png differ diff --git a/frontend/src/resources/profile/blw.png b/frontend/src/resources/profile/blw.png new file mode 100644 index 000000000..015d86777 Binary files /dev/null and b/frontend/src/resources/profile/blw.png differ diff --git a/frontend/src/resources/profile/copa.png b/frontend/src/resources/profile/copa.png new file mode 100644 index 000000000..49616d700 Binary files /dev/null and b/frontend/src/resources/profile/copa.png differ diff --git a/frontend/src/resources/profile/electrum.jpg b/frontend/src/resources/profile/electrum.jpg new file mode 100644 index 000000000..c1c063d75 Binary files /dev/null and b/frontend/src/resources/profile/electrum.jpg differ diff --git a/frontend/src/resources/profile/gnuagplv3.svg b/frontend/src/resources/profile/gnuagplv3.svg new file mode 100644 index 000000000..505d940db --- /dev/null +++ b/frontend/src/resources/profile/gnuagplv3.svg @@ -0,0 +1,51 @@ + +Layer 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/resources/profile/liquid.svg b/frontend/src/resources/profile/liquid.svg new file mode 100644 index 000000000..f0dd684f5 --- /dev/null +++ b/frontend/src/resources/profile/liquid.svg @@ -0,0 +1,39 @@ + + + brand/logo-products/liquid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/resources/profile/mynodebtc.jpg b/frontend/src/resources/profile/mynodebtc.jpg new file mode 100644 index 000000000..27216e069 Binary files /dev/null and b/frontend/src/resources/profile/mynodebtc.jpg differ diff --git a/frontend/src/resources/profile/phoenix.jpg b/frontend/src/resources/profile/phoenix.jpg new file mode 100644 index 000000000..adfe23520 Binary files /dev/null and b/frontend/src/resources/profile/phoenix.jpg differ diff --git a/frontend/src/resources/profile/raspiblitz.jpg b/frontend/src/resources/profile/raspiblitz.jpg new file mode 100644 index 000000000..2f626e563 Binary files /dev/null and b/frontend/src/resources/profile/raspiblitz.jpg differ diff --git a/frontend/src/resources/profile/ronindojo.png b/frontend/src/resources/profile/ronindojo.png new file mode 100644 index 000000000..1c3776de3 Binary files /dev/null and b/frontend/src/resources/profile/ronindojo.png differ diff --git a/frontend/src/resources/profile/satpile.jpg b/frontend/src/resources/profile/satpile.jpg new file mode 100644 index 000000000..0bdd2dc2a Binary files /dev/null and b/frontend/src/resources/profile/satpile.jpg differ diff --git a/frontend/src/resources/profile_softsimon.jpg b/frontend/src/resources/profile/softsimon.jpg similarity index 100% rename from frontend/src/resources/profile_softsimon.jpg rename to frontend/src/resources/profile/softsimon.jpg diff --git a/frontend/src/resources/profile/sparrow.png b/frontend/src/resources/profile/sparrow.png new file mode 100644 index 000000000..cff0fd302 Binary files /dev/null and b/frontend/src/resources/profile/sparrow.png differ diff --git a/frontend/src/resources/profile/specter.png b/frontend/src/resources/profile/specter.png new file mode 100644 index 000000000..5789063c6 Binary files /dev/null and b/frontend/src/resources/profile/specter.png differ diff --git a/frontend/src/resources/profile/umbrel.png b/frontend/src/resources/profile/umbrel.png new file mode 100644 index 000000000..32b0ad63d Binary files /dev/null and b/frontend/src/resources/profile/umbrel.png differ diff --git a/frontend/src/resources/profile/warden.jpg b/frontend/src/resources/profile/warden.jpg new file mode 100644 index 000000000..740530593 Binary files /dev/null and b/frontend/src/resources/profile/warden.jpg differ diff --git a/frontend/src/resources/profile_wiz.png b/frontend/src/resources/profile/wiz.png similarity index 100% rename from frontend/src/resources/profile_wiz.png rename to frontend/src/resources/profile/wiz.png diff --git a/frontend/src/styles.scss b/frontend/src/styles.scss index 9e90ca5b4..aad6a9f35 100644 --- a/frontend/src/styles.scss +++ b/frontend/src/styles.scss @@ -81,9 +81,6 @@ body { .box { padding: 0.75rem; } - .ct-legend { - display: none; - } } .navbar-nav.liquid > .active { diff --git a/nginx-mempool.conf b/nginx-mempool.conf index 6da53dfd2..8c2f6948b 100644 --- a/nginx-mempool.conf +++ b/nginx-mempool.conf @@ -40,6 +40,12 @@ location /api/v1/donations/images { proxy_pass https://mempool.space; } + location /api/v1/contributors { + proxy_pass https://mempool.space; + } + location /api/v1/contributors/images { + proxy_pass https://mempool.space; + } location /api/v1/ws { proxy_pass http://127.0.0.1:8999/; proxy_http_version 1.1; diff --git a/production/electrs-start-liquid b/production/electrs-start-liquid index cc6875000..ba0aef027 100755 --- a/production/electrs-start-liquid +++ b/production/electrs-start-liquid @@ -12,6 +12,7 @@ do -- \ -vvv \ --address-search \ + --cors '*' \ --network liquid \ --daemon-dir /elements \ --http-addr '[::]:3001' \ diff --git a/production/electrs-start-mainnet b/production/electrs-start-mainnet index 2327e5ad9..d2f5aac56 100755 --- a/production/electrs-start-mainnet +++ b/production/electrs-start-mainnet @@ -11,6 +11,7 @@ do -- \ -vvvv \ --address-search \ + --cors '*' \ --db-dir /electrs \ --daemon-dir $HOME \ --http-addr '[::]:3000' \ diff --git a/production/electrs-start-signet b/production/electrs-start-signet index eac71a190..f4da49f62 100755 --- a/production/electrs-start-signet +++ b/production/electrs-start-signet @@ -11,6 +11,7 @@ do -- \ -vv \ --network signet \ + --cors '*' \ --db-dir /electrs \ --daemon-rpc-addr '127.0.0.1:38332' \ --daemon-dir /bitcoin \ diff --git a/production/electrs-start-testnet b/production/electrs-start-testnet index 43f6b3945..68ae83b3c 100755 --- a/production/electrs-start-testnet +++ b/production/electrs-start-testnet @@ -11,6 +11,7 @@ do -- \ -vvvv \ --network testnet \ + --cors '*' \ --db-dir /electrs \ --daemon-dir $HOME \ --http-addr '[::]:3002' \ diff --git a/production/nginx-mempool.conf b/production/nginx-mempool.conf index e0489ad0b..b9be208a6 100644 --- a/production/nginx-mempool.conf +++ b/production/nginx-mempool.conf @@ -34,6 +34,13 @@ # fallback for all URLs i.e. /address/foo /tx/foo /block/000 location / { try_files /$lang/$uri /$lang/$uri/ $uri $uri/ /en-US/$uri @index-redirect; + add_header Cache-Control "public, no-transform"; + expires 10m; + } + location /resources { + try_files /$lang/$uri /$lang/$uri/ $uri $uri/ /en-US/$uri @index-redirect; + add_header Cache-Control "public, no-transform"; + expires 1h; } location @index-redirect { add_header vary accept-language; @@ -102,16 +109,37 @@ try_files $uri $uri/ /en-US/index.html =404; } - # mainnet API - location /api/v1/donations { - proxy_pass https://node220.bitcoin.wiz.biz; + # serivces API + location /api/v1/contributors { # don't rate limit this API prefix + proxy_pass https://node220.bitcoin.wiz.biz; + proxy_hide_header onion-location; + proxy_hide_header strict-transport-security; + proxy_hide_header content-security-policy; + proxy_hide_header x-frame-options; + } + location /api/v1/donations { + # don't rate limit this API prefix + proxy_pass https://node220.bitcoin.wiz.biz; + proxy_hide_header onion-location; + proxy_hide_header strict-transport-security; + proxy_hide_header content-security-policy; + proxy_hide_header x-frame-options; } location /api/v1/donations/images { + # don't rate limit this API prefix proxy_pass https://node220.bitcoin.wiz.biz; proxy_cache services; proxy_cache_valid 200 1d; + expires 7d; + add_header Cache-Control "public, no-transform"; + proxy_hide_header onion-location; + proxy_hide_header strict-transport-security; + proxy_hide_header content-security-policy; + proxy_hide_header x-frame-options; } + + # mainnet API location /api/v1/ws { proxy_pass http://127.0.0.1:8999/; proxy_http_version 1.1;