From 464b7fe5915350a16efd5231938054e63d6c5214 Mon Sep 17 00:00:00 2001 From: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon, 9 Feb 2026 11:26:05 +0100 Subject: [PATCH 1/6] feat(legal): render terms of service from markdown asset --- assets/legal/Terms of Service.md | 30 ++++ lib/shared/widgets/disclaimer/disclaimer.dart | 165 ++++++------------ 2 files changed, 83 insertions(+), 112 deletions(-) create mode 100644 assets/legal/Terms of Service.md diff --git a/assets/legal/Terms of Service.md b/assets/legal/Terms of Service.md new file mode 100644 index 0000000000..ff3ee2fe00 --- /dev/null +++ b/assets/legal/Terms of Service.md @@ -0,0 +1,30 @@ +These Terms of Service and any terms incorporated herein (the “Terms”) apply to your (“User”) use of the “Technology platform”, including [https://exchange.gleec.com](https://exchange.gleec.com/), the technology and the platform integrated therein and any applications associated therewith, which are operated and maintained by **Gleec Pay LTD and its affiliates companies (“Gleec”, “Gleec.com”, “The Company”, “we”, “us”, “our”)**. + +These Terms apply in connection with the use of any of our products, services or applications – including but not limited to **Gleec Pay, Gleec Card, Gleec Chat, Gleec Exchange and Gleec DEX (collectively the “Services” or the “Platform”)** and your visit or use of our website **Gleec.com (“Site”)** or any of **GLEEC’s ecosystem mobile application (“App”)**. We provide you the possibility to use Our Technology Platform on the following terms and conditions. + +**I. GENERAL PROVISIONS** + +**1\. DEFINITIONS** 1.1. “Communications” shall mean all and any communication, agreement, document, receipt, notice and disclosure, which may be from time to time addressed to User by Gleec. 1.2. “Crypto assets” shall mean such type of assets which can only and exclusively be transmitted by means of block-chain technology, including but not limited to digital coins and digital tokens and any other type of digital mediums of exchange, such as Bitcoin, Ethereum, Ripple, etc, to the full and absolute exempt of the securities of any kind. 1.3. “Deposit/Withdrawal” of crypto assets shall mean remittance of crypto assets to/from Gleec Account from/to external third-party service accordingly. 1.4. “Feedback” is any feedback, suggestion, idea or other information or material regarding Gleec or our Services that you provide, whether by email, posting through our Services or otherwise. 1.5. "Force Majeure Event" shall be understood as any event beyond Gleec's reasonable control, including but not limited to the flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, suspension of bank accounts of any kind, extraordinary leaps of the course of crypto asset, communications, network or power failure, or equipment or software malfunction or any other cause beyond Gleec's reasonable control. 1.6. “Gleec Account” is a User account accessible after the registration process and via the Services where crypto assets may be stored and operated by **GLEEC PAY LTD** on behalf of a User. 1.7. “Gleec IP” shall mean all and any copyright and other intellectual property rights in all content and other materials contained on the Technology Platform or provided in connection with the Services, including, without limitation, the Gleec name, trademark, Gleec logo and all designs, text, graphics, pictures, information, data, software, technologies, know-hows, sound and video files, other files and the selection and arrangement thereof. 1.8. "Third-Party Content" is the content provided by third parties, including without limitation links to web pages of such parties, which may be represented on the Technology Platform. 1.9. "Third-party service" is any platform or network in which crypto assets belong to you or where you are the beneficial owner of crypto assets; and this platform is maintained by a third party outside of the Services; including, but not limited to third-party accounts. 1.10. “Trade” shall be understood as an exchange of the crypto asset of one type, owned by one Gleec Account User, to the crypto asset of another type, owned by the same or another Gleec account User, at the terms and conditions set forth by such exchange parties, and which is executed solely and exclusively within the Technology Platform with crypto assets deposited to those Users’ Gleec Accounts. In no case shall the Trade be deemed or construed to be a marginal trade. 1.11. “Transfer” for the purposes herein shall mean a record of Deposit, Withdrawal and/or Trade transaction of crypto asset into, out from or at User’s Gleec Account, which is technically executed by Gleec in accordance with User’s Deposit/Withdrawal request or Trade order. + +**2\. WARRANTIES, REPRESENTATIONS AND COVENANTS** 2.1. It is a pre-condition that our Services are only provided to those who are permitted to enter in legally binding relationships. Therefore, if there is any reason why you are not able to enter into legally binding relationships with Us, for whatever reason \- do not use our Services. 2.2. You further represent and warrant that you: a. are at least 18 years old or of other legal age, according to your relevant jurisdiction; b. have not previously been suspended or removed from our Services; c. have full power and authority to enter into this legal relationship and by doing so will not violate any other legal relationships; d. use our Technology Platform with your own e-mail and for your own benefit and do not act on behalf and/or to the interest of any other person; e. guarantee that your crypto assets, which you transfer to the Technology Platform are not sold, encumbered, not in contention, or under seizure, and that neither exist any rights of third parties to your crypto assets; f. are not Politically Exposed Person (PEP) or family member or close associate of the PEP. PEPs (as well as family members or close associates of the PEPs) are not allowed to use Gleec's Technology Platform. In case Gleec will establish, that the User of the Technology Platform is PEP (as well as family member or close associate of the PEP), Gleec reserves the right to terminate Gleec Account of such User. For the purpose of this Terms, the definitions "Politically Exposed Person", "family member" and "close associate" have the meaning, as it defines in (i) the FATF Recommendations (International Standards on Combating Money Laundering and the Financing of Terrorism and Proliferation) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF](http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF) Recommendations 2012.pdf and (ii) FATF Guidance on Politically Exposed Persons (Recommendations 12 and 22\) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf](http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf); g. will not use our Services or will immediately cease using those if you are a resident or become a resident at any time of the state or region (in accordance with such state or region definition of residency), where the crypto assets transactions you are going to execute are prohibited or require special approval, permit and/or authorization of any kind, which Gleec has not obtained in this state or region. Notwithstanding the above, you are not in any case allowed to access and use our Services if you are located, incorporated or otherwise established, or a citizen or resident of: Afghanistan, Albania, American Samoa, Anguilla, Antigua and Barbuda, Aruba, Bahamas, Barbados, Belarus, Bermuda, Burkina Faso, Burundi, Cambodia, Cayman Islands, Central African Republic, Congo (Democratic Republic of the), Cook Islands, Cuba, Curaçao, Crimea and Sevastopol, Dominica, Fiji, Guam, Guinea, Guinea-Bissau, Haiti, Iran (Islamic Republic of), Iraq, Jamaica, Jordan, Korea (Democratic People's Republic of), Libya, Mali, Marshall Islands, Morocco, Myanmar (Burma), Nicaragua, Pakistan, Palau, Palestine (State of), Panama, Philippines, Russian Federation, Saint Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines, Samoa, Senegal, Seychelles, Somalia, South Sudan, Sudan, Syrian Arab Republic, Trinidad and Tobago, Turks and Caicos Islands, Uganda, United States Of America, Vanuatu, Venezuela (Bolivarian Republic of), Virgin Islands (British), Virgin Islands (U.S.), Yemen, Zimbabwe or if you are a resident of the United Kingdom or any state, country or other jurisdiction that is embargoed by the United States of America, or a jurisdiction where the local Applicable Law prohibits or will prohibit you at any time (by reason of your nationality, domicile, citizenship, residence or otherwise) to access or use the Services or the Technology Platform (hereinafter, together “The Restricted Jurisdictions”). Gleec reserves the right to close any of your Gleec Accounts, to liquidate any open trade positions, and to force you to withdraw all the crypto assets from the Technology Platform in case if: (i) Gleec determines that you are accessing the Services or the Technology Platform from any Restricted Jurisdiction, or (ii) you have given false representations as to your location of incorporation, establishment, citizenship or place of residence. For the purpose of this clause "Applicable Law" refers to all applicable laws of any governmental authority, including, without limitation, federal, state and foreign securities laws, tax laws, tariff and trade laws, ordinances, judgments, decrees, injunctions, writs and orders or like actions of any governmental authority and rules, regulations, orders, interpretations, licenses, and permits of any federal, regional, state, county, municipal or other governmental authority. + +2.3. When accessing or using the Technology Platform, you further represent, agree and warrant, that you will not violate any law, contract, intellectual property or other third-party right or commit a tort, and that you are solely responsible for your conduct while using our Technology Platform. Without prejudice to the generality of the foregoing, you represent, agree and warrant, that you will not: a. Use the Technology Platform in any manner that could interfere with, disrupt, negatively affect or inhibit other users from using our Technology Platform with full functionality, or that could damage, disable, overburden or impair the functioning of Technology Platform in any manner; b. Use the Technology Platform to pay for, support or otherwise engage in any illegal gambling activities; fraud; money-laundering; or terrorist activities; or any other illegal activities; c. Use any robot, spider, crawler, scraper or other automated means or interface not provided by Us to access the Technology Platform or to extract data; d. Use or attempt to use another User account without authorization; e. Attempt to circumvent any content filtering techniques We employ, or attempt to access any service or area of our Technology Platform that you are not authorized to access; f. Develop any third-party applications that interact with our Technology Platform without our prior written consent; g. Provide false, inaccurate, or misleading information;h. Encourage or induce any third party to engage in any of the activities prohibited under this Section. 2.4. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH INVALIDITY OR BREACH OF ANY OF THE WARRANTIES, REPRESENTATIONS AND COVENANTS OF THIS SECTION AND THE ENTIRE TERMS. + +**3\. RISK DISCLOSURE** 3.1. Due to our internal policies, We only provide the Services to users with sufficient experience, knowledge and understanding of the work principles of our Technology Platform, and those who fully understand the associated risks. You acknowledge and agree that you shall access and use the Technology Platform at your own risk. The risk of loss in Trading crypto assets can be substantial. You should, therefore, carefully consider whether such Trading is appropriate for you in light of your circumstances and resources. You acknowledge and agree the possibility of the following: a. You may sustain a total loss of the crypto assets in your Gleec Account, and, in some cases, you may incur losses beyond such crypto assets. b. Under certain market conditions, you may find it difficult or impossible to liquidate a position. This can occur, for example, when the market reaches a daily price fluctuation limit ("limit move") and there is insufficient liquidity in the market. c. Placing contingent orders, such as "stop-loss" or "stop-limit" orders, will not necessarily limit your losses to the intended amounts, since market conditions may make it impossible to execute such orders. d. All crypto assets positions involve risk, and a "spread" position may not be less risky than an outright "long" or "short" position. e. The use of leverage can work against you as well as for you and can lead to large losses as well as gains. f. All of the points noted above apply to all crypto assets. This brief statement cannot, however, disclose all the risks and other aspects associated with the Trade of crypto assets and shall not be considered as any professional advice. 3.2. Risks Associated with the Internet-based Trading System. You acknowledge that there are risks associated with utilizing an Internet-based trading system including, but not limited to, the failure of hardware, software, and Internet connections. You acknowledge that Gleec shall not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Technology Platform, howsoever caused.3.3. Risks Associated with the Blockchain Protocol. The Technology Platform and its related Services are based on the Blockchain protocol. As such, any malfunction, unintended function, unexpected functioning of or attack on the Blockchain protocol may cause the Technology Platform to malfunction or function in an unexpected or unintended manner. 3.4. Risks Associated with Blockchains and Crypto Assets. You acknowledge and accept that the Gleec has no control over any cryptocurrency network and you understand all risks associated with utilizing any crypto assets network, including, but not limited to the risk of unknown vulnerabilities in or unanticipated changes to any network protocol. We will not be responsible for any harm occurring as a result of such risks. 3.5. No Control Over Your Own Actions. As defined in the foregoing cl. 4.3 (g) and other provisions herein YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS FORGOTTEN PASSWORDS, INCORRECTLY CONSTRUCTED TRANSACTIONS, LOSS OF YOUR ACCESSES ETC. + +**4\. CRYPTO ASSETS PROTECTION** 4.1. We strive to protect your crypto assets from unauthorized access, use, or spending. We use a variety of physical and technical measures designed to protect our systems and your crypto assets. By remitting your crypto assets to Gleec Account you entrust and entitle Us to ultimately take decisions on the safety and security of your crypto assets. 4.2. We reserve the right to take different measures of protection, which include, but are not limited to a diversification of crypto assets in different allocations whether on a segregate record (account) or not. 4.3. Nothing herein shall be deemed or construed as a willingness to a seizure of your crypto assets. The main purpose of this section is to notify you about different measures of protection, that We use to keep your crypto assets safe. + +**5\. ELECTRONIC NOTICES** 5.1. Consent to Electronic Delivery. You agree and consent to receive electronically all Communications, that Gleec may be willing to communicate to you in connection with your Gleec Account and/or use of the Gleec Services. You agree that Gleec may provide these Communications to you by posting them on the Technology Platform. You may contact Us through our Support Center ([https://support.exchange.gleec.com/hc/en-us](https://support.exchange.gleec.com/hc/en-us)) to request electronic copies of Communications. 5.2. Withdrawal of Consent. You may withdraw your consent to receive electronic Communications by sending a withdrawal notice to support. If this is a case you waive your right to plead ignorance. If you decline or withdraw consent to receive electronic Communications, Gleec may suspend or terminate your use of the Technology Platform. 5.3. Updating Contact Information. It is your responsibility to keep your email address on file with Gleec up to date so that Gleec can communicate with you electronically. You understand and agree that if Gleec sends you an electronic Communication but you do not receive it because your email address on file is incorrect, out of date, blocked by your service provider, or you are otherwise unable to receive electronic Communications, Gleec will be deemed to have provided the Communication to you. You waive your right to plead ignorance. Please note that if you use a spam filter that blocks or re-routes emails from senders not listed in your email address book, you must add Gleec to your email address book so that you will be able to receive the Communications We send you. If your email address becomes invalid in a such way that electronic Communications sent to you by Gleec are returned, Gleec may deem your account being inactive, and you may be not able to complete any transaction via the Technology Platform. + +**6\. SPECIAL CONDITIONS** 6.1. Transfer confirmation. Once your Deposit/Withdrawal request or Trade order is executed, a confirmation will be electronically made available via Technology Platform detailing the particulars of the Transfer. You acknowledge and agree that the failure of the Technology Platform to provide such confirmation shall not prejudice or invalidate the terms of such transaction. 6.2. Conditions and Restrictions. We may, at any time and in our sole discretion, refuse to perform any Transfer requested via the Technology Platform, impose limits on the Transfer amount permitted via the Technology Platform or impose any other conditions or restrictions upon your use of the Technology Platform without prior notice. 6.3. Access to the Services. We may, in our sole discretion and without liability to you, with or without prior notice and at any time, modify or discontinue, temporarily or permanently, any portion of our Services. 6.4. Cancellations. You may only cancel a Transfer request initiated via the Technology Platform if such cancellation occurs before Gleec executes the Transfer. Once your Transfer request has been executed, you may not change, withdraw or cancel your authorization for Gleec to complete such Transfer. If a Trade order has been partially filled, you may cancel the unfilled remainder unless the order relates to a market rate Trade. We reserve the right to refuse any cancellation request associated with a market rate Trade order once you have submitted such order. While We may, at our sole discretion, reverse a Trade under certain extraordinary conditions, a customer does not have a right to a reversal of a Trade. 6.5. Insufficient Crypto Assets. If you have an insufficient amount of crypto assets in your Gleec Account to complete a Transfer via the Technology Platform, We may cancel the entire order or may fulfill a partial order using the amount of crypto assets currently available in your Gleec Account. 6.6. Taxes. It is your responsibility to determine what, if any, taxes apply to the Transfers you complete via the Technology Platform, and it is your responsibility to report and remit the correct tax to the appropriate tax authority. You agree that Gleec is not responsible for determining whether taxes apply to your transfers or for collecting, reporting, withholding or remitting any taxes arising from any Trades and Transfers and does not act as your tax agent. 6.7. Feedbacks. We own exclusive rights, including all intellectual property rights, to Feedback. Any Feedback you submit is non-confidential and shall become the sole property of Gleec. We will be entitled to the unrestricted use and dissemination of such Feedback for any purpose, commercial or otherwise, without acknowledgment or compensation to you. You waive any rights you may have to the Feedback (including inter alia any copyrights). Do not provide Feedback if you expect to be paid or want to continue to own or claim rights on it; your idea might be great, but We may have already had the same or a similar idea and We do not want disputes. We also have the right to disclose your identity to any third party who is claiming that any content posted by you constitutes a violation of their intellectual property rights, or of their right to privacy. We have the right to remove any posting you make on our website if, in our opinion, your post does not comply with the content standards set out therein. + +**7\. SUSPENSION AND TERMINATION OF YOUR GLEEC ACCOUNT** 7.1. In case of your breach of the Terms, or any other event as We may deem necessary, including without limitation market disruption and/or Force Majeure event We may, in our sole discretion and without liability to you, with or without prior notice: a. suspend your access to all or a portion of our Services; or b. prevent you from completing any actions via the Technology Platform, including closing any open Trade orders. In case the transferring resumes, you acknowledge that prevailing market rates may differ significantly from the rates available prior to such event; or c. terminate your access to the Services, delete or deactivate your Gleec Account and all related information and files in such account. 7.2. In the event of termination, Gleec will return any crypto assets stored in your Gleec Account and not owed to Gleec, unless Gleec believes you have committed fraud, negligence or other misconduct. + +**8\. DISCLAIMER OF WARRANTIES. LIMITATION OF LIABILITIES** 8.1. Except as expressly provided to the contrary in a writing by Us, our services are provided on an "As is" and "As available" basis. WE EXPRESSLY DISCLAIM, AND YOU WAIVE, ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT AS TO OUR SERVICES, INCLUDING THE INFORMATION, CONTENT AND MATERIALS CONTAINED THEREIN. 8.2. You acknowledge that information you store or transfer through our services may become irretrievably lost or corrupted or temporarily unavailable due to a variety of causes, including but not limited to software failures, protocol changes by third party providers, internet outages, Force Majeure event or other disasters including third party DDOS attacks, scheduled or unscheduled maintenance, or other causes either within or outside our control. You are solely responsible for backing up and maintaining duplicate copies of any information you store or transfer through our services. 8.3. Except as otherwise required by law, IN NO EVENT SHALL GLEEC, OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES OR AGENTS BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL DAMAGES, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE OUR SERVICES OR THE GLEEC IP, INCLUDING WITHOUT LIMITATION ANY DAMAGES CAUSED BY OR RESULTING FROM RELIANCE BY ANY USER ON ANY INFORMATION OBTAINED FROM GLEEC, OR THAT RESULT FROM MISTAKES, OMISSIONS, INTERRUPTIONS, DELETION OF FILES OR EMAIL, ERRORS, DEFECTS, VIRUSES, DELAYS IN OPERATION OR TRANSMISSION OR ANY FAILURE OF PERFORMANCE, WHETHER OR NOT RESULTING FROM A FORCE MAJEURE EVENT, COMMUNICATIONS FAILURE, THEFT, DESTRUCTION OR UNAUTHORIZED ACCESS TO GLEEC'S RECORDS, PROGRAMS OR SERVICES. 8.4. We resume the right, in our sole discretion, to control any action or proceeding (at our expense) to which We are a participant and determine whether We wish to settle it. 8.5. To the maximum extent permitted by applicable law, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF GLEEC (INCLUDING OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES AND AGENTS), WHETHER IN CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE, WHETHER ACTIVE, PASSIVE OR IMPUTED), PRODUCT LIABILITY, STRICT LIABILITY OR OTHER THEORY, ARISING OUT OF OR RELATING TO THE USE OF, OR INABILITY TO USE, GLEEC OR TO THESE TERMS EXCEED THE EQUIVALENT OF $100 USD. 8.6. Gleec shall not be liable for: a. any inaccuracy, error, delay in, or omission of (i) any information, or (ii) the transmission or delivery of information; b. any loss or damage arising from a Force Majeure Event. 8.7. We strive to protect our users from fraudulent and scam activities in crypto assets sphere. It is possible that some crypto assets are purposed for unlawful seizure of the property, or are construed as a fraud, scam or any other activity, recognized by the laws as illegal and/or non-compliant with legal requirements. We reserve the right to prohibit and discontinue any transactions on our Technology Platform with such crypto asset at our sole discretion, without any prior notice to you and without publication of the reason for such decision, whenever this comes to our knowledge. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH PROHIBITION AND DISCONTINUATION OF TRANSACTIONS IN OUR TECHNOLOGY PLATFORM WITH ANY CRYPTO ASSET. 8.8. To be able to access to our Technology Platform, the User may use without limitation different mobile devices, such as mobile internet devices, tablets/smartphones and wearable computers ("Mobile Devices"). In no way, we make any guarantee that each particular Mobile Device is compatible with our Technology Platform. YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM VIA MOBILE DEVICES, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR INABILITY TO CONNECT TO OUR TECHNOLOGY PLATFORM FROM PARTICULAR MOBILE DEVICE AND YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS YOUR LOSS/DAMAGE/DEFECT OF SUCH MOBILE DEVICE. + +**9\. NO OFFER OF SECURITIES** 9.1. Gleec endeavors all possible measures to be sure that crypto assets that are available via the Technology Platform cannot be classified as "security" by SEC and/or other competent national authorities. Moreover, Gleec represents that it never intended or desired to make tokens and/or coins that can be classified as "security" available via Technology Platform. 9.2. The responsibility for the fact that the instrument cannot be treated as “security” lies with the owner of token and/or coin. If there is any risk or speculations that token and/or coin can be treated as “security”, the Technology Platform reserves the right to prohibit and discontinue any transactions on our Technology Platform with such tokens and/or coins at its sole discretion. 9.3. We follow the best practices to decide whether crypto asset is security or not. However, We give no warranty and/or investment, financial, legal or any other professional advice, that any crypto asset available via our Technology Platform is not a security. + +**10\. APPLICABLE LAW; ARBITRATION** 10.1. You and Gleec agree to arbitrate any dispute arising from these Terms or your use of the Services, except for disputes in which either party seeks equitable and other relief for the alleged unlawful use of copyrights, trademarks, trade names, logos, trade secrets or patents. ARBITRATION PREVENTS YOU FROM SUING IN COURT OR FROM HAVING A JURY TRIAL. 10.2. You and Gleec agree to notify each other in writing of any dispute within thirty (30) days of when it arises. Notice to Gleec shall be sent to legal@exchange.gleec.com. 10.3. Any dispute, controversy, difference or claim arising out of or relating to the Terms, including the existence, validity, interpretation, performance, breach or termination thereof or any dispute regarding non-contractual obligations arising out of or relating to it shall be referred to and finally resolved by arbitration administered by the Estonian Government under the the regulations of the Civil Code of Procedure in Estonia in force when the Notice of Arbitration is submitted. 10.4. The law of this arbitration clause shall be Estonia law. 10.5. The seat of arbitration shall be in Estonia. 10.6. The number of arbitrators shall be three. The arbitration proceedings shall be conducted in English language. 10.7. Other than class procedures and remedies discussed below, the arbitrator has the authority to grant any remedy that would otherwise be available in court. Any dispute between the parties will be governed by these Terms and the laws of Hong Kong, without giving effect to any conflict of laws principles that may provide for the application of the law of another jurisdiction. 10.8. Whether the dispute is heard in arbitration or in court, you will not commence against Gleec a class action, class arbitration or representative action or proceeding. + +**11\. MISCELLANEOUS** 11.1. Entire Agreement. These Terms contain the entire agreement, and supersede all prior and contemporaneous understandings between the parties regarding the Services. 11.2. Order of Precedence. In the event of any conflict between these Terms and any other agreement you may have with Gleec, the terms of that other agreement will prevail only if these Terms are specifically identified and declared to be overridden by such other agreement. 11.3. Amendments. We reserve the right to make changes or modifications to these Terms from time to time, in our sole discretion. If We make changes to these Terms, We will provide you with notice of such changes, such as by sending an e-mail, providing notice on the homepage of the Site and/or by posting the amended Terms via the applicable Gleec websites and mobile applications and updating the "Last Updated" date at the top of these Terms. The amended Terms will be deemed effective immediately upon posting for any new users of the Services. In all other cases, the amended Terms will become effective for preexisting users upon the earlier of either: a. the date User click or press a button to accept such changes or; b. the date User continues use of our Services after Gleec provides notice of such changes or publishes new version of the Terms on the Website. 11.4. Any amended Terms will apply prospectively to use of the Services after such changes become effective. If you do not agree to any amended Terms, you must discontinue using our Services and contact us to terminate your account. 11.5. No Waiver. Our failure or delay in exercising any right, power or privilege under these Terms shall not operate as a waiver thereof. 11.6. Severability. The invalidity or unenforceability of any of these Terms shall not affect the validity or enforceability of any other of these Terms, all of which shall remain in full force and effect. 11.7. Assignment. You may not assign or transfer any of your rights or obligations under these Terms without prior written consent from Gleec, including by operation of law or in connection with any change of control. Gleec may assign or transfer any or all of its rights under these Terms, in whole or in part, without obtaining your consent or approval. + diff --git a/lib/shared/widgets/disclaimer/disclaimer.dart b/lib/shared/widgets/disclaimer/disclaimer.dart index a8c02c5940..4bf2263ce7 100644 --- a/lib/shared/widgets/disclaimer/disclaimer.dart +++ b/lib/shared/widgets/disclaimer/disclaimer.dart @@ -1,133 +1,74 @@ +import 'dart:async'; + import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_markdown/flutter_markdown.dart'; +import 'package:url_launcher/url_launcher_string.dart'; import 'package:web_dex/generated/codegen_loader.g.dart'; import 'package:komodo_ui_kit/komodo_ui_kit.dart'; -import 'package:web_dex/shared/widgets/disclaimer/constants.dart'; -import 'package:web_dex/shared/widgets/disclaimer/tos_content.dart'; class Disclaimer extends StatefulWidget { - const Disclaimer({Key? key, required this.onClose}) : super(key: key); + const Disclaimer({super.key, required this.onClose}); final Function() onClose; @override State createState() => _DisclaimerState(); } -class _DisclaimerState extends State with TickerProviderStateMixin { +class _DisclaimerState extends State { + static const String _termsOfServiceAssetPath = + 'assets/legal/Terms of Service.md'; + late final Future _termsOfServiceFuture; + final ScrollController _scrollController = ScrollController(); + @override - Widget build(BuildContext context) { - final List disclaimerToSText = [ - TextSpan( - text: disclaimerTocTitle2, - style: Theme.of(context).textTheme.titleLarge), - TextSpan( - text: disclaimerTocParagraph2, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle3, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocTitle4, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph3, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle5, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph4, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle6, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph5, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle7, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph6, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle8, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph7, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle9, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph8, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle10, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph9, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle11, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph10, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle12, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph11, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle13, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph12, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle14, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph13, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle15, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph14, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle16, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph15, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle17, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocTitle19, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph18, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerTocTitle20, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerTocParagraph19, - style: Theme.of(context).textTheme.bodyMedium) - ]; + void initState() { + super.initState(); + _termsOfServiceFuture = rootBundle.loadString(_termsOfServiceAssetPath); + } + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { return Column( children: [ SizedBox( height: MediaQuery.of(context).size.height * 2 / 3, - child: SingleChildScrollView( - controller: ScrollController(), - child: TosContent(disclaimerToSText: disclaimerToSText), + child: FutureBuilder( + future: _termsOfServiceFuture, + builder: (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.connectionState != ConnectionState.done) { + return const Center(child: CircularProgressIndicator()); + } + + if (snapshot.hasError) { + return Padding( + padding: const EdgeInsets.all(16), + child: SelectableText( + 'Failed to load the Terms of Service.', + style: Theme.of(context).textTheme.bodyMedium, + ), + ); + } + + return Markdown( + controller: _scrollController, + selectable: true, + padding: const EdgeInsets.all(16), + data: snapshot.data ?? '', + styleSheet: MarkdownStyleSheet.fromTheme(Theme.of(context)), + onTapLink: (_, String? href, __) { + if (href == null || href.isEmpty) return; + unawaited(launchUrlString(href)); + }, + ); + }, ), ), const SizedBox(height: 24), From 4ad9cd3b7a03867a603563cdfd24157c567e7810 Mon Sep 17 00:00:00 2001 From: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon, 9 Feb 2026 11:32:31 +0100 Subject: [PATCH 2/6] fix(legal): prevent tos popup freeze on open --- lib/shared/widgets/disclaimer/disclaimer.dart | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/shared/widgets/disclaimer/disclaimer.dart b/lib/shared/widgets/disclaimer/disclaimer.dart index 4bf2263ce7..f1f38d0237 100644 --- a/lib/shared/widgets/disclaimer/disclaimer.dart +++ b/lib/shared/widgets/disclaimer/disclaimer.dart @@ -50,23 +50,27 @@ class _DisclaimerState extends State { if (snapshot.hasError) { return Padding( padding: const EdgeInsets.all(16), - child: SelectableText( + child: Text( 'Failed to load the Terms of Service.', style: Theme.of(context).textTheme.bodyMedium, ), ); } - return Markdown( - controller: _scrollController, - selectable: true, - padding: const EdgeInsets.all(16), - data: snapshot.data ?? '', - styleSheet: MarkdownStyleSheet.fromTheme(Theme.of(context)), - onTapLink: (_, String? href, __) { - if (href == null || href.isEmpty) return; - unawaited(launchUrlString(href)); - }, + return DexScrollbar( + scrollController: _scrollController, + child: SingleChildScrollView( + controller: _scrollController, + padding: const EdgeInsets.all(16), + child: MarkdownBody( + data: snapshot.data ?? '', + styleSheet: MarkdownStyleSheet.fromTheme(Theme.of(context)), + onTapLink: (_, String? href, __) { + if (href == null || href.isEmpty) return; + unawaited(launchUrlString(href)); + }, + ), + ), ); }, ), From 2d99a9ad2e544eaefbbc20706b320e751fee438d Mon Sep 17 00:00:00 2001 From: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon, 9 Feb 2026 11:34:01 +0100 Subject: [PATCH 3/6] chore: add pubspec assets --- pubspec.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/pubspec.yaml b/pubspec.yaml index d29eb4636a..04da8e09df 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -221,6 +221,7 @@ flutter: assets: - assets/ - assets/custom_icons/16px/ + - assets/legal/ - assets/logo/ - assets/fonts/ - assets/flags/ From b4bdff1ee96e70eb5a170e633e46ee76ec98c561 Mon Sep 17 00:00:00 2001 From: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Mon, 9 Feb 2026 12:35:48 +0100 Subject: [PATCH 4/6] fix(disclaimer): improve ToS markdown rendering and dialog behavior --- assets/legal/Terms of Service.md | 123 ++++++++++++++++-- lib/shared/widgets/disclaimer/disclaimer.dart | 4 +- .../disclaimer/eula_tos_checkboxes.dart | 49 ++++--- pubspec.yaml | 2 +- 4 files changed, 137 insertions(+), 41 deletions(-) diff --git a/assets/legal/Terms of Service.md b/assets/legal/Terms of Service.md index ff3ee2fe00..cb02d524cd 100644 --- a/assets/legal/Terms of Service.md +++ b/assets/legal/Terms of Service.md @@ -2,29 +2,126 @@ These Terms of Service and any terms incorporated herein (the “Terms”) apply These Terms apply in connection with the use of any of our products, services or applications – including but not limited to **Gleec Pay, Gleec Card, Gleec Chat, Gleec Exchange and Gleec DEX (collectively the “Services” or the “Platform”)** and your visit or use of our website **Gleec.com (“Site”)** or any of **GLEEC’s ecosystem mobile application (“App”)**. We provide you the possibility to use Our Technology Platform on the following terms and conditions. -**I. GENERAL PROVISIONS** +## I. GENERAL PROVISIONS -**1\. DEFINITIONS** 1.1. “Communications” shall mean all and any communication, agreement, document, receipt, notice and disclosure, which may be from time to time addressed to User by Gleec. 1.2. “Crypto assets” shall mean such type of assets which can only and exclusively be transmitted by means of block-chain technology, including but not limited to digital coins and digital tokens and any other type of digital mediums of exchange, such as Bitcoin, Ethereum, Ripple, etc, to the full and absolute exempt of the securities of any kind. 1.3. “Deposit/Withdrawal” of crypto assets shall mean remittance of crypto assets to/from Gleec Account from/to external third-party service accordingly. 1.4. “Feedback” is any feedback, suggestion, idea or other information or material regarding Gleec or our Services that you provide, whether by email, posting through our Services or otherwise. 1.5. "Force Majeure Event" shall be understood as any event beyond Gleec's reasonable control, including but not limited to the flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, suspension of bank accounts of any kind, extraordinary leaps of the course of crypto asset, communications, network or power failure, or equipment or software malfunction or any other cause beyond Gleec's reasonable control. 1.6. “Gleec Account” is a User account accessible after the registration process and via the Services where crypto assets may be stored and operated by **GLEEC PAY LTD** on behalf of a User. 1.7. “Gleec IP” shall mean all and any copyright and other intellectual property rights in all content and other materials contained on the Technology Platform or provided in connection with the Services, including, without limitation, the Gleec name, trademark, Gleec logo and all designs, text, graphics, pictures, information, data, software, technologies, know-hows, sound and video files, other files and the selection and arrangement thereof. 1.8. "Third-Party Content" is the content provided by third parties, including without limitation links to web pages of such parties, which may be represented on the Technology Platform. 1.9. "Third-party service" is any platform or network in which crypto assets belong to you or where you are the beneficial owner of crypto assets; and this platform is maintained by a third party outside of the Services; including, but not limited to third-party accounts. 1.10. “Trade” shall be understood as an exchange of the crypto asset of one type, owned by one Gleec Account User, to the crypto asset of another type, owned by the same or another Gleec account User, at the terms and conditions set forth by such exchange parties, and which is executed solely and exclusively within the Technology Platform with crypto assets deposited to those Users’ Gleec Accounts. In no case shall the Trade be deemed or construed to be a marginal trade. 1.11. “Transfer” for the purposes herein shall mean a record of Deposit, Withdrawal and/or Trade transaction of crypto asset into, out from or at User’s Gleec Account, which is technically executed by Gleec in accordance with User’s Deposit/Withdrawal request or Trade order. +### 1. DEFINITIONS -**2\. WARRANTIES, REPRESENTATIONS AND COVENANTS** 2.1. It is a pre-condition that our Services are only provided to those who are permitted to enter in legally binding relationships. Therefore, if there is any reason why you are not able to enter into legally binding relationships with Us, for whatever reason \- do not use our Services. 2.2. You further represent and warrant that you: a. are at least 18 years old or of other legal age, according to your relevant jurisdiction; b. have not previously been suspended or removed from our Services; c. have full power and authority to enter into this legal relationship and by doing so will not violate any other legal relationships; d. use our Technology Platform with your own e-mail and for your own benefit and do not act on behalf and/or to the interest of any other person; e. guarantee that your crypto assets, which you transfer to the Technology Platform are not sold, encumbered, not in contention, or under seizure, and that neither exist any rights of third parties to your crypto assets; f. are not Politically Exposed Person (PEP) or family member or close associate of the PEP. PEPs (as well as family members or close associates of the PEPs) are not allowed to use Gleec's Technology Platform. In case Gleec will establish, that the User of the Technology Platform is PEP (as well as family member or close associate of the PEP), Gleec reserves the right to terminate Gleec Account of such User. For the purpose of this Terms, the definitions "Politically Exposed Person", "family member" and "close associate" have the meaning, as it defines in (i) the FATF Recommendations (International Standards on Combating Money Laundering and the Financing of Terrorism and Proliferation) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF](http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF) Recommendations 2012.pdf and (ii) FATF Guidance on Politically Exposed Persons (Recommendations 12 and 22\) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf](http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf); g. will not use our Services or will immediately cease using those if you are a resident or become a resident at any time of the state or region (in accordance with such state or region definition of residency), where the crypto assets transactions you are going to execute are prohibited or require special approval, permit and/or authorization of any kind, which Gleec has not obtained in this state or region. Notwithstanding the above, you are not in any case allowed to access and use our Services if you are located, incorporated or otherwise established, or a citizen or resident of: Afghanistan, Albania, American Samoa, Anguilla, Antigua and Barbuda, Aruba, Bahamas, Barbados, Belarus, Bermuda, Burkina Faso, Burundi, Cambodia, Cayman Islands, Central African Republic, Congo (Democratic Republic of the), Cook Islands, Cuba, Curaçao, Crimea and Sevastopol, Dominica, Fiji, Guam, Guinea, Guinea-Bissau, Haiti, Iran (Islamic Republic of), Iraq, Jamaica, Jordan, Korea (Democratic People's Republic of), Libya, Mali, Marshall Islands, Morocco, Myanmar (Burma), Nicaragua, Pakistan, Palau, Palestine (State of), Panama, Philippines, Russian Federation, Saint Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines, Samoa, Senegal, Seychelles, Somalia, South Sudan, Sudan, Syrian Arab Republic, Trinidad and Tobago, Turks and Caicos Islands, Uganda, United States Of America, Vanuatu, Venezuela (Bolivarian Republic of), Virgin Islands (British), Virgin Islands (U.S.), Yemen, Zimbabwe or if you are a resident of the United Kingdom or any state, country or other jurisdiction that is embargoed by the United States of America, or a jurisdiction where the local Applicable Law prohibits or will prohibit you at any time (by reason of your nationality, domicile, citizenship, residence or otherwise) to access or use the Services or the Technology Platform (hereinafter, together “The Restricted Jurisdictions”). Gleec reserves the right to close any of your Gleec Accounts, to liquidate any open trade positions, and to force you to withdraw all the crypto assets from the Technology Platform in case if: (i) Gleec determines that you are accessing the Services or the Technology Platform from any Restricted Jurisdiction, or (ii) you have given false representations as to your location of incorporation, establishment, citizenship or place of residence. For the purpose of this clause "Applicable Law" refers to all applicable laws of any governmental authority, including, without limitation, federal, state and foreign securities laws, tax laws, tariff and trade laws, ordinances, judgments, decrees, injunctions, writs and orders or like actions of any governmental authority and rules, regulations, orders, interpretations, licenses, and permits of any federal, regional, state, county, municipal or other governmental authority. +1.1. “Communications” shall mean all and any communication, agreement, document, receipt, notice and disclosure, which may be from time to time addressed to User by Gleec. +1.2. “Crypto assets” shall mean such type of assets which can only and exclusively be transmitted by means of block-chain technology, including but not limited to digital coins and digital tokens and any other type of digital mediums of exchange, such as Bitcoin, Ethereum, Ripple, etc, to the full and absolute exempt of the securities of any kind. +1.3. “Deposit/Withdrawal” of crypto assets shall mean remittance of crypto assets to/from Gleec Account from/to external third-party service accordingly. +1.4. “Feedback” is any feedback, suggestion, idea or other information or material regarding Gleec or our Services that you provide, whether by email, posting through our Services or otherwise. +1.5. "Force Majeure Event" shall be understood as any event beyond Gleec's reasonable control, including but not limited to the flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, suspension of bank accounts of any kind, extraordinary leaps of the course of crypto asset, communications, network or power failure, or equipment or software malfunction or any other cause beyond Gleec's reasonable control. +1.6. “Gleec Account” is a User account accessible after the registration process and via the Services where crypto assets may be stored and operated by **GLEEC PAY LTD** on behalf of a User. +1.7. “Gleec IP” shall mean all and any copyright and other intellectual property rights in all content and other materials contained on the Technology Platform or provided in connection with the Services, including, without limitation, the Gleec name, trademark, Gleec logo and all designs, text, graphics, pictures, information, data, software, technologies, know-hows, sound and video files, other files and the selection and arrangement thereof. +1.8. "Third-Party Content" is the content provided by third parties, including without limitation links to web pages of such parties, which may be represented on the Technology Platform. +1.9. "Third-party service" is any platform or network in which crypto assets belong to you or where you are the beneficial owner of crypto assets; and this platform is maintained by a third party outside of the Services; including, but not limited to third-party accounts. +1.10. “Trade” shall be understood as an exchange of the crypto asset of one type, owned by one Gleec Account User, to the crypto asset of another type, owned by the same or another Gleec account User, at the terms and conditions set forth by such exchange parties, and which is executed solely and exclusively within the Technology Platform with crypto assets deposited to those Users’ Gleec Accounts. In no case shall the Trade be deemed or construed to be a marginal trade. +1.11. “Transfer” for the purposes herein shall mean a record of Deposit, Withdrawal and/or Trade transaction of crypto asset into, out from or at User’s Gleec Account, which is technically executed by Gleec in accordance with User’s Deposit/Withdrawal request or Trade order. -2.3. When accessing or using the Technology Platform, you further represent, agree and warrant, that you will not violate any law, contract, intellectual property or other third-party right or commit a tort, and that you are solely responsible for your conduct while using our Technology Platform. Without prejudice to the generality of the foregoing, you represent, agree and warrant, that you will not: a. Use the Technology Platform in any manner that could interfere with, disrupt, negatively affect or inhibit other users from using our Technology Platform with full functionality, or that could damage, disable, overburden or impair the functioning of Technology Platform in any manner; b. Use the Technology Platform to pay for, support or otherwise engage in any illegal gambling activities; fraud; money-laundering; or terrorist activities; or any other illegal activities; c. Use any robot, spider, crawler, scraper or other automated means or interface not provided by Us to access the Technology Platform or to extract data; d. Use or attempt to use another User account without authorization; e. Attempt to circumvent any content filtering techniques We employ, or attempt to access any service or area of our Technology Platform that you are not authorized to access; f. Develop any third-party applications that interact with our Technology Platform without our prior written consent; g. Provide false, inaccurate, or misleading information;h. Encourage or induce any third party to engage in any of the activities prohibited under this Section. 2.4. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH INVALIDITY OR BREACH OF ANY OF THE WARRANTIES, REPRESENTATIONS AND COVENANTS OF THIS SECTION AND THE ENTIRE TERMS. +### 2. WARRANTIES, REPRESENTATIONS AND COVENANTS -**3\. RISK DISCLOSURE** 3.1. Due to our internal policies, We only provide the Services to users with sufficient experience, knowledge and understanding of the work principles of our Technology Platform, and those who fully understand the associated risks. You acknowledge and agree that you shall access and use the Technology Platform at your own risk. The risk of loss in Trading crypto assets can be substantial. You should, therefore, carefully consider whether such Trading is appropriate for you in light of your circumstances and resources. You acknowledge and agree the possibility of the following: a. You may sustain a total loss of the crypto assets in your Gleec Account, and, in some cases, you may incur losses beyond such crypto assets. b. Under certain market conditions, you may find it difficult or impossible to liquidate a position. This can occur, for example, when the market reaches a daily price fluctuation limit ("limit move") and there is insufficient liquidity in the market. c. Placing contingent orders, such as "stop-loss" or "stop-limit" orders, will not necessarily limit your losses to the intended amounts, since market conditions may make it impossible to execute such orders. d. All crypto assets positions involve risk, and a "spread" position may not be less risky than an outright "long" or "short" position. e. The use of leverage can work against you as well as for you and can lead to large losses as well as gains. f. All of the points noted above apply to all crypto assets. This brief statement cannot, however, disclose all the risks and other aspects associated with the Trade of crypto assets and shall not be considered as any professional advice. 3.2. Risks Associated with the Internet-based Trading System. You acknowledge that there are risks associated with utilizing an Internet-based trading system including, but not limited to, the failure of hardware, software, and Internet connections. You acknowledge that Gleec shall not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Technology Platform, howsoever caused.3.3. Risks Associated with the Blockchain Protocol. The Technology Platform and its related Services are based on the Blockchain protocol. As such, any malfunction, unintended function, unexpected functioning of or attack on the Blockchain protocol may cause the Technology Platform to malfunction or function in an unexpected or unintended manner. 3.4. Risks Associated with Blockchains and Crypto Assets. You acknowledge and accept that the Gleec has no control over any cryptocurrency network and you understand all risks associated with utilizing any crypto assets network, including, but not limited to the risk of unknown vulnerabilities in or unanticipated changes to any network protocol. We will not be responsible for any harm occurring as a result of such risks. 3.5. No Control Over Your Own Actions. As defined in the foregoing cl. 4.3 (g) and other provisions herein YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS FORGOTTEN PASSWORDS, INCORRECTLY CONSTRUCTED TRANSACTIONS, LOSS OF YOUR ACCESSES ETC. +2.1. It is a pre-condition that our Services are only provided to those who are permitted to enter in legally binding relationships. Therefore, if there is any reason why you are not able to enter into legally binding relationships with Us, for whatever reason \- do not use our Services. +2.2. You further represent and warrant that you: +a. are at least 18 years old or of other legal age, according to your relevant jurisdiction; +b. have not previously been suspended or removed from our Services; +c. have full power and authority to enter into this legal relationship and by doing so will not violate any other legal relationships; +d. use our Technology Platform with your own e-mail and for your own benefit and do not act on behalf and/or to the interest of any other person; +e. guarantee that your crypto assets, which you transfer to the Technology Platform are not sold, encumbered, not in contention, or under seizure, and that neither exist any rights of third parties to your crypto assets; +f. are not Politically Exposed Person (PEP) or family member or close associate of the PEP. PEPs (as well as family members or close associates of the PEPs) are not allowed to use Gleec's Technology Platform. In case Gleec will establish, that the User of the Technology Platform is PEP (as well as family member or close associate of the PEP), Gleec reserves the right to terminate Gleec Account of such User. For the purpose of this Terms, the definitions "Politically Exposed Person", "family member" and "close associate" have the meaning, as it defines in (i) the FATF Recommendations (International Standards on Combating Money Laundering and the Financing of Terrorism and Proliferation) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF](http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF) Recommendations 2012.pdf and (ii) FATF Guidance on Politically Exposed Persons (Recommendations 12 and 22\) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf](http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf); +g. will not use our Services or will immediately cease using those if you are a resident or become a resident at any time of the state or region (in accordance with such state or region definition of residency), where the crypto assets transactions you are going to execute are prohibited or require special approval, permit and/or authorization of any kind, which Gleec has not obtained in this state or region. Notwithstanding the above, you are not in any case allowed to access and use our Services if you are located, incorporated or otherwise established, or a citizen or resident of: Afghanistan, Albania, American Samoa, Anguilla, Antigua and Barbuda, Aruba, Bahamas, Barbados, Belarus, Bermuda, Burkina Faso, Burundi, Cambodia, Cayman Islands, Central African Republic, Congo (Democratic Republic of the), Cook Islands, Cuba, Curaçao, Crimea and Sevastopol, Dominica, Fiji, Guam, Guinea, Guinea-Bissau, Haiti, Iran (Islamic Republic of), Iraq, Jamaica, Jordan, Korea (Democratic People's Republic of), Libya, Mali, Marshall Islands, Morocco, Myanmar (Burma), Nicaragua, Pakistan, Palau, Palestine (State of), Panama, Philippines, Russian Federation, Saint Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines, Samoa, Senegal, Seychelles, Somalia, South Sudan, Sudan, Syrian Arab Republic, Trinidad and Tobago, Turks and Caicos Islands, Uganda, United States Of America, Vanuatu, Venezuela (Bolivarian Republic of), Virgin Islands (British), Virgin Islands (U.S.), Yemen, Zimbabwe or if you are a resident of the United Kingdom or any state, country or other jurisdiction that is embargoed by the United States of America, or a jurisdiction where the local Applicable Law prohibits or will prohibit you at any time (by reason of your nationality, domicile, citizenship, residence or otherwise) to access or use the Services or the Technology Platform (hereinafter, together “The Restricted Jurisdictions”). Gleec reserves the right to close any of your Gleec Accounts, to liquidate any open trade positions, and to force you to withdraw all the crypto assets from the Technology Platform in case if: (i) Gleec determines that you are accessing the Services or the Technology Platform from any Restricted Jurisdiction, or (ii) you have given false representations as to your location of incorporation, establishment, citizenship or place of residence. For the purpose of this clause "Applicable Law" refers to all applicable laws of any governmental authority, including, without limitation, federal, state and foreign securities laws, tax laws, tariff and trade laws, ordinances, judgments, decrees, injunctions, writs and orders or like actions of any governmental authority and rules, regulations, orders, interpretations, licenses, and permits of any federal, regional, state, county, municipal or other governmental authority. +2.3. When accessing or using the Technology Platform, you further represent, agree and warrant, that you will not violate any law, contract, intellectual property or other third-party right or commit a tort, and that you are solely responsible for your conduct while using our Technology Platform. Without prejudice to the generality of the foregoing, you represent, agree and warrant, that you will not: +a. Use the Technology Platform in any manner that could interfere with, disrupt, negatively affect or inhibit other users from using our Technology Platform with full functionality, or that could damage, disable, overburden or impair the functioning of Technology Platform in any manner; +b. Use the Technology Platform to pay for, support or otherwise engage in any illegal gambling activities; fraud; money-laundering; or terrorist activities; or any other illegal activities; +c. Use any robot, spider, crawler, scraper or other automated means or interface not provided by Us to access the Technology Platform or to extract data; +d. Use or attempt to use another User account without authorization; +e. Attempt to circumvent any content filtering techniques We employ, or attempt to access any service or area of our Technology Platform that you are not authorized to access; +f. Develop any third-party applications that interact with our Technology Platform without our prior written consent; +g. Provide false, inaccurate, or misleading information; +h. Encourage or induce any third party to engage in any of the activities prohibited under this Section. +2.4. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH INVALIDITY OR BREACH OF ANY OF THE WARRANTIES, REPRESENTATIONS AND COVENANTS OF THIS SECTION AND THE ENTIRE TERMS. -**4\. CRYPTO ASSETS PROTECTION** 4.1. We strive to protect your crypto assets from unauthorized access, use, or spending. We use a variety of physical and technical measures designed to protect our systems and your crypto assets. By remitting your crypto assets to Gleec Account you entrust and entitle Us to ultimately take decisions on the safety and security of your crypto assets. 4.2. We reserve the right to take different measures of protection, which include, but are not limited to a diversification of crypto assets in different allocations whether on a segregate record (account) or not. 4.3. Nothing herein shall be deemed or construed as a willingness to a seizure of your crypto assets. The main purpose of this section is to notify you about different measures of protection, that We use to keep your crypto assets safe. +### 3. RISK DISCLOSURE -**5\. ELECTRONIC NOTICES** 5.1. Consent to Electronic Delivery. You agree and consent to receive electronically all Communications, that Gleec may be willing to communicate to you in connection with your Gleec Account and/or use of the Gleec Services. You agree that Gleec may provide these Communications to you by posting them on the Technology Platform. You may contact Us through our Support Center ([https://support.exchange.gleec.com/hc/en-us](https://support.exchange.gleec.com/hc/en-us)) to request electronic copies of Communications. 5.2. Withdrawal of Consent. You may withdraw your consent to receive electronic Communications by sending a withdrawal notice to support. If this is a case you waive your right to plead ignorance. If you decline or withdraw consent to receive electronic Communications, Gleec may suspend or terminate your use of the Technology Platform. 5.3. Updating Contact Information. It is your responsibility to keep your email address on file with Gleec up to date so that Gleec can communicate with you electronically. You understand and agree that if Gleec sends you an electronic Communication but you do not receive it because your email address on file is incorrect, out of date, blocked by your service provider, or you are otherwise unable to receive electronic Communications, Gleec will be deemed to have provided the Communication to you. You waive your right to plead ignorance. Please note that if you use a spam filter that blocks or re-routes emails from senders not listed in your email address book, you must add Gleec to your email address book so that you will be able to receive the Communications We send you. If your email address becomes invalid in a such way that electronic Communications sent to you by Gleec are returned, Gleec may deem your account being inactive, and you may be not able to complete any transaction via the Technology Platform. +3.1. Due to our internal policies, We only provide the Services to users with sufficient experience, knowledge and understanding of the work principles of our Technology Platform, and those who fully understand the associated risks. You acknowledge and agree that you shall access and use the Technology Platform at your own risk. The risk of loss in Trading crypto assets can be substantial. You should, therefore, carefully consider whether such Trading is appropriate for you in light of your circumstances and resources. You acknowledge and agree the possibility of the following: +a. You may sustain a total loss of the crypto assets in your Gleec Account, and, in some cases, you may incur losses beyond such crypto assets. +b. Under certain market conditions, you may find it difficult or impossible to liquidate a position. This can occur, for example, when the market reaches a daily price fluctuation limit ("limit move") and there is insufficient liquidity in the market. +c. Placing contingent orders, such as "stop-loss" or "stop-limit" orders, will not necessarily limit your losses to the intended amounts, since market conditions may make it impossible to execute such orders. +d. All crypto assets positions involve risk, and a "spread" position may not be less risky than an outright "long" or "short" position. +e. The use of leverage can work against you as well as for you and can lead to large losses as well as gains. +f. All of the points noted above apply to all crypto assets. This brief statement cannot, however, disclose all the risks and other aspects associated with the Trade of crypto assets and shall not be considered as any professional advice. +3.2. Risks Associated with the Internet-based Trading System. You acknowledge that there are risks associated with utilizing an Internet-based trading system including, but not limited to, the failure of hardware, software, and Internet connections. You acknowledge that Gleec shall not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Technology Platform, howsoever caused. +3.3. Risks Associated with the Blockchain Protocol. The Technology Platform and its related Services are based on the Blockchain protocol. As such, any malfunction, unintended function, unexpected functioning of or attack on the Blockchain protocol may cause the Technology Platform to malfunction or function in an unexpected or unintended manner. +3.4. Risks Associated with Blockchains and Crypto Assets. You acknowledge and accept that the Gleec has no control over any cryptocurrency network and you understand all risks associated with utilizing any crypto assets network, including, but not limited to the risk of unknown vulnerabilities in or unanticipated changes to any network protocol. We will not be responsible for any harm occurring as a result of such risks. +3.5. No Control Over Your Own Actions. As defined in the foregoing cl. 4.3 (g) and other provisions herein YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS FORGOTTEN PASSWORDS, INCORRECTLY CONSTRUCTED TRANSACTIONS, LOSS OF YOUR ACCESSES ETC. -**6\. SPECIAL CONDITIONS** 6.1. Transfer confirmation. Once your Deposit/Withdrawal request or Trade order is executed, a confirmation will be electronically made available via Technology Platform detailing the particulars of the Transfer. You acknowledge and agree that the failure of the Technology Platform to provide such confirmation shall not prejudice or invalidate the terms of such transaction. 6.2. Conditions and Restrictions. We may, at any time and in our sole discretion, refuse to perform any Transfer requested via the Technology Platform, impose limits on the Transfer amount permitted via the Technology Platform or impose any other conditions or restrictions upon your use of the Technology Platform without prior notice. 6.3. Access to the Services. We may, in our sole discretion and without liability to you, with or without prior notice and at any time, modify or discontinue, temporarily or permanently, any portion of our Services. 6.4. Cancellations. You may only cancel a Transfer request initiated via the Technology Platform if such cancellation occurs before Gleec executes the Transfer. Once your Transfer request has been executed, you may not change, withdraw or cancel your authorization for Gleec to complete such Transfer. If a Trade order has been partially filled, you may cancel the unfilled remainder unless the order relates to a market rate Trade. We reserve the right to refuse any cancellation request associated with a market rate Trade order once you have submitted such order. While We may, at our sole discretion, reverse a Trade under certain extraordinary conditions, a customer does not have a right to a reversal of a Trade. 6.5. Insufficient Crypto Assets. If you have an insufficient amount of crypto assets in your Gleec Account to complete a Transfer via the Technology Platform, We may cancel the entire order or may fulfill a partial order using the amount of crypto assets currently available in your Gleec Account. 6.6. Taxes. It is your responsibility to determine what, if any, taxes apply to the Transfers you complete via the Technology Platform, and it is your responsibility to report and remit the correct tax to the appropriate tax authority. You agree that Gleec is not responsible for determining whether taxes apply to your transfers or for collecting, reporting, withholding or remitting any taxes arising from any Trades and Transfers and does not act as your tax agent. 6.7. Feedbacks. We own exclusive rights, including all intellectual property rights, to Feedback. Any Feedback you submit is non-confidential and shall become the sole property of Gleec. We will be entitled to the unrestricted use and dissemination of such Feedback for any purpose, commercial or otherwise, without acknowledgment or compensation to you. You waive any rights you may have to the Feedback (including inter alia any copyrights). Do not provide Feedback if you expect to be paid or want to continue to own or claim rights on it; your idea might be great, but We may have already had the same or a similar idea and We do not want disputes. We also have the right to disclose your identity to any third party who is claiming that any content posted by you constitutes a violation of their intellectual property rights, or of their right to privacy. We have the right to remove any posting you make on our website if, in our opinion, your post does not comply with the content standards set out therein. +### 4. CRYPTO ASSETS PROTECTION -**7\. SUSPENSION AND TERMINATION OF YOUR GLEEC ACCOUNT** 7.1. In case of your breach of the Terms, or any other event as We may deem necessary, including without limitation market disruption and/or Force Majeure event We may, in our sole discretion and without liability to you, with or without prior notice: a. suspend your access to all or a portion of our Services; or b. prevent you from completing any actions via the Technology Platform, including closing any open Trade orders. In case the transferring resumes, you acknowledge that prevailing market rates may differ significantly from the rates available prior to such event; or c. terminate your access to the Services, delete or deactivate your Gleec Account and all related information and files in such account. 7.2. In the event of termination, Gleec will return any crypto assets stored in your Gleec Account and not owed to Gleec, unless Gleec believes you have committed fraud, negligence or other misconduct. +4.1. We strive to protect your crypto assets from unauthorized access, use, or spending. We use a variety of physical and technical measures designed to protect our systems and your crypto assets. By remitting your crypto assets to Gleec Account you entrust and entitle Us to ultimately take decisions on the safety and security of your crypto assets. +4.2. We reserve the right to take different measures of protection, which include, but are not limited to a diversification of crypto assets in different allocations whether on a segregate record (account) or not. +4.3. Nothing herein shall be deemed or construed as a willingness to a seizure of your crypto assets. The main purpose of this section is to notify you about different measures of protection, that We use to keep your crypto assets safe. -**8\. DISCLAIMER OF WARRANTIES. LIMITATION OF LIABILITIES** 8.1. Except as expressly provided to the contrary in a writing by Us, our services are provided on an "As is" and "As available" basis. WE EXPRESSLY DISCLAIM, AND YOU WAIVE, ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT AS TO OUR SERVICES, INCLUDING THE INFORMATION, CONTENT AND MATERIALS CONTAINED THEREIN. 8.2. You acknowledge that information you store or transfer through our services may become irretrievably lost or corrupted or temporarily unavailable due to a variety of causes, including but not limited to software failures, protocol changes by third party providers, internet outages, Force Majeure event or other disasters including third party DDOS attacks, scheduled or unscheduled maintenance, or other causes either within or outside our control. You are solely responsible for backing up and maintaining duplicate copies of any information you store or transfer through our services. 8.3. Except as otherwise required by law, IN NO EVENT SHALL GLEEC, OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES OR AGENTS BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL DAMAGES, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE OUR SERVICES OR THE GLEEC IP, INCLUDING WITHOUT LIMITATION ANY DAMAGES CAUSED BY OR RESULTING FROM RELIANCE BY ANY USER ON ANY INFORMATION OBTAINED FROM GLEEC, OR THAT RESULT FROM MISTAKES, OMISSIONS, INTERRUPTIONS, DELETION OF FILES OR EMAIL, ERRORS, DEFECTS, VIRUSES, DELAYS IN OPERATION OR TRANSMISSION OR ANY FAILURE OF PERFORMANCE, WHETHER OR NOT RESULTING FROM A FORCE MAJEURE EVENT, COMMUNICATIONS FAILURE, THEFT, DESTRUCTION OR UNAUTHORIZED ACCESS TO GLEEC'S RECORDS, PROGRAMS OR SERVICES. 8.4. We resume the right, in our sole discretion, to control any action or proceeding (at our expense) to which We are a participant and determine whether We wish to settle it. 8.5. To the maximum extent permitted by applicable law, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF GLEEC (INCLUDING OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES AND AGENTS), WHETHER IN CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE, WHETHER ACTIVE, PASSIVE OR IMPUTED), PRODUCT LIABILITY, STRICT LIABILITY OR OTHER THEORY, ARISING OUT OF OR RELATING TO THE USE OF, OR INABILITY TO USE, GLEEC OR TO THESE TERMS EXCEED THE EQUIVALENT OF $100 USD. 8.6. Gleec shall not be liable for: a. any inaccuracy, error, delay in, or omission of (i) any information, or (ii) the transmission or delivery of information; b. any loss or damage arising from a Force Majeure Event. 8.7. We strive to protect our users from fraudulent and scam activities in crypto assets sphere. It is possible that some crypto assets are purposed for unlawful seizure of the property, or are construed as a fraud, scam or any other activity, recognized by the laws as illegal and/or non-compliant with legal requirements. We reserve the right to prohibit and discontinue any transactions on our Technology Platform with such crypto asset at our sole discretion, without any prior notice to you and without publication of the reason for such decision, whenever this comes to our knowledge. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH PROHIBITION AND DISCONTINUATION OF TRANSACTIONS IN OUR TECHNOLOGY PLATFORM WITH ANY CRYPTO ASSET. 8.8. To be able to access to our Technology Platform, the User may use without limitation different mobile devices, such as mobile internet devices, tablets/smartphones and wearable computers ("Mobile Devices"). In no way, we make any guarantee that each particular Mobile Device is compatible with our Technology Platform. YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM VIA MOBILE DEVICES, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR INABILITY TO CONNECT TO OUR TECHNOLOGY PLATFORM FROM PARTICULAR MOBILE DEVICE AND YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS YOUR LOSS/DAMAGE/DEFECT OF SUCH MOBILE DEVICE. +### 5. ELECTRONIC NOTICES -**9\. NO OFFER OF SECURITIES** 9.1. Gleec endeavors all possible measures to be sure that crypto assets that are available via the Technology Platform cannot be classified as "security" by SEC and/or other competent national authorities. Moreover, Gleec represents that it never intended or desired to make tokens and/or coins that can be classified as "security" available via Technology Platform. 9.2. The responsibility for the fact that the instrument cannot be treated as “security” lies with the owner of token and/or coin. If there is any risk or speculations that token and/or coin can be treated as “security”, the Technology Platform reserves the right to prohibit and discontinue any transactions on our Technology Platform with such tokens and/or coins at its sole discretion. 9.3. We follow the best practices to decide whether crypto asset is security or not. However, We give no warranty and/or investment, financial, legal or any other professional advice, that any crypto asset available via our Technology Platform is not a security. +5.1. Consent to Electronic Delivery. You agree and consent to receive electronically all Communications, that Gleec may be willing to communicate to you in connection with your Gleec Account and/or use of the Gleec Services. You agree that Gleec may provide these Communications to you by posting them on the Technology Platform. You may contact Us through our Support Center ([https://support.exchange.gleec.com/hc/en-us](https://support.exchange.gleec.com/hc/en-us)) to request electronic copies of Communications. +5.2. Withdrawal of Consent. You may withdraw your consent to receive electronic Communications by sending a withdrawal notice to support. If this is a case you waive your right to plead ignorance. If you decline or withdraw consent to receive electronic Communications, Gleec may suspend or terminate your use of the Technology Platform. +5.3. Updating Contact Information. It is your responsibility to keep your email address on file with Gleec up to date so that Gleec can communicate with you electronically. You understand and agree that if Gleec sends you an electronic Communication but you do not receive it because your email address on file is incorrect, out of date, blocked by your service provider, or you are otherwise unable to receive electronic Communications, Gleec will be deemed to have provided the Communication to you. You waive your right to plead ignorance. Please note that if you use a spam filter that blocks or re-routes emails from senders not listed in your email address book, you must add Gleec to your email address book so that you will be able to receive the Communications We send you. If your email address becomes invalid in a such way that electronic Communications sent to you by Gleec are returned, Gleec may deem your account being inactive, and you may be not able to complete any transaction via the Technology Platform. -**10\. APPLICABLE LAW; ARBITRATION** 10.1. You and Gleec agree to arbitrate any dispute arising from these Terms or your use of the Services, except for disputes in which either party seeks equitable and other relief for the alleged unlawful use of copyrights, trademarks, trade names, logos, trade secrets or patents. ARBITRATION PREVENTS YOU FROM SUING IN COURT OR FROM HAVING A JURY TRIAL. 10.2. You and Gleec agree to notify each other in writing of any dispute within thirty (30) days of when it arises. Notice to Gleec shall be sent to legal@exchange.gleec.com. 10.3. Any dispute, controversy, difference or claim arising out of or relating to the Terms, including the existence, validity, interpretation, performance, breach or termination thereof or any dispute regarding non-contractual obligations arising out of or relating to it shall be referred to and finally resolved by arbitration administered by the Estonian Government under the the regulations of the Civil Code of Procedure in Estonia in force when the Notice of Arbitration is submitted. 10.4. The law of this arbitration clause shall be Estonia law. 10.5. The seat of arbitration shall be in Estonia. 10.6. The number of arbitrators shall be three. The arbitration proceedings shall be conducted in English language. 10.7. Other than class procedures and remedies discussed below, the arbitrator has the authority to grant any remedy that would otherwise be available in court. Any dispute between the parties will be governed by these Terms and the laws of Hong Kong, without giving effect to any conflict of laws principles that may provide for the application of the law of another jurisdiction. 10.8. Whether the dispute is heard in arbitration or in court, you will not commence against Gleec a class action, class arbitration or representative action or proceeding. +### 6. SPECIAL CONDITIONS -**11\. MISCELLANEOUS** 11.1. Entire Agreement. These Terms contain the entire agreement, and supersede all prior and contemporaneous understandings between the parties regarding the Services. 11.2. Order of Precedence. In the event of any conflict between these Terms and any other agreement you may have with Gleec, the terms of that other agreement will prevail only if these Terms are specifically identified and declared to be overridden by such other agreement. 11.3. Amendments. We reserve the right to make changes or modifications to these Terms from time to time, in our sole discretion. If We make changes to these Terms, We will provide you with notice of such changes, such as by sending an e-mail, providing notice on the homepage of the Site and/or by posting the amended Terms via the applicable Gleec websites and mobile applications and updating the "Last Updated" date at the top of these Terms. The amended Terms will be deemed effective immediately upon posting for any new users of the Services. In all other cases, the amended Terms will become effective for preexisting users upon the earlier of either: a. the date User click or press a button to accept such changes or; b. the date User continues use of our Services after Gleec provides notice of such changes or publishes new version of the Terms on the Website. 11.4. Any amended Terms will apply prospectively to use of the Services after such changes become effective. If you do not agree to any amended Terms, you must discontinue using our Services and contact us to terminate your account. 11.5. No Waiver. Our failure or delay in exercising any right, power or privilege under these Terms shall not operate as a waiver thereof. 11.6. Severability. The invalidity or unenforceability of any of these Terms shall not affect the validity or enforceability of any other of these Terms, all of which shall remain in full force and effect. 11.7. Assignment. You may not assign or transfer any of your rights or obligations under these Terms without prior written consent from Gleec, including by operation of law or in connection with any change of control. Gleec may assign or transfer any or all of its rights under these Terms, in whole or in part, without obtaining your consent or approval. +6.1. Transfer confirmation. Once your Deposit/Withdrawal request or Trade order is executed, a confirmation will be electronically made available via Technology Platform detailing the particulars of the Transfer. You acknowledge and agree that the failure of the Technology Platform to provide such confirmation shall not prejudice or invalidate the terms of such transaction. +6.2. Conditions and Restrictions. We may, at any time and in our sole discretion, refuse to perform any Transfer requested via the Technology Platform, impose limits on the Transfer amount permitted via the Technology Platform or impose any other conditions or restrictions upon your use of the Technology Platform without prior notice. +6.3. Access to the Services. We may, in our sole discretion and without liability to you, with or without prior notice and at any time, modify or discontinue, temporarily or permanently, any portion of our Services. +6.4. Cancellations. You may only cancel a Transfer request initiated via the Technology Platform if such cancellation occurs before Gleec executes the Transfer. Once your Transfer request has been executed, you may not change, withdraw or cancel your authorization for Gleec to complete such Transfer. If a Trade order has been partially filled, you may cancel the unfilled remainder unless the order relates to a market rate Trade. We reserve the right to refuse any cancellation request associated with a market rate Trade order once you have submitted such order. While We may, at our sole discretion, reverse a Trade under certain extraordinary conditions, a customer does not have a right to a reversal of a Trade. +6.5. Insufficient Crypto Assets. If you have an insufficient amount of crypto assets in your Gleec Account to complete a Transfer via the Technology Platform, We may cancel the entire order or may fulfill a partial order using the amount of crypto assets currently available in your Gleec Account. +6.6. Taxes. It is your responsibility to determine what, if any, taxes apply to the Transfers you complete via the Technology Platform, and it is your responsibility to report and remit the correct tax to the appropriate tax authority. You agree that Gleec is not responsible for determining whether taxes apply to your transfers or for collecting, reporting, withholding or remitting any taxes arising from any Trades and Transfers and does not act as your tax agent. +6.7. Feedbacks. We own exclusive rights, including all intellectual property rights, to Feedback. Any Feedback you submit is non-confidential and shall become the sole property of Gleec. We will be entitled to the unrestricted use and dissemination of such Feedback for any purpose, commercial or otherwise, without acknowledgment or compensation to you. You waive any rights you may have to the Feedback (including inter alia any copyrights). Do not provide Feedback if you expect to be paid or want to continue to own or claim rights on it; your idea might be great, but We may have already had the same or a similar idea and We do not want disputes. We also have the right to disclose your identity to any third party who is claiming that any content posted by you constitutes a violation of their intellectual property rights, or of their right to privacy. We have the right to remove any posting you make on our website if, in our opinion, your post does not comply with the content standards set out therein. +### 7. SUSPENSION AND TERMINATION OF YOUR GLEEC ACCOUNT + +7.1. In case of your breach of the Terms, or any other event as We may deem necessary, including without limitation market disruption and/or Force Majeure event We may, in our sole discretion and without liability to you, with or without prior notice: +a. suspend your access to all or a portion of our Services; +or b. prevent you from completing any actions via the Technology Platform, including closing any open Trade orders. In case the transferring resumes, you acknowledge that prevailing market rates may differ significantly from the rates available prior to such event; +or c. terminate your access to the Services, delete or deactivate your Gleec Account and all related information and files in such account. +7.2. In the event of termination, Gleec will return any crypto assets stored in your Gleec Account and not owed to Gleec, unless Gleec believes you have committed fraud, negligence or other misconduct. + +### 8. DISCLAIMER OF WARRANTIES. LIMITATION OF LIABILITIES + +8.1. Except as expressly provided to the contrary in a writing by Us, our services are provided on an "As is" and "As available" basis. WE EXPRESSLY DISCLAIM, AND YOU WAIVE, ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT AS TO OUR SERVICES, INCLUDING THE INFORMATION, CONTENT AND MATERIALS CONTAINED THEREIN. +8.2. You acknowledge that information you store or transfer through our services may become irretrievably lost or corrupted or temporarily unavailable due to a variety of causes, including but not limited to software failures, protocol changes by third party providers, internet outages, Force Majeure event or other disasters including third party DDOS attacks, scheduled or unscheduled maintenance, or other causes either within or outside our control. You are solely responsible for backing up and maintaining duplicate copies of any information you store or transfer through our services. +8.3. Except as otherwise required by law, IN NO EVENT SHALL GLEEC, OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES OR AGENTS BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL DAMAGES, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE OUR SERVICES OR THE GLEEC IP, INCLUDING WITHOUT LIMITATION ANY DAMAGES CAUSED BY OR RESULTING FROM RELIANCE BY ANY USER ON ANY INFORMATION OBTAINED FROM GLEEC, OR THAT RESULT FROM MISTAKES, OMISSIONS, INTERRUPTIONS, DELETION OF FILES OR EMAIL, ERRORS, DEFECTS, VIRUSES, DELAYS IN OPERATION OR TRANSMISSION OR ANY FAILURE OF PERFORMANCE, WHETHER OR NOT RESULTING FROM A FORCE MAJEURE EVENT, COMMUNICATIONS FAILURE, THEFT, DESTRUCTION OR UNAUTHORIZED ACCESS TO GLEEC'S RECORDS, PROGRAMS OR SERVICES. +8.4. We resume the right, in our sole discretion, to control any action or proceeding (at our expense) to which We are a participant and determine whether We wish to settle it. +8.5. To the maximum extent permitted by applicable law, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF GLEEC (INCLUDING OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES AND AGENTS), WHETHER IN CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE, WHETHER ACTIVE, PASSIVE OR IMPUTED), PRODUCT LIABILITY, STRICT LIABILITY OR OTHER THEORY, ARISING OUT OF OR RELATING TO THE USE OF, OR INABILITY TO USE, GLEEC OR TO THESE TERMS EXCEED THE EQUIVALENT OF $100 USD. +8.6. Gleec shall not be liable for: +a. any inaccuracy, error, delay in, or omission of (i) any information, or (ii) the transmission or delivery of information; +b. any loss or damage arising from a Force Majeure Event. +8.7. We strive to protect our users from fraudulent and scam activities in crypto assets sphere. It is possible that some crypto assets are purposed for unlawful seizure of the property, or are construed as a fraud, scam or any other activity, recognized by the laws as illegal and/or non-compliant with legal requirements. We reserve the right to prohibit and discontinue any transactions on our Technology Platform with such crypto asset at our sole discretion, without any prior notice to you and without publication of the reason for such decision, whenever this comes to our knowledge. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH PROHIBITION AND DISCONTINUATION OF TRANSACTIONS IN OUR TECHNOLOGY PLATFORM WITH ANY CRYPTO ASSET. +8.8. To be able to access to our Technology Platform, the User may use without limitation different mobile devices, such as mobile internet devices, tablets/smartphones and wearable computers ("Mobile Devices"). In no way, we make any guarantee that each particular Mobile Device is compatible with our Technology Platform. YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM VIA MOBILE DEVICES, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR INABILITY TO CONNECT TO OUR TECHNOLOGY PLATFORM FROM PARTICULAR MOBILE DEVICE AND YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS YOUR LOSS/DAMAGE/DEFECT OF SUCH MOBILE DEVICE. + +### 9. NO OFFER OF SECURITIES + +9.1. Gleec endeavors all possible measures to be sure that crypto assets that are available via the Technology Platform cannot be classified as "security" by SEC and/or other competent national authorities. Moreover, Gleec represents that it never intended or desired to make tokens and/or coins that can be classified as "security" available via Technology Platform. +9.2. The responsibility for the fact that the instrument cannot be treated as “security” lies with the owner of token and/or coin. If there is any risk or speculations that token and/or coin can be treated as “security”, the Technology Platform reserves the right to prohibit and discontinue any transactions on our Technology Platform with such tokens and/or coins at its sole discretion. +9.3. We follow the best practices to decide whether crypto asset is security or not. However, We give no warranty and/or investment, financial, legal or any other professional advice, that any crypto asset available via our Technology Platform is not a security. + +### 10. APPLICABLE LAW; ARBITRATION + +10.1. You and Gleec agree to arbitrate any dispute arising from these Terms or your use of the Services, except for disputes in which either party seeks equitable and other relief for the alleged unlawful use of copyrights, trademarks, trade names, logos, trade secrets or patents. ARBITRATION PREVENTS YOU FROM SUING IN COURT OR FROM HAVING A JURY TRIAL. +10.2. You and Gleec agree to notify each other in writing of any dispute within thirty (30) days of when it arises. Notice to Gleec shall be sent to legal@exchange.gleec.com. +10.3. Any dispute, controversy, difference or claim arising out of or relating to the Terms, including the existence, validity, interpretation, performance, breach or termination thereof or any dispute regarding non-contractual obligations arising out of or relating to it shall be referred to and finally resolved by arbitration administered by the Estonian Government under the the regulations of the Civil Code of Procedure in Estonia in force when the Notice of Arbitration is submitted. +10.4. The law of this arbitration clause shall be Estonia law. +10.5. The seat of arbitration shall be in Estonia. +10.6. The number of arbitrators shall be three. The arbitration proceedings shall be conducted in English language. +10.7. Other than class procedures and remedies discussed below, the arbitrator has the authority to grant any remedy that would otherwise be available in court. Any dispute between the parties will be governed by these Terms and the laws of Hong Kong, without giving effect to any conflict of laws principles that may provide for the application of the law of another jurisdiction. +10.8. Whether the dispute is heard in arbitration or in court, you will not commence against Gleec a class action, class arbitration or representative action or proceeding. + +### 11. MISCELLANEOUS + +11.1. Entire Agreement. These Terms contain the entire agreement, and supersede all prior and contemporaneous understandings between the parties regarding the Services. +11.2. Order of Precedence. In the event of any conflict between these Terms and any other agreement you may have with Gleec, the terms of that other agreement will prevail only if these Terms are specifically identified and declared to be overridden by such other agreement. +11.3. Amendments. We reserve the right to make changes or modifications to these Terms from time to time, in our sole discretion. If We make changes to these Terms, We will provide you with notice of such changes, such as by sending an e-mail, providing notice on the homepage of the Site and/or by posting the amended Terms via the applicable Gleec websites and mobile applications and updating the "Last Updated" date at the top of these Terms. The amended Terms will be deemed effective immediately upon posting for any new users of the Services. In all other cases, the amended Terms will become effective for preexisting users upon the earlier of either: +a. the date User click or press a button to accept such changes or; +b. the date User continues use of our Services after Gleec provides notice of such changes or publishes new version of the Terms on the Website. +11.4. Any amended Terms will apply prospectively to use of the Services after such changes become effective. If you do not agree to any amended Terms, you must discontinue using our Services and contact us to terminate your account. +11.5. No Waiver. Our failure or delay in exercising any right, power or privilege under these Terms shall not operate as a waiver thereof. +11.6. Severability. The invalidity or unenforceability of any of these Terms shall not affect the validity or enforceability of any other of these Terms, all of which shall remain in full force and effect. +11.7. Assignment. You may not assign or transfer any of your rights or obligations under these Terms without prior written consent from Gleec, including by operation of law or in connection with any change of control. Gleec may assign or transfer any or all of its rights under these Terms, in whole or in part, without obtaining your consent or approval. diff --git a/lib/shared/widgets/disclaimer/disclaimer.dart b/lib/shared/widgets/disclaimer/disclaimer.dart index f1f38d0237..957c75ad8e 100644 --- a/lib/shared/widgets/disclaimer/disclaimer.dart +++ b/lib/shared/widgets/disclaimer/disclaimer.dart @@ -62,7 +62,9 @@ class _DisclaimerState extends State { child: SingleChildScrollView( controller: _scrollController, padding: const EdgeInsets.all(16), - child: MarkdownBody( + child: Markdown( + shrinkWrap: true, + softLineBreak: true, data: snapshot.data ?? '', styleSheet: MarkdownStyleSheet.fromTheme(Theme.of(context)), onTapLink: (_, String? href, __) { diff --git a/lib/shared/widgets/disclaimer/eula_tos_checkboxes.dart b/lib/shared/widgets/disclaimer/eula_tos_checkboxes.dart index 54d0937770..8e8ddd02a0 100644 --- a/lib/shared/widgets/disclaimer/eula_tos_checkboxes.dart +++ b/lib/shared/widgets/disclaimer/eula_tos_checkboxes.dart @@ -1,17 +1,21 @@ +import 'dart:async'; + import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:web_dex/dispatchers/popup_dispatcher.dart'; import 'package:web_dex/generated/codegen_loader.g.dart'; +import 'package:web_dex/shared/widgets/app_dialog.dart'; import 'package:web_dex/shared/widgets/disclaimer/disclaimer.dart'; import 'package:web_dex/shared/widgets/disclaimer/eula.dart'; import 'package:komodo_ui_kit/komodo_ui_kit.dart'; class EulaTosCheckboxes extends StatefulWidget { - const EulaTosCheckboxes( - {Key? key, this.isChecked = false, required this.onCheck}) - : super(key: key); + const EulaTosCheckboxes({ + super.key, + this.isChecked = false, + required this.onCheck, + }); final bool isChecked; final void Function(bool) onCheck; @@ -22,8 +26,6 @@ class EulaTosCheckboxes extends StatefulWidget { class _EulaTosCheckboxesState extends State { bool _checkBox = false; - PopupDispatcher? _eulaPopupManager; - PopupDispatcher? _disclaimerPopupManager; @override Widget build(BuildContext context) { @@ -68,24 +70,6 @@ class _EulaTosCheckboxesState extends State { @override void initState() { _checkBox = widget.isChecked; - WidgetsBinding.instance.addPostFrameCallback((timeStamp) { - _disclaimerPopupManager = PopupDispatcher( - context: context, - popupContent: Disclaimer( - onClose: () { - _disclaimerPopupManager?.close(); - }, - ), - ); - _eulaPopupManager = PopupDispatcher( - context: context, - popupContent: Eula( - onClose: () { - _eulaPopupManager?.close(); - }, - ), - ); - }); super.initState(); } @@ -94,10 +78,23 @@ class _EulaTosCheckboxesState extends State { } void _showDisclaimer() { - _disclaimerPopupManager?.show(); + unawaited( + AppDialog.showWithCallback( + context: context, + useRootNavigator: false, + width: 640, + childBuilder: (closeDialog) => Disclaimer(onClose: closeDialog), + ), + ); } void _showEula() { - _eulaPopupManager?.show(); + unawaited( + AppDialog.showWithCallback( + context: context, + useRootNavigator: false, + childBuilder: (closeDialog) => Eula(onClose: closeDialog), + ), + ); } } diff --git a/pubspec.yaml b/pubspec.yaml index 04da8e09df..f4b657ac42 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -64,7 +64,7 @@ dependencies: # ref: dev # ^2.0.0 # Option 3: Pub.dev dependency - ## ---- Dart.dev, Flutter.dev + ## ---- Dart.dev, Flutter.dev (Official Packages) args: ^2.7.0 # dart.dev flutter_markdown: ^0.7.7 # flutter.dev http: 1.4.0 # dart.dev From 6e6b611526b8430ba198cf75fd61792db3e82c8f Mon Sep 17 00:00:00 2001 From: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Wed, 18 Mar 2026 13:45:52 +0100 Subject: [PATCH 5/6] feat(legal): load legal docs from GitHub at runtime --- assets/legal/Terms of Service.md | 127 ------ assets/legal/eula.md | 87 ++++ assets/legal/kyc-due-diligence-policy.md | 112 +++++ assets/legal/privacy-notice.md | 411 ++++++++++++++++++ assets/legal/terms-of-service.md | 31 ++ assets/translations/en.json | 2 + lib/generated/codegen_loader.g.dart | 2 + lib/main.dart | 15 +- lib/model/settings_menu_value.dart | 5 + .../navigators/app_router_delegate.dart | 6 +- lib/router/parsers/settings_route_parser.dart | 4 + lib/router/routes.dart | 86 ++-- .../legal_documents/legal_document.dart | 74 ++++ .../legal_documents_repository.dart | 158 +++++++ lib/shared/widgets/disclaimer/constants.dart | 135 ------ lib/shared/widgets/disclaimer/disclaimer.dart | 77 +--- lib/shared/widgets/disclaimer/eula.dart | 108 +---- .../disclaimer/eula_tos_checkboxes.dart | 1 + .../widgets/disclaimer/tos_content.dart | 23 - .../legal_documents/legal_document_view.dart | 179 ++++++++ lib/views/settings/settings_page.dart | 16 +- .../privacy_notice_page.dart | 31 ++ .../widgets/settings_menu/settings_menu.dart | 1 + 23 files changed, 1186 insertions(+), 505 deletions(-) delete mode 100644 assets/legal/Terms of Service.md create mode 100644 assets/legal/eula.md create mode 100644 assets/legal/kyc-due-diligence-policy.md create mode 100644 assets/legal/privacy-notice.md create mode 100644 assets/legal/terms-of-service.md create mode 100644 lib/services/legal_documents/legal_document.dart create mode 100644 lib/services/legal_documents/legal_documents_repository.dart delete mode 100644 lib/shared/widgets/disclaimer/constants.dart delete mode 100644 lib/shared/widgets/disclaimer/tos_content.dart create mode 100644 lib/shared/widgets/legal_documents/legal_document_view.dart create mode 100644 lib/views/settings/widgets/privacy_notice_page/privacy_notice_page.dart diff --git a/assets/legal/Terms of Service.md b/assets/legal/Terms of Service.md deleted file mode 100644 index cb02d524cd..0000000000 --- a/assets/legal/Terms of Service.md +++ /dev/null @@ -1,127 +0,0 @@ -These Terms of Service and any terms incorporated herein (the “Terms”) apply to your (“User”) use of the “Technology platform”, including [https://exchange.gleec.com](https://exchange.gleec.com/), the technology and the platform integrated therein and any applications associated therewith, which are operated and maintained by **Gleec Pay LTD and its affiliates companies (“Gleec”, “Gleec.com”, “The Company”, “we”, “us”, “our”)**. - -These Terms apply in connection with the use of any of our products, services or applications – including but not limited to **Gleec Pay, Gleec Card, Gleec Chat, Gleec Exchange and Gleec DEX (collectively the “Services” or the “Platform”)** and your visit or use of our website **Gleec.com (“Site”)** or any of **GLEEC’s ecosystem mobile application (“App”)**. We provide you the possibility to use Our Technology Platform on the following terms and conditions. - -## I. GENERAL PROVISIONS - -### 1. DEFINITIONS - -1.1. “Communications” shall mean all and any communication, agreement, document, receipt, notice and disclosure, which may be from time to time addressed to User by Gleec. -1.2. “Crypto assets” shall mean such type of assets which can only and exclusively be transmitted by means of block-chain technology, including but not limited to digital coins and digital tokens and any other type of digital mediums of exchange, such as Bitcoin, Ethereum, Ripple, etc, to the full and absolute exempt of the securities of any kind. -1.3. “Deposit/Withdrawal” of crypto assets shall mean remittance of crypto assets to/from Gleec Account from/to external third-party service accordingly. -1.4. “Feedback” is any feedback, suggestion, idea or other information or material regarding Gleec or our Services that you provide, whether by email, posting through our Services or otherwise. -1.5. "Force Majeure Event" shall be understood as any event beyond Gleec's reasonable control, including but not limited to the flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, suspension of bank accounts of any kind, extraordinary leaps of the course of crypto asset, communications, network or power failure, or equipment or software malfunction or any other cause beyond Gleec's reasonable control. -1.6. “Gleec Account” is a User account accessible after the registration process and via the Services where crypto assets may be stored and operated by **GLEEC PAY LTD** on behalf of a User. -1.7. “Gleec IP” shall mean all and any copyright and other intellectual property rights in all content and other materials contained on the Technology Platform or provided in connection with the Services, including, without limitation, the Gleec name, trademark, Gleec logo and all designs, text, graphics, pictures, information, data, software, technologies, know-hows, sound and video files, other files and the selection and arrangement thereof. -1.8. "Third-Party Content" is the content provided by third parties, including without limitation links to web pages of such parties, which may be represented on the Technology Platform. -1.9. "Third-party service" is any platform or network in which crypto assets belong to you or where you are the beneficial owner of crypto assets; and this platform is maintained by a third party outside of the Services; including, but not limited to third-party accounts. -1.10. “Trade” shall be understood as an exchange of the crypto asset of one type, owned by one Gleec Account User, to the crypto asset of another type, owned by the same or another Gleec account User, at the terms and conditions set forth by such exchange parties, and which is executed solely and exclusively within the Technology Platform with crypto assets deposited to those Users’ Gleec Accounts. In no case shall the Trade be deemed or construed to be a marginal trade. -1.11. “Transfer” for the purposes herein shall mean a record of Deposit, Withdrawal and/or Trade transaction of crypto asset into, out from or at User’s Gleec Account, which is technically executed by Gleec in accordance with User’s Deposit/Withdrawal request or Trade order. - -### 2. WARRANTIES, REPRESENTATIONS AND COVENANTS - -2.1. It is a pre-condition that our Services are only provided to those who are permitted to enter in legally binding relationships. Therefore, if there is any reason why you are not able to enter into legally binding relationships with Us, for whatever reason \- do not use our Services. -2.2. You further represent and warrant that you: -a. are at least 18 years old or of other legal age, according to your relevant jurisdiction; -b. have not previously been suspended or removed from our Services; -c. have full power and authority to enter into this legal relationship and by doing so will not violate any other legal relationships; -d. use our Technology Platform with your own e-mail and for your own benefit and do not act on behalf and/or to the interest of any other person; -e. guarantee that your crypto assets, which you transfer to the Technology Platform are not sold, encumbered, not in contention, or under seizure, and that neither exist any rights of third parties to your crypto assets; -f. are not Politically Exposed Person (PEP) or family member or close associate of the PEP. PEPs (as well as family members or close associates of the PEPs) are not allowed to use Gleec's Technology Platform. In case Gleec will establish, that the User of the Technology Platform is PEP (as well as family member or close associate of the PEP), Gleec reserves the right to terminate Gleec Account of such User. For the purpose of this Terms, the definitions "Politically Exposed Person", "family member" and "close associate" have the meaning, as it defines in (i) the FATF Recommendations (International Standards on Combating Money Laundering and the Financing of Terrorism and Proliferation) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF](http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF) Recommendations 2012.pdf and (ii) FATF Guidance on Politically Exposed Persons (Recommendations 12 and 22\) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf](http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf); -g. will not use our Services or will immediately cease using those if you are a resident or become a resident at any time of the state or region (in accordance with such state or region definition of residency), where the crypto assets transactions you are going to execute are prohibited or require special approval, permit and/or authorization of any kind, which Gleec has not obtained in this state or region. Notwithstanding the above, you are not in any case allowed to access and use our Services if you are located, incorporated or otherwise established, or a citizen or resident of: Afghanistan, Albania, American Samoa, Anguilla, Antigua and Barbuda, Aruba, Bahamas, Barbados, Belarus, Bermuda, Burkina Faso, Burundi, Cambodia, Cayman Islands, Central African Republic, Congo (Democratic Republic of the), Cook Islands, Cuba, Curaçao, Crimea and Sevastopol, Dominica, Fiji, Guam, Guinea, Guinea-Bissau, Haiti, Iran (Islamic Republic of), Iraq, Jamaica, Jordan, Korea (Democratic People's Republic of), Libya, Mali, Marshall Islands, Morocco, Myanmar (Burma), Nicaragua, Pakistan, Palau, Palestine (State of), Panama, Philippines, Russian Federation, Saint Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines, Samoa, Senegal, Seychelles, Somalia, South Sudan, Sudan, Syrian Arab Republic, Trinidad and Tobago, Turks and Caicos Islands, Uganda, United States Of America, Vanuatu, Venezuela (Bolivarian Republic of), Virgin Islands (British), Virgin Islands (U.S.), Yemen, Zimbabwe or if you are a resident of the United Kingdom or any state, country or other jurisdiction that is embargoed by the United States of America, or a jurisdiction where the local Applicable Law prohibits or will prohibit you at any time (by reason of your nationality, domicile, citizenship, residence or otherwise) to access or use the Services or the Technology Platform (hereinafter, together “The Restricted Jurisdictions”). Gleec reserves the right to close any of your Gleec Accounts, to liquidate any open trade positions, and to force you to withdraw all the crypto assets from the Technology Platform in case if: (i) Gleec determines that you are accessing the Services or the Technology Platform from any Restricted Jurisdiction, or (ii) you have given false representations as to your location of incorporation, establishment, citizenship or place of residence. For the purpose of this clause "Applicable Law" refers to all applicable laws of any governmental authority, including, without limitation, federal, state and foreign securities laws, tax laws, tariff and trade laws, ordinances, judgments, decrees, injunctions, writs and orders or like actions of any governmental authority and rules, regulations, orders, interpretations, licenses, and permits of any federal, regional, state, county, municipal or other governmental authority. -2.3. When accessing or using the Technology Platform, you further represent, agree and warrant, that you will not violate any law, contract, intellectual property or other third-party right or commit a tort, and that you are solely responsible for your conduct while using our Technology Platform. Without prejudice to the generality of the foregoing, you represent, agree and warrant, that you will not: -a. Use the Technology Platform in any manner that could interfere with, disrupt, negatively affect or inhibit other users from using our Technology Platform with full functionality, or that could damage, disable, overburden or impair the functioning of Technology Platform in any manner; -b. Use the Technology Platform to pay for, support or otherwise engage in any illegal gambling activities; fraud; money-laundering; or terrorist activities; or any other illegal activities; -c. Use any robot, spider, crawler, scraper or other automated means or interface not provided by Us to access the Technology Platform or to extract data; -d. Use or attempt to use another User account without authorization; -e. Attempt to circumvent any content filtering techniques We employ, or attempt to access any service or area of our Technology Platform that you are not authorized to access; -f. Develop any third-party applications that interact with our Technology Platform without our prior written consent; -g. Provide false, inaccurate, or misleading information; -h. Encourage or induce any third party to engage in any of the activities prohibited under this Section. -2.4. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH INVALIDITY OR BREACH OF ANY OF THE WARRANTIES, REPRESENTATIONS AND COVENANTS OF THIS SECTION AND THE ENTIRE TERMS. - -### 3. RISK DISCLOSURE - -3.1. Due to our internal policies, We only provide the Services to users with sufficient experience, knowledge and understanding of the work principles of our Technology Platform, and those who fully understand the associated risks. You acknowledge and agree that you shall access and use the Technology Platform at your own risk. The risk of loss in Trading crypto assets can be substantial. You should, therefore, carefully consider whether such Trading is appropriate for you in light of your circumstances and resources. You acknowledge and agree the possibility of the following: -a. You may sustain a total loss of the crypto assets in your Gleec Account, and, in some cases, you may incur losses beyond such crypto assets. -b. Under certain market conditions, you may find it difficult or impossible to liquidate a position. This can occur, for example, when the market reaches a daily price fluctuation limit ("limit move") and there is insufficient liquidity in the market. -c. Placing contingent orders, such as "stop-loss" or "stop-limit" orders, will not necessarily limit your losses to the intended amounts, since market conditions may make it impossible to execute such orders. -d. All crypto assets positions involve risk, and a "spread" position may not be less risky than an outright "long" or "short" position. -e. The use of leverage can work against you as well as for you and can lead to large losses as well as gains. -f. All of the points noted above apply to all crypto assets. This brief statement cannot, however, disclose all the risks and other aspects associated with the Trade of crypto assets and shall not be considered as any professional advice. -3.2. Risks Associated with the Internet-based Trading System. You acknowledge that there are risks associated with utilizing an Internet-based trading system including, but not limited to, the failure of hardware, software, and Internet connections. You acknowledge that Gleec shall not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Technology Platform, howsoever caused. -3.3. Risks Associated with the Blockchain Protocol. The Technology Platform and its related Services are based on the Blockchain protocol. As such, any malfunction, unintended function, unexpected functioning of or attack on the Blockchain protocol may cause the Technology Platform to malfunction or function in an unexpected or unintended manner. -3.4. Risks Associated with Blockchains and Crypto Assets. You acknowledge and accept that the Gleec has no control over any cryptocurrency network and you understand all risks associated with utilizing any crypto assets network, including, but not limited to the risk of unknown vulnerabilities in or unanticipated changes to any network protocol. We will not be responsible for any harm occurring as a result of such risks. -3.5. No Control Over Your Own Actions. As defined in the foregoing cl. 4.3 (g) and other provisions herein YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS FORGOTTEN PASSWORDS, INCORRECTLY CONSTRUCTED TRANSACTIONS, LOSS OF YOUR ACCESSES ETC. - -### 4. CRYPTO ASSETS PROTECTION - -4.1. We strive to protect your crypto assets from unauthorized access, use, or spending. We use a variety of physical and technical measures designed to protect our systems and your crypto assets. By remitting your crypto assets to Gleec Account you entrust and entitle Us to ultimately take decisions on the safety and security of your crypto assets. -4.2. We reserve the right to take different measures of protection, which include, but are not limited to a diversification of crypto assets in different allocations whether on a segregate record (account) or not. -4.3. Nothing herein shall be deemed or construed as a willingness to a seizure of your crypto assets. The main purpose of this section is to notify you about different measures of protection, that We use to keep your crypto assets safe. - -### 5. ELECTRONIC NOTICES - -5.1. Consent to Electronic Delivery. You agree and consent to receive electronically all Communications, that Gleec may be willing to communicate to you in connection with your Gleec Account and/or use of the Gleec Services. You agree that Gleec may provide these Communications to you by posting them on the Technology Platform. You may contact Us through our Support Center ([https://support.exchange.gleec.com/hc/en-us](https://support.exchange.gleec.com/hc/en-us)) to request electronic copies of Communications. -5.2. Withdrawal of Consent. You may withdraw your consent to receive electronic Communications by sending a withdrawal notice to support. If this is a case you waive your right to plead ignorance. If you decline or withdraw consent to receive electronic Communications, Gleec may suspend or terminate your use of the Technology Platform. -5.3. Updating Contact Information. It is your responsibility to keep your email address on file with Gleec up to date so that Gleec can communicate with you electronically. You understand and agree that if Gleec sends you an electronic Communication but you do not receive it because your email address on file is incorrect, out of date, blocked by your service provider, or you are otherwise unable to receive electronic Communications, Gleec will be deemed to have provided the Communication to you. You waive your right to plead ignorance. Please note that if you use a spam filter that blocks or re-routes emails from senders not listed in your email address book, you must add Gleec to your email address book so that you will be able to receive the Communications We send you. If your email address becomes invalid in a such way that electronic Communications sent to you by Gleec are returned, Gleec may deem your account being inactive, and you may be not able to complete any transaction via the Technology Platform. - -### 6. SPECIAL CONDITIONS - -6.1. Transfer confirmation. Once your Deposit/Withdrawal request or Trade order is executed, a confirmation will be electronically made available via Technology Platform detailing the particulars of the Transfer. You acknowledge and agree that the failure of the Technology Platform to provide such confirmation shall not prejudice or invalidate the terms of such transaction. -6.2. Conditions and Restrictions. We may, at any time and in our sole discretion, refuse to perform any Transfer requested via the Technology Platform, impose limits on the Transfer amount permitted via the Technology Platform or impose any other conditions or restrictions upon your use of the Technology Platform without prior notice. -6.3. Access to the Services. We may, in our sole discretion and without liability to you, with or without prior notice and at any time, modify or discontinue, temporarily or permanently, any portion of our Services. -6.4. Cancellations. You may only cancel a Transfer request initiated via the Technology Platform if such cancellation occurs before Gleec executes the Transfer. Once your Transfer request has been executed, you may not change, withdraw or cancel your authorization for Gleec to complete such Transfer. If a Trade order has been partially filled, you may cancel the unfilled remainder unless the order relates to a market rate Trade. We reserve the right to refuse any cancellation request associated with a market rate Trade order once you have submitted such order. While We may, at our sole discretion, reverse a Trade under certain extraordinary conditions, a customer does not have a right to a reversal of a Trade. -6.5. Insufficient Crypto Assets. If you have an insufficient amount of crypto assets in your Gleec Account to complete a Transfer via the Technology Platform, We may cancel the entire order or may fulfill a partial order using the amount of crypto assets currently available in your Gleec Account. -6.6. Taxes. It is your responsibility to determine what, if any, taxes apply to the Transfers you complete via the Technology Platform, and it is your responsibility to report and remit the correct tax to the appropriate tax authority. You agree that Gleec is not responsible for determining whether taxes apply to your transfers or for collecting, reporting, withholding or remitting any taxes arising from any Trades and Transfers and does not act as your tax agent. -6.7. Feedbacks. We own exclusive rights, including all intellectual property rights, to Feedback. Any Feedback you submit is non-confidential and shall become the sole property of Gleec. We will be entitled to the unrestricted use and dissemination of such Feedback for any purpose, commercial or otherwise, without acknowledgment or compensation to you. You waive any rights you may have to the Feedback (including inter alia any copyrights). Do not provide Feedback if you expect to be paid or want to continue to own or claim rights on it; your idea might be great, but We may have already had the same or a similar idea and We do not want disputes. We also have the right to disclose your identity to any third party who is claiming that any content posted by you constitutes a violation of their intellectual property rights, or of their right to privacy. We have the right to remove any posting you make on our website if, in our opinion, your post does not comply with the content standards set out therein. - -### 7. SUSPENSION AND TERMINATION OF YOUR GLEEC ACCOUNT - -7.1. In case of your breach of the Terms, or any other event as We may deem necessary, including without limitation market disruption and/or Force Majeure event We may, in our sole discretion and without liability to you, with or without prior notice: -a. suspend your access to all or a portion of our Services; -or b. prevent you from completing any actions via the Technology Platform, including closing any open Trade orders. In case the transferring resumes, you acknowledge that prevailing market rates may differ significantly from the rates available prior to such event; -or c. terminate your access to the Services, delete or deactivate your Gleec Account and all related information and files in such account. -7.2. In the event of termination, Gleec will return any crypto assets stored in your Gleec Account and not owed to Gleec, unless Gleec believes you have committed fraud, negligence or other misconduct. - -### 8. DISCLAIMER OF WARRANTIES. LIMITATION OF LIABILITIES - -8.1. Except as expressly provided to the contrary in a writing by Us, our services are provided on an "As is" and "As available" basis. WE EXPRESSLY DISCLAIM, AND YOU WAIVE, ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT AS TO OUR SERVICES, INCLUDING THE INFORMATION, CONTENT AND MATERIALS CONTAINED THEREIN. -8.2. You acknowledge that information you store or transfer through our services may become irretrievably lost or corrupted or temporarily unavailable due to a variety of causes, including but not limited to software failures, protocol changes by third party providers, internet outages, Force Majeure event or other disasters including third party DDOS attacks, scheduled or unscheduled maintenance, or other causes either within or outside our control. You are solely responsible for backing up and maintaining duplicate copies of any information you store or transfer through our services. -8.3. Except as otherwise required by law, IN NO EVENT SHALL GLEEC, OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES OR AGENTS BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL DAMAGES, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE OUR SERVICES OR THE GLEEC IP, INCLUDING WITHOUT LIMITATION ANY DAMAGES CAUSED BY OR RESULTING FROM RELIANCE BY ANY USER ON ANY INFORMATION OBTAINED FROM GLEEC, OR THAT RESULT FROM MISTAKES, OMISSIONS, INTERRUPTIONS, DELETION OF FILES OR EMAIL, ERRORS, DEFECTS, VIRUSES, DELAYS IN OPERATION OR TRANSMISSION OR ANY FAILURE OF PERFORMANCE, WHETHER OR NOT RESULTING FROM A FORCE MAJEURE EVENT, COMMUNICATIONS FAILURE, THEFT, DESTRUCTION OR UNAUTHORIZED ACCESS TO GLEEC'S RECORDS, PROGRAMS OR SERVICES. -8.4. We resume the right, in our sole discretion, to control any action or proceeding (at our expense) to which We are a participant and determine whether We wish to settle it. -8.5. To the maximum extent permitted by applicable law, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF GLEEC (INCLUDING OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES AND AGENTS), WHETHER IN CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE, WHETHER ACTIVE, PASSIVE OR IMPUTED), PRODUCT LIABILITY, STRICT LIABILITY OR OTHER THEORY, ARISING OUT OF OR RELATING TO THE USE OF, OR INABILITY TO USE, GLEEC OR TO THESE TERMS EXCEED THE EQUIVALENT OF $100 USD. -8.6. Gleec shall not be liable for: -a. any inaccuracy, error, delay in, or omission of (i) any information, or (ii) the transmission or delivery of information; -b. any loss or damage arising from a Force Majeure Event. -8.7. We strive to protect our users from fraudulent and scam activities in crypto assets sphere. It is possible that some crypto assets are purposed for unlawful seizure of the property, or are construed as a fraud, scam or any other activity, recognized by the laws as illegal and/or non-compliant with legal requirements. We reserve the right to prohibit and discontinue any transactions on our Technology Platform with such crypto asset at our sole discretion, without any prior notice to you and without publication of the reason for such decision, whenever this comes to our knowledge. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH PROHIBITION AND DISCONTINUATION OF TRANSACTIONS IN OUR TECHNOLOGY PLATFORM WITH ANY CRYPTO ASSET. -8.8. To be able to access to our Technology Platform, the User may use without limitation different mobile devices, such as mobile internet devices, tablets/smartphones and wearable computers ("Mobile Devices"). In no way, we make any guarantee that each particular Mobile Device is compatible with our Technology Platform. YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM VIA MOBILE DEVICES, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR INABILITY TO CONNECT TO OUR TECHNOLOGY PLATFORM FROM PARTICULAR MOBILE DEVICE AND YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS YOUR LOSS/DAMAGE/DEFECT OF SUCH MOBILE DEVICE. - -### 9. NO OFFER OF SECURITIES - -9.1. Gleec endeavors all possible measures to be sure that crypto assets that are available via the Technology Platform cannot be classified as "security" by SEC and/or other competent national authorities. Moreover, Gleec represents that it never intended or desired to make tokens and/or coins that can be classified as "security" available via Technology Platform. -9.2. The responsibility for the fact that the instrument cannot be treated as “security” lies with the owner of token and/or coin. If there is any risk or speculations that token and/or coin can be treated as “security”, the Technology Platform reserves the right to prohibit and discontinue any transactions on our Technology Platform with such tokens and/or coins at its sole discretion. -9.3. We follow the best practices to decide whether crypto asset is security or not. However, We give no warranty and/or investment, financial, legal or any other professional advice, that any crypto asset available via our Technology Platform is not a security. - -### 10. APPLICABLE LAW; ARBITRATION - -10.1. You and Gleec agree to arbitrate any dispute arising from these Terms or your use of the Services, except for disputes in which either party seeks equitable and other relief for the alleged unlawful use of copyrights, trademarks, trade names, logos, trade secrets or patents. ARBITRATION PREVENTS YOU FROM SUING IN COURT OR FROM HAVING A JURY TRIAL. -10.2. You and Gleec agree to notify each other in writing of any dispute within thirty (30) days of when it arises. Notice to Gleec shall be sent to legal@exchange.gleec.com. -10.3. Any dispute, controversy, difference or claim arising out of or relating to the Terms, including the existence, validity, interpretation, performance, breach or termination thereof or any dispute regarding non-contractual obligations arising out of or relating to it shall be referred to and finally resolved by arbitration administered by the Estonian Government under the the regulations of the Civil Code of Procedure in Estonia in force when the Notice of Arbitration is submitted. -10.4. The law of this arbitration clause shall be Estonia law. -10.5. The seat of arbitration shall be in Estonia. -10.6. The number of arbitrators shall be three. The arbitration proceedings shall be conducted in English language. -10.7. Other than class procedures and remedies discussed below, the arbitrator has the authority to grant any remedy that would otherwise be available in court. Any dispute between the parties will be governed by these Terms and the laws of Hong Kong, without giving effect to any conflict of laws principles that may provide for the application of the law of another jurisdiction. -10.8. Whether the dispute is heard in arbitration or in court, you will not commence against Gleec a class action, class arbitration or representative action or proceeding. - -### 11. MISCELLANEOUS - -11.1. Entire Agreement. These Terms contain the entire agreement, and supersede all prior and contemporaneous understandings between the parties regarding the Services. -11.2. Order of Precedence. In the event of any conflict between these Terms and any other agreement you may have with Gleec, the terms of that other agreement will prevail only if these Terms are specifically identified and declared to be overridden by such other agreement. -11.3. Amendments. We reserve the right to make changes or modifications to these Terms from time to time, in our sole discretion. If We make changes to these Terms, We will provide you with notice of such changes, such as by sending an e-mail, providing notice on the homepage of the Site and/or by posting the amended Terms via the applicable Gleec websites and mobile applications and updating the "Last Updated" date at the top of these Terms. The amended Terms will be deemed effective immediately upon posting for any new users of the Services. In all other cases, the amended Terms will become effective for preexisting users upon the earlier of either: -a. the date User click or press a button to accept such changes or; -b. the date User continues use of our Services after Gleec provides notice of such changes or publishes new version of the Terms on the Website. -11.4. Any amended Terms will apply prospectively to use of the Services after such changes become effective. If you do not agree to any amended Terms, you must discontinue using our Services and contact us to terminate your account. -11.5. No Waiver. Our failure or delay in exercising any right, power or privilege under these Terms shall not operate as a waiver thereof. -11.6. Severability. The invalidity or unenforceability of any of these Terms shall not affect the validity or enforceability of any other of these Terms, all of which shall remain in full force and effect. -11.7. Assignment. You may not assign or transfer any of your rights or obligations under these Terms without prior written consent from Gleec, including by operation of law or in connection with any change of control. Gleec may assign or transfer any or all of its rights under these Terms, in whole or in part, without obtaining your consent or approval. diff --git a/assets/legal/eula.md b/assets/legal/eula.md new file mode 100644 index 0000000000..a34507cab4 --- /dev/null +++ b/assets/legal/eula.md @@ -0,0 +1,87 @@ +# End User License Agreement (EULA) | GLEEC Wallet + +This End User License Agreement (“**EULA**”) is a legally binding agreement between you (“**User**,” “**you**,” or “**your**”) and **GLEEC** (“**GLEEC**,” “**we**,” “**us**,” or “**our**”). + +This EULA governs your access to and use of the GLEEC Wallet software, including any associated web applications, mobile applications, desktop applications, features, content, updates, and related services (collectively, the “**Software**”), whether obtained directly from GLEEC or through an authorized distributor, reseller, or partner (“**Distributor**”). + +By clicking “Accept,” downloading, installing, accessing, or using the Software, you acknowledge that you have read, understood, and agree to be bound by the terms of this EULA. If you do not agree to these terms, you must not download, install, access, or use the Software. + +If you are entering into this EULA on behalf of a company or other legal entity, you represent and warrant that you have the authority to bind such entity and its affiliates to this EULA. If you do not have such authority, you must not accept this EULA or use the Software. + +If you participate in any beta, trial, or early-access program, this EULA also governs such use unless separate terms are provided. + +This EULA applies solely to the Software provided by GLEEC, regardless of whether other software or services are referenced. Any updates, supplements, support services, or internet-based services provided by GLEEC are governed by this EULA unless accompanied by separate terms. + +## 1. License Grant + +Subject to your compliance with this EULA, GLEEC grants you a limited, personal, non-exclusive, non-transferable, non-sublicensable, and revocable license to download, install, and use the Software on devices owned or controlled by you solely for its intended purposes. + +You are responsible for ensuring that your device meets the minimum system, security, and compatibility requirements necessary to use the Software securely and effectively. + +The Software is licensed, not sold. No ownership rights are transferred to you under this EULA. + +## 2. Restrictions + +You agree that you will not, and will not permit any third party to: + +* Modify, adapt, translate, alter, or create derivative works of the Software. +* Combine or incorporate the Software into other software without authorization. +* Reverse engineer, decompile, disassemble, or otherwise attempt to derive the source code of the Software, except to the extent such restriction is prohibited by applicable law. +* Reproduce, copy, distribute, lease, sublicense, sell, assign, or otherwise commercially exploit the Software. +* Use the Software in violation of any applicable local, provincial, national, or international law or regulation. +* Use the Software for unlawful, fraudulent, abusive, or harmful activities. +* Circumvent, disable, or interfere with security-related features of the Software. + +GLEEC reserves the right to suspend or restrict access to the Software if it reasonably believes you are in breach of this EULA. + +## 3. Intellectual Property + +The Software, including all content, features, functionality, trademarks, service marks, logos, and intellectual property rights therein, are and shall remain the exclusive property of GLEEC and its licensors. + +All rights not expressly granted to you under this EULA are reserved by GLEEC. + +GLEEC may grant licenses to third parties at its sole discretion. + +## 4. Updates and Modifications + +GLEEC may, from time to time, provide updates, enhancements, patches, or modifications to the Software. Such updates may be automatic and may modify or remove certain features. + +Continued use of the Software following updates constitutes acceptance of such updates. + +## 5. Disclaimer of Warranties + +To the maximum extent permitted by applicable law, the Software is provided on an “AS IS” and “AS AVAILABLE” basis without warranties of any kind, whether express, implied, statutory, or otherwise. + +GLEEC expressly disclaims all implied warranties, including but not limited to warranties of merchantability, fitness for a particular purpose, non-infringement, accuracy, reliability, and uninterrupted availability. + +GLEEC does not warrant that the Software will be error-free, secure, or free from viruses or other harmful components. + +## 6. Limitation of Liability + +To the maximum extent permitted by applicable law, GLEEC shall not be liable for any indirect, incidental, consequential, special, punitive, or exemplary damages, including but not limited to loss of profits, data, digital assets, goodwill, or business interruption arising out of or related to your use of the Software. + +GLEEC’s total aggregate liability under this EULA shall not exceed the amount (if any) paid by you for the Software. + +Some jurisdictions may not allow certain limitations of liability; in such cases, liability will be limited to the fullest extent permitted by law. + +## 7. Termination + +This EULA becomes effective upon your first use of the Software and remains in effect until terminated. + +You may terminate this EULA at any time by discontinuing use of the Software and uninstalling it from your devices. + +GLEEC may suspend or terminate this EULA immediately if you breach any provision of this EULA. + +Upon termination: + +* All rights granted to you under this EULA shall immediately cease. +* You must discontinue all use of the Software. +* Any provisions which by their nature should survive termination shall remain in effect, including intellectual property rights, disclaimers, and limitations of liability. + +## 8. Governing Law and Jurisdiction + +This EULA and any dispute, claim, or controversy arising out of or relating to this EULA or the use of the Software shall be governed by and construed in accordance with the laws of **Canada**, without regard to its conflict of law principles. + +The parties agree that the courts located in Canada shall have exclusive jurisdiction over any disputes arising under this EULA. + +**Last updated: February 24, 2026** diff --git a/assets/legal/kyc-due-diligence-policy.md b/assets/legal/kyc-due-diligence-policy.md new file mode 100644 index 0000000000..7e9519e177 --- /dev/null +++ b/assets/legal/kyc-due-diligence-policy.md @@ -0,0 +1,112 @@ +## **KYC AND DUE DILIGENCE POLICY** + +**Gleec Pay LTD and its Affiliates** +(“Gleec”, “Gleec.com”, “The Company”, “we”, “us”, “our”) + +### **1. Purpose, Scope and Regulatory Context** + +This Know Your Customer (“KYC”) and Due Diligence Policy (the “Policy”) establishes the principles, standards, governance framework, and operational controls adopted by Gleec Pay LTD and all affiliated entities within the Gleec Group to prevent, detect, and mitigate the risks of money laundering, terrorist financing, sanctions violations, fraud, corruption, and other forms of financial and economic crime. + +This Policy applies to all natural persons and legal entities, including users, customers, clients, merchants, counterparties, partners, and beneficial owners who access, register for, or use any of the Company’s products, services, platforms, infrastructure, or applications, including but not limited to Gleec Pay, Gleec Card, Gleec Chat, Gleec BTC Exchange, and Gleec DEX (collectively, the “Services” or the “Platform”). + +The Policy is designed to ensure compliance with all applicable anti-money laundering (“AML”), counter-terrorist financing (“CTF”), sanctions, and financial crime prevention laws and regulations in the jurisdictions in which the Company operates or provides Services. It aligns with internationally recognised standards and best practices, including the recommendations of the Financial Action Task Force (“FATF”), relevant EU Directives, and applicable national regulatory frameworks. + +### **2. Governance and Responsibility** + +Ultimate responsibility for the implementation, oversight, and effectiveness of this Policy rests with the Board of Directors and Senior Management of the Company. The Board ensures that the Company maintains adequate systems, controls, and resources to manage financial crime risks proportionate to its business model, geographic footprint, and risk exposure. + +Day-to-day responsibility for implementing and maintaining this Policy is delegated to the Money Laundering Reporting Officer (“MLRO”), who operates with sufficient authority, independence, and access to information. The MLRO is supported by the Risk and Compliance function and relevant operational teams. + +All employees, officers, contractors, and relevant third parties involved in onboarding, customer interaction, transaction processing, or monitoring activities are required to comply with this Policy and supporting procedures. + +### **3. Risk-Based Approach** + +#### **3.1 General Principles** + +The Company applies a comprehensive risk-based approach (“RBA”) to KYC, customer due diligence, enhanced due diligence, and ongoing monitoring. The level and intensity of controls are proportionate to the level of money laundering, terrorist financing, sanctions, and fraud risk identified. + +The RBA recognises that risks vary based on customer type, jurisdiction, product and service usage, transaction behaviour, and delivery channels. Enhanced scrutiny is applied to higher-risk relationships, while baseline controls are maintained across all Services. This approach ensures flexibility in responding to emerging risks, regulatory developments, and evolving typologies. + +#### **3.2 Risk Assessment Methodology** + +The Company identifies, assesses, and manages risks using a combination of qualitative analysis and quantitative indicators. Factors considered include service complexity, client profiles, geographic exposure, transaction size and frequency, funding methods, asset types, source and destination of funds or virtual assets, and behavioural indicators. + +Risk assessments are formally documented, subject to review, and retained in an auditable manner. + +### **4. Client Risk Assessment and Categorisation** + +#### **4.1 Initial Risk Assessment** + +Before establishing a business relationship or granting access to the Services, the Company conducts an initial client risk assessment. Each relationship is assigned a Low, Medium, or High Risk classification, which determines due diligence requirements, approval thresholds, escalation procedures, and monitoring frequency. + +Risk classifications are dynamic and are reviewed throughout the lifecycle of the relationship whenever new or material information becomes available. + +#### **4.2 Risk Factors Considered** + +The Company assesses multiple risk factors, including sanctions exposure, reputational risk, Politically Exposed Person (“PEP”) status, geographic exposure, industry and business activity, financial transparency, products and services used, and transactional and behavioural patterns. + +#### **4.3 High-Risk Indicators** + +Certain indicators may result in immediate classification as high-risk, including complex or opaque ownership structures, offshore arrangements, PEP involvement, exposure to high-risk or sanctioned jurisdictions, unexplained or inconsistent transaction behaviour, difficulty verifying source of wealth or funds, or reluctance to provide required KYC information. + +Risk scoring is not influenced by commercial considerations. The MLRO may override automated risk outcomes where justified, provided that the rationale is documented and approved. + +### **5. Business-Wide Risk Assessment** + +The MLRO conducts a Business-Wide Risk Assessment (“BWRA”) covering all Gleec entities, Services, customer segments, products, and delivery channels. The BWRA identifies inherent and residual risks, evaluates the effectiveness of controls, and informs policy updates, system enhancements, and monitoring priorities. + +The BWRA is reviewed at least annually and whenever material changes occur and is reported to Senior Management and the Board of Directors. + +### **6. Client Acceptance Policy** + +#### **6.1 General Acceptance Principles** + +The Company only establishes relationships with clients who can be properly identified and verified through KYC procedures, demonstrate a legitimate purpose for using the Services, pass sanctions, PEP, and adverse media screening, and meet the acceptance criteria defined in this Policy. + +Account activation and continued access to the Services are conditional upon the successful completion of applicable KYC and due diligence measures. + +#### **6.2 Prohibited Clients** + +The Company does not onboard or maintain relationships with sanctioned persons or entities, clients linked to prohibited jurisdictions or industries, individuals involved in serious criminal activity, clients with unverifiable identity or ownership, clients providing false or misleading information, or entities with anonymous or unidentifiable beneficial owners. + +### **7. Politically Exposed Persons (PEPs)** + +All relationships involving PEPs, their family members, or close associates are subject to Enhanced Due Diligence (“EDD”). This includes identification and verification of PEP status, MLRO and senior management approval, verification of source of wealth and source of funds, enhanced transaction monitoring, and more frequent reviews. + +Former PEPs remain subject to enhanced measures for a minimum of 12 months, extendable based on risk. + +### **8. Customer Due Diligence (CDD)** + +#### **8.1 CDD Measures** + +Customer Due Diligence measures include the identification and verification of clients, beneficial owners, and controlling persons; understanding the purpose and intended nature of the business relationship; and ongoing monitoring of transactions and customer behaviour. + +CDD is performed prior to onboarding, when trigger events occur, or when doubts arise regarding previously obtained KYC information. + +#### **8.2 Use of Third-Party KYC Platform Provider** + +To support the effective execution of its Know Your Customer (“KYC”) obligations, the Company utilises reputable third-party service providers for KYC and identity verification activities. **Gleec uses Sumsub (Sum & Substance) as its primary KYC platform provider** to perform and support customer identification and verification, document authentication, biometric and liveness checks, sanctions screening, Politically Exposed Person (“PEP”) screening, and adverse media monitoring. + +Sumsub is fully integrated into the Company’s onboarding, risk assessment, and ongoing KYC monitoring processes and is used across the Services to ensure consistent, scalable, and risk-based KYC controls in line with regulatory requirements and industry best practices. + +The use of Sumsub does not transfer regulatory responsibility. **Ultimate responsibility for KYC compliance, due diligence decisions, risk classifications, and regulatory adherence remains with the Company at all times**. The Company maintains appropriate oversight, governance, and validation of all KYC activities performed through Sumsub and ensures that the KYC platform provider meets required standards of security, data protection, reliability, and regulatory compliance. + +### **9. Enhanced Due Diligence (EDD)** + +Enhanced Due Diligence is applied where higher risk is identified and may include additional identity and ownership verification, detailed analysis of source of wealth and source of funds, enhanced transaction scrutiny, justification of activity, and senior management approval prior to onboarding or continuation of the relationship. + +### **10. Source of Wealth and Source of Funds** + +The Company verifies the legitimacy of source of wealth and source of funds using a risk-based approach and may request documentary evidence appropriate to the client’s risk profile, jurisdiction, and activity. All documentation is reviewed for authenticity, consistency, and plausibility. + +### **11. Ongoing Monitoring and Periodic Reviews** + +All client relationships are subject to continuous transaction monitoring and periodic review based on risk classification. Reviews occur at least every 36 months for low-risk clients, 24 months for medium-risk clients, and 12 months for high-risk clients, or earlier where triggered by material changes, sanctions updates, PEP status changes, or suspicious activity. + +### **12. Record Keeping and Audit Trail** + +The Company maintains complete, accurate, and retrievable records of KYC data, client risk assessments, monitoring activities, decisions, approvals, and escalations. Records are retained in accordance with applicable legal and regulatory requirements and are made available for internal audit and regulatory inspection. + +### **13. Policy Review and Updates** + +This Policy is reviewed at least annually and updated as necessary to reflect regulatory developments, emerging risks, changes in business activities, and industry best practices. diff --git a/assets/legal/privacy-notice.md b/assets/legal/privacy-notice.md new file mode 100644 index 0000000000..a189ecc623 --- /dev/null +++ b/assets/legal/privacy-notice.md @@ -0,0 +1,411 @@ +# Gleec Global Privacy Notice + +Welcome to the Gleec Global Privacy Notice (“Privacy Notice”). Please spend a few minutes reading it carefully before you provide us with any information about you or any other person. + +## 1\. Introduction + +We truly respect your privacy and are committed to protecting your personal data. This Privacy Notice applies to the processing of personal data by Gleec Pay LTD. with its principal place of business located at 5811 Cooney Road, Suite 305, South Tower, Richmond, British Columbia, V6X 3M1, Canada and its affiliates companies (“Gleec”, “Gleec.com”, “The Company”, “we”, “us”, “our”) in connection with: + +* use of any of our products, services or applications – including but no limited to Gleec Pay, Gleec Card, Gleec Chat, Gleec Exchange, Gleec DEX and Gleec Wallet (collectively the “Services” or the “Platform”) +* visit or use of our website Gleec.com (“Site”) or any of GLEEC’s ecosystem mobile application (“App”) + +Please note that our Services, Site and Apps are not intended for minors below the age of 18 years and we do not knowingly collect data relating to minors. + +## 2\. Purpose + +This Privacy Notice aims to give you information on why and how we collect and process your personal data. This Privacy Notice informs you about your privacy rights and how the data protection principles set out in the EU General Data Protection Regulation (“GDPR”) and the post-Brexit privacy law publicly known as the UK GDPR protect you. + +It is important that you read this Privacy Notice together with any other notice or policy we may provide on specific occasions when we are collecting or processing personal data about you so that you are fully aware of why and how we are using your data. This Privacy Notice supplements other notices and policies and is not intended to override them. + +For your easy reference, you may find below the privacy terms for other products or services provided by our corporate family, as well as the privacy terms for other jurisdictions where our business operates. Please note that all or part of our Services may not be available in your region. + +* Brazil + +It is important that you read this Privacy Notice together with any other notice or policy we may provide on specific occasions when we are collecting or processing personal data about you so that you are fully aware of why and how we are using your data. This Privacy Notice supplements other notices and policies and is not intended to override them. + +## 3\. Who we are + +### Data Controllers + +The controller of your personal data is the legal entity that determines the “means” and the “purposes” of any processing activities that it carries out. When you engage us to provide services for you, we will be the “data controller” for your personal data. + +### Data Protection Officer + +We have appointed a Data Protection Officer (“DPO”) who is responsible for overseeing questions in relation to this Privacy Notice. If you have any questions or complaints related to this Privacy Notice or our privacy practices, or if you want to exercise your legal rights, please contact our DPO at legal@gleec.com. + +### Complaints + +You have the right to make a complaint about the way we process your personal data to a supervisory authority. If you reside in an EEA Member State, you have the right to make a complaint about the way we process your personal data to the supervisory authority in the EEA Member State of your habitual residence, place of work or place of the alleged infringement. Information about your supervisory authority could be found here. + +We would, however, appreciate the chance to deal with your concerns before you approach a data protection regulatory authority, so please feel free to contact us in the first instance. + +### Our duties and your duties in case of changes + +We keep our Privacy Notice under regular review. This version was last updated on the date above written. Please check from time to time for new versions of the Privacy Notice. We will also additionally inform you of material changes to this Privacy Notice in a manner that will effectively bring the changes to your attention. It is important that the personal data we hold about you is accurate and up-to-date. Please keep us informed if your personal data changes during your relationship with us. + +## 4\. What data we collect about you + +Personal data, or personal information means any information that relates to an identified or identifiable living individual. This is a broad definition that includes the specific pieces of personal data which we have described below. It does not include data that cannot be used to identify an individual person, such as a company registration number. A “data subject” is an individual who can be identified, directly or indirectly, by personal data. This is usually by reference to an identifier such as a name, identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person. Different pieces of information, which are collected together can lead to the identification of a particular person, also constitute personal data. It does not include data where the identity has been removed (anonymous data). More information could be found here. Depending on whether and how you use our Services, Site or App, we will collect, use, store and transfer different kinds of personal data about you which we have grouped in categories as follows: + +* Identity Data: first name, maiden name, last name, username or similar identifier, title, date of birth and gender, biometric information, including a visual image of your face, national identity cards, passports, driving licenses or other forms of identification documents. +* Social Identity Data: your group/company data, information on referrals related to you, political background, close connections, behavioral data, risk assessment, and compliance assessment. +* Contact Data: residence details, billing address, delivery address, home address, work address, email address and telephone numbers, proof of address documentation. +* Financial Data: bank account, payment card details, virtual currency accounts, stored value accounts, amounts associated with accounts, external account details. +* Transactional Data: details about payments to and from you, other details of any transactions you enter into using the Services, Site or App. +* Investment Data: information about your investment objectives, investment experience, prior investments. +* Technical Data: internet connectivity data, internet protocol (IP) address, operator and carrier data, login data, browser type and version, device type, category and model, time zone setting and location data, language data, application version and SDK version, browser plug-in types and versions, operating system and platform, diagnostics data such as crash logs and any other data we collect for the purposes of measuring technical diagnostics, and other information stored on or available regarding the devices you allow us access to when you visit the Site, or use the Services or the App. +* Profile Data: your username and password, your identification number as our user, information on whether you have Gleec’s Apps account and the email associated with your accounts, requests by you for products or services, your interests, preferences and feedback other information generated by you when you communicate with us, for example when you address a request to our customer support. +* Usage Data: information about how you use the Site, the Services, mobile applications and other offerings made available by us, including device download time, install time, interaction type and time, event time, name and source. +* Marketing and Communications Data: your preferences in receiving marketing from us or third parties, your communication preferences, your survey responses. + +As explained above under Identity Data, we will also collect a visual image of your face which we will use, in conjunction with our sub-contractors, to check your identity for onboarding purposes. This data falls within the scope of special categories of data. + +If you refuse to provide personal data + +Where we need to collect personal data by law, or under the terms of a contract we have with you, and you refuse to provide that data when requested, we may not be able to perform the contract we have or are trying to enter into with you – for example, to provide you Services. In this case, we may have to cancel a product or stop providing you services related to it, but we will notify you if this is the case at the time. + +## 5\. How we collect your data + +We use different methods to collect information from and about you, including through: + +### Direct interactions + +You may give us your Identity Data, Social Identity Data, Contact Data, Financial Data, Profile Data and Marketing and Communications Data by directly interacting with us, including by filling in forms, providing a visual image of yourself via the Service or a third partner, by email or otherwise. + +This includes personal data you provide when you: + +* visit our Site or Apps; +* apply for our Services; +* create an account; +* make use of any of our Services; +* request marketing to be sent to you, for example by subscribing to our newsletters; +* enter a competition, promotion or survey, including through social media channels; +* give us feedback or contact us. + +### Automated technologies or interactions + +As you interact with us via our Site or App, we will automatically collect Technical Data about your equipment, browsing actions and patterns. We collect this personal data by using cookies, server logs and other similar technologies. We will also collect Transactional Data, Investment Data and Usage Data. + +We may also receive Technical Data and Marketing and Communications Data about you if you visit other websites employing our cookies. + +### Third parties or publicly available sources + +We also obtain information about you, including Social Identity Data, from third parties or publicly available sources. These sources may include: + +* fraud and crime prevention agencies, +* a customer referring you, +* public blockchain, +* publicly available information on the Internet (websites, articles etc.) + +## 6\. How we use your data + +### Lawful basis + +We will only use your personal data when the applicable legislation allows us to. In other words, we have to ensure that we have a lawful basis for such use. Most commonly, we will use your personal data in the following circumstances: + +* Performance of a contract: means processing your data where it is necessary for the performance of a contract to which you are a party or to take steps at your request before entering into such a contract; we use this basis for provision of our Services; +* Legitimate interests: means our interests (or those of a third party), where we make sure we use this basis as far as your interests and individual rights do not override those interests; +* Compliance with a legal obligation: means processing your personal data where we need to comply with a legal obligation we are subject to; +* Consent: means freely given, specific, informed, and unambiguous indication of your wishes by which you, by a statement or by clear affirmative action, signify agreement to the processing of personal data relating to you; under specific circumstances, this consent should be explicit – if this is the case, we will ask for it properly. + +### Purposes for which we will use your personal data + +We have set out below, in a table format, a description of all the ways we plan to use your personal data, and which of the legal bases we rely on to do so. We have also identified what our legitimate interests are where appropriate. + +Note that we may process your personal data for more than one lawful ground depending on the specific purpose for which we are using your data. Please contact us if you need details about the specific legal ground we are relying on to process your personal data where more than one ground has been set out in the table below. + +#### **1.6. To register you as a new customer:** + +* a. Categories of personal data: + * Identity Data + * Social Identity Data + * Contact Data + * Financial Data +* b. Lawful basis for processing: Performance of a contract + +#### **2.6. To carry out and comply with anti-money laundering requirements:** + +* a. Categories of personal data: + * Identity Data + * Social Identity Data + * Contact Data + * Financial Data +* b. Lawful basis for processing: Compliance with a legal obligation + +#### **3.6. To process and deliver our Services and any App features to you:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Financial Data + * Transactional Data + * Technical Data + * Financial Data +* b. Lawful basis for processing: Performance of a contract + +#### **4.6. To prevent abuse of our Services and promotions:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Financial Data + * Transactional Data + * Technical Data + * Marketing and Communications Data +* b. Lawful basis for processing: Legitimate interests + +#### **5.6. To manage our relationship with you:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Profile Data + * Transactional Data + * Marketing and Communications Data +* b. Lawful basis for processing: Performance of a contract. Consent, if required + +#### **6.6. To keep our records updated and to study how customers use our products/services:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Profile Data + * Transactional Data + * Marketing and Communications Data +* b. Lawful basis for processing: Legitimate interests. Consent, if required + +#### **7.6. To manage, process, collect and transfer payments, fees and charges, and to collect and recover payments owed to us:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Financial Data +* b. Lawful basis for processing: Performance of a contract + +#### **8.6. To ensure good management of our payments, fees and charges and collection and recovery of payments owed to us:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Financial Data +* b. Lawful basis for processing: Legitimate interests + +#### **9.6. To manage risk and crime prevention including performing anti-money laundering, counter-terrorism, sanction screening, fraud and other background checks, detect, investigate, report and prevent financial crime in broad sense, obey laws and regulations which apply to us and response to complaints and resolving them:** + +* a. Categories of personal data: + * Identity Data + * Social Identity Data + * Contact Data + * Financial Data + * Technical Data + * Transactional Data + * Investment Data + * Sensitive Data (a.k.a. Special Categories Data): + * data that you give us directly or that we receive from third parties and/or publicly available sources; + * data which might be revealed by KYC or other background checks (for example, because it has been reported in the press or is available in public registers); + * data that is incidentally revealed by photographic ID although we do not intentionally process this personal data +* b. Lawful basis for processing: Compliance with a legal obligation + +We may also process such data in connection with these purposes if it is necessary for the performance of our contract with you. + +In addition to our legal obligations, we may process this personal data based on our legitimate interest in ensuring that we are not involved in dealing with the proceeds of criminal activities and do not assist in any other unlawful or fraudulent activities, as well as to develop and improve our internal systems for dealing with financial crime and to ensure effective dealing with complaints. + +#### **10.6. To enable you to partake in a prize draw, competition or complete a survey:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Profile Data + * Usage Data + * Marketing and Communications Data +* b. Lawful basis for processing: Performance of a contract. Consent, if required. + +#### **11.6. To gather market data for studying customers' behavior including their preference, interest and how they use our products/services, determining our marketing campaigns and growing our business:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Profile Data + * Usage Data + * Marketing and Communications Data +* b. Lawful basis for processing: Legitimate interests (understanding our customers and improving our products and services) + +#### **12.6. To administer and protect our business, our Site, App(s) and social media channels including bans, troubleshooting, data analysis, testing, system maintenance, support, reporting, hosting of data:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Financial Data + * Technical Data + * Transactional Data + * Investment Data +* b. Lawful basis for processing: Legitimate interests to run our business, provision of administration and IT services, network security, to prevent fraud and in the context of a business reorganization or group restructuring exercise + +#### **13.6. To deliver relevant website content and advertisements to you and measure or understand the effectiveness of the advertising we serve to you:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Profile Data + * Usage Data + * Technical Data + * Marketing and Communications Data +* b. Lawful basis for processing: Legitimate interests (to study how customers use our products/services, to develop them, to grow our business and to form our marketing strategy). Consent, if required. + +#### **14.6. To use data analytics to improve our website, products/services, marketing, customer relationships and experiences:** + +* a. Categories of personal data: + * Technical Data + * Usage Data +* b. Lawful basis for processing: to define types of customers for our products and services, to keep our website updated and relevant, to develop our business and to form our marketing strategy. Consent, if required. + +#### **15.6. To make suggestions and recommendations to you about goods or services that may be of interest to you:** + +* a. Categories of personal data: + * Identity Data + * Contact Data + * Technical Data + * Usage Data + * Profile Data + * Investment Data + * Marketing and Communications Data +* b. Lawful basis for processing: Legitimate interests: to develop our products/services and grow our business. Consent, if required. + +#### **16.6. To use the services of social media platforms or advertising platforms some of which will use the personal data they receive for their own purposes, including marketing purposes:** + +* a. Categories of personal data: + * Technical Data + * Usage Data +* b. Lawful basis for processing: Consent + +#### **17.6. To use the services of financial institutions, crime and fraud prevention companies, risk measuring companies, which will use the personal data they receive for their own purposes in their capacity of independent controllers:** + +* a. Categories of personal data: + * Identity Data + * Social Identity Data + * Contact Data + * Financial Data + * Transactional Data + * Investment Data + * Technical Data + * Usage Data +* b. Lawful basis for processing: Legitimate interests (to conduct our business activities on the market of financial services, to participate actively in the prevention of crime and fraud). + +#### **18.6. To record voice calls for compliance, quality assurance and training purposes:** + +* a. Categories of personal data: + * Identity Data + * Social Identity Data + * Contact Data + * Financial Data + * Transactional Data +* b. Lawful basis for processing: Legitimate interests (to comply with the industry standards and requirements in payments services, to ensure quality of our service, including by proper training of our personnel). + +### Marketing + +We may use your Identity Data, Contact Data, Technical Data, Transactional Data, Investment Data, Usage Data, and Profile Data to form a view of what we think you may want or need, or what may be of interest to you. This is how we decide which products, services, and offers may be relevant for you (we call this marketing). + +You will receive marketing communications from us if you have requested information from us and consented to receive marketing communications, or if you have purchased from us and you have not opted out of receiving such communications. We will use your Marketing and Communications Data for our respective activities. + +### Opting out + +You can ask us to stop sending you marketing messages at any time by following the “unsubscribe” links on any marketing message sent to you. + +Further, you can let us know directly that you prefer not to receive any marketing messages by emailing legal@gleec.com. + +Where you opt out of receiving marketing messages, this will not apply to service messages which are directly related to the use of our Services (e.g. maintenance, change in the terms and conditions and so forth). + +### Cookies + +We use cookies to monitor and observe your use of our websites, compile aggregate data about that use, and provide you with a more effective service (which may include customizing parts of our websites based on your preferences and past activities on those websites). "Cookies" are small text files created and stored on your hard drive by your internet browser software, in order to hold relevant information about the web page you are currently viewing. + +Most internet browsers have a facility that will allow you to disable cookies altogether – please refer to your browser’s help menu to find out how to do this. While you will still be able to browse our websites with cookies disabled on your internet browser, some website functionality may not be available or may not function correctly. + +### Google Analytics + +Our website uses Google Analytics, a web analytics service provided by Google, Inc. (“Google”). Google Analytics uses cookies to help the website analyze how users use our website. + +The information generated by the cookie about your use of our website (including your IP address) will be transmitted to and stored by Google on servers in the United States. Google will use this information for the purpose of evaluating your use of the website, compiling reports on website activity for website operators, and providing other services relating to website activity and internet usage. Google may also transfer this information to third parties where required to do so by law, or where such third parties process the information on Google’s behalf. Google will not associate your IP address with any other data held by Google. + +You may refuse the use of cookies by selecting the appropriate settings on your browser, however, please note that if you do this you may not be able to use the full functionality of our website. By using our website, you consent to the processing of data about you by Google in the manner and for the purposes set out above. + +### Change of purpose + +We will only use your personal data for the purposes for which we collected it, unless we reasonably consider that we need to use it for another reason and that reason is compatible with the original purpose. If you wish to get an explanation as to how the processing for the new purpose is compatible with the original purpose, please contact us. + +If we need to use your personal data for an unrelated purpose, we will notify you and we will explain the legal basis which allows us to do so. + +### 7\. Disclosures of Your Data + +We share your personal data with our third-party service providers, agents, subcontractors and other associated organizations, our group companies, and affiliates (as described below) in order to complete tasks and provide the Services and use of any of Gleec Apps to you on our behalf. When using third-party service providers, they are required to respect the security of your personal data and to treat it in accordance with the law. + +We may pass your personal data to the following entities: + +* companies and organizations that assist us in processing, verifying or refunding transactions/orders you make and in providing any of the Services that you have requested; +* identity verification agencies to undertake required verification checks; +* fraud or crime prevention agencies to help fight against crimes including fraud, money-laundering, and terrorist financing; +* anyone to whom we lawfully transfer or may transfer our rights and duties under the relevant terms and conditions governing the use of any of the Services; +* any third party because of any restructure, sale or acquisition of our group or any affiliates, provided that any recipient uses your information for the same purposes as it was originally supplied to us and/or used by us; and +* regulatory and law enforcement authorities, whether they are outside or inside of the EEA, where the law allows or requires us to do so. + +## 8\. International Transfers + +We share your personal data within our group. This will involve transferring your personal data outside the European Economic Area (EEA) or the UK. Many of our external third parties are based outside the EEA so their processing of your personal data will involve a transfer of data outside the EEA. + +Whenever we transfer your personal data out of the EEA, we ensure a similar degree of protection is afforded to it by ensuring at least one of the following safeguards is implemented: + +* the country to which we transfer your personal data has been deemed to provide an adequate level of protection for personal data by the European Commission; +* a specific contract approved by the European Commission which gives safeguards to the processing of personal data, the so-called Standard Contractual Clauses. + +## 9\. Data Security + +While there is an inherent risk in any data being shared over the internet, we have put in place appropriate security measures to prevent your personal data from being accidentally lost, used, damaged, or accessed in an unauthorized or unlawful way, altered, or disclosed. In addition, we limit access to your personal data to those employees, agents, contractors and other third parties who have a legitimate business need to know. They will only process your personal data on our instructions, and they are subject to a duty of confidentiality. + +Depending on the nature of the risks presented by the proposed processing of your personal data, we will have in place the following appropriate security measures: + +* organizational measures (including but not limited to staff training and policy development); +* technical measures (including but not limited to the physical protection of data, pseudonymization and encryption); and +* securing ongoing availability, integrity, and accessibility (including but not limited to ensuring appropriate back-ups of personal data are held). + +## 10\. Data Retention + +To determine the appropriate retention period for personal data, we consider the amount, nature, and sensitivity of the personal data, the potential risk of harm from unauthorized use or disclosure of your personal data, the purposes for which we process your personal data, and whether we can achieve those purposes through other means, and the applicable legal, regulatory, tax, accounting or other requirements. + +Here are some exemplary factors which we usually consider when determining how long we need to retain your personal data: + +* in the event of a complaint; +* if we reasonably believe there is a prospect of litigation in respect to our relationship with you; +* to comply with any applicable legal and/or regulatory requirements with respect to certain types of personal data; +* if information is needed for audit purposes and so forth; +* in accordance with relevant industry standards or guidelines; +* in accordance with our legitimate business need to prevent abuse of the promotions that we launch. We will retain a customer’s personal data for the time of the promotion and for a certain period after its end to prevent the appearance of abusive behavior. + +Please note that under certain condition(s), you can ask us to delete your data: see your legal rights below for further information. We will honor your deletion request ONLY if the condition(s) is met. + +## 11\. Your Legal Rights + +You have rights we need to make you aware of. The rights available to you depend on our reason for processing your personal data. If you need more detailed information or wish to exercise any of the rights set out below, please contact us. + +* request access to your personal data; +* request rectification of your personal data; +* request erasure of your personal data; +* object to the processing of your personal data; +* require that decisions be reconsidered if they are made solely by automated means; +* request restriction of processing your personal data; +* request the transfer of your personal data to you or to a third party; +* withdraw consent at any time; +* complain to the IDPC, ICO, DPC or any relevant authority about any perceived violation. + +### No fee usually required + +You will not have to pay a fee to access your personal data (or to exercise any of the other rights). However, we may charge a reasonable fee if your request is manifestly unfounded or excessive. Alternatively, we could refuse to comply with your request in these circumstances. + +### Period for replying to a legitimate request + +The statutory period under GDPR for us to reply to a legitimate request is one month. That period may be extended by two further months where necessary, taking into account the complexity and number of the requests. + +Please note that we may request that you provide some details necessary to verify your identity when you request to exercise a legal right regarding your personal data. + +### Contact details + +If you want any further information from us on privacy matters, please contact our privacy compliance team at legal@gleec.com. diff --git a/assets/legal/terms-of-service.md b/assets/legal/terms-of-service.md new file mode 100644 index 0000000000..8922a38ea6 --- /dev/null +++ b/assets/legal/terms-of-service.md @@ -0,0 +1,31 @@ +# Terms of Service + +These Terms of Service and any terms incorporated herein (the “Terms”) apply to your (“User”) use of the “Technology platform”, including [https://exchange.gleec.com](https://exchange.gleec.com/), the technology and the platform integrated therein and any applications associated therewith, which are operated and maintained by **Gleec Pay LTD and its affiliates companies (“Gleec”, “Gleec.com”, “The Company”, “we”, “us”, “our”)**. + +These Terms apply in connection with the use of any of our products, services or applications – including but not limited to **Gleec Pay, Gleec Card, Gleec Chat, Gleec Exchange and Gleec DEX (collectively the “Services” or the “Platform”)** and your visit or use of our website **Gleec.com (“Site”)** or any of **GLEEC’s ecosystem mobile application (“App”)**. We provide you the possibility to use Our Technology Platform on the following terms and conditions. + +**I. GENERAL PROVISIONS** + +**1. DEFINITIONS** 1.1. “Communications” shall mean all and any communication, agreement, document, receipt, notice and disclosure, which may be from time to time addressed to User by Gleec. 1.2. “Crypto assets” shall mean such type of assets which can only and exclusively be transmitted by means of block-chain technology, including but not limited to digital coins and digital tokens and any other type of digital mediums of exchange, such as Bitcoin, Ethereum, Ripple, etc, to the full and absolute exempt of the securities of any kind. 1.3. “Deposit/Withdrawal” of crypto assets shall mean remittance of crypto assets to/from Gleec Account from/to external third-party service accordingly. 1.4. “Feedback” is any feedback, suggestion, idea or other information or material regarding Gleec or our Services that you provide, whether by email, posting through our Services or otherwise. 1.5. "Force Majeure Event" shall be understood as any event beyond Gleec's reasonable control, including but not limited to the flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, suspension of bank accounts of any kind, extraordinary leaps of the course of crypto asset, communications, network or power failure, or equipment or software malfunction or any other cause beyond Gleec's reasonable control. 1.6. “Gleec Account” is a User account accessible after the registration process and via the Services where crypto assets may be stored and operated by **GLEEC PAY LTD** on behalf of a User. 1.7. “Gleec IP” shall mean all and any copyright and other intellectual property rights in all content and other materials contained on the Technology Platform or provided in connection with the Services, including, without limitation, the Gleec name, trademark, Gleec logo and all designs, text, graphics, pictures, information, data, software, technologies, know-hows, sound and video files, other files and the selection and arrangement thereof. 1.8. "Third-Party Content" is the content provided by third parties, including without limitation links to web pages of such parties, which may be represented on the Technology Platform. 1.9. "Third-party service" is any platform or network in which crypto assets belong to you or where you are the beneficial owner of crypto assets; and this platform is maintained by a third party outside of the Services; including, but not limited to third-party accounts. 1.10. “Trade” shall be understood as an exchange of the crypto asset of one type, owned by one Gleec Account User, to the crypto asset of another type, owned by the same or another Gleec account User, at the terms and conditions set forth by such exchange parties, and which is executed solely and exclusively within the Technology Platform with crypto assets deposited to those Users’ Gleec Accounts. In no case shall the Trade be deemed or construed to be a marginal trade. 1.11. “Transfer” for the purposes herein shall mean a record of Deposit, Withdrawal and/or Trade transaction of crypto asset into, out from or at User’s Gleec Account, which is technically executed by Gleec in accordance with User’s Deposit/Withdrawal request or Trade order. + +**2. WARRANTIES, REPRESENTATIONS AND COVENANTS** 2.1. It is a pre-condition that our Services are only provided to those who are permitted to enter in legally binding relationships. Therefore, if there is any reason why you are not able to enter into legally binding relationships with Us, for whatever reason - do not use our Services. 2.2. You further represent and warrant that you: a. are at least 18 years old or of other legal age, according to your relevant jurisdiction; b. have not previously been suspended or removed from our Services; c. have full power and authority to enter into this legal relationship and by doing so will not violate any other legal relationships; d. use our Technology Platform with your own e-mail and for your own benefit and do not act on behalf and/or to the interest of any other person; e. guarantee that your crypto assets, which you transfer to the Technology Platform are not sold, encumbered, not in contention, or under seizure, and that neither exist any rights of third parties to your crypto assets; f. are not Politically Exposed Person (PEP) or family member or close associate of the PEP. PEPs (as well as family members or close associates of the PEPs) are not allowed to use Gleec's Technology Platform. In case Gleec will establish, that the User of the Technology Platform is PEP (as well as family member or close associate of the PEP), Gleec reserves the right to terminate Gleec Account of such User. For the purpose of this Terms, the definitions "Politically Exposed Person", "family member" and "close associate" have the meaning, as it defines in (i) the FATF Recommendations (International Standards on Combating Money Laundering and the Financing of Terrorism and Proliferation) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF](http://www.fatf-gafi.org/media/fatf/documents/recommendations/pdfs/FATF) Recommendations 2012.pdf and (ii) FATF Guidance on Politically Exposed Persons (Recommendations 12 and 22\) – available via [http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf](http://www.fatf-gafi.org/media/fatf/documents/recommendations/Guidance-PEP-Rec12-22.pdf); g. will not use our Services or will immediately cease using those if you are a resident or become a resident at any time of the state or region (in accordance with such state or region definition of residency), where the crypto assets transactions you are going to execute are prohibited or require special approval, permit and/or authorization of any kind, which Gleec has not obtained in this state or region. Notwithstanding the above, you are not in any case allowed to access and use our Services if you are located, incorporated or otherwise established, or a citizen or resident of: Afghanistan, Albania, American Samoa, Anguilla, Antigua and Barbuda, Aruba, Bahamas, Barbados, Belarus, Bermuda, Burkina Faso, Burundi, Cambodia, Cayman Islands, Central African Republic, Congo (Democratic Republic of the), Cook Islands, Cuba, Curaçao, Crimea and Sevastopol, Dominica, Fiji, Guam, Guinea, Guinea-Bissau, Haiti, Iran (Islamic Republic of), Iraq, Jamaica, Jordan, Korea (Democratic People's Republic of), Libya, Mali, Marshall Islands, Morocco, Myanmar (Burma), Nicaragua, Pakistan, Palau, Palestine (State of), Panama, Philippines, Russian Federation, Saint Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines, Samoa, Senegal, Seychelles, Somalia, South Sudan, Sudan, Syrian Arab Republic, Trinidad and Tobago, Turks and Caicos Islands, Uganda, United States Of America, Vanuatu, Venezuela (Bolivarian Republic of), Virgin Islands (British), Virgin Islands (U.S.), Yemen, Zimbabwe or if you are a resident of the United Kingdom or any state, country or other jurisdiction that is embargoed by the United States of America, or a jurisdiction where the local Applicable Law prohibits or will prohibit you at any time (by reason of your nationality, domicile, citizenship, residence or otherwise) to access or use the Services or the Technology Platform (hereinafter, together “The Restricted Jurisdictions”). Gleec reserves the right to close any of your Gleec Accounts, to liquidate any open trade positions, and to force you to withdraw all the crypto assets from the Technology Platform in case if: (i) Gleec determines that you are accessing the Services or the Technology Platform from any Restricted Jurisdiction, or (ii) you have given false representations as to your location of incorporation, establishment, citizenship or place of residence. For the purpose of this clause "Applicable Law" refers to all applicable laws of any governmental authority, including, without limitation, federal, state and foreign securities laws, tax laws, tariff and trade laws, ordinances, judgments, decrees, injunctions, writs and orders or like actions of any governmental authority and rules, regulations, orders, interpretations, licenses, and permits of any federal, regional, state, county, municipal or other governmental authority. + +2.3. When accessing or using the Technology Platform, you further represent, agree and warrant, that you will not violate any law, contract, intellectual property or other third-party right or commit a tort, and that you are solely responsible for your conduct while using our Technology Platform. Without prejudice to the generality of the foregoing, you represent, agree and warrant, that you will not: a. Use the Technology Platform in any manner that could interfere with, disrupt, negatively affect or inhibit other users from using our Technology Platform with full functionality, or that could damage, disable, overburden or impair the functioning of Technology Platform in any manner; b. Use the Technology Platform to pay for, support or otherwise engage in any illegal gambling activities; fraud; money-laundering; or terrorist activities; or any other illegal activities; c. Use any robot, spider, crawler, scraper or other automated means or interface not provided by Us to access the Technology Platform or to extract data; d. Use or attempt to use another User account without authorization; e. Attempt to circumvent any content filtering techniques We employ, or attempt to access any service or area of our Technology Platform that you are not authorized to access; f. Develop any third-party applications that interact with our Technology Platform without our prior written consent; g. Provide false, inaccurate, or misleading information;h. Encourage or induce any third party to engage in any of the activities prohibited under this Section. 2.4. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH INVALIDITY OR BREACH OF ANY OF THE WARRANTIES, REPRESENTATIONS AND COVENANTS OF THIS SECTION AND THE ENTIRE TERMS. + +**3. RISK DISCLOSURE** 3.1. Due to our internal policies, We only provide the Services to users with sufficient experience, knowledge and understanding of the work principles of our Technology Platform, and those who fully understand the associated risks. You acknowledge and agree that you shall access and use the Technology Platform at your own risk. The risk of loss in Trading crypto assets can be substantial. You should, therefore, carefully consider whether such Trading is appropriate for you in light of your circumstances and resources. You acknowledge and agree the possibility of the following: a. You may sustain a total loss of the crypto assets in your Gleec Account, and, in some cases, you may incur losses beyond such crypto assets. b. Under certain market conditions, you may find it difficult or impossible to liquidate a position. This can occur, for example, when the market reaches a daily price fluctuation limit ("limit move") and there is insufficient liquidity in the market. c. Placing contingent orders, such as "stop-loss" or "stop-limit" orders, will not necessarily limit your losses to the intended amounts, since market conditions may make it impossible to execute such orders. d. All crypto assets positions involve risk, and a "spread" position may not be less risky than an outright "long" or "short" position. e. The use of leverage can work against you as well as for you and can lead to large losses as well as gains. f. All of the points noted above apply to all crypto assets. This brief statement cannot, however, disclose all the risks and other aspects associated with the Trade of crypto assets and shall not be considered as any professional advice. 3.2. Risks Associated with the Internet-based Trading System. You acknowledge that there are risks associated with utilizing an Internet-based trading system including, but not limited to, the failure of hardware, software, and Internet connections. You acknowledge that Gleec shall not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Technology Platform, howsoever caused.3.3. Risks Associated with the Blockchain Protocol. The Technology Platform and its related Services are based on the Blockchain protocol. As such, any malfunction, unintended function, unexpected functioning of or attack on the Blockchain protocol may cause the Technology Platform to malfunction or function in an unexpected or unintended manner. 3.4. Risks Associated with Blockchains and Crypto Assets. You acknowledge and accept that the Gleec has no control over any cryptocurrency network and you understand all risks associated with utilizing any crypto assets network, including, but not limited to the risk of unknown vulnerabilities in or unanticipated changes to any network protocol. We will not be responsible for any harm occurring as a result of such risks. 3.5. No Control Over Your Own Actions. As defined in the foregoing cl. 4.3 (g) and other provisions herein YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS FORGOTTEN PASSWORDS, INCORRECTLY CONSTRUCTED TRANSACTIONS, LOSS OF YOUR ACCESSES ETC. + +**4. CRYPTO ASSETS PROTECTION** 4.1. We strive to protect your crypto assets from unauthorized access, use, or spending. We use a variety of physical and technical measures designed to protect our systems and your crypto assets. By remitting your crypto assets to Gleec Account you entrust and entitle Us to ultimately take decisions on the safety and security of your crypto assets. 4.2. We reserve the right to take different measures of protection, which include, but are not limited to a diversification of crypto assets in different allocations whether on a segregate record (account) or not. 4.3. Nothing herein shall be deemed or construed as a willingness to a seizure of your crypto assets. The main purpose of this section is to notify you about different measures of protection, that We use to keep your crypto assets safe. + +**5. ELECTRONIC NOTICES** 5.1. Consent to Electronic Delivery. You agree and consent to receive electronically all Communications, that Gleec may be willing to communicate to you in connection with your Gleec Account and/or use of the Gleec Services. You agree that Gleec may provide these Communications to you by posting them on the Technology Platform. You may contact Us through our Support Center ([https://support.exchange.gleec.com/hc/en-us](https://support.exchange.gleec.com/hc/en-us)) to request electronic copies of Communications. 5.2. Withdrawal of Consent. You may withdraw your consent to receive electronic Communications by sending a withdrawal notice to support. If this is a case you waive your right to plead ignorance. If you decline or withdraw consent to receive electronic Communications, Gleec may suspend or terminate your use of the Technology Platform. 5.3. Updating Contact Information. It is your responsibility to keep your email address on file with Gleec up to date so that Gleec can communicate with you electronically. You understand and agree that if Gleec sends you an electronic Communication but you do not receive it because your email address on file is incorrect, out of date, blocked by your service provider, or you are otherwise unable to receive electronic Communications, Gleec will be deemed to have provided the Communication to you. You waive your right to plead ignorance. Please note that if you use a spam filter that blocks or re-routes emails from senders not listed in your email address book, you must add Gleec to your email address book so that you will be able to receive the Communications We send you. If your email address becomes invalid in a such way that electronic Communications sent to you by Gleec are returned, Gleec may deem your account being inactive, and you may be not able to complete any transaction via the Technology Platform. + +**6. SPECIAL CONDITIONS** 6.1. Transfer confirmation. Once your Deposit/Withdrawal request or Trade order is executed, a confirmation will be electronically made available via Technology Platform detailing the particulars of the Transfer. You acknowledge and agree that the failure of the Technology Platform to provide such confirmation shall not prejudice or invalidate the terms of such transaction. 6.2. Conditions and Restrictions. We may, at any time and in our sole discretion, refuse to perform any Transfer requested via the Technology Platform, impose limits on the Transfer amount permitted via the Technology Platform or impose any other conditions or restrictions upon your use of the Technology Platform without prior notice. 6.3. Access to the Services. We may, in our sole discretion and without liability to you, with or without prior notice and at any time, modify or discontinue, temporarily or permanently, any portion of our Services. 6.4. Cancellations. You may only cancel a Transfer request initiated via the Technology Platform if such cancellation occurs before Gleec executes the Transfer. Once your Transfer request has been executed, you may not change, withdraw or cancel your authorization for Gleec to complete such Transfer. If a Trade order has been partially filled, you may cancel the unfilled remainder unless the order relates to a market rate Trade. We reserve the right to refuse any cancellation request associated with a market rate Trade order once you have submitted such order. While We may, at our sole discretion, reverse a Trade under certain extraordinary conditions, a customer does not have a right to a reversal of a Trade. 6.5. Insufficient Crypto Assets. If you have an insufficient amount of crypto assets in your Gleec Account to complete a Transfer via the Technology Platform, We may cancel the entire order or may fulfill a partial order using the amount of crypto assets currently available in your Gleec Account. 6.6. Taxes. It is your responsibility to determine what, if any, taxes apply to the Transfers you complete via the Technology Platform, and it is your responsibility to report and remit the correct tax to the appropriate tax authority. You agree that Gleec is not responsible for determining whether taxes apply to your transfers or for collecting, reporting, withholding or remitting any taxes arising from any Trades and Transfers and does not act as your tax agent. 6.7. Feedbacks. We own exclusive rights, including all intellectual property rights, to Feedback. Any Feedback you submit is non-confidential and shall become the sole property of Gleec. We will be entitled to the unrestricted use and dissemination of such Feedback for any purpose, commercial or otherwise, without acknowledgment or compensation to you. You waive any rights you may have to the Feedback (including inter alia any copyrights). Do not provide Feedback if you expect to be paid or want to continue to own or claim rights on it; your idea might be great, but We may have already had the same or a similar idea and We do not want disputes. We also have the right to disclose your identity to any third party who is claiming that any content posted by you constitutes a violation of their intellectual property rights, or of their right to privacy. We have the right to remove any posting you make on our website if, in our opinion, your post does not comply with the content standards set out therein. + +**7. SUSPENSION AND TERMINATION OF YOUR GLEEC ACCOUNT** 7.1. In case of your breach of the Terms, or any other event as We may deem necessary, including without limitation market disruption and/or Force Majeure event We may, in our sole discretion and without liability to you, with or without prior notice: a. suspend your access to all or a portion of our Services; or b. prevent you from completing any actions via the Technology Platform, including closing any open Trade orders. In case the transferring resumes, you acknowledge that prevailing market rates may differ significantly from the rates available prior to such event; or c. terminate your access to the Services, delete or deactivate your Gleec Account and all related information and files in such account. 7.2. In the event of termination, Gleec will return any crypto assets stored in your Gleec Account and not owed to Gleec, unless Gleec believes you have committed fraud, negligence or other misconduct. + +**8. DISCLAIMER OF WARRANTIES. LIMITATION OF LIABILITIES** 8.1. Except as expressly provided to the contrary in a writing by Us, our services are provided on an "As is" and "As available" basis. WE EXPRESSLY DISCLAIM, AND YOU WAIVE, ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT AS TO OUR SERVICES, INCLUDING THE INFORMATION, CONTENT AND MATERIALS CONTAINED THEREIN. 8.2. You acknowledge that information you store or transfer through our services may become irretrievably lost or corrupted or temporarily unavailable due to a variety of causes, including but not limited to software failures, protocol changes by third party providers, internet outages, Force Majeure event or other disasters including third party DDOS attacks, scheduled or unscheduled maintenance, or other causes either within or outside our control. You are solely responsible for backing up and maintaining duplicate copies of any information you store or transfer through our services. 8.3. Except as otherwise required by law, IN NO EVENT SHALL GLEEC, OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES OR AGENTS BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL DAMAGES, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE OUR SERVICES OR THE GLEEC IP, INCLUDING WITHOUT LIMITATION ANY DAMAGES CAUSED BY OR RESULTING FROM RELIANCE BY ANY USER ON ANY INFORMATION OBTAINED FROM GLEEC, OR THAT RESULT FROM MISTAKES, OMISSIONS, INTERRUPTIONS, DELETION OF FILES OR EMAIL, ERRORS, DEFECTS, VIRUSES, DELAYS IN OPERATION OR TRANSMISSION OR ANY FAILURE OF PERFORMANCE, WHETHER OR NOT RESULTING FROM A FORCE MAJEURE EVENT, COMMUNICATIONS FAILURE, THEFT, DESTRUCTION OR UNAUTHORIZED ACCESS TO GLEEC'S RECORDS, PROGRAMS OR SERVICES. 8.4. We resume the right, in our sole discretion, to control any action or proceeding (at our expense) to which We are a participant and determine whether We wish to settle it. 8.5. To the maximum extent permitted by applicable law, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF GLEEC (INCLUDING OUR DIRECTORS, OFFICERS, MEMBERS, EMPLOYEES AND AGENTS), WHETHER IN CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE, WHETHER ACTIVE, PASSIVE OR IMPUTED), PRODUCT LIABILITY, STRICT LIABILITY OR OTHER THEORY, ARISING OUT OF OR RELATING TO THE USE OF, OR INABILITY TO USE, GLEEC OR TO THESE TERMS EXCEED THE EQUIVALENT OF $100 USD. 8.6. Gleec shall not be liable for: a. any inaccuracy, error, delay in, or omission of (i) any information, or (ii) the transmission or delivery of information; b. any loss or damage arising from a Force Majeure Event. 8.7. We strive to protect our users from fraudulent and scam activities in crypto assets sphere. It is possible that some crypto assets are purposed for unlawful seizure of the property, or are construed as a fraud, scam or any other activity, recognized by the laws as illegal and/or non-compliant with legal requirements. We reserve the right to prohibit and discontinue any transactions on our Technology Platform with such crypto asset at our sole discretion, without any prior notice to you and without publication of the reason for such decision, whenever this comes to our knowledge. YOU INDEMNIFY AND HOLD **GLEEC PAY LTD** HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH PROHIBITION AND DISCONTINUATION OF TRANSACTIONS IN OUR TECHNOLOGY PLATFORM WITH ANY CRYPTO ASSET. 8.8. To be able to access to our Technology Platform, the User may use without limitation different mobile devices, such as mobile internet devices, tablets/smartphones and wearable computers ("Mobile Devices"). In no way, we make any guarantee that each particular Mobile Device is compatible with our Technology Platform. YOU AGREE TO INDEMNIFY AND HOLD GLEEC HARMLESS AGAINST ANY CLAIMS, DEMANDS AND DAMAGES, WHETHER DIRECT, INDIRECT, CONSEQUENTIAL OR SPECIAL, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, LOSS OF PROFITS OR LOSS OF DATA, WHETHER IN AN ACTION, IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ORIGINATED FROM OR IN ANY WAY CONNECTED WITH YOUR USE OF OUR TECHNOLOGY PLATFORM VIA MOBILE DEVICES, INCLUDING, BUT NOT LIMITED TO THOSE ARISING FROM YOUR INABILITY TO CONNECT TO OUR TECHNOLOGY PLATFORM FROM PARTICULAR MOBILE DEVICE AND YOUR PERSONAL ERROR AND MISBEHAVIOR SUCH AS YOUR LOSS/DAMAGE/DEFECT OF SUCH MOBILE DEVICE. + +**9. NO OFFER OF SECURITIES** 9.1. Gleec endeavors all possible measures to be sure that crypto assets that are available via the Technology Platform cannot be classified as "security" by SEC and/or other competent national authorities. Moreover, Gleec represents that it never intended or desired to make tokens and/or coins that can be classified as "security" available via Technology Platform. 9.2. The responsibility for the fact that the instrument cannot be treated as “security” lies with the owner of token and/or coin. If there is any risk or speculations that token and/or coin can be treated as “security”, the Technology Platform reserves the right to prohibit and discontinue any transactions on our Technology Platform with such tokens and/or coins at its sole discretion. 9.3. We follow the best practices to decide whether crypto asset is security or not. However, We give no warranty and/or investment, financial, legal or any other professional advice, that any crypto asset available via our Technology Platform is not a security. + +**10. APPLICABLE LAW; ARBITRATION** 10.1. You and Gleec agree to arbitrate any dispute arising from these Terms or your use of the Services, except for disputes in which either party seeks equitable and other relief for the alleged unlawful use of copyrights, trademarks, trade names, logos, trade secrets or patents. ARBITRATION PREVENTS YOU FROM SUING IN COURT OR FROM HAVING A JURY TRIAL. 10.2. You and Gleec agree to notify each other in writing of any dispute within thirty (30) days of when it arises. Notice to Gleec shall be sent to legal@exchange.gleec.com. 10.3. Any dispute, controversy, difference or claim arising out of or relating to the Terms, including the existence, validity, interpretation, performance, breach or termination thereof or any dispute regarding non-contractual obligations arising out of or relating to it shall be referred to and finally resolved by arbitration administered by the Estonian Government under the the regulations of the Civil Code of Procedure in Estonia in force when the Notice of Arbitration is submitted. 10.4. The law of this arbitration clause shall be Estonia law. 10.5. The seat of arbitration shall be in Estonia. 10.6. The number of arbitrators shall be three. The arbitration proceedings shall be conducted in English language. 10.7. Other than class procedures and remedies discussed below, the arbitrator has the authority to grant any remedy that would otherwise be available in court. Any dispute between the parties will be governed by these Terms and the laws of Hong Kong, without giving effect to any conflict of laws principles that may provide for the application of the law of another jurisdiction. 10.8. Whether the dispute is heard in arbitration or in court, you will not commence against Gleec a class action, class arbitration or representative action or proceeding. + +**11. MISCELLANEOUS** 11.1. Entire Agreement. These Terms contain the entire agreement, and supersede all prior and contemporaneous understandings between the parties regarding the Services. 11.2. Order of Precedence. In the event of any conflict between these Terms and any other agreement you may have with Gleec, the terms of that other agreement will prevail only if these Terms are specifically identified and declared to be overridden by such other agreement. 11.3. Amendments. We reserve the right to make changes or modifications to these Terms from time to time, in our sole discretion. If We make changes to these Terms, We will provide you with notice of such changes, such as by sending an e-mail, providing notice on the homepage of the Site and/or by posting the amended Terms via the applicable Gleec websites and mobile applications and updating the "Last Updated" date at the top of these Terms. The amended Terms will be deemed effective immediately upon posting for any new users of the Services. In all other cases, the amended Terms will become effective for preexisting users upon the earlier of either: a. the date User click or press a button to accept such changes or; b. the date User continues use of our Services after Gleec provides notice of such changes or publishes new version of the Terms on the Website. 11.4. Any amended Terms will apply prospectively to use of the Services after such changes become effective. If you do not agree to any amended Terms, you must discontinue using our Services and contact us to terminate your account. 11.5. No Waiver. Our failure or delay in exercising any right, power or privilege under these Terms shall not operate as a waiver thereof. 11.6. Severability. The invalidity or unenforceability of any of these Terms shall not affect the validity or enforceability of any other of these Terms, all of which shall remain in full force and effect. 11.7. Assignment. You may not assign or transfer any of your rights or obligations under these Terms without prior written consent from Gleec, including by operation of law or in connection with any change of control. Gleec may assign or transfer any or all of its rights under these Terms, in whole or in part, without obtaining your consent or approval. diff --git a/assets/translations/en.json b/assets/translations/en.json index 8209fec7b6..167bf7fa19 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -148,6 +148,7 @@ "settingsMenuGeneral": "General", "settingsMenuLanguage": "Change language", "settingsMenuSecurity": "Security", + "settingsMenuPrivacy": "Privacy Notice", "settingsMenuAbout": "About", "seedPhraseSettingControlsViewSeed": "View seed phrase", "seedPhraseSettingControlsDownloadSeed": "Download as file", @@ -630,6 +631,7 @@ "transactionsEmptyDescription": "Try to send or receive the first NFT to this wallet", "transactionsNoLoginCAT": "There's nothing here yet, please connect your wallet", "loadingError": "Loading Error", + "legalDocumentLoadError": "Failed to load this legal document.", "tryAgainButton": "Try again", "contractAddress": "Contract address", "tokenID": "Token ID", diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 2331131cf1..b7f0730d83 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -154,6 +154,7 @@ abstract class LocaleKeys { static const settingsMenuGeneral = 'settingsMenuGeneral'; static const settingsMenuLanguage = 'settingsMenuLanguage'; static const settingsMenuSecurity = 'settingsMenuSecurity'; + static const settingsMenuPrivacy = 'settingsMenuPrivacy'; static const settingsMenuAbout = 'settingsMenuAbout'; static const seedPhraseSettingControlsViewSeed = 'seedPhraseSettingControlsViewSeed'; @@ -667,6 +668,7 @@ abstract class LocaleKeys { static const transactionsEmptyDescription = 'transactionsEmptyDescription'; static const transactionsNoLoginCAT = 'transactionsNoLoginCAT'; static const loadingError = 'loadingError'; + static const legalDocumentLoadError = 'legalDocumentLoadError'; static const tryAgainButton = 'tryAgainButton'; static const contractAddress = 'contractAddress'; static const tokenID = 'tokenID'; diff --git a/lib/main.dart b/lib/main.dart index 362f5da926..69a9910aef 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -7,10 +7,10 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_web_plugins/url_strategy.dart'; import 'package:get_it/get_it.dart'; import 'package:hive_ce_flutter/hive_flutter.dart'; -import 'package:komodo_cex_market_data/komodo_cex_market_data.dart'; -import 'package:komodo_defi_sdk/komodo_defi_sdk.dart'; -import 'package:path/path.dart' as p; -import 'package:path_provider/path_provider.dart'; +import 'package:komodo_cex_market_data/komodo_cex_market_data.dart'; +import 'package:komodo_defi_sdk/komodo_defi_sdk.dart'; +import 'package:path/path.dart' as p; +import 'package:path_provider/path_provider.dart'; import 'package:web_dex/analytics/widgets/analytics_lifecycle_handler.dart'; import 'package:web_dex/app_config/app_config.dart'; import 'package:web_dex/app_config/package_information.dart'; @@ -21,7 +21,7 @@ import 'package:web_dex/bloc/auth_bloc/auth_bloc.dart'; import 'package:web_dex/bloc/cex_market_data/cex_market_data.dart'; import 'package:web_dex/bloc/cex_market_data/mockup/performance_mode.dart'; import 'package:web_dex/bloc/coins_bloc/coins_repo.dart'; -import 'package:web_dex/bloc/settings/settings_repository.dart'; +import 'package:web_dex/bloc/settings/settings_repository.dart'; import 'package:web_dex/bloc/trading_status/trading_status_repository.dart'; import 'package:web_dex/bloc/trading_status/trading_status_service.dart'; import 'package:web_dex/blocs/wallets_repository.dart'; @@ -33,6 +33,7 @@ import 'package:web_dex/sdk/widgets/window_close_handler.dart'; import 'package:web_dex/services/arrr_activation/arrr_activation_service.dart'; import 'package:web_dex/services/fd_monitor_service.dart'; import 'package:web_dex/services/feedback/app_feedback_wrapper.dart'; +import 'package:web_dex/services/legal_documents/legal_documents_repository.dart'; import 'package:web_dex/services/logger/get_logger.dart'; import 'package:web_dex/services/storage/get_storage.dart'; import 'package:web_dex/shared/constants.dart'; @@ -126,6 +127,10 @@ Future main() async { RepositoryProvider.value(value: sparklineRepository), RepositoryProvider.value(value: tradingStatusRepository), RepositoryProvider.value(value: tradingStatusService), + RepositoryProvider( + create: (_) => LegalDocumentsRepository(), + dispose: (repository) => repository.dispose(), + ), ], child: const MyApp(), ), diff --git a/lib/model/settings_menu_value.dart b/lib/model/settings_menu_value.dart index 2ba25b8db8..1c8a116067 100644 --- a/lib/model/settings_menu_value.dart +++ b/lib/model/settings_menu_value.dart @@ -4,6 +4,7 @@ import 'package:web_dex/generated/codegen_loader.g.dart'; enum SettingsMenuValue { general, security, + privacy, support, feedback, none; @@ -14,6 +15,8 @@ enum SettingsMenuValue { return LocaleKeys.settingsMenuGeneral.tr(); case SettingsMenuValue.security: return LocaleKeys.settingsMenuSecurity.tr(); + case SettingsMenuValue.privacy: + return LocaleKeys.settingsMenuPrivacy.tr(); case SettingsMenuValue.support: return LocaleKeys.support.tr(); case SettingsMenuValue.feedback: @@ -29,6 +32,8 @@ enum SettingsMenuValue { return 'general'; case SettingsMenuValue.security: return 'security'; + case SettingsMenuValue.privacy: + return 'privacy'; case SettingsMenuValue.support: return 'support'; case SettingsMenuValue.feedback: diff --git a/lib/router/navigators/app_router_delegate.dart b/lib/router/navigators/app_router_delegate.dart index 90f70b0f4d..ff1fbf552d 100644 --- a/lib/router/navigators/app_router_delegate.dart +++ b/lib/router/navigators/app_router_delegate.dart @@ -37,9 +37,7 @@ class AppRouterDelegate extends RouterDelegate materialPageContext = context; return GestureDetector( onTap: () => runDropdownDismiss(context), - child: MainLayout( - key: ValueKey('${routingState.selectedMenu}'), - ), + child: MainLayout(key: ValueKey('${routingState.selectedMenu}')), ); }, ), @@ -247,6 +245,8 @@ class AppRouterDelegate extends RouterDelegate return SettingsRoutePath.general(); case SettingsMenuValue.security: return SettingsRoutePath.security(); + case SettingsMenuValue.privacy: + return SettingsRoutePath.privacy(); case SettingsMenuValue.support: return SettingsRoutePath.support(); case SettingsMenuValue.feedback: diff --git a/lib/router/parsers/settings_route_parser.dart b/lib/router/parsers/settings_route_parser.dart index c230633949..aa57bd5ae8 100644 --- a/lib/router/parsers/settings_route_parser.dart +++ b/lib/router/parsers/settings_route_parser.dart @@ -18,6 +18,10 @@ class _SettingsRouteParser implements BaseRouteParser { return SettingsRoutePath.security(); } + if (uri.pathSegments[1] == 'privacy') { + return SettingsRoutePath.privacy(); + } + // TODO: Remove since the feedback is now handled by `BetterFeedback` if (uri.pathSegments[1] == 'feedback') { return SettingsRoutePath.feedback(); diff --git a/lib/router/routes.dart b/lib/router/routes.dart index fbc295a5c3..43909a0710 100644 --- a/lib/router/routes.dart +++ b/lib/router/routes.dart @@ -14,9 +14,9 @@ class WalletRoutePath implements AppRoutePath { WalletRoutePath.wallet() : location = '/${firstUriSegment.wallet}'; WalletRoutePath.coinDetails(this.abbr) - : location = '/${firstUriSegment.wallet}/${abbr.toLowerCase()}'; + : location = '/${firstUriSegment.wallet}/${abbr.toLowerCase()}'; WalletRoutePath.action(this.action) - : location = '/${firstUriSegment.wallet}/$action'; + : location = '/${firstUriSegment.wallet}/$action'; String abbr = ''; String action = ''; @@ -26,11 +26,9 @@ class WalletRoutePath implements AppRoutePath { } class FiatRoutePath implements AppRoutePath { - FiatRoutePath.fiat() - : location = '/${firstUriSegment.fiat}', - uuid = ''; + FiatRoutePath.fiat() : location = '/${firstUriSegment.fiat}', uuid = ''; FiatRoutePath.swapDetails(this.action, this.uuid) - : location = '/${firstUriSegment.fiat}/trading_details/$uuid'; + : location = '/${firstUriSegment.fiat}/trading_details/$uuid'; @override final String location; @@ -61,17 +59,18 @@ class DexRoutePath implements AppRoutePath { if (toAmount.isNotEmpty) queryParams.add('to_amount=$toAmount'); if (orderType.isNotEmpty) queryParams.add('order_type=$orderType'); - final String queryString = - queryParams.isNotEmpty ? '?${queryParams.join('&')}' : ''; + final String queryString = queryParams.isNotEmpty + ? '?${queryParams.join('&')}' + : ''; return '/${firstUriSegment.dex}$queryString'; } DexRoutePath.swapDetails(this.action, this.uuid) - : fromCurrency = '', - fromAmount = '', - toCurrency = '', - toAmount = '', - orderType = ''; + : fromCurrency = '', + fromAmount = '', + toCurrency = '', + toAmount = '', + orderType = ''; final String uuid; DexAction action = DexAction.none; @@ -84,11 +83,9 @@ class DexRoutePath implements AppRoutePath { } class BridgeRoutePath implements AppRoutePath { - BridgeRoutePath.bridge() - : location = '/${firstUriSegment.bridge}', - uuid = ''; + BridgeRoutePath.bridge() : location = '/${firstUriSegment.bridge}', uuid = ''; BridgeRoutePath.swapDetails(this.action, this.uuid) - : location = '/${firstUriSegment.bridge}/trading_details/$uuid'; + : location = '/${firstUriSegment.bridge}/trading_details/$uuid'; @override final String location; @@ -98,20 +95,20 @@ class BridgeRoutePath implements AppRoutePath { class NftRoutePath implements AppRoutePath { NftRoutePath.nfts() - : location = '/${firstUriSegment.nfts}', - uuid = '', - pageState = NFTSelectedState.none; + : location = '/${firstUriSegment.nfts}', + uuid = '', + pageState = NFTSelectedState.none; NftRoutePath.nftDetails(this.uuid, bool isSend) - : location = '/${firstUriSegment.nfts}/$uuid', - pageState = isSend ? NFTSelectedState.send : NFTSelectedState.details; + : location = '/${firstUriSegment.nfts}/$uuid', + pageState = isSend ? NFTSelectedState.send : NFTSelectedState.details; NftRoutePath.nftReceive() - : location = '/${firstUriSegment.nfts}/receive', - uuid = '', - pageState = NFTSelectedState.receive; + : location = '/${firstUriSegment.nfts}/receive', + uuid = '', + pageState = NFTSelectedState.receive; NftRoutePath.nftTransactions() - : location = '/${firstUriSegment.nfts}/transactions', - pageState = NFTSelectedState.transactions, - uuid = ''; + : location = '/${firstUriSegment.nfts}/transactions', + pageState = NFTSelectedState.transactions, + uuid = ''; @override final String location; @@ -121,10 +118,10 @@ class NftRoutePath implements AppRoutePath { class MarketMakerBotRoutePath implements AppRoutePath { MarketMakerBotRoutePath.marketMakerBot() - : location = '/${firstUriSegment.marketMakerBot}', - uuid = ''; + : location = '/${firstUriSegment.marketMakerBot}', + uuid = ''; MarketMakerBotRoutePath.swapDetails(this.action, this.uuid) - : location = '/${firstUriSegment.marketMakerBot}/trading_details/$uuid'; + : location = '/${firstUriSegment.marketMakerBot}/trading_details/$uuid'; @override final String location; @@ -134,23 +131,26 @@ class MarketMakerBotRoutePath implements AppRoutePath { class SettingsRoutePath implements AppRoutePath { SettingsRoutePath.root() - : location = '/${firstUriSegment.settings}', - selectedMenu = SettingsMenuValue.none; + : location = '/${firstUriSegment.settings}', + selectedMenu = SettingsMenuValue.none; SettingsRoutePath.general() - : location = '/${firstUriSegment.settings}/general', - selectedMenu = SettingsMenuValue.general; + : location = '/${firstUriSegment.settings}/general', + selectedMenu = SettingsMenuValue.general; SettingsRoutePath.security() - : location = '/${firstUriSegment.settings}/security', - selectedMenu = SettingsMenuValue.security; + : location = '/${firstUriSegment.settings}/security', + selectedMenu = SettingsMenuValue.security; + SettingsRoutePath.privacy() + : location = '/${firstUriSegment.settings}/privacy', + selectedMenu = SettingsMenuValue.privacy; SettingsRoutePath.passwordUpdate() - : location = '/${firstUriSegment.settings}/security/passwordUpdate', - selectedMenu = SettingsMenuValue.security; + : location = '/${firstUriSegment.settings}/security/passwordUpdate', + selectedMenu = SettingsMenuValue.security; SettingsRoutePath.support() - : location = '/${firstUriSegment.settings}/support', - selectedMenu = SettingsMenuValue.support; + : location = '/${firstUriSegment.settings}/support', + selectedMenu = SettingsMenuValue.support; SettingsRoutePath.feedback() - : location = '/${firstUriSegment.settings}/feedback', - selectedMenu = SettingsMenuValue.feedback; + : location = '/${firstUriSegment.settings}/feedback', + selectedMenu = SettingsMenuValue.feedback; @override final String location; diff --git a/lib/services/legal_documents/legal_document.dart b/lib/services/legal_documents/legal_document.dart new file mode 100644 index 0000000000..20a1e27582 --- /dev/null +++ b/lib/services/legal_documents/legal_document.dart @@ -0,0 +1,74 @@ +enum LegalDocumentType { + eula, + termsOfService, + privacyNotice, + kycDueDiligencePolicy; + + String get title { + switch (this) { + case LegalDocumentType.eula: + return 'End User License Agreement (EULA)'; + case LegalDocumentType.termsOfService: + return 'Terms of Service'; + case LegalDocumentType.privacyNotice: + return 'Privacy Notice'; + case LegalDocumentType.kycDueDiligencePolicy: + return 'KYC and Due Diligence Policy'; + } + } + + String get assetPath { + switch (this) { + case LegalDocumentType.eula: + return 'assets/legal/eula.md'; + case LegalDocumentType.termsOfService: + return 'assets/legal/terms-of-service.md'; + case LegalDocumentType.privacyNotice: + return 'assets/legal/privacy-notice.md'; + case LegalDocumentType.kycDueDiligencePolicy: + return 'assets/legal/kyc-due-diligence-policy.md'; + } + } + + String get githubPath { + switch (this) { + case LegalDocumentType.eula: + return 'assets/legal/eula.md'; + case LegalDocumentType.termsOfService: + return 'assets/legal/terms-of-service.md'; + case LegalDocumentType.privacyNotice: + return 'assets/legal/privacy-notice.md'; + case LegalDocumentType.kycDueDiligencePolicy: + return 'assets/legal/kyc-due-diligence-policy.md'; + } + } + + String get cacheKey { + switch (this) { + case LegalDocumentType.eula: + return 'legal_document_eula'; + case LegalDocumentType.termsOfService: + return 'legal_document_terms_of_service'; + case LegalDocumentType.privacyNotice: + return 'legal_document_privacy_notice'; + case LegalDocumentType.kycDueDiligencePolicy: + return 'legal_document_kyc_due_diligence_policy'; + } + } +} + +enum LegalDocumentSource { bundledAsset, cachedRemote, remote } + +class LegalDocumentContent { + const LegalDocumentContent({ + required this.markdown, + required this.source, + this.sha, + this.fetchedAt, + }); + + final String markdown; + final LegalDocumentSource source; + final String? sha; + final DateTime? fetchedAt; +} diff --git a/lib/services/legal_documents/legal_documents_repository.dart b/lib/services/legal_documents/legal_documents_repository.dart new file mode 100644 index 0000000000..58c4ebe8ab --- /dev/null +++ b/lib/services/legal_documents/legal_documents_repository.dart @@ -0,0 +1,158 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:flutter/services.dart'; +import 'package:http/http.dart' as http; +import 'package:logging/logging.dart'; +import 'package:web_dex/services/legal_documents/legal_document.dart'; +import 'package:web_dex/services/storage/base_storage.dart'; +import 'package:web_dex/services/storage/get_storage.dart'; + +class LegalDocumentsRepository { + LegalDocumentsRepository({ + BaseStorage? storage, + AssetBundle? assetBundle, + http.Client? httpClient, + }) : _storage = storage ?? getStorage(), + _assetBundle = assetBundle ?? rootBundle, + _httpClient = httpClient ?? http.Client(); + + static const String _githubOwner = 'GLEECBTC'; + static const String _githubRepo = 'gleec-wallet'; + static const String _githubBranch = 'main'; + + final BaseStorage _storage; + final AssetBundle _assetBundle; + final http.Client _httpClient; + final Logger _log = Logger('LegalDocumentsRepository'); + + Future loadPreferredContent( + LegalDocumentType document, + ) async { + final cached = await _readCachedContent(document); + if (cached != null) { + return cached; + } + + final bundled = await _assetBundle.loadString(document.assetPath); + return LegalDocumentContent( + markdown: bundled, + source: LegalDocumentSource.bundledAsset, + ); + } + + Future refreshFromRemote( + LegalDocumentType document, + ) async { + final cached = await _readCachedContent(document); + final uri = Uri.https( + 'api.github.com', + '/repos/$_githubOwner/$_githubRepo/contents/${document.githubPath}', + {'ref': _githubBranch}, + ); + + try { + final response = await _httpClient + .get( + uri, + headers: const { + 'Accept': 'application/vnd.github+json', + 'User-Agent': 'GleecWallet', + 'X-GitHub-Api-Version': '2022-11-28', + }, + ) + .timeout(const Duration(seconds: 10)); + + if (response.statusCode != 200) { + _log.warning( + 'Failed to refresh ${document.cacheKey}: ' + 'GitHub returned ${response.statusCode}', + ); + return null; + } + + final payload = jsonDecode(response.body) as Map; + final encodedContent = payload['content'] as String?; + final sha = payload['sha'] as String?; + if (encodedContent == null || encodedContent.trim().isEmpty) { + _log.warning( + 'GitHub response missing content for ${document.cacheKey}', + ); + return null; + } + + final markdown = utf8.decode( + base64Decode(encodedContent.replaceAll('\n', '')), + ); + if (markdown.trim().isEmpty) { + _log.warning('Decoded content empty for ${document.cacheKey}'); + return null; + } + + final fetchedAt = DateTime.now(); + final hasChanged = + cached?.markdown != markdown || (sha != null && cached?.sha != sha); + + if (hasChanged) { + await _storage.write(document.cacheKey, { + 'markdown': markdown, + 'sha': sha, + 'fetchedAt': fetchedAt.toIso8601String(), + }); + } + + if (!hasChanged) { + return null; + } + + return LegalDocumentContent( + markdown: markdown, + source: LegalDocumentSource.remote, + sha: sha, + fetchedAt: fetchedAt, + ); + } on TimeoutException catch (error) { + _log.warning('Timed out refreshing ${document.cacheKey}: $error'); + return null; + } on FormatException catch (error) { + _log.warning('Invalid GitHub payload for ${document.cacheKey}: $error'); + return null; + } catch (error, stackTrace) { + _log.warning( + 'Unexpected error refreshing ${document.cacheKey}', + error, + stackTrace, + ); + return null; + } + } + + Future _readCachedContent( + LegalDocumentType document, + ) async { + final rawValue = await _storage.read(document.cacheKey); + if (rawValue is! Map) { + return null; + } + + final markdown = rawValue['markdown']; + if (markdown is! String || markdown.trim().isEmpty) { + return null; + } + + final sha = rawValue['sha']; + final fetchedAtRaw = rawValue['fetchedAt']; + return LegalDocumentContent( + markdown: markdown, + source: LegalDocumentSource.cachedRemote, + sha: sha is String ? sha : null, + fetchedAt: fetchedAtRaw is String + ? DateTime.tryParse(fetchedAtRaw) + : null, + ); + } + + void dispose() { + _httpClient.close(); + } +} diff --git a/lib/shared/widgets/disclaimer/constants.dart b/lib/shared/widgets/disclaimer/constants.dart deleted file mode 100644 index 650dd14f7f..0000000000 --- a/lib/shared/widgets/disclaimer/constants.dart +++ /dev/null @@ -1,135 +0,0 @@ -const String disclaimerEulaTitle1 = - 'End User License Agreement (EULA) of GLEEC Wallet:\n\n'; - -const String disclaimerTocTitle2 = - 'TERMS and CONDITIONS: (APPLICATION USER AGREEMENT)\n\n'; -const String disclaimerTocTitle3 = - 'TERMS AND CONDITIONS OF USE AND DISCLAIMER\n\n'; -const String disclaimerTocTitle4 = 'GENERAL USE\n\n'; -const String disclaimerTocTitle5 = 'MODIFICATIONS\n\n'; -const String disclaimerTocTitle6 = 'LIMITATIONS ON USE\n\n'; -const String disclaimerTocTitle7 = 'Accounts and membership\n\n'; -const String disclaimerTocTitle8 = 'Backups\n\n'; -const String disclaimerTocTitle9 = 'GENERAL WARNING\n\n'; -const String disclaimerTocTitle10 = 'ACCESS AND SECURITY\n\n'; -const String disclaimerTocTitle11 = 'INTELLECTUAL PROPERTY RIGHTS\n\n'; -const String disclaimerTocTitle12 = 'DISCLAIMER\n\n'; -const String disclaimerTocTitle13 = - 'REPRESENTATIONS AND WARRANTIES, INDEMNIFICATION, AND LIMITATION OF LIABILITY\n\n'; -const String disclaimerTocTitle14 = 'GENERAL RISK FACTORS\n\n'; -const String disclaimerTocTitle15 = 'INDEMNIFICATION\n\n'; -const String disclaimerTocTitle16 = - 'RISK DISCLOSURES RELATING TO THE WALLET\n\n'; -const String disclaimerTocTitle17 = 'NO INVESTMENT ADVICE OR BROKERAGE\n\n'; -const String disclaimerTocTitle18 = 'TERMINATION\n\n'; -const String disclaimerTocTitle19 = 'THIRD PARTY RIGHTS\n\n'; -const String disclaimerTocTitle20 = 'OUR LEGAL OBLIGATIONS\n\n'; - -// EULA structured content -const String disclaimerEulaParagraph1 = - "This End User License Agreement ('EULA') is a legal agreement between you and GLEEC.\n\n"; - -const String disclaimerEulaParagraph2 = - "This EULA agreement governs your acquisition and use of our GLEEC Wallet software ('Software', 'Web Application', 'Application' or 'App') directly from GLEEC or indirectly through a GLEEC authorized entity, reseller or distributor (a 'Distributor').\n\n"; - -const String disclaimerEulaParagraph3 = - "Please read this EULA agreement carefully before completing the installation process and using the GLEEC Wallet software. It provides a license to use the GLEEC Wallet software and contains warranty information and liability disclaimers.\n\n"; - -const String disclaimerEulaParagraph4 = - "If you register for the beta program of the GLEEC Wallet software, this EULA agreement will also govern that trial. By clicking 'accept' or installing and/or using the GLEEC Wallet software, you are confirming your acceptance of the Software and agreeing to become bound by the terms of this EULA agreement.\n\n"; - -const String disclaimerEulaParagraph5 = - "If you are entering into this EULA agreement on behalf of a company or other legal entity, you represent that you have the authority to bind such entity and its affiliates to these terms and conditions. If you do not have such authority or if you do not agree with the terms and conditions of this EULA agreement, do not install or use the Software, and you must not accept this EULA agreement.\n\n"; - -const String disclaimerEulaParagraph6 = - "This EULA agreement shall apply only to the Software supplied by GLEEC herewith regardless of whether other software is referred to or described herein. The terms also apply to any GLEEC updates, supplements, internet based services, and support services for the Software, unless other terms accompany those items on delivery. If so, those terms apply.\n\n"; - -const String disclaimerEulaTitle2 = "License Grant\n\n"; - -const String disclaimerEulaParagraph7 = - "GLEEC hereby grants you a personal, non-transferable, non-exclusive license to use the GLEEC Wallet software on your devices in accordance with the terms of this EULA agreement.\n\n"; - -const String disclaimerEulaParagraph8 = - "You are permitted to load the GLEEC Wallet software (for example a PC, laptop, mobile or tablet) under your control. You are responsible for ensuring your device meets the minimum security and resource requirements of the GLEEC Wallet software.\n\n"; - -const String disclaimerEulaTitle3 = "Restrictions\n\n"; - -const String disclaimerEulaParagraph9 = "You are not permitted to:\n\n"; - -const String disclaimerEulaParagraph10 = - "• Edit, alter, modify, adapt, translate or otherwise change the whole or any part of the Software nor permit the whole or any part of the Software to be combined with or become incorporated in any other software, nor decompile, disassemble or reverse engineer the Software or attempt to do any such things\n\n"; - -const String disclaimerEulaParagraph11 = - "• Reproduce, copy, distribute, resell or otherwise use the Software for any commercial purpose\n\n"; - -const String disclaimerEulaParagraph12 = - "• Use the Software in any way which breaches any applicable local, national or international law\n\n"; - -const String disclaimerEulaParagraph13 = - "• Use the Software for any purpose that GLEEC considers is a breach of this EULA agreement\n\n"; - -const String disclaimerEulaTitle4 = "Intellectual Property and Ownership\n\n"; - -const String disclaimerEulaParagraph14 = - "GLEEC shall at all times retain ownership of the Software as originally downloaded by you and all subsequent downloads of the Software by you. The Software (and the copyright, and other intellectual property rights of whatever nature in the Software, including any modifications made thereto) are and shall remain the property of GLEEC.\n\n"; - -const String disclaimerEulaParagraph15 = - "GLEEC reserves the right to grant licences to use the Software to third parties.\n\n"; - -const String disclaimerEulaTitle5 = "Termination\n\n"; - -const String disclaimerEulaParagraph16 = - "This EULA agreement is effective from the date you first use the Software and shall continue until terminated. You may terminate it at any time upon written notice to GLEEC.\n\n"; - -const String disclaimerEulaParagraph17 = - "It will also terminate immediately if you fail to comply with any term of this EULA agreement. Upon such termination, the licenses granted by this EULA agreement will immediately terminate and you agree to stop all access and use of the Software. The provisions that by their nature continue and survive will survive any termination of this EULA agreement.\n\n"; - -const String disclaimerEulaTitle6 = "Governing Law\n\n"; - -const String disclaimerEulaParagraph18 = - "This EULA agreement, and any dispute arising out of or in connection with this EULA agreement, shall be governed by and construed in accordance with the laws of Vietnam.\n\n"; - -const String disclaimerEulaParagraph19 = - "This document was last updated on December 10th, 2025\n\n"; - -// Legacy EULA paragraph (keeping for backward compatibility if needed) -const String disclaimerEulaLegacyParagraph1 = - "This End User License Agreement ('EULA') is a legal agreement between you and GLEEC.\n\nThis EULA agreement governs your acquisition and use of our GLEEC Wallet software ('Software', 'Web Application', 'Application' or 'App') directly from GLEEC or indirectly through a GLEEC authorized entity, reseller or distributor (a 'Distributor').\n\nPlease read this EULA agreement carefully before completing the installation process and using the GLEEC Wallet software. It provides a license to use the GLEEC Wallet software and contains warranty information and liability disclaimers.\n\nIf you register for the beta program of the GLEEC Wallet software, this EULA agreement will also govern that trial. By clicking 'accept' or installing and/or using the GLEEC Wallet software, you are confirming your acceptance of the Software and agreeing to become bound by the terms of this EULA agreement.\n\nIf you are entering into this EULA agreement on behalf of a company or other legal entity, you represent that you have the authority to bind such entity and its affiliates to these terms and conditions. If you do not have such authority or if you do not agree with the terms and conditions of this EULA agreement, do not install or use the Software, and you must not accept this EULA agreement.\n\nThis EULA agreement shall apply only to the Software supplied by GLEEC herewith regardless of whether other software is referred to or described herein. The terms also apply to any GLEEC updates, supplements, internet based services, and support services for the Software, unless other terms accompany those items on delivery. If so, those terms apply.\n\nLicense Grant\nGLEEC hereby grants you a personal, non-transferable, non-exclusive license to use the GLEEC Wallet software on your devices in accordance with the terms of this EULA agreement.\n\nYou are permitted to load the GLEEC Wallet software (for example a PC, laptop, mobile or tablet) under your control. You are responsible for ensuring your device meets the minimum security and resource requirements of the GLEEC Wallet software.\n\nYou are not permitted to:\nEdit, alter, modify, adapt, translate or otherwise change the whole or any part of the Software nor permit the whole or any part of the Software to be combined with or become incorporated in any other software, nor decompile, disassemble or reverse engineer the Software or attempt to do any such things\nReproduce, copy, distribute, resell or otherwise use the Software for any commercial purpose\nUse the Software in any way which breaches any applicable local, national or international law\nuse the Software for any purpose that GLEEC considers is a breach of this EULA agreement\nIntellectual Property and Ownership\nGLEEC shall at all times retain ownership of the Software as originally downloaded by you and all subsequent downloads of the Software by you. The Software (and the copyright, and other intellectual property rights of whatever nature in the Software, including any modifications made thereto) are and shall remain the property of GLEEC.\n\nGLEEC reserves the right to grant licences to use the Software to third parties.\n\nTermination\nThis EULA agreement is effective from the date you first use the Software and shall continue until terminated. You may terminate it at any time upon written notice to GLEEC.\n\nIt will also terminate immediately if you fail to comply with any term of this EULA agreement. Upon such termination, the licenses granted by this EULA agreement will immediately terminate and you agree to stop all access and use of the Software. The provisions that by their nature continue and survive will survive any termination of this EULA agreement.\n\nGoverning Law\nThis EULA agreement, and any dispute arising out of or in connection with this EULA agreement, shall be governed by and construed in accordance with the laws of Estonia.\n\nThis document was last updated on December 10th, 2025"; - -// Terms of Conditions content -const String disclaimerTocParagraph2 = - 'This disclaimer applies to the contents and services of the app GLEEC Wallet and is valid for all users of the "Application" ("Software", "Web Application", "Application" or "App").\n\nThe Application is owned by GLEEC.\n\nWe reserve the right to amend the following Terms and Conditions (governing the use of the application GLEEC Wallet) at any time without prior notice and at our sole discretion. It is your responsibility to periodically check these Terms and Conditions for any updates to these Terms, which shall come into force once published.\n\nYour continued use of the application shall be deemed as acceptance of the following Terms. \n\nWe are a company incorporated in Estonia and these Terms and Conditions are governed by and subject to the laws of Estonia. \n\nIf You do not agree with these Terms and Conditions, You must not use or access this software.\n\n'; -const String disclaimerTocParagraph3 = - 'By entering into this User (each subject accessing or using the site) Agreement (this writing) You declare that You are an individual over the age of majority (at least 18 or older) and have the capacity to enter into this User Agreement and accept to be legally bound by the terms and conditions of this User Agreement, as incorporated herein and amended from time to time. \n\n'; -const String disclaimerTocParagraph4 = - 'We may change the terms of this User Agreement at any time. Any such changes will take effect when published in the application, or when You use the Services.\n\n\nRead the User Agreement carefully every time You use our Services. Your continued use of the Services shall signify your acceptance to be bound by the current User Agreement. Our failure or delay in enforcing or partially enforcing any provision of this User Agreement shall not be construed as a waiver of any.\n\n'; -const String disclaimerTocParagraph5 = - "You are not allowed to decompile, decode, disassemble, rent, lease, loan, sell, sublicense, or create derivative works from the GLEEC Wallet application or the user content. Nor are You allowed to use any network monitoring or detection software to determine the software architecture, or extract information about usage or individuals' or users' identities. \n\nYou are not allowed to copy, modify, reproduce, republish, distribute, display, or transmit for commercial, non-profit or public purposes all or any portion of the application or the user content without our prior written authorization.\n\n"; -const String disclaimerTocParagraph6 = - 'If you create an account in the Web Application, you are responsible for maintaining the security of your account and you are fully responsible for all activities that occur under the account and any other actions taken in connection with it. We will not be liable for any acts or omissions by you, including any damages of any kind incurred as a result of such acts or omissions. \n\n GLEEC Wallet is a non-custodial wallet implementation and thus GLEEC can not access nor restore your account in case of (data) loss.\n\n'; -const String disclaimerTocParagraph7 = - 'We are not responsible for seed phrases residing in the Web Application. In no event shall we be held liable for any loss of any kind. It is your sole responsibility to maintain appropriate backups of your accounts and their seed phrases.\n\n'; -const String disclaimerTocParagraph8 = - 'You should not act, or refrain from acting solely on the basis of the content of this application. \n\nYour access to this application does not itself create an adviser-client relationship between You and us. \n\nThe content of this application does not constitute a solicitation or inducement to invest in any financial products or services offered by us. \n\nAny advice included in this application has been prepared without taking into account your objectives, financial situation or needs. You should consider our Risk Disclosure Notice before making any decision on whether to acquire the product described in that document.\n\n'; -const String disclaimerTocParagraph9 = - 'We do not guarantee your continuous access to the application or that your access or use will be error-free. \n\nWe will not be liable in the event that the application is unavailable to You for any reason (for example, due to computer downtime ascribable to malfunctions, upgrades, server problems, precautionary or corrective maintenance activities or interruption in telecommunication supplies). \n\n'; -const String disclaimerTocParagraph10 = - 'GLEEC is the owner and/or authorized user of all trademarks, service marks, design marks, patents, copyrights, database rights, and all other intellectual property appearing on or contained within the application, unless otherwise indicated. All information, text, material, graphics, software, and advertisements on the application interface are copyright of GLEEC, its suppliers and licensors, unless otherwise expressly indicated by GLEEC. \n\nExcept as provided in the Terms, use of the application does not grant You any right, title, interest, or license to any such intellectual property You may have access to on the application. \n\nWe own the rights, or have permission to use, the trademarks listed in our application. You are not authorised to use any of those trademarks without our written authorization – doing so would constitute a breach of our or another party’s intellectual property rights. \n\nAlternatively, we might authorise You to use the content in our application if You previously contact us and we agree in writing.\n\n'; -const String disclaimerTocParagraph11 = - "GLEEC cannot guarantee the safety or security of your computer systems. We do not accept liability for any loss or corruption of electronically stored data or any damage to any computer system which occurrs in connection with the use of the application or user content.\n\nGLEEC makes no representation or warranty of any kind, express or implied, as to the operation of the application or the user content. You expressly agree that your use of the application is entirely at your sole risk.\n\nYou agree that the content provided in the application and the user content do not constitute financial product, legal, or taxation advice, and You agree on not representing the user content or the application as such.\n\nTo the extent permitted by current legislation, the application is provided on an “as is, as available” basis.\n\nGLEEC expressly disclaims all responsibility for any loss, injury, claim, liability, or damage, or any indirect, incidental, special, or consequential damages or loss of profits whatsoever resulting from, arising out of or in any way related to: \n(a) any errors in or omissions of the application and/or the user content, including but not limited to technical inaccuracies and typographical errors; \n(b) any third party website, application or content directly or indirectly accessed through links in the application, including but not limited to any errors or omissions; \n(c) the unavailability of the application or any portion of it; \n(d) your use of the application;\n(e) your use of any equipment or software in connection with the application. \n\nAny Services offered in connection with the Platform are provided on an 'as is' basis, without any representation or warranty, whether express, implied or statutory. To the maximum extent permitted by applicable law, we specifically disclaim any implied warranties of title, merchantability, suitability for a particular purpose and/or non-infringement. We do not make any representations or warranties that use of the Platform will be continuous, uninterrupted, timely, or error-free.\n\nWe make no warranty that any Platform will be free from viruses, malware, or other related harmful material and that your ability to access any Platform will be uninterrupted. Any defects or malfunction in the product should be directed to the third party offering the Platform, not to GLEEC. \n\nWe will not be responsible or liable to You for any loss of any kind, from action taken, or taken in reliance on the material or information contained in or through the Platform.\n\nThis is experimental and unfinished software. Use at your own risk. No warranty for any kind of damage. By using this application you agree to this terms and conditions.\n\n"; -const String disclaimerTocParagraph12 = - 'When accessing or using the Services, You agree that You are solely responsible for your conduct while accessing and using our Services. Without limiting the generality of the foregoing, You agree that You will not:\n(a) Use the Services in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying the Services, or that could damage, disable, overburden or impair the functioning of our Services in any manner;\n(b) Use the Services to pay for, support or otherwise engage in any illegal activities, including, but not limited to illegal gambling, fraud, money laundering, or terrorist activities;\n(c) Use any robot, spider, crawler, scraper or other automated means or interface not provided by us to access our Services or to extract data;\n(d) Use or attempt to use another user’s Wallet or credentials without authorization;\n(e) Attempt to circumvent any content filtering techniques we employ, or attempt to access any service or area of our Services that You are not authorized to access;\n(f) Introduce to the Services any virus, Trojan, worms, logic bombs or other harmful material;\n(g) Develop any third-party applications that interact with our Services without our prior written consent;\n(h) Provide false, inaccurate, or misleading information; \n(i) Encourage or induce any other person to engage in any of the activities prohibited under this Section.\n\n\n'; -const String disclaimerTocParagraph13 = - 'You agree and understand that there are risks associated with utilizing Services involving Virtual Currencies including, but not limited to, the risk of failure of hardware, software and internet connections, the risk of malicious software introduction, and the risk that third parties may obtain unauthorized access to information stored within your Wallet, including but not limited to your public and private keys. You agree and understand that GLEEC will not be responsible for any communication failures, disruptions, errors, distortions or delays You may experience when using the Services, however caused.\n\nYou accept and acknowledge that there are risks associated with utilizing any virtual currency network, including, but not limited to, the risk of unknown vulnerabilities in or unanticipated changes to the network protocol. You acknowledge and accept that GLEEC has no control over any cryptocurrency network and will not be responsible for any harm occurring as a result of such risks, including, but not limited to, the inability to reverse a transaction, and any losses in connection therewith due to erroneous or fraudulent actions.\n\nThe risk of loss in using Services involving Virtual Currencies may be substantial and losses may occur over a short period of time. In addition, price and liquidity are subject to significant fluctuations that may be unpredictable.\n\nVirtual Currencies are not legal tender and are not backed by any sovereign government. In addition, the legislative and regulatory landscape around Virtual Currencies is constantly changing and may affect your ability to use, transfer, or exchange Virtual Currencies.\n\nCFDs are complex instruments and come with a high risk of losing money rapidly due to leverage. 80.6% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether You understand how CFDs work and whether You can afford to take the high risk of losing your money.\n\n'; -const String disclaimerTocParagraph14 = - 'You agree to indemnify, defend, and hold harmless GLEEC, its officers, directors, employees, agents, licensors, suppliers, and any third party information providers to the application from and against all losses, expenses, damages and costs, including reasonable lawyer fees, resulting from any violation of the Terms by You.\n\nYou also agree to indemnify GLEEC against any claims that information or material which You have submitted to GLEEC is in violation of any law or in breach of any third party rights (including, but not limited to, claims in respect of defamation, invasion of privacy, breach of confidence, infringement of copyright or infringement of any other intellectual property right).\n\n'; -const String disclaimerTocParagraph15 = - 'In order to be completed, any Virtual Currency transaction created with the GLEEC must be confirmed and recorded in the Virtual Currency ledger associated with the relevant Virtual Currency network. Such networks are decentralized, peer-to-peer networks supported by independent third parties, which are not owned, controlled or operated by GLEEC.\n\nGLEEC has no control over any Virtual Currency network and therefore cannot and does not ensure that any transaction details You submit via our Services will be confirmed on the relevant Virtual Currency network. You agree and understand that the transaction details You submit via our Services may not be completed, or may be substantially delayed, by the Virtual Currency network used to process the transaction. We do not guarantee that the Wallet can transfer title or rights in any Virtual Currency or make any warranties whatsoever with regard to title.\n\nOnce transaction details have been submitted to a Virtual Currency network, we cannot assist You to cancel or otherwise modify your transaction or transaction details. GLEEC has no control over any Virtual Currency network and does not have the ability to facilitate any cancellation or modification requests.\n\nIn the event of a Fork, GLEEC may not be able to support activity related to your Virtual Currency. You agree and understand that, in the event of a Fork, the transactions may not be completed, completed partially, incorrectly completed, or substantially delayed. GLEEC is not responsible for any loss incurred by You caused in whole or in part, directly or indirectly, by a Fork.\n\nIn no event shall GLEEC, its affiliates and service providers, or any of their respective officers, directors, agents, employees, or representatives, be liable for any lost profits or any special, incidental, indirect, intangible, or consequential damages, whether based on contract, tort, negligence, strict liability, or otherwise, arising out of or in connection with authorized or unauthorized use of the services, or this agreement, even if an authorized representative of GLEEC has been advised of, has known of, or should have known of the possibility of such damages. \n\nFor example (and without limiting the scope of the preceding sentence), You may not recover for lost profits, lost business opportunities, or other types of special, incidental, indirect, intangible, or consequential damages. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation may not apply to You. \n\nWe will not be responsible or liable to You for any loss and take no responsibility for damages or claims arising in whole or in part, directly or indirectly from: (a) user error such as forgotten passwords, incorrectly constructed transactions, or mistyped Virtual Currency addresses; (b) server failure or data loss; (c) corrupted or otherwise non-performing Wallets or Wallet files; (d) unauthorized access to applications; (e) any unauthorized activities, including without limitation the use of hacking, viruses, phishing, brute forcing, or any other means of attack against the Services.\n\n'; -const String disclaimerTocParagraph16 = - 'For the avoidance of doubt, GLEEC does not provide investment, tax, or legal advice, nor does GLEEC broker trades on your behalf. All GLEEC trades are executed automatically, based on the parameters of your order instructions and in accordance with posted Trade execution procedures, and You are solely responsible for determining whether any investment, investment strategy or related transaction is appropriate for You based on your personal investment objectives, financial circumstances and risk tolerance. You should consult your legal or tax professional regarding your specific situation. Neither GLEEC nor its owners, members, officers, directors, partners, consultants, nor anyone involved in the publication of this application, is a registered investment adviser or broker-dealer or associated person with a registered investment adviser or broker-dealer and none of the foregoing make any recommendation that the purchase or sale of crypto-assets or securities of any company profiled in the web Application is suitable or advisable for any person or that an investment or transaction in such crypto-assets or securities will be profitable. The information contained in the web Application is not intended to be, and shall not constitute, an offer to sell or the solicitation of any offer to buy any crypto-asset or security. The information presented in the web Application is provided for informational purposes only and is not to be treated as advice or a recommendation to make any specific investment or transaction. Please consult with a qualified professional before making any decisions.The opinions and analysis included in this applications are based on information from sources deemed to be reliable and are provided “as is” in good faith. GLEEC makes no representation or warranty, expressed, implied, or statutory, as to the accuracy or completeness of such information, which may be subject to change without notice. GLEEC shall not be liable for any errors or any actions taken in relation to the above. Statements of opinion and belief are those of the authors and/or editors who contribute to this application, and are based solely upon the information possessed by such authors and/or editors. No inference should be drawn that GLEEC or such authors or editors have any special or greater knowledge about the crypto-assets or companies profiled or any particular expertise in the industries or markets in which the profiled crypto-assets and companies operate and compete.Information on this application is obtained from sources deemed to be reliable; however, GLEEC takes no responsibility for verifying the accuracy of such information and makes no representation that such information is accurate or complete. Certain statements included in this application may be forward-looking statements based on current expectations. GLEEC makes no representation and provides no assurance or guarantee that such forward-looking statements will prove to be accurate. Persons using the GLEEC application are urged to consult with a qualified professional with respect to an investment or transaction in any crypto-asset or company profiled herein. Additionally, persons using this application expressly represent that the content in this application is not and will not be a consideration in such persons’ investment or transaction decisions. Traders should verify independently information provided in the GLEEC application by completing their own due diligence on any crypto-asset or company in which they are contemplating an investment or transaction of any kind and review a complete information package on that crypto-asset or company, which should include, but not be limited to, related blog updates and press releases. Past performance of profiled crypto-assets and securities is not indicative of future results. Crypto-assets and companies profiled on this site may lack an active trading market and invest in a crypto-asset or security that lacks an active trading market or trade on certain media, platforms and markets are deemed highly speculative and carry a high degree of risk. Anyone holding such crypto-assets and securities should be financially able and prepared to bear the risk of loss and the actual loss of his or her entire trade. The information in this application is not designed to be used as a basis for an investment decision. Persons using the GLEEC application should confirm to their own satisfaction the veracity of any information prior to entering into any investment or making any transaction. The decision to buy or sell any crypto-asset or security that may be featured by GLEEC is done purely and entirely at the reader’s own risk. As a reader and user of this application, You agree that under no circumstances will You seek to hold liable owners, members, officers, directors, partners, consultants or other persons involved in the publication of this application for any losses incurred by the use of information contained in this applicationGLEEC and its contractors and affiliates may profit in the event the crypto-assets and securities increase or decrease in value. Such crypto-assets and securities may be bought or sold from time to time, even after GLEEC has distributed positive information regarding the crypto-assets and companies. GLEEC has no obligation to inform readers of its trading activities or the trading activities of any of its owners, members, officers, directors, contractors and affiliates and/or any companies affiliated with BC Relations’ owners, members, officers, directors, contractors and affiliates. GLEEC and its affiliates may from time to time enter into agreements to purchase crypto-assets or securities to provide a method to reach their goals.\n\n'; -const String disclaimerTocParagraph17 = - 'The Terms are effective until terminated by GLEEC. \n\nIn the event of termination, You are no longer authorized to access the Application, but all restrictions imposed on You and the disclaimers and limitations of liability set out in the Terms will survive termination. \n\nSuch termination shall not affect any legal right that may have accrued to GLEEC against You up to the date of termination. \n\nGLEEC may also remove the Application as a whole or any sections or features of the Application at any time. \n\n'; -const String disclaimerTocParagraph18 = - 'The provisions of previous paragraphs are for the benefit of GLEEC and its officers, directors, employees, agents, licensors, suppliers, and any third party information providers to the Application. Each of these individuals or entities shall have the right to assert and enforce those provisions directly against You on its own behalf.\n\n'; -const String disclaimerTocParagraph19 = - 'GLEEC Wallet is a non-custodial, decentralized and blockchain based application and as such does GLEEC never store any user data (accounts and authentication data). \n\nWe also collect and process non-personal, anonymized data for statistical purposes and analysis and to help us provide a better service.\n\nThis document was last updated on December 10th, 2025\n\n'; diff --git a/lib/shared/widgets/disclaimer/disclaimer.dart b/lib/shared/widgets/disclaimer/disclaimer.dart index 957c75ad8e..5c6d3aa8d9 100644 --- a/lib/shared/widgets/disclaimer/disclaimer.dart +++ b/lib/shared/widgets/disclaimer/disclaimer.dart @@ -1,38 +1,13 @@ -import 'dart:async'; - -import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_markdown/flutter_markdown.dart'; -import 'package:url_launcher/url_launcher_string.dart'; -import 'package:web_dex/generated/codegen_loader.g.dart'; import 'package:komodo_ui_kit/komodo_ui_kit.dart'; +import 'package:easy_localization/easy_localization.dart'; +import 'package:web_dex/generated/codegen_loader.g.dart'; +import 'package:web_dex/services/legal_documents/legal_document.dart'; +import 'package:web_dex/shared/widgets/legal_documents/legal_document_view.dart'; -class Disclaimer extends StatefulWidget { +class Disclaimer extends StatelessWidget { const Disclaimer({super.key, required this.onClose}); - final Function() onClose; - - @override - State createState() => _DisclaimerState(); -} - -class _DisclaimerState extends State { - static const String _termsOfServiceAssetPath = - 'assets/legal/Terms of Service.md'; - late final Future _termsOfServiceFuture; - final ScrollController _scrollController = ScrollController(); - - @override - void initState() { - super.initState(); - _termsOfServiceFuture = rootBundle.loadString(_termsOfServiceAssetPath); - } - - @override - void dispose() { - _scrollController.dispose(); - super.dispose(); - } + final VoidCallback onClose; @override Widget build(BuildContext context) { @@ -40,47 +15,15 @@ class _DisclaimerState extends State { children: [ SizedBox( height: MediaQuery.of(context).size.height * 2 / 3, - child: FutureBuilder( - future: _termsOfServiceFuture, - builder: (BuildContext context, AsyncSnapshot snapshot) { - if (snapshot.connectionState != ConnectionState.done) { - return const Center(child: CircularProgressIndicator()); - } - - if (snapshot.hasError) { - return Padding( - padding: const EdgeInsets.all(16), - child: Text( - 'Failed to load the Terms of Service.', - style: Theme.of(context).textTheme.bodyMedium, - ), - ); - } - - return DexScrollbar( - scrollController: _scrollController, - child: SingleChildScrollView( - controller: _scrollController, - padding: const EdgeInsets.all(16), - child: Markdown( - shrinkWrap: true, - softLineBreak: true, - data: snapshot.data ?? '', - styleSheet: MarkdownStyleSheet.fromTheme(Theme.of(context)), - onTapLink: (_, String? href, __) { - if (href == null || href.isEmpty) return; - unawaited(launchUrlString(href)); - }, - ), - ), - ); - }, + child: const LegalDocumentView( + document: LegalDocumentType.termsOfService, + scrollable: true, ), ), const SizedBox(height: 24), UiPrimaryButton( key: const Key('close-disclaimer'), - onPressed: widget.onClose, + onPressed: onClose, width: 300, text: LocaleKeys.close.tr(), ), diff --git a/lib/shared/widgets/disclaimer/eula.dart b/lib/shared/widgets/disclaimer/eula.dart index e53d7d87bf..7f01f4f201 100644 --- a/lib/shared/widgets/disclaimer/eula.dart +++ b/lib/shared/widgets/disclaimer/eula.dart @@ -1,111 +1,29 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; -import 'package:web_dex/generated/codegen_loader.g.dart'; import 'package:komodo_ui_kit/komodo_ui_kit.dart'; -import 'package:web_dex/shared/widgets/disclaimer/constants.dart'; -import 'package:web_dex/shared/widgets/disclaimer/tos_content.dart'; +import 'package:web_dex/generated/codegen_loader.g.dart'; +import 'package:web_dex/services/legal_documents/legal_document.dart'; +import 'package:web_dex/shared/widgets/legal_documents/legal_document_view.dart'; -class Eula extends StatefulWidget { - const Eula({Key? key, required this.onClose}) : super(key: key); - final Function() onClose; +class Eula extends StatelessWidget { + const Eula({super.key, required this.onClose}); + final VoidCallback onClose; - @override - State createState() => _EulaState(); -} - -class _EulaState extends State with TickerProviderStateMixin { @override Widget build(BuildContext context) { - final List disclaimerToSText = [ - TextSpan( - text: disclaimerEulaTitle1, - style: Theme.of(context).textTheme.titleLarge), - TextSpan( - text: disclaimerEulaParagraph1, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph2, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph3, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph4, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph5, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph6, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaTitle2, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerEulaParagraph7, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph8, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaTitle3, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerEulaParagraph9, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph10, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph11, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph12, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph13, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaTitle4, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerEulaParagraph14, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph15, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaTitle5, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerEulaParagraph16, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph17, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaTitle6, - style: Theme.of(context).textTheme.titleSmall), - TextSpan( - text: disclaimerEulaParagraph18, - style: Theme.of(context).textTheme.bodyMedium), - TextSpan( - text: disclaimerEulaParagraph19, - style: Theme.of(context).textTheme.bodyMedium), - ]; - return Column( children: [ SizedBox( - height: MediaQuery.of(context).size.height * 2 / 3, - child: SingleChildScrollView( - controller: ScrollController(), - child: TosContent(disclaimerToSText: disclaimerToSText), - )), + height: MediaQuery.of(context).size.height * 2 / 3, + child: const LegalDocumentView( + document: LegalDocumentType.eula, + scrollable: true, + ), + ), const SizedBox(height: 24), UiPrimaryButton( key: const Key('close-disclaimer'), - onPressed: widget.onClose, + onPressed: onClose, width: 300, text: LocaleKeys.close.tr(), ), diff --git a/lib/shared/widgets/disclaimer/eula_tos_checkboxes.dart b/lib/shared/widgets/disclaimer/eula_tos_checkboxes.dart index 8e8ddd02a0..3f37dec3cb 100644 --- a/lib/shared/widgets/disclaimer/eula_tos_checkboxes.dart +++ b/lib/shared/widgets/disclaimer/eula_tos_checkboxes.dart @@ -93,6 +93,7 @@ class _EulaTosCheckboxesState extends State { AppDialog.showWithCallback( context: context, useRootNavigator: false, + width: 640, childBuilder: (closeDialog) => Eula(onClose: closeDialog), ), ); diff --git a/lib/shared/widgets/disclaimer/tos_content.dart b/lib/shared/widgets/disclaimer/tos_content.dart deleted file mode 100644 index d5b45fa636..0000000000 --- a/lib/shared/widgets/disclaimer/tos_content.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:flutter/material.dart'; - -class TosContent extends StatelessWidget { - const TosContent({ - super.key, - required this.disclaimerToSText, - }); - - final List disclaimerToSText; - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(16.0), - child: SelectableText.rich( - TextSpan( - style: Theme.of(context).textTheme.bodyMedium, - children: disclaimerToSText, - ), - ), - ); - } -} diff --git a/lib/shared/widgets/legal_documents/legal_document_view.dart b/lib/shared/widgets/legal_documents/legal_document_view.dart new file mode 100644 index 0000000000..f15e540da4 --- /dev/null +++ b/lib/shared/widgets/legal_documents/legal_document_view.dart @@ -0,0 +1,179 @@ +import 'dart:async'; + +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_markdown/flutter_markdown.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:url_launcher/url_launcher_string.dart'; +import 'package:web_dex/generated/codegen_loader.g.dart'; +import 'package:web_dex/services/legal_documents/legal_document.dart'; +import 'package:web_dex/services/legal_documents/legal_documents_repository.dart'; +import 'package:komodo_ui_kit/komodo_ui_kit.dart'; + +class LegalDocumentView extends StatefulWidget { + const LegalDocumentView({ + super.key, + required this.document, + this.padding = const EdgeInsets.all(16), + this.scrollable = false, + }); + + final LegalDocumentType document; + final EdgeInsetsGeometry padding; + final bool scrollable; + + @override + State createState() => _LegalDocumentViewState(); +} + +class _LegalDocumentViewState extends State { + final ScrollController _scrollController = ScrollController(); + int _requestId = 0; + LegalDocumentContent? _content; + Object? _loadingError; + bool _isRefreshing = false; + + @override + void initState() { + super.initState(); + _loadDocument(); + } + + @override + void didUpdateWidget(covariant LegalDocumentView oldWidget) { + super.didUpdateWidget(oldWidget); + if (oldWidget.document != widget.document) { + _loadDocument(); + } + } + + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + if (_content == null) { + if (_loadingError != null) { + return Padding( + padding: widget.padding, + child: Text( + LocaleKeys.legalDocumentLoadError.tr(), + style: Theme.of(context).textTheme.bodyMedium, + ), + ); + } + + return const Center(child: CircularProgressIndicator()); + } + + final markdown = Padding( + padding: widget.padding, + child: MarkdownBody( + data: _content!.markdown, + selectable: true, + softLineBreak: true, + styleSheet: _buildStyleSheet(context), + onTapLink: (_, String? href, __) { + if (href == null || href.isEmpty) return; + unawaited(launchUrlString(href)); + }, + ), + ); + + final Widget body = widget.scrollable + ? DexScrollbar( + scrollController: _scrollController, + child: SingleChildScrollView( + controller: _scrollController, + child: markdown, + ), + ) + : markdown; + + if (!widget.scrollable) { + return Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + if (_isRefreshing) const LinearProgressIndicator(minHeight: 2), + if (_isRefreshing) const SizedBox(height: 12), + body, + ], + ); + } + + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + if (_isRefreshing) const LinearProgressIndicator(minHeight: 2), + if (_isRefreshing) const SizedBox(height: 12), + Expanded(child: body), + ], + ); + } + + MarkdownStyleSheet _buildStyleSheet(BuildContext context) { + final base = MarkdownStyleSheet.fromTheme(Theme.of(context)); + final linkStyle = Theme.of(context).textTheme.bodyMedium?.copyWith( + color: Theme.of(context).colorScheme.primary, + decoration: TextDecoration.underline, + decorationColor: Theme.of(context).colorScheme.primary, + ); + + return base.copyWith( + a: linkStyle, + p: Theme.of(context).textTheme.bodyMedium, + listBullet: Theme.of(context).textTheme.bodyMedium, + ); + } + + Future _loadDocument() async { + final requestId = ++_requestId; + setState(() { + _loadingError = null; + _content = null; + _isRefreshing = false; + }); + + final repository = context.read(); + + try { + final initialContent = await repository.loadPreferredContent( + widget.document, + ); + if (!mounted || requestId != _requestId) return; + + setState(() { + _content = initialContent; + }); + } catch (error) { + if (!mounted || requestId != _requestId) return; + + setState(() { + _loadingError = error; + }); + return; + } + + if (!mounted || requestId != _requestId) return; + + setState(() { + _isRefreshing = true; + }); + + final refreshedContent = await repository.refreshFromRemote( + widget.document, + ); + if (!mounted || requestId != _requestId) return; + + setState(() { + _isRefreshing = false; + if (refreshedContent != null) { + _content = refreshedContent; + } + }); + } +} diff --git a/lib/views/settings/settings_page.dart b/lib/views/settings/settings_page.dart index 694f7725cd..0d49194ed3 100644 --- a/lib/views/settings/settings_page.dart +++ b/lib/views/settings/settings_page.dart @@ -8,6 +8,7 @@ import 'package:web_dex/views/common/page_header/page_header.dart'; import 'package:web_dex/views/common/pages/page_layout.dart'; import 'package:web_dex/views/settings/widgets/common/settings_content_wrapper.dart'; import 'package:web_dex/views/settings/widgets/general_settings/general_settings.dart'; +import 'package:web_dex/views/settings/widgets/privacy_notice_page/privacy_notice_page.dart'; import 'package:web_dex/views/settings/widgets/security_settings/security_settings_page.dart'; import 'package:web_dex/views/settings/widgets/settings_menu/settings_menu.dart'; import 'package:web_dex/views/settings/widgets/support_page/support_page.dart'; @@ -42,6 +43,8 @@ class SettingsPage extends StatelessWidget { return const GeneralSettings(); case SettingsMenuValue.security: return SecuritySettingsPage(onBackPressed: _onBackButtonPressed); + case SettingsMenuValue.privacy: + return const PrivacyNoticePage(); case SettingsMenuValue.support: return SupportPage(); @@ -87,6 +90,7 @@ class _MobileContentLayout extends StatelessWidget { case SettingsMenuValue.security: return content; case SettingsMenuValue.general: + case SettingsMenuValue.privacy: case SettingsMenuValue.support: case SettingsMenuValue.feedback: return PageLayout( @@ -95,11 +99,7 @@ class _MobileContentLayout extends StatelessWidget { backText: '', onBackButtonPressed: _onBackButtonPressed, ), - content: Flexible( - child: SettingsContentWrapper( - child: content, - ), - ), + content: Flexible(child: SettingsContentWrapper(child: content)), ); case SettingsMenuValue.none: throw Error(); @@ -115,8 +115,10 @@ class _DesktopLayout extends StatelessWidget { @override Widget build(BuildContext context) { - final isTopSpace = selectedMenu != SettingsMenuValue.security && - selectedMenu != SettingsMenuValue.support; + final isTopSpace = + selectedMenu != SettingsMenuValue.security && + selectedMenu != SettingsMenuValue.support && + selectedMenu != SettingsMenuValue.privacy; return PageLayout( content: Flexible( diff --git a/lib/views/settings/widgets/privacy_notice_page/privacy_notice_page.dart b/lib/views/settings/widgets/privacy_notice_page/privacy_notice_page.dart new file mode 100644 index 0000000000..465c6691b1 --- /dev/null +++ b/lib/views/settings/widgets/privacy_notice_page/privacy_notice_page.dart @@ -0,0 +1,31 @@ +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:web_dex/generated/codegen_loader.g.dart'; +import 'package:web_dex/services/legal_documents/legal_document.dart'; +import 'package:web_dex/shared/widgets/legal_documents/legal_document_view.dart'; + +class PrivacyNoticePage extends StatelessWidget { + const PrivacyNoticePage({super.key = const Key('privacy-notice-page')}); + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.symmetric(horizontal: 25, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(18), + color: Theme.of(context).colorScheme.surface, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SelectableText( + LocaleKeys.settingsMenuPrivacy.tr(), + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w700), + ), + const SizedBox(height: 16), + const LegalDocumentView(document: LegalDocumentType.privacyNotice), + ], + ), + ); + } +} diff --git a/lib/views/settings/widgets/settings_menu/settings_menu.dart b/lib/views/settings/widgets/settings_menu/settings_menu.dart index 0e3b1ca700..6e4aec5c6e 100644 --- a/lib/views/settings/widgets/settings_menu/settings_menu.dart +++ b/lib/views/settings/widgets/settings_menu/settings_menu.dart @@ -30,6 +30,7 @@ class SettingsMenu extends StatelessWidget { final Set menuItems = { SettingsMenuValue.general, if (showSecurity) SettingsMenuValue.security, + SettingsMenuValue.privacy, if (context.isFeedbackAvailable) SettingsMenuValue.feedback, }; return FocusTraversalGroup( From 0634b8773302988ca72a3119dcfb3fbe55ff8579 Mon Sep 17 00:00:00 2001 From: CharlVS <77973576+CharlVS@users.noreply.github.com> Date: Wed, 18 Mar 2026 14:07:56 +0100 Subject: [PATCH 6/6] feat(legal): add kyc policy to settings --- assets/legal/kyc-due-diligence-policy.md | 26 +++++++-------- assets/translations/en.json | 1 + lib/generated/codegen_loader.g.dart | 1 + lib/model/settings_menu_value.dart | 5 +++ .../navigators/app_router_delegate.dart | 2 ++ lib/router/parsers/settings_route_parser.dart | 4 +++ lib/router/routes.dart | 3 ++ lib/views/settings/settings_page.dart | 7 +++- .../kyc_policy_page/kyc_policy_page.dart | 33 +++++++++++++++++++ .../widgets/settings_menu/settings_menu.dart | 1 + 10 files changed, 69 insertions(+), 14 deletions(-) create mode 100644 lib/views/settings/widgets/kyc_policy_page/kyc_policy_page.dart diff --git a/assets/legal/kyc-due-diligence-policy.md b/assets/legal/kyc-due-diligence-policy.md index 7e9519e177..db624b97a2 100644 --- a/assets/legal/kyc-due-diligence-policy.md +++ b/assets/legal/kyc-due-diligence-policy.md @@ -3,7 +3,7 @@ **Gleec Pay LTD and its Affiliates** (“Gleec”, “Gleec.com”, “The Company”, “we”, “us”, “our”) -### **1. Purpose, Scope and Regulatory Context** +### **1\. Purpose, Scope and Regulatory Context** This Know Your Customer (“KYC”) and Due Diligence Policy (the “Policy”) establishes the principles, standards, governance framework, and operational controls adopted by Gleec Pay LTD and all affiliated entities within the Gleec Group to prevent, detect, and mitigate the risks of money laundering, terrorist financing, sanctions violations, fraud, corruption, and other forms of financial and economic crime. @@ -11,7 +11,7 @@ This Policy applies to all natural persons and legal entities, including users, The Policy is designed to ensure compliance with all applicable anti-money laundering (“AML”), counter-terrorist financing (“CTF”), sanctions, and financial crime prevention laws and regulations in the jurisdictions in which the Company operates or provides Services. It aligns with internationally recognised standards and best practices, including the recommendations of the Financial Action Task Force (“FATF”), relevant EU Directives, and applicable national regulatory frameworks. -### **2. Governance and Responsibility** +### **2\. Governance and Responsibility** Ultimate responsibility for the implementation, oversight, and effectiveness of this Policy rests with the Board of Directors and Senior Management of the Company. The Board ensures that the Company maintains adequate systems, controls, and resources to manage financial crime risks proportionate to its business model, geographic footprint, and risk exposure. @@ -19,7 +19,7 @@ Day-to-day responsibility for implementing and maintaining this Policy is delega All employees, officers, contractors, and relevant third parties involved in onboarding, customer interaction, transaction processing, or monitoring activities are required to comply with this Policy and supporting procedures. -### **3. Risk-Based Approach** +### **3\. Risk-Based Approach** #### **3.1 General Principles** @@ -33,7 +33,7 @@ The Company identifies, assesses, and manages risks using a combination of quali Risk assessments are formally documented, subject to review, and retained in an auditable manner. -### **4. Client Risk Assessment and Categorisation** +### **4\. Client Risk Assessment and Categorisation** #### **4.1 Initial Risk Assessment** @@ -51,13 +51,13 @@ Certain indicators may result in immediate classification as high-risk, includin Risk scoring is not influenced by commercial considerations. The MLRO may override automated risk outcomes where justified, provided that the rationale is documented and approved. -### **5. Business-Wide Risk Assessment** +### **5\. Business-Wide Risk Assessment** The MLRO conducts a Business-Wide Risk Assessment (“BWRA”) covering all Gleec entities, Services, customer segments, products, and delivery channels. The BWRA identifies inherent and residual risks, evaluates the effectiveness of controls, and informs policy updates, system enhancements, and monitoring priorities. The BWRA is reviewed at least annually and whenever material changes occur and is reported to Senior Management and the Board of Directors. -### **6. Client Acceptance Policy** +### **6\. Client Acceptance Policy** #### **6.1 General Acceptance Principles** @@ -69,13 +69,13 @@ Account activation and continued access to the Services are conditional upon the The Company does not onboard or maintain relationships with sanctioned persons or entities, clients linked to prohibited jurisdictions or industries, individuals involved in serious criminal activity, clients with unverifiable identity or ownership, clients providing false or misleading information, or entities with anonymous or unidentifiable beneficial owners. -### **7. Politically Exposed Persons (PEPs)** +### **7\. Politically Exposed Persons (PEPs)** All relationships involving PEPs, their family members, or close associates are subject to Enhanced Due Diligence (“EDD”). This includes identification and verification of PEP status, MLRO and senior management approval, verification of source of wealth and source of funds, enhanced transaction monitoring, and more frequent reviews. Former PEPs remain subject to enhanced measures for a minimum of 12 months, extendable based on risk. -### **8. Customer Due Diligence (CDD)** +### **8\. Customer Due Diligence (CDD)** #### **8.1 CDD Measures** @@ -91,22 +91,22 @@ Sumsub is fully integrated into the Company’s onboarding, risk assessment, and The use of Sumsub does not transfer regulatory responsibility. **Ultimate responsibility for KYC compliance, due diligence decisions, risk classifications, and regulatory adherence remains with the Company at all times**. The Company maintains appropriate oversight, governance, and validation of all KYC activities performed through Sumsub and ensures that the KYC platform provider meets required standards of security, data protection, reliability, and regulatory compliance. -### **9. Enhanced Due Diligence (EDD)** +### **9\. Enhanced Due Diligence (EDD)** Enhanced Due Diligence is applied where higher risk is identified and may include additional identity and ownership verification, detailed analysis of source of wealth and source of funds, enhanced transaction scrutiny, justification of activity, and senior management approval prior to onboarding or continuation of the relationship. -### **10. Source of Wealth and Source of Funds** +### **10\. Source of Wealth and Source of Funds** The Company verifies the legitimacy of source of wealth and source of funds using a risk-based approach and may request documentary evidence appropriate to the client’s risk profile, jurisdiction, and activity. All documentation is reviewed for authenticity, consistency, and plausibility. -### **11. Ongoing Monitoring and Periodic Reviews** +### **11\. Ongoing Monitoring and Periodic Reviews** All client relationships are subject to continuous transaction monitoring and periodic review based on risk classification. Reviews occur at least every 36 months for low-risk clients, 24 months for medium-risk clients, and 12 months for high-risk clients, or earlier where triggered by material changes, sanctions updates, PEP status changes, or suspicious activity. -### **12. Record Keeping and Audit Trail** +### **12\. Record Keeping and Audit Trail** The Company maintains complete, accurate, and retrievable records of KYC data, client risk assessments, monitoring activities, decisions, approvals, and escalations. Records are retained in accordance with applicable legal and regulatory requirements and are made available for internal audit and regulatory inspection. -### **13. Policy Review and Updates** +### **13\. Policy Review and Updates** This Policy is reviewed at least annually and updated as necessary to reflect regulatory developments, emerging risks, changes in business activities, and industry best practices. diff --git a/assets/translations/en.json b/assets/translations/en.json index 167bf7fa19..584d1ac0e1 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -149,6 +149,7 @@ "settingsMenuLanguage": "Change language", "settingsMenuSecurity": "Security", "settingsMenuPrivacy": "Privacy Notice", + "settingsMenuKycPolicy": "KYC Policy", "settingsMenuAbout": "About", "seedPhraseSettingControlsViewSeed": "View seed phrase", "seedPhraseSettingControlsDownloadSeed": "Download as file", diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index b7f0730d83..af473aa3b6 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -155,6 +155,7 @@ abstract class LocaleKeys { static const settingsMenuLanguage = 'settingsMenuLanguage'; static const settingsMenuSecurity = 'settingsMenuSecurity'; static const settingsMenuPrivacy = 'settingsMenuPrivacy'; + static const settingsMenuKycPolicy = 'settingsMenuKycPolicy'; static const settingsMenuAbout = 'settingsMenuAbout'; static const seedPhraseSettingControlsViewSeed = 'seedPhraseSettingControlsViewSeed'; diff --git a/lib/model/settings_menu_value.dart b/lib/model/settings_menu_value.dart index 1c8a116067..0dc0916df8 100644 --- a/lib/model/settings_menu_value.dart +++ b/lib/model/settings_menu_value.dart @@ -5,6 +5,7 @@ enum SettingsMenuValue { general, security, privacy, + kycPolicy, support, feedback, none; @@ -17,6 +18,8 @@ enum SettingsMenuValue { return LocaleKeys.settingsMenuSecurity.tr(); case SettingsMenuValue.privacy: return LocaleKeys.settingsMenuPrivacy.tr(); + case SettingsMenuValue.kycPolicy: + return LocaleKeys.settingsMenuKycPolicy.tr(); case SettingsMenuValue.support: return LocaleKeys.support.tr(); case SettingsMenuValue.feedback: @@ -34,6 +37,8 @@ enum SettingsMenuValue { return 'security'; case SettingsMenuValue.privacy: return 'privacy'; + case SettingsMenuValue.kycPolicy: + return 'kyc'; case SettingsMenuValue.support: return 'support'; case SettingsMenuValue.feedback: diff --git a/lib/router/navigators/app_router_delegate.dart b/lib/router/navigators/app_router_delegate.dart index ff1fbf552d..7acd98c5ed 100644 --- a/lib/router/navigators/app_router_delegate.dart +++ b/lib/router/navigators/app_router_delegate.dart @@ -247,6 +247,8 @@ class AppRouterDelegate extends RouterDelegate return SettingsRoutePath.security(); case SettingsMenuValue.privacy: return SettingsRoutePath.privacy(); + case SettingsMenuValue.kycPolicy: + return SettingsRoutePath.kyc(); case SettingsMenuValue.support: return SettingsRoutePath.support(); case SettingsMenuValue.feedback: diff --git a/lib/router/parsers/settings_route_parser.dart b/lib/router/parsers/settings_route_parser.dart index aa57bd5ae8..9adc652614 100644 --- a/lib/router/parsers/settings_route_parser.dart +++ b/lib/router/parsers/settings_route_parser.dart @@ -22,6 +22,10 @@ class _SettingsRouteParser implements BaseRouteParser { return SettingsRoutePath.privacy(); } + if (uri.pathSegments[1] == 'kyc') { + return SettingsRoutePath.kyc(); + } + // TODO: Remove since the feedback is now handled by `BetterFeedback` if (uri.pathSegments[1] == 'feedback') { return SettingsRoutePath.feedback(); diff --git a/lib/router/routes.dart b/lib/router/routes.dart index 43909a0710..4f35a5be3a 100644 --- a/lib/router/routes.dart +++ b/lib/router/routes.dart @@ -142,6 +142,9 @@ class SettingsRoutePath implements AppRoutePath { SettingsRoutePath.privacy() : location = '/${firstUriSegment.settings}/privacy', selectedMenu = SettingsMenuValue.privacy; + SettingsRoutePath.kyc() + : location = '/${firstUriSegment.settings}/kyc', + selectedMenu = SettingsMenuValue.kycPolicy; SettingsRoutePath.passwordUpdate() : location = '/${firstUriSegment.settings}/security/passwordUpdate', selectedMenu = SettingsMenuValue.security; diff --git a/lib/views/settings/settings_page.dart b/lib/views/settings/settings_page.dart index 0d49194ed3..ffe199e3a4 100644 --- a/lib/views/settings/settings_page.dart +++ b/lib/views/settings/settings_page.dart @@ -8,6 +8,7 @@ import 'package:web_dex/views/common/page_header/page_header.dart'; import 'package:web_dex/views/common/pages/page_layout.dart'; import 'package:web_dex/views/settings/widgets/common/settings_content_wrapper.dart'; import 'package:web_dex/views/settings/widgets/general_settings/general_settings.dart'; +import 'package:web_dex/views/settings/widgets/kyc_policy_page/kyc_policy_page.dart'; import 'package:web_dex/views/settings/widgets/privacy_notice_page/privacy_notice_page.dart'; import 'package:web_dex/views/settings/widgets/security_settings/security_settings_page.dart'; import 'package:web_dex/views/settings/widgets/settings_menu/settings_menu.dart'; @@ -45,6 +46,8 @@ class SettingsPage extends StatelessWidget { return SecuritySettingsPage(onBackPressed: _onBackButtonPressed); case SettingsMenuValue.privacy: return const PrivacyNoticePage(); + case SettingsMenuValue.kycPolicy: + return const KycPolicyPage(); case SettingsMenuValue.support: return SupportPage(); @@ -91,6 +94,7 @@ class _MobileContentLayout extends StatelessWidget { return content; case SettingsMenuValue.general: case SettingsMenuValue.privacy: + case SettingsMenuValue.kycPolicy: case SettingsMenuValue.support: case SettingsMenuValue.feedback: return PageLayout( @@ -118,7 +122,8 @@ class _DesktopLayout extends StatelessWidget { final isTopSpace = selectedMenu != SettingsMenuValue.security && selectedMenu != SettingsMenuValue.support && - selectedMenu != SettingsMenuValue.privacy; + selectedMenu != SettingsMenuValue.privacy && + selectedMenu != SettingsMenuValue.kycPolicy; return PageLayout( content: Flexible( diff --git a/lib/views/settings/widgets/kyc_policy_page/kyc_policy_page.dart b/lib/views/settings/widgets/kyc_policy_page/kyc_policy_page.dart new file mode 100644 index 0000000000..79755b69eb --- /dev/null +++ b/lib/views/settings/widgets/kyc_policy_page/kyc_policy_page.dart @@ -0,0 +1,33 @@ +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:web_dex/generated/codegen_loader.g.dart'; +import 'package:web_dex/services/legal_documents/legal_document.dart'; +import 'package:web_dex/shared/widgets/legal_documents/legal_document_view.dart'; + +class KycPolicyPage extends StatelessWidget { + const KycPolicyPage({super.key = const Key('kyc-policy-page')}); + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.symmetric(horizontal: 25, vertical: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(18), + color: Theme.of(context).colorScheme.surface, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SelectableText( + LocaleKeys.settingsMenuKycPolicy.tr(), + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w700), + ), + const SizedBox(height: 16), + const LegalDocumentView( + document: LegalDocumentType.kycDueDiligencePolicy, + ), + ], + ), + ); + } +} diff --git a/lib/views/settings/widgets/settings_menu/settings_menu.dart b/lib/views/settings/widgets/settings_menu/settings_menu.dart index 6e4aec5c6e..c4e2ca8163 100644 --- a/lib/views/settings/widgets/settings_menu/settings_menu.dart +++ b/lib/views/settings/widgets/settings_menu/settings_menu.dart @@ -31,6 +31,7 @@ class SettingsMenu extends StatelessWidget { SettingsMenuValue.general, if (showSecurity) SettingsMenuValue.security, SettingsMenuValue.privacy, + SettingsMenuValue.kycPolicy, if (context.isFeedbackAvailable) SettingsMenuValue.feedback, }; return FocusTraversalGroup(