diff --git a/AppMain.tsx b/AppMain.tsx index 48ccec88c..18e87d7f7 100644 --- a/AppMain.tsx +++ b/AppMain.tsx @@ -26,15 +26,13 @@ import { AppStateStatus, } from 'react-native'; import * as Localization from 'expo-localization'; -import { Kyc } from './src/modules/kyc/Kyc'; import { More } from './src/modules/more/More'; import { Products } from './src/modules/products/Products'; import { Account } from './src/modules/account/Account'; -import { KycStatus } from './src/enums/KycStatus'; import LocaleType from './src/enums/LocaleType'; import LegacyRefundStatus from './src/enums/LegacyRefundStatus'; -import currentLocale, { currentLocalization } from './src/utiles/currentLocale'; +import { currentLocalization } from './src/utiles/currentLocale'; import { Dashboard } from './src/modules/dashboard/Dashboard'; import Main from './src/modules/main/Main'; import Notification, { isNotification } from './src/types/Notification'; @@ -63,7 +61,6 @@ interface AppInformation { email: string; firstName: string; lastName: string; - kycStatus: KycStatus; gender: string; language: LocaleType; currency: CurrencyType; @@ -78,7 +75,6 @@ interface AppInformation { ownerships: OwnershipResponse[]; balance: string; changeLanguage: () => void; - setKycStatus: () => void; notifications: Notification[]; Server: Server; expoPushToken: string; @@ -95,7 +91,6 @@ const defaultState = { firstName: '', lastName: '', gender: '', - kycStatus: KycStatus.NONE, language: currentLocalization(), currency: CurrencyType.USD, ethAddresses: [], @@ -108,10 +103,9 @@ const defaultState = { }, ownerships: [], balance: '0', - changeLanguage: () => {}, - setKycStatus: () => {}, + changeLanguage: () => { }, notifications: [], - Server: new Server(() => {}, ''), + Server: new Server(() => { }, ''), expoPushToken: '', elPrice: 0, krwPrice: 0, @@ -426,12 +420,6 @@ const AppMain = () => { user: { ...state.user, currency: newCurrency }, }); }, - setKycStatus: () => { - setState({ - ...state, - user: { ...state.user, kycStatus: KycStatus.PENDING }, - }); - }, signIn, signOut, refreshUser, @@ -490,16 +478,15 @@ const AppMain = () => { ) : state.signedIn === SignInStatus.SIGNIN ? ( <> - ) : ( - <> - - - )} + <> + + + )} => { - return this.authenticatedEspressoClient.post('/v2/kyc/'); - }; - - kycUpload = async (photo: string, type: string): Promise => { - const formData = new FormData(); - formData.append('image', { - uri: Platform.OS === 'android' ? photo : photo.replace('file://', ''), - name: 'image.png', - type: 'image/png', - }); - formData.append('type', type); - return this.authenticatedEspressoClient.post('/v2/kyc/upload', formData); - }; - - kycInformation = async ( - firstName: string, - lastName: string, - nationality: string, - dateOfBirth: string, - gender: string, - idType: string, - ): Promise => { - return this.authenticatedEspressoClient.post('/v2/kyc/information', { - firstName, - lastName, - nationality, - dateOfBirth, - gender, - idType, - }); - }; - notification = async (): Promise> => { return this.authenticatedEspressoClient.get(`/notifications`); }; @@ -316,8 +282,7 @@ export default class Server { getBalance = (address: string): Promise> => { return axios.get( - `https://api.etherscan.io/api?module=account&action=tokenbalance&contractaddress=${ - getEnvironment().elAddress + `https://api.etherscan.io/api?module=account&action=tokenbalance&contractaddress=${getEnvironment().elAddress }&address=${address}&tag=latest&apikey=AD6WVV4IKCM7R4764UTDWVA52V7ARDYIP7`, ); }; diff --git a/src/contexts/FunctionContext.ts b/src/contexts/FunctionContext.ts index 1e7088677..490f6851b 100644 --- a/src/contexts/FunctionContext.ts +++ b/src/contexts/FunctionContext.ts @@ -10,7 +10,6 @@ import { CurrencyResponse } from '../types/CurrencyResponse'; type FunctionContextType = { setLanguage: (input: LocaleType) => void; setCurrency: (input: CurrencyType) => void; - setKycStatus: () => void; signIn: () => void; signOut: (signInStatus: SignOut) => void; refreshUser: () => Promise; @@ -23,18 +22,17 @@ type FunctionContextType = { }; const FunctionContext = createContext({ - setLanguage: () => {}, - setCurrency: () => {}, - setKycStatus: () => {}, - signIn: async () => {}, - signOut: async (_signInStatus: SignOut) => {}, - refreshUser: async () => {}, - setCurrencyPrice: (_currency: CurrencyResponse[]) => {}, - setNotifications: (_notifications: Notification[]) => {}, - setEthAddress: (_address: string) => {}, - setUserExpoPushToken: (_expoPushToken: string) => {}, - setRefundStatus: (_legacyRefundStatus: LegacyRefundStatus) => {}, - Server: new Server(() => {}, ''), + setLanguage: () => { }, + setCurrency: () => { }, + signIn: async () => { }, + signOut: async (_signInStatus: SignOut) => { }, + refreshUser: async () => { }, + setCurrencyPrice: (_currency: CurrencyResponse[]) => { }, + setNotifications: (_notifications: Notification[]) => { }, + setEthAddress: (_address: string) => { }, + setUserExpoPushToken: (_expoPushToken: string) => { }, + setRefundStatus: (_legacyRefundStatus: LegacyRefundStatus) => { }, + Server: new Server(() => { }, ''), }); export default FunctionContext; diff --git a/src/contexts/KycContext.ts b/src/contexts/KycContext.ts deleted file mode 100644 index cda5785bc..000000000 --- a/src/contexts/KycContext.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { createContext } from 'react'; -import * as ImageManipulator from 'expo-image-manipulator'; - -type KycContextType = { - idType: string; - idPhoto: ImageManipulator.ImageResult; - selfie: ImageManipulator.ImageResult; - setIdType: (type: string) => void; - setIdPhoto: (photo: ImageManipulator.ImageResult) => void; - setSelfie: (photo: ImageManipulator.ImageResult) => void; -}; - -const KycContext = createContext({ - idType: '', - idPhoto: {} as ImageManipulator.ImageResult, - selfie: {} as ImageManipulator.ImageResult, - setIdType: (_type: string) => {}, - setIdPhoto: (_photo: ImageManipulator.ImageResult) => {}, - setSelfie: (_photo: ImageManipulator.ImageResult) => {}, -}); - -export default KycContext; diff --git a/src/contexts/UserContext.ts b/src/contexts/UserContext.ts index 03c5cddca..f110d1be8 100644 --- a/src/contexts/UserContext.ts +++ b/src/contexts/UserContext.ts @@ -1,5 +1,4 @@ import { createContext } from 'react'; -import { KycStatus } from '../enums/KycStatus'; import LocaleType from '../enums/LocaleType'; import { SignInStatus } from '../enums/SignInStatus'; import Notification from '../types/Notification'; @@ -16,7 +15,6 @@ type UserContextType = { email: string; firstName: string; lastName: string; - kycStatus: KycStatus; gender: string; language: LocaleType; currency: CurrencyType; @@ -43,7 +41,6 @@ const UserContext = createContext({ firstName: '', lastName: '', gender: '', - kycStatus: KycStatus.NONE, ethAddresses: [], expoPushTokens: [], language: currentLocalization(), diff --git a/src/enums/KycStatus.ts b/src/enums/KycStatus.ts deleted file mode 100644 index f9a341cd9..000000000 --- a/src/enums/KycStatus.ts +++ /dev/null @@ -1,6 +0,0 @@ -export enum KycStatus { - NONE = 'none', - PENDING = 'pending', - SUCCESS = 'success', - REJECTED = 'rejected', -} diff --git a/src/enums/pageEnum.ts b/src/enums/pageEnum.ts index 8b91e3354..03c3bde39 100644 --- a/src/enums/pageEnum.ts +++ b/src/enums/pageEnum.ts @@ -1,15 +1,3 @@ -export enum KycPage { - StartKYC = 'StartKYC', - Argos = 'Argos', - SelectID = 'SelectID', - TakeID = 'TakeID', - ConfirmID = 'ConfirmID', - TakeSelfieBefore = 'TakeSelfieBefore', - TakeSelfie = 'TakeSelfie', - ConfirmSelfie = 'ConfirmSelfie', - PersonalDataInput = 'PersonalDataInput', -} - export enum ProductPage { MainList = 'MainList', ProductStory = 'ProductStory', @@ -56,7 +44,6 @@ export enum DashboardPage { OwnershipDetail = 'OwnershipDetail', ProductData = 'ProductData', ProductNotice = 'ProductNotice', - PreparingInvestment = 'PreparingInvestment', InvestmentGuide = 'InvestmentGuide', RemainingBalance = 'RemainingBalance', EventList = 'EventList', diff --git a/src/i18n/en.json b/src/i18n/en.json index acbdd3e69..a4841eb41 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -2,6 +2,9 @@ "welcome": "Welcome to Elysia", "greeting": "Hi, %{firstName}!", "greeting_new": "Hello, %{email}!", + "button": { + "submit": "Submit" + }, "account": { "insert_account_email": "Please enter your email.", "check_email": "Please check your email address.", @@ -87,70 +90,6 @@ "start_service": "Services", "existing_login": "Log-in" }, - "kyc_label": { - "argos_terms": "View Argos Terms and Conditions", - "agree": "Agree", - "agree_start": "Agree and Start", - "camera_access_return": "Go back", - "shoot": "Take photo", - "passport": "Passport", - "drivers_license": "Drivers license", - "government_id": "ID card", - "personal_data": "Personal data", - "first_name": "First name", - "last_name": "Last name", - "nationality": "Nationality", - "birthday": "Birthday", - "gender": "Gender", - "complete_input": "Submit", - "shoot_again": "Take photo again", - "submit": "Submit", - "male": "Male", - "female": "Female" - }, - "kyc": { - "start": "KYC verification", - "start_text": "KYC will take approximately 2 minutes.", - "start_step1": "Take a photo of your ID", - "start_step2": "Take a selfie holding your ID card", - "start_step3": "Enter your personal information", - "step1": "1. Choose an ID", - "step1_text": "You will need the ID in order to complete the next step.", - "step1_complete": "1. photo of ID taken", - "step1_complete_text": "Was the photo of your ID clearly visible?", - "step1_tip_text_header": "Tips on taking a clear photo", - "step1_tip_case1": "· Please take photo on a contrasting background", - "step1_tip_case2": "· Please take photo inside the frame", - "step2": "2. Taking a selfie", - "step2_text": "Self-authentication photos must be clearly visible and should not have blur or contrasts", - "step2_desc1": "Take a selfie holding the ID used for step 1", - "step2_desc2": "The information you have entered in step 1 must match your ID.", - "step2_complete": "2. Selfie complete", - "step2_complete_text": "Is the selfie clearly visible?", - "step3": "3. Enter your personal information", - "step3_text": "Please enter your information correctly", - "take_ID": "Please take a photo of the front side of your ID card", - "take_ID_text": "All corners of the ID must be clearly visible.", - "submit": "KYC submission is complete!", - "submit_text": "Your submission is currently under review. We will inform you the results through notification.", - "alert_id": "Please select an identification card.", - "alert_data": "Please enter all personal information.", - "submit_error": "KYC communication error. Please contact us.", - "camera_access_denied": "Please allow camera access!", - "camera_access_denied_text": "You will need to take a selfie during the KYC verification stage. Please allow camera access so we can continue with your KYC verification.", - "argos": "Please read and agree to the Argos Terms and Conditions", - "take_selfie_before_title": "Take note!", - "decline_warning": "KYC approval may be rejected in the following cases.", - "accepted_shoot": "Good to go, Taking photo", - "decline_case1": "Submitting a photoshopped image", - "decline_case2": "If you submitted a selfie photo without holding an ID card", - "decline_case3": "If the information entered is different from the information on the ID card", - "decline_case4": "Submitting an ID card without either a photo, name, date of birth, nationality", - "decline_case5": "If you submit your social security number without hiding the last 7 digits (Koreans only)", - "networking_argos": "Communicating with Argos. Please wait a moment.", - "image_processing": "Image processing is in progress.\nPlease wait a moment.", - "result": "KYC approval is made through Argos,\n and takes 1-2 business days." - }, "product": { "transaction_error": "This token cannot be swapped.", "transaction_ready": "Transaction is ready.", @@ -158,7 +97,7 @@ "link_will_be_sent": "A link to the transaction has been sent to your email.", "send_purchase_link": "Transaction link was delivered to your email. Please click on the link from the browser where Metamask is installed.", "email_restriction": "Sending mail is limited to once every 30 seconds. Please try again after 30 seconds.", - "non_purchasable": "These tokens cannot be swapped. Please check your KYC approval and Ethereum wallet address.", + "non_purchasable": "These tokens cannot be swapped. Please check your Ethereum wallet address.", "restricted_country": "Token swap is currently not supported in your region.", "subscribed": "Reservation is complete. We will notify you of changes to the product.", "subscribed_already": "This property has already been reserved.", @@ -237,7 +176,7 @@ "eth_price": "Estimated", "property_type": "Property type", "recovery": "Total", - "non_purchasable": "KYC, wallet connection required", + "non_purchasable": "Wallet connection required", "view_details": "View property details", "available_token": "Real estate tokens available", "minimum_el": "Minimum deposit", @@ -250,13 +189,6 @@ }, "more_label": { "more": "More", - "none_kyc": "KYC verification required.", - "pending_kyc": "KYC verification is pending.", - "success_kyc": "KYC verification is complete.", - "rejected_kyc": "KYC verification is rejected. Please try again.", - "none_kyc_duplicate_label": "For App use", - "pending_kyc_duplicate_label": "Pending", - "success_kyc_duplicate_label": "Approved", "confirm": "Confirm", "investment_history": "Swap details", "transaction_history": "My transactions", @@ -327,7 +259,6 @@ "disconnect_and_new": "Connect new wallet" }, "more": { - "kyc_proceeding_wait": "KYC verification is currently pending. We will send you a notification once the review is complete.", "no_transaction": "No transaction history.", "contact_text": "Please fill out and submit inquiry below.", "question_submitted": "Your inquiry has been successfully submitted. We will reply via email as soon as possible.", @@ -346,7 +277,7 @@ "withdrawl_confirm": "Are you sure you want to delete", "withdrawl_check_1": "Please refund all properties(%{legacyOwnerships}) before deleting your account.", "withdrawl_check_2": "You will no longer have access to your funds\n(including the wallet at elysia.land : EL %{legacyEl} and USD %{legacyUsd})", - "withdrawl_check_3": "Your personal information including email and KYC documents will be deleted completely.", + "withdrawl_check_3": "Your personal information including email will be deleted completely.", "withdrawl_check_4": "We will not be responsible for any funds lost after you have deleted your account.", "confirm_disconnect": "Do you want to disconnect your wallet?\nYour funds will remain in your wallet", "confirm_disconnect_and_new": "In order to connect a new wallet,\nplease disconnect your previous wallet.\nWould you like to disconnect your wallet?" @@ -410,7 +341,6 @@ "connect_wallet": "Connect your wallet", "get_EL": "Earn 1,000 EL", "prepare_investment": "Prepare to swap tokens", - "need_kyc_wallet": "KYC verification and wallet connection is required for token swap.", "no_wallet": "There are no wallets connected.", "wallet_connected": "Wallet connection is complete.", "event_guide_EL": "EL will be deposited to the address after the event is closed", @@ -500,8 +430,6 @@ "What can I do with the Elysia app?", "What are rewards and how is it distributed?", "How do I own real estate tokens?", - "KYC has been rejected. What should I do next?", - "Why do I need KYC?", "What is an Ethereum wallet address and how can I install one?", "Why register an Ethereum wallet address?" ], @@ -509,8 +437,6 @@ "You can buy real estate ERC20 tokens, which represent ownership interest of an actual property. After completing your identity verification , you may deposit EL tokens into your wallet and swap for real estate tokens. You will receive daily rewards based on how many real estate tokens you own proportional to its monthly rental income. If the property is sold, you will also receive rewards from sales proceeds with discounted rates (the longer you hold, the more rewards)", "You may receive additional EL tokens depending on how much and how many real estate tokens you own. The rewards are calculated from the moment you hold the represented token. The number of tokens may be differ each real estate token, so make sure you check the property information.", "On the main page, you can check the types of tokens you currently own, or select and enter the tokens you wish to swap. You may swap real estate tokens with EL tokens by pressing the'Swap' button on the page.", - "You can check the reason for rejection of KYC in the notification message. Please check the reason and request KYC again.", - "Since the distribution of rewards is based on real assets, we need to make sure counterparts do not transact for the purpose of money laundering or terrorist funding. All personal information will be encrypted and stored by our KYC provider, Argos solutions.", "An Ethereum wallet is a tool for managing your Ethereum or ERC20 tokens. It can be created through various service providers such as Metamask (https://metamask.io/) or MyEtherWallet (https://www.myetherwallet.com/). Please refer to each service description on how to create your own wallet.", "Elysia is a decentralized peer-to-peer marketplace and only provides information related to real estate tokens and the tools for swapping it with other tokens. The actual transaction is conducted between wallets and Elysia does not have any authority or custody over your funds. In this regard, we require you to register your own personal wallet address to perform swaps." ] diff --git a/src/i18n/ko.json b/src/i18n/ko.json index a74694ad2..36b6be0e8 100644 --- a/src/i18n/ko.json +++ b/src/i18n/ko.json @@ -87,70 +87,6 @@ "start_service": "서비스 둘러보기", "existing_login": "기존 회원 로그인하기" }, - "kyc_label": { - "argos_terms": "아르고스 약관보기", - "agree": "동의하기", - "agree_start": "동의하고 시작하기", - "camera_access_return": "설정하기", - "shoot": "촬영하기", - "passport": "여권", - "drivers_license": "운전면허증", - "government_id": "주민등록증", - "personal_data": "나의 정보", - "first_name": "이름", - "last_name": "성", - "nationality": "국가", - "birthday": "생년월일", - "gender": "성별", - "complete_input": "입력완료", - "shoot_again": "재촬영하기", - "submit": "제출하기", - "male": "남성", - "female": "여성" - }, - "kyc": { - "start": "KYC 인증하기", - "start_text": "약 2분 정도의 시간이 소요될 예정이에요.", - "start_step1": "신분증 사진 촬영하기", - "start_step2": "신분증 들고 셀카 촬영하기", - "start_step3": "개인정보 입력하기", - "step1": "1. 신분증 선택하기", - "step1_text": "다음 단계에서 선택한 신분증으로 촬영할 예정이에요.", - "step1_complete": "1. 신분증 촬영완료", - "step1_complete_text": "신분증 사진이 흔들림, 합성 없이 명확하게 촬영되었나요?", - "step1_tip_text_header": "사진이 잘 보이려면?", - "step1_tip_case1": "· 대비되는 배경위에서 촬영해주세요", - "step1_tip_case2": "· 프레임에 맞춰서 촬영해주세요", - "step2": "2. 셀피 촬영하기", - "step2_text": "본인인증 사진을 흔들림/합성 없이 명확히 촬영해주세요.", - "step2_desc1": "1단계에서 촬영한 신분증과 함께 셀카를 촬영해주세요.", - "step2_desc2": "1단계에서 입력하신 내용과 신분증의 정보가 같아야해요.", - "step2_complete": "2. 셀피 촬영완료", - "step2_complete_text": "본인인증 사진이 흔들림, 합성 없이 명확하게 촬영되었나요?", - "step3": "3. 개인정보 입력하기", - "step3_text": "개인정보를 정확하게 기입해주세요.", - "take_ID": "신분증 앞면 촬영하기", - "take_ID_text": "신분증의 모든 모서리가 명확히 보여야합니다.", - "submit": "KYC 인증 제출이\n완료되었어요!", - "submit_text": "확인 절차 진행 후\n알람을 통해 결과를 안내해드릴게요.", - "alert_id": "신분증을 선택해주세요.", - "alert_data": "개인정보를 모두 입력해주세요.", - "submit_error": "KYC 통신 오류입니다. 담당자에게 문의 주세요.", - "camera_access_denied": "카메라 접근을 허용해주세요!", - "camera_access_denied_text": "KYC 인증단계에서 셀피촬영이 필요해요.\n카메라 접근을 허용해주시면, KYC 인증을 계속 진행할게요.", - "argos": "아르고스 약관을 읽고 동의해주세요", - "take_selfie_before_title": "참고해주세요!", - "decline_warning": "다음사항에 해당되는 경우에는 KYC승인이 거절될 수 있어요.", - "accepted_shoot": "참고완료, 촬영하기", - "decline_case1": "포토샵 처리된 이미지를 제출한 경우", - "decline_case2": "신분증과 함께가 아닌 셀피 사진만 제출한 경우", - "decline_case3": "입력하신 내용이 신분증 상의 정보와 다른 경우", - "decline_case4": "사진, 성명, 생년월일, 국적 중 하나 또는 복수 항목이 없는 신분증을 제출한 경우", - "decline_case5": "주민등록번호 뒷자리를 가리지 않고 제출한 경우(한국인만 해당됩니다)", - "networking_argos": "아르고스와 통신중입니다. 조금만 기다려주세요.", - "image_processing": "이미지 처리중입니다. 조금만 기다려주세요.", - "result": "KYC 승인은 아르고스를 통해 이루어지며,\n 영업일 기준 1~2일 소요됩니다." - }, "product": { "transaction_error": "교환할 수 없는 토큰입니다.", "transaction_ready": "트랜잭션 준비가 완료되었습니다.", @@ -158,7 +94,7 @@ "link_will_be_sent": "트랜잭션 링크가 이메일로 전달됩니다.", "send_purchase_link": "트랜잭션 링크가 이메일로 전달되었습니다.\n메타마스크가 설치되어있는 브라우저에서 해당 링크로 이동해주세요.", "email_restriction": "메일 발송은 30초 당 1회로 제한됩니다.\n30초 뒤에 다시 시도해주세요.", - "non_purchasable": "교환할 수 없는 토큰입니다.\nKYC 인증과 이더리움 지갑 주소를 확인해주세요.", + "non_purchasable": "교환할 수 없는 토큰입니다.\n이더리움 지갑 주소를 확인해주세요.", "restricted_country": "현재 국가에서는 교환하실 수 없습니다.", "subscribed": "예약 완료했습니다. 상품에 대한 변동사항을 알림으로 보내드릴게요.", "subscribed_already": "이미 예약한 상품입니다.", @@ -237,7 +173,7 @@ "eth_price": "(환산)", "property_type": "분류", "recovery": "회수금", - "non_purchasable": "KYC 인증, 지갑 연결 필요", + "non_purchasable": "지갑 연결 필요", "view_details": "상품 상세보기", "available_token": "투자가능 부동산토큰 수량", "minimum_el": "최소투자단위", @@ -250,13 +186,6 @@ }, "more_label": { "more": "더 보기", - "none_kyc": "KYC 인증이 필요합니다.", - "pending_kyc": "KYC 인증이 진행중입니다.", - "success_kyc": "KYC 인증이 완료되었습니다.", - "rejected_kyc": "KYC 인증이 거부되었습니다. 다시 시도해주세요.", - "none_kyc_duplicate_label": "앱 사용을 위해", - "pending_kyc_duplicate_label": "pending", - "success_kyc_duplicate_label": "approved", "confirm": "확인하기", "investment_history": "투자내역", "transaction_history": "내 트랜잭션", @@ -327,7 +256,6 @@ "disconnect_and_new": "새로운 지갑 연결하기" }, "more": { - "kyc_proceeding_wait": "KYC 인증이 진행중입니다. 승인이 완료되면 알림을 보내드릴테니 조금만 기다려주세요.", "no_transaction": "해당기간 내 거래내역이 없습니다.", "contact_text": "아래 문의사항을 작성 후 제출해주세요.", "question_submitted": "문의사항이 성공적으로 제출되었습니다. 빠른 시일 내에 이메일로 답변해드릴게요.", @@ -346,7 +274,7 @@ "withdrawl_confirm": "정말 탈퇴하시겠습니까?", "withdrawl_check_1": "기존 상품(%{legacyOwnerships})의 환불 이후 탈퇴를 진행해 주세요.", "withdrawl_check_2": "탈퇴 이후에는 엘리시아 웹사이트(elysia.land) 내부 지갑에 있는 잔고 출금이 불가능합니다.\nEL %{legacyEl}, USD %{legacyUsd}의 출금을 먼저 진행해 주세요.", - "withdrawl_check_3": "개인정보(이메일과 KYC 인증 여부)가 완전히 삭제됩니다.", + "withdrawl_check_3": "개인정보(이메일 등)가 완전히 삭제됩니다.", "withdrawl_check_4": "탈퇴 이후의 소유권과 이자 소득에 대한 손실은 책임지지 않습니다.", "confirm_disconnect": "지갑 연결을 해제하시겠어요?\n소유권은 그대로 유지되고 다시 연결하시면 확인 가능합니다.", "confirm_disconnect_and_new": "새로운 지갑을 연결하시려면 기존 지갑 연결을 해제하셔야 합니다.\n연결을 해제해도 기존 지갑 주소의 소유권은 그대로 유지됩니다.\n지갑 연결을 해제하시겠어요?" @@ -410,7 +338,6 @@ "connect_wallet": "지갑 연결하고", "get_EL": "1,000 EL 받아가기", "prepare_investment": "토큰 교환 준비하기", - "need_kyc_wallet": "토큰 교환을 위해 KYC 인증과 지갑 연결이 필요합니다.", "no_wallet": "연결된 지갑이 없습니다.", "wallet_connected": "지갑 연결이 완료되었습니다.", "event_guide_EL": "이벤트 기간 종료 후 EL이 해당 주소로 입금됩니다", @@ -500,8 +427,6 @@ "이 앱으로 무엇을 할 수 있나요?", "적립금은 무엇이고 어떻게 분배되나요?", "부동산 토큰과 EL을 교환하는 방법은 무엇인가요?", - "KYC가 거절되었습니다. 그 다음은 어떻게 해야 하나요?", - "KYC가 필요한 이유는 무엇인가요?", "이더리움 지갑 주소는 무엇이고, 어떻게 얻을 수 있나요?", "이더리움 지갑 주소를 등록하는 이유는 무엇인가요?" ], @@ -509,8 +434,6 @@ "현물 기반 ERC20 토큰 등록 또는 교환할 수 있습니다. 신분 인증 완료 후, 보유한 토큰을 기준으로 적립금을 수령할 수 있습니다.", "토큰을 보유하고 있는 기간에 비례한 추가 보상 토큰입니다. 토큰을 보유한 순간부터 적립이 계산되며 수량은 각각의 토큰마다 다를 수 있으므로 컨트랙트를 확인하시기 바랍니다.", "메인 화면에서 본인이 보유하고 있는 토큰의 종류를 확인할 수 있으며 교환을 원하는 토큰을 선택해서 들어갈 수 있습니다. 해당 페이지에서 '교환'이라는 버튼을 눌러 원하는 수량만큼 교환을 진행할 수 있습니다.", - "알림 메세지에서 KYC 거절 사유를 확인할 수 있습니다. 사유를 확인하여 KYC를 재요청하시기 바랍니다.", - "개개인간 토큰의 교환은 각자의 책임이지만, 수익 분배의 경우 각 토큰별 연동된 자산을 근거로 하기 때문에 정확한 신분 인증이 필요합니다.", "이더리움 또는 ERC 토큰 교환이 가능한 지갑의 주소입니다. 메타마스크(https://metamask.io/) 또는 MyEtherWallet(https://www.myetherwallet.com/) 등 다양한 서비스에서 생성 가능합니다. 생성 방법은 각각의 서비스 설명을 참고 바랍니다.", "본 앱은 각 토큰의 정보만을 제공하고 교환의 편의성만 제공하며 실질적인 교환은 개개인의 지갑에서 이뤄지는 탈중앙 서비스입니다. 따라서 본 앱을 사용하기 위해서는 실제 교환을 진행할 개인 지갑 주소가 필요합니다." ] diff --git a/src/i18n/zh-hans.json b/src/i18n/zh-hans.json index f7e63ea39..c1aadfb57 100644 --- a/src/i18n/zh-hans.json +++ b/src/i18n/zh-hans.json @@ -87,70 +87,6 @@ "start_service": "服务介绍", "existing_login": "已注册会员登录" }, - "kyc_label": { - "argos_terms": "查看隐私保密条款", - "agree": "同意", - "agree_start": "同意并开始使用", - "camera_access_return": "回到之前界面", - "shoot": "拍摄", - "passport": "护照", - "drivers_license": "驾照", - "government_id": "身份证", - "personal_data": "我的信息", - "first_name": "名", - "last_name": "姓", - "nationality": "国家", - "birthday": "出生年月日", - "gender": "性别", - "complete_input": "输入完成", - "shoot_again": "再次拍摄", - "submit": "提交", - "male": "男", - "female": "女" - }, - "kyc": { - "start": "KYC 认证", - "start_text": "大约需要2分钟。", - "start_step1": "拍摄身份证件照片。", - "start_step2": "请拿着身份证件自拍。", - "start_step3": "请输入个人信息。", - "step1": "1.请选择身份证件类型", - "step1_text": "在下一阶段, 将对您的身份证件拍照。", - "step1_complete": "1. 身份证件拍摄完成。", - "step1_complete_text": "请问是否清晰地拍摄了证件照片(没有模糊或上传合成照片)?", - "step1_tip_text_header": "照片清晰吗?", - "step1_tip_case1": "· 请放在有对比的背景上拍摄。", - "step1_tip_case2": "· 请在指定框架内拍摄。", - "step2": "2. 请自拍一张。", - "step2_text": "请问自拍照是否清晰(没有模糊或上传合成照片)?", - "step2_desc1": "请拿着第一阶段选择的身份证件自拍一张。", - "step2_desc2": "请输入与第一阶段选择的身份证件一致的信息。", - "step2_complete": "2. 自拍完成。", - "step2_complete_text": "请问拍摄的身份认证照片是否清晰(没有模糊或上传合成照片)?", - "step3": "3. 输入个人信息", - "step3_text": "请正确填写您的个​​人信息。", - "take_ID": "请拍摄身份证件正面。", - "take_ID_text": "请将身份证完整地拍摄下来。", - "submit": "身份验证完成。", - "submit_text": "身份验证完成后,将会发送消息通知您。", - "alert_id": "请选择身份证类型。", - "alert_data": "请输入所有个人信息。", - "submit_error": "KYC认证出现错误,请联系网站负责人。", - "camera_access_denied": "请允许使用手机相机。", - "camera_access_denied_text": "您需要在KYC认证阶段进行自拍。\n请允许使用手机相机,之后将继续进行KYC认证。", - "argos": "请阅读并同意Argos条款。", - "take_selfie_before_title": "请参考示例照片。", - "decline_warning": "如有以下情况,KYC认证可能会失败。", - "accepted_shoot": "准备就绪,开始拍照", - "decline_case1": "如果您提交了修图软件处理过的照片", - "decline_case2": "如果您提交了没拿着身份证件的自拍照", - "decline_case3": "如果您输入的信息与身份证件上的信息不一致", - "decline_case4": "如果您提交的身份证件不包含照片、姓名、出生日期、国籍中的一项或多项", - "decline_case5": "如果您提交的身份证件没有遮挡住最后几位数字(仅适用于韩国人)", - "networking_argos": "与Argos交流。请稍等片刻。", - "image_processing": "图像处理正在进行中。请稍等片刻。", - "result": "KYC认证由Argos机构负责。\n 请您等待1-2个工作日。" - }, "product": { "transaction_error": "该代币不能交易。", "transaction_ready": "已经准备好投资", @@ -158,7 +94,7 @@ "link_will_be_sent": "已通过邮件发送交易链接。", "send_purchase_link": "已通过邮件发送交易链接。\n 请在设置好Metamask的浏览器里打开这个链接。", "email_restriction": "30秒内只能申请一次邮件发送。\n 请在30秒后再次尝试。", - "non_purchasable": "本代币不能交易。\n 请确定是否进行了KYC认证和输入了正确的以太坊钱包地址。", + "non_purchasable": "本代币不能交易。\n 请确定是否进行了认证和输入了正确的以太坊钱包地址。", "restricted_country": "所在国家不能交易。", "subscribed": "预约成功。将会给您发送商品最新信息。", "subscribed_already": "已经预约成功。", @@ -237,7 +173,7 @@ "eth_price": "以太币数量", "property_type": "房地产类型", "recovery": "金额", - "non_purchasable": "您需要进行KYC认证和绑定钱包", + "non_purchasable": "您需要进行认证和绑定钱包", "view_details": "产品详细信息", "available_token": "可投资的房地产代币数量", "minimum_el": "最少投资额度", @@ -250,13 +186,6 @@ }, "more_label": { "more": "更多", - "none_kyc": "您需要进行KYC认证。", - "proceed_kyc": "KYC认证正在进行中。", - "success_kyc": "KYC认证完成。", - "rejected_kyc": "KYC认证失败,请再申请一次。", - "none_kyc_duplicate_label": "为了使用App", - "proceed_kyc_duplicate_label": "pending", - "success_kyc_duplicate_label": "approved", "confirm": "确认", "investment_history": "投资明细", "transaction_history": "交易明细", @@ -327,7 +256,6 @@ "disconnect_and_new": "绑定新的钱包地址。" }, "more": { - "kyc_proceeding_wait": "请稍等,正在进行KYC认证,通过后会向您发送通知。", "no_transaction": "该期间内没有交易。", "contact_text": "请填写咨询事项并提交。", "question_submitted": "您的问题已成功提交。,我们会尽快通过邮件与您联系。", @@ -346,7 +274,7 @@ "withdrawl_confirm": "您真的要退出吗?", "withdrawl_check_1": "请在售出持有产品(%{legacyOwnerships})并提款后,再删除账号。", "withdrawl_check_2": "在删除账号后,您将不能从爱立厦Elysia的内部钱包中提款。\n请操作提款后,再删除账号。(EL %{legacyEl}, USD %{legacyUsd})", - "withdrawl_check_3": "您的个人信息(包括邮箱地址和KYC验证记录)将会被全部删除。", + "withdrawl_check_3": "您的个人信息(包括邮箱地址和验证记录)将会被全部删除。", "withdrawl_check_4": "在删除账号后,您将承担房地产所有权相关的所有潜在经济损失。", "confirm_disconnect": "您要解除钱包地址绑定吗?\n 您的资产所有权保持不变,可以通过重新绑定钱包进行查看。", "confirm_disconnect_and_new": "在绑定新的钱包地址前,您需要解除已绑定的钱包地址。\n解除绑定后,将保留现有钱包地址的资产所有权。\n 请问要解除已绑定的钱包地址吗?" @@ -410,7 +338,6 @@ "connect_wallet": "绑定钱包", "get_EL": "获得1,000EL代币", "prepare_investment": "准备开始交换代币", - "need_kyc_wallet": "为了交换代币,您必须进行KYC认证和绑定钱包。", "no_wallet": "没有绑定任何钱包。", "wallet_connected": "成功绑定钱包。", "event_guide_EL": "活动结束后,EL代币将被存入相应钱包地址中。", @@ -496,8 +423,6 @@ "我可以用这个应用程序(App)做什么?", "储蓄积分是什么? 如何获得储蓄积分呢?", "房地产代币和EL代币如何交换呢?", - "KYC认证被拒绝后,该如何处理呢?", - "为什么需要KYC认证呢?", "什么是以太坊钱包地址?该如何获得呢?", "为什么要绑定以太坊钱包地址?" ], @@ -505,8 +430,6 @@ "您可以注册或交换基于现货的以太币。在完成身份验证后,您可以根据持有的代币获得储蓄积分。", "这是一个额外的奖励代币,与持有代币的数量和时间成正比。从您持有代币的那一刻起计算累计,根据代币持有量的不同奖励规则会有所不同,具体信息请查看合同。", "您可以在主页面确定持有的代币种类,还可以选择并输入要交换的代币。单击页面上的“取消交换”按钮,可以交换任意数量的代币。", - "您可以在通知消息中查看KYC认证被拒绝的原因,请确定原因后,再次按照要求进行KYC验证。", - "每个单独的代币交换都是单独进行的,但是收入的分配是基于每个代币链接的资产,因此需要准确的标识。", "是可以交换以太币或ERC代币的钱包地址。可以在各种钱包中创建它,例如Metamask(https://metamask.io/)或MyEtherWallet(https://www.myetherwallet.com/)。如何创建请参考每个钱包的介绍。", "此应用程序(App)提供每个产品的信息,并且提供交易服务,实际的交换是在提供去中心化服务的私人钱包中进行。因此,在使用此应用程序时,您需要在私人钱包中进行实际的交换。" ] diff --git a/src/modules/dashboard/Dashboard.tsx b/src/modules/dashboard/Dashboard.tsx index b85800d02..f61443c60 100644 --- a/src/modules/dashboard/Dashboard.tsx +++ b/src/modules/dashboard/Dashboard.tsx @@ -6,7 +6,6 @@ import { SummaryReport } from './SummaryReport'; import OwnershipDetail from './OwnershipDetail'; import ProductData from './ProductData'; import ProductNotice from './ProductNotice'; -import PreparingInvestment from './PreparingInvestment'; import InvestmentGuide from './InvestmentGuide'; import { RemainingBalance } from './RemainingBalance'; @@ -33,10 +32,6 @@ export const Dashboard = () => { name={DashboardPage.InvestmentGuide} component={InvestmentGuide} /> - void; -}; - -const StatusButton: FunctionComponent = (props: ButtonProps) => { - return ( - - - - ); -}; - -const PreparingInvestment: FunctionComponent = () => { - const navigation = useNavigation(); - const { kycStatus, ethAddresses } = useContext(UserContext).user; - const preparingCompletion = - kycStatus === KycStatus.SUCCESS && ethAddresses?.length > 0; - - return ( - } - backButtonHandler={() => navigation.goBack()} - isScrolling={false} - body={ - <> - {preparingCompletion && Platform.OS === 'ios' && ( - - )} - - { - if ([KycStatus.REJECTED, KycStatus.NONE].includes(kycStatus)) { - navigation.navigate('Kyc', { screen: KycPage.StartKYC }); - } - }} - /> - 0 - ? i18n.t('dashboard.wallet_connected') - : i18n.t('dashboard.no_wallet') - } - color={ethAddresses?.length > 0} - onPress={() => { - if (!(ethAddresses?.length > 0)) { - navigation.navigate('More', { - screen: MorePage.RegisterEthAddress, - }); - } - }} - /> - - - } - button={ - navigation.navigate('ProductsMain', { refresh: true })} - style={{ - backgroundColor: preparingCompletion ? '#3679B5' : '#D0D8DF', - }} - /> - } - /> - ); -}; - -export default PreparingInvestment; diff --git a/src/modules/kyc/Argos.tsx b/src/modules/kyc/Argos.tsx deleted file mode 100644 index 9932330bd..000000000 --- a/src/modules/kyc/Argos.tsx +++ /dev/null @@ -1,188 +0,0 @@ -import React, { FunctionComponent, useContext } from 'react'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import i18n from '../../i18n/i18n'; -import LocaleType from '../../enums/LocaleType'; -import WrapperLayout from '../../shared/components/WrapperLayout'; -import { P1Text } from '../../shared/components/Texts'; -import UserContext from '../../contexts/UserContext'; - -interface Props { - updateAgree: () => void; -} -export const Argos: FunctionComponent = (props: Props) => { - const { user } = useContext(UserContext); - const localeTerms = - terms[user.language === LocaleType.KO ? user.language : LocaleType.EN]; - - return ( - - } - button={ - - } - /> - ); -}; - -const terms = { - ko: `개인정보처리 및 쿠키 정책\n - 1. 개요 - 아르고스 솔루션을 제공하는 주식회사 풀스택(이하 ‘회사’)는 귀하의 개인 정보를 보호하고 존중합니다. 우리는 모든 직원, 서비스 제공 및 제휴사가 이러한 의무를 준수하도록 보장하기 위해 동등하게 노력합니다. 또한 정보통신망 이용촉진 및 정보보호 등에 관한 법률, 개인정보보호법 및 관계 법령의 개인정보보호규정 등을 준수합니다. 본 ‘개인정보처리방침’은 회사가 제공하는 모든 제품, 서비스, 콘텐츠, 기술 등에 적용됩니다. 개인데이터에 대한 처리에 대한 당사의 견해와 관행을 이해하기 위해 다음을 주의 깊게 읽으십시오. - \n2. 수집하는 개인정보 항목 - 회사는 회사의 서비스를 제공하기 위해 필요한 최소한의 개인정보를 수집합니다. 개인정보 수집 이용을 원하지 않는 경우에 이용자는 거부할 수 있으나, 서비스 이용에 일부 제한이 있을 수 있습니다. - 회사가 수집하는 개인정보는 하기와 같습니다. - 1) 회원 가입 - 이메일, 비밀번호 - 2) KYC / AML 서비스 제공 - 회사는 KYC / AML 서비스에 대한 다음 정보를 수집합니다. - 성명, 생년월일 및 국적과 같은 신분에 관한 정보; - 이메일 주소, 전화 번호와 같은 연락처 정보; - 블록 체인 주소 및 공개 키와 같은 블록 체인 식별자. - 여권 사진, 정부 발급 신분증 및 주민등록증과 같은 신원 정보; - 서비스 제공 프로세스 중에 자동으로 생성되는 정보 : 연결 IP 정보, 서비스 사용 로그, 액세스 로그, 쿠키 - \n3. 개인정보의 수집 및 이용 - 회사는 수집된 정보를 다음과 같은 목적으로 사용합니다. - 회사의 법적, 규제 및 계약 상 의무를 이행합니다. 신원 확인, 회원 탈퇴와 같은 회원 관리; 회사의 원활한 서비스 운영을 방해할 수 있는 행위를 방지하고 제재합니다. 시장 분석 및 조사, 인구 통계 학적 데이터 공유; 마케팅 목적을 위한 개인 데이터 처리 : 귀하는 이 목적을 수행하기 전에 귀하의 동의를 요청하는 통지를 받게 됩니다. 사고 및 사고 조사에 대한 법적 의무에 따라 법적 조사 데이터를 제공합니다. - \n4. 개인정보의 보유 및 이용기간 - 대부분 당사는 귀하의 개인 데이터를 최대 5 년간 보관합니다. 경우에 따라 법의 요구에 따라 귀하의 개인 데이터 중 일부를 장기간 보관해야 할 수도 있습니다. 우리의 재량에 따라, 우리는 법적 의무를 이행하기 위해 합리적으로 필요하다고 판단되는 기간 동안 개인 정보를 보유할 수 있습니다. 또한 개별적으로 이용자의 동의를 받을 경우에는 계약된 기간에 따라 개인정보를 보유합니다. - 1) 로그인 기록 - 관련 법령 : 통신비밀보호법. 보존 기간 : 3개월 - 2) 서비스공급에 관한 기록 - 관련 법령 : 전자상거래 등에서의 소비자보호에 관한 법률. 보존 기간 : 5년 - \n5. 개인정보의 저장 - 회사는 개인정보의 암호화 및 보호를 위해 해외 클라우드 서비스를 이용합니다. 이와 관련하여 개인정보의 저장에 관해 다음과 같이 공지합니다. - Amazon Web Service 사용에 따른 개인정보의 클라우드 서버 저장 - 1) 저장 항목. 회원 가입 및 KYC/AML 서비스 제공 시 수집된 정보 - 2) 이전 국가 및 일시. 국가 : Amazon Web Service 서비스 제공 지역. 일시 : 각 회원가입 시기, 정보 입력 및 변경 시점 - 3) 클라우드 서비스 제공자. 업체명 : Amazon Web Services, Inc. 주소 : 1200 12th Avenue South, Suite 1200, Seattle, WA 98144, United States. 전화 : +1-206-266-4064 - \n6. 개인정보의 파기 방법 - 이용자의 개인정보는 내부 방침에 따른 이용 목적 달성 및 기타 관련 법령에 의한 정보보유 사유에 따라 일정기간이 지난 후 파기됩니다. 파기 방법은 하기와 같습니다. - 전자적 파일 형태인 경우: 복원이 불가능한 방법으로 영구 삭제; 상기 전자적 파일 외의 기록물, 인쇄물, 서면, 그 밖의 기록매체인 경우 : 파쇄 또는 소각; - \n7. 개인정보 보호 책임자 - 회사는 개인정보 보호에 대한 업무 총괄, 개인정보 처리와 관련된 정보주체의 응대 및 피해구제를 위하여 하기와 같이 개인정보보호 책임자를 지정합니다. - 개인정보 보호 업무 연락처 Email : kyc.support@argos-solutions.io. 개인정보 보호 책임자 : 손성호 이사 - \n8. 정보주체의 권리와 그 행사 방법 - 1) GDPR에 근거하여 정보주체는 회사에 대해 언제든지 다음 각호의 개인정보보호 관련 권리를 행사할 수 있습니다. - 개인정보 열람요구 - 개인정보 정정요구 - 개인정보 삭제요구 - 개인정보 처리정지 요구 - 2) 1항에 따른 권리 행사는 개인정보 보호 업무 연락처 및 책임자에게 서면, 전자우편 등을 통하여 하실 수 있으며 회사는 처리요청에 대해 지체 없이 조치합니다. - 3) 정보주체가 정정 또는 삭제를 요구한 경우에 회사는 해당 요청을 완료할 때까지 개인정보를 이용하거나 제공하지 않습니다. - 4) 정보주체는 언제든지 등록되어 있는 자신의 개인정보를 조회, 수정 및 삭제 요청을 할 수 있습니다. - \n9. 아르고스의 쿠키 정책 - 해당 사항은 argos-solutions.io 에서 액세스 할 수 있는 argos-solutions의 쿠키 정책입니다. - 쿠키 란 무엇인가? - 대부분의 웹 사이트에서 흔히 볼 수 있는 것처럼 이 사이트에서는 컴퓨터에 다운로드 되는 작은 파일 인 쿠키를 사용하여 경험을 향상시킵니다. 이 페이지는 그들이 수집 한 정보, 사용 방법 및 때때로 이러한 쿠키를 저장해야 하는 이유를 설명합니다. 또한 이러한 쿠키가 저장되는 것을 막을 수 있는 방법을 공유하지만 사이트 기능의 특정 요소를 다운 또는 '중단'시킬 수 있습니다. 쿠키에 대한보다 일반적인 정보는 Wikipedia의 HTTP 쿠키에 대한 기사를 참조하십시오. - 우리가 쿠키를 사용하는 방법 - 우리는 아래에서 자세히 설명하는 다양한 이유로 쿠키를 사용합니다. 불행히도 대부분의 경우 이 사이트에 추가되는 기능 및 기능을 완전히 비활성화하지 않고 쿠키를 사용하지 않도록 설정하는 산업 표준 옵션이 없습니다. 사용하는 서비스를 제공하는 데 사용되는 경우에 필요하지 않은 지 여부를 모르는 경우 모든 쿠키를 그대로 두는 것이 좋습니다. - 쿠키 비활성화 - 브라우저의 설정을 조정하여 쿠키 설정을 막을 수 있습니다 (브라우저 도움말 참조). 쿠키를 사용 중지하면이 웹 사이트 및 귀하가 방문하는 다른 많은 웹 사이트의 기능에 영향을 미칩니다. 쿠키를 사용하지 않으면 일반적으로 이 사이트의 특정 기능 및 기능이 비활성화됩니다. 따라서 쿠키를 비활성화하지 않는 것이 좋습니다. - 우리가 설정한 쿠키 - 1. 양식 관련 쿠키 - 연락처 페이지 나 의견 양식에 있는 양식을 통해 데이터를 제출할 때 쿠키는 향후 통신을 위해 사용자 세부 정보를 기억하도록 설정될 수 있습니다. - 2. 제 3 자 쿠키 - 특별한 경우에는 신뢰할 수 있는 제 3자가 제공하는 쿠키도 사용합니다. 다음 섹션에서는 이 사이트를 통해 발생할 수 있는 제 3 자 쿠키에 대해 자세히 설명합니다. - 이 사이트는 귀하가 사이트 사용 방법과 귀하의 경험을 향상시킬 수 있는 방법을 이해하도록 돕기 위해 웹상에서 가장 광범위하고 신뢰할 수 있는 분석 솔루션 중 하나 인 Google Analytics를 사용합니다. 이러한 쿠키는 사이트에 머문 시간과 방문한 페이지를 추적하여 매력적인 콘텐츠를 계속 제작할 수 있습니다. - Google Analytics 쿠키에 대한 자세한 내용은 공식 Google Analytics 페이지를 참조하십시오. - 제 3 자 분석은 이 사이트의 사용을 추적하고 측정하여 매력적인 콘텐츠를 계속 제작할 수 있도록 합니다. 이러한 쿠키는 귀하가 사이트 또는 페이지 방문에 소비하는 시간을 추적할 수 있습니다. 이는 귀하가 사이트를 개선할 수 있는 방법을 이해하는 데 도움이 됩니다. - 더 많은 정보를 찾고 계신다면 선호하는 연락 방법 중 하나인 이메일 : support@argos-solutions.io를 통해 문의하실 수 있습니다. - \n10. 추가정보 - 개인정보의 침해에 대한 신고나 상담이 필요하신 경우 아래 기관으로 문의하시기 바랍니다. - 개인정보 침해신고 센터 : (국번없이)118 (http://privacy.kisa.or.kr) - 개인정보분쟁조정위원회 : 1833-6972 (http://www.kopico.go.kr) - 대검찰청 사이버수사과 : (국번없이)1301 (http://www.spo.go.kr) - 경찰청 사이버안전국 : (국번없이)182 (http://cyber.go.kr) - \n11. 회사 정보 - 대표자 : 이원규 - 사업자 등록 번호 : 303-86-00956 - 회사명 : ㈜풀스택`, - en: `Privacy and Cookie Policy - 1. Summary - Full Stack Inc. ("Company"), which provides Argos Solutions, protects and respects your personal information. We render our best effort to ensure that all employees, service providers and affiliates comply with the Personal Information Protection Act. This "Privacy Policy" applies to all products, services, contents, technology, etc. provided by the Company. Please read the following carefully to understand our views and practices regarding the processing of personal data. - \n2. Personal Information Collected - The Company collects only the minimum amount of personal information necessary to provide the Company's services. If you do not wish to have the Company to collect certain personal information, you may refuse to provide such information, but there may be some limitations to the use of the Company’s services. - Personal information collected by the Company are as follows - 1) Account Registration - Email address, password - 2) KYC / AML Service - The Company collects the following information for KYC/AML service. - Information on identity, such as name, date of birth and nationality; - Contact information such as email address, phone number; - Blockchain identifiers such as blockchain addresses and public keys; - Identification information, such as passport photos, government-issued identification, and a national identification card; - Information automatically generated during the service provision process: connection IP information, service utilization log, access log, cookies; - \n3. Collection and Use of Personal Information - The Company uses the collected information about you for the following purposes: - Fulfilling the Company's legal, regulatory and contractual obligations; Member management such as identity verification, membership withdrawal; Preventing and sanctioning acts that may disrupt the Company's smooth operation of services; Conducting market analysis and research, sharing demographic data; Processing Personal Data for Marketing Purposes: You will receive a notice requesting you consent prior to the performance of this purpose. Providing legal investigation data in accordance with legal obligations for investigation of incidents and accidents; - \n4. Retention and Use Period of Personal Information - Unless agreed otherwise, the Company keeps your personal data for up to 5 years. In some cases, you may be required to retain some of your personal data for a certain period of time in accordance with the relevant law and regulations. At our discretion, we may retain personal information for a period of time reasonably necessary to fulfill our legal obligations. In addition, if you individually agree with you, we will keep your personal information for the contracted period of time. - 1) Login History Related Laws: Telecommunications Privacy Act Retention period: 3 months - 2) Records on Service Provision Related Laws: Act on Consumer Protection in Electronic Commerce, Etc. Retention period: 5 years - \n5. Storing Personal Information - The Company uses Amazon Web Services cloud computing services to encrypt and protect personal information. - 1) Stored Information Information collected when accounting and providing KYC / AML service - 2) Time and location of data storage Country : Countries where Amazon Web Services are provided Time : At signup and inputing/editing personal information - 3) Cloud Service Provider Company : Amazon Web Services, Inc. Address : 1200 12th Avenue South, Suite 1200, Seattle, WA 98144, United States Tel : +1-206-266-4064 - \n6. Destruction of Personal Information - The personal information of the users shall be destroyed after a certain period of time, depending on the purpose of using the service according to the internal policy and the reasons for the information retention under the related statutes. The method and manner of destruction are as follows. - In electronic file format: permanently deleted in an unrecoverable manner; For records other than electronic files above, printed, written or otherwise recorded media: shredded or incinerated; - \n7. Personal Information Protection Officer - The Company designates the person in charge of personal information protection as follows for the purpose of the Company's handling and handling of personal information. - Contact Information Email : kyc.support@argos-solutions.io Protection Officer : Sungho Son (Argos Director) - \n8. Rights of Information Authorities and How to Exercise Them - 1) In accordance with the GDPR, you may exercise the following rights regarding your personal information protection against the Company at any time: - Requesting access to your personal information access demand - Requesting correction to your personal information correction request - Requesting deletion of your personal information deletion request - Requesting suspension to your personal information processing - 2) The rights under Section 7-1 can be exercised by emailing the person in charge and/or the email address under Personal Information Protection Officer, and the Company shall take action against the request without delay. - 3) If the information subject requests correction or deletion, the Company will not use or provide the personal information of the subject until the request is completed. - 4) The information subject can request to view, modify, and delete his or her personal information accounted at any time. - \n9. Cookie Policy for argos-solutions - This is the Cookie Policy for argos-solutions, accessible from https://www.argos-solutions.io/ - What Are Cookies - As is common practice with almost all professional websites this site uses cookies, which are tiny files that are downloaded to your computer, to improve your experience. This page describes what information they gather, how we use it and why we sometimes need to store these cookies. We will also share how you can prevent these cookies from being stored however this may downgrade or 'break' certain elements of the sites functionality. For more general information on cookies see the Wikipedia article on HTTP Cookies. - How We Use Cookies - We use cookies for a variety of reasons detailed below. Unfortunately in most cases there are no industry standard options for disabling cookies without completely disabling the functionality and features they add to this site. It is recommended that you leave on all cookies if you are not sure whether you need them or not in case they are used to provide a service that you use. - Disabling Cookies - You can prevent the setting of cookies by adjusting the settings on your browser (see your browser Help for how to do this). Be aware that disabling cookies will affect the functionality of this and many other websites that you visit. Disabling cookies will usually result in also disabling certain functionality and features of the this site. Therefore it is recommended that you do not disable cookies. - The Cookies We Set - 1. Forms related cookies - When you submit data to through a form such as those found on contact pages or comment forms cookies may be set to remember your user details for future correspondence. - 2. Third Party Cookies - In some special cases we also use cookies provided by trusted third parties. The following section details which third party cookies you might encounter through this site. - This site uses Google Analytics which is one of the most widespread and trusted analytics solution on the web for helping us to understand how you use the site and ways that we can improve your experience. These cookies may track things such as how long you spend on the site and the pages that you visit so we can continue to produce engaging content. - For more information on Google Analytics cookies, see the official Google Analytics page. - Third party analytics are used to track and measure usage of this site so that we can continue to produce engaging content. These cookies may track things such as how long you spend on the site or pages you visit which helps us to understand how we can improve the site for you. - However if you are still looking for more information then you can contact us through one of our preferred contact methods: ​Email: support@argos-solutions.io - \n10. More - If you need to report or discuss any infringement of your personal information, please contact: - Privacy Reporting Center : (http://privacy.kisa.or.kr) - Personal Information Dispute Adjustment Committee: 1833-6972 (http://www.kopico.go.kr) - Supreme Public Prosecutors' Office Cyber Crime Department :(http://www.spo.go.kr) - National Police Agency Cybersecurity Agency : (http://cyber.go.kr) - \n11. Company Information - Wonkyu Lee - Business License No.: 303-86-00956 - FullStack Inc. - E-mail: info@argos-solutions.io - Address: 13F, 343 Samil-daero, Jung-gu, Seoul, Korea 04538 - ⓒ 2018 FullStack Inc. All rights reserved. - `, -}; diff --git a/src/modules/kyc/ConfirmID.tsx b/src/modules/kyc/ConfirmID.tsx deleted file mode 100644 index f89859a2e..000000000 --- a/src/modules/kyc/ConfirmID.tsx +++ /dev/null @@ -1,208 +0,0 @@ -/* eslint-disable @typescript-eslint/camelcase */ -import React, { FunctionComponent, useContext, useState } from 'react'; -import { - ActivityIndicator, - Dimensions, - Modal, - Platform, - View, -} from 'react-native'; -import styled from 'styled-components/native'; -import { useNavigation } from '@react-navigation/native'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import WarningImg from '../../shared/assets/images/warning_white.png'; -import i18n from '../../i18n/i18n'; -import { KycPage } from '../../enums/pageEnum'; -import { - H3Text, - P1Text, - P3Text, - SubTitleText, -} from '../../shared/components/Texts'; -import WrapperLayout from '../../shared/components/WrapperLayout'; -import { LoadingStatus } from '../../enums/LoadingStatus'; -import KycContext from '../../contexts/KycContext'; -import FunctionContext from '../../contexts/FunctionContext'; - -const SelfieImg = styled.Image` - width: ${Platform.OS === 'android' - ? `${Dimensions.get('window').width * 0.6}px` - : '90%'}; - height: ${Platform.OS === 'android' - ? `${Dimensions.get('window').width * 0.9}px` - : '50%'}; - justify-content: center; - align-content: center; - left: ${Platform.OS === 'android' ? '20%' : '5%'}; -`; -const WarningIcon = styled.Image` - width: 12px; - height: 12px; - margin: 0px 5px; - top: 5px; -`; -const WarningWrapper = styled.View` - background-color: #cc3743; - width: 80%; - height: 90px; - border-radius: 15px; - margin: 10% auto 0px auto; -`; - -const ConfirmID: FunctionComponent<{}> = () => { - const navigation = useNavigation(); - const { idPhoto, idType } = useContext(KycContext); - const { Server } = useContext(FunctionContext); - const [status, setStatus] = useState(LoadingStatus.NONE); - - const uploadPhoto = () => { - Server.kycUpload( - idPhoto.uri, - idType === 'passport' ? 'passport' : 'government_id', - ) - .then((_res) => { - setStatus(LoadingStatus.SUCCESS); - navigation.navigate(KycPage.TakeSelfieBefore); - }) - .catch((e) => { - if (e.response.status === 404) { - alert(i18n.t('kyc.submit_error')); - navigation.navigate('Main', { screen: 'MoreMain' }); - } else if (e.response.status === 500) { - alert(i18n.t('account_errors.server')); - } - setStatus(LoadingStatus.NONE); - }); - }; - - const callKycApi = () => { - setStatus(LoadingStatus.PENDING); - Server.kycInit() - .then(uploadPhoto) - .catch((e) => { - if (e.response.status === 400) { - alert(i18n.t('kyc.submit_error')); - } else if (e.response.status === 404) { - alert(i18n.t('kyc.submit_error')); - } - }); - }; - - return ( - <> - { - - - - - - - } - navigation.goBack()} - title={i18n.t('kyc.step1_complete')} - subTitle={ - - } - isScrolling={false} - body={ - <> - - - - - - - - - - - } - button={ - <> - navigation.navigate(KycPage.TakeID)} - variant={'WhiteTheme'} - style={{ - marginTop: 'auto', - marginBottom: 10, - }} - /> - { - callKycApi(); - }} - /> - - } - /> - {status === LoadingStatus.PENDING && ( - - )} - - ); -}; -export default ConfirmID; diff --git a/src/modules/kyc/ConfirmSelfie.tsx b/src/modules/kyc/ConfirmSelfie.tsx deleted file mode 100644 index 109b51a8e..000000000 --- a/src/modules/kyc/ConfirmSelfie.tsx +++ /dev/null @@ -1,128 +0,0 @@ -/* eslint-disable @typescript-eslint/camelcase */ -import React, { FunctionComponent, useContext, useState } from 'react'; -import styled from 'styled-components/native'; -import { useNavigation } from '@react-navigation/native'; - -import { ActivityIndicator, Modal, Platform, View } from 'react-native'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import i18n from '../../i18n/i18n'; -import { KycPage } from '../../enums/pageEnum'; -import { P1Text } from '../../shared/components/Texts'; -import WrapperLayout from '../../shared/components/WrapperLayout'; -import { LoadingStatus } from '../../enums/LoadingStatus'; -import KycContext from '../../contexts/KycContext'; -import FunctionContext from '../../contexts/FunctionContext'; - -const SelfieImg = styled.Image` - width: 90%; - height: 80%; - justify-content: center; - align-content: center; - left: 5%; -`; - -const ConfirmSelfie: FunctionComponent<{}> = () => { - const navigation = useNavigation(); - const { Server } = useContext(FunctionContext); - const { selfie } = useContext(KycContext); - const [status, setStatus] = useState(LoadingStatus.NONE); - - const callKycApi = () => { - setStatus(LoadingStatus.PENDING); - - Server.kycUpload(selfie.uri, 'selfie') - .then((_res) => { - setStatus(LoadingStatus.SUCCESS); - navigation.navigate(KycPage.PersonalDataInput); - }) - .catch((e) => { - if (e.response.status === 404) { - alert(i18n.t('kyc.submit_error')); - navigation.navigate('Main', { screen: 'MoreMain' }); - } else if (e.response.status === 500) { - alert(i18n.t('account_errors.server')); - } - setStatus(LoadingStatus.NONE); - }); - }; - - return ( - <> - { - - - - - - - } - navigation.navigate(KycPage.TakeSelfie)} - title={i18n.t('kyc.step2_complete')} - subTitle={ - - } - body={ - - } - button={ - <> - navigation.navigate(KycPage.TakeSelfie)} - variant={'WhiteTheme'} - style={{ marginTop: 'auto', marginBottom: 10 }} - /> - { - callKycApi(); - }} - /> - - } - /> - {status === LoadingStatus.PENDING && ( - - )} - - ); -}; -export default ConfirmSelfie; diff --git a/src/modules/kyc/Kyc.tsx b/src/modules/kyc/Kyc.tsx deleted file mode 100644 index bdecfe49c..000000000 --- a/src/modules/kyc/Kyc.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import React, { FunctionComponent, useState } from 'react'; -import * as ImageManipulator from 'expo-image-manipulator'; -import { createStackNavigator } from '@react-navigation/stack'; -import StartKYC from './StartKYC'; -import SelectID from './SelectID'; -import TakeID from './TakeID'; -import ConfirmID from './ConfirmID'; -import PersonalDataInput from './PersonalDataInput'; -import TakeSelfieBefore from './TakeSelfieBefore'; -import TakeSelfie from './TakeSelfie'; -import ConfirmSelfie from './ConfirmSelfie'; -import { KycPage } from '../../enums/pageEnum'; -import KycContext from '../../contexts/KycContext'; - -const Stack = createStackNavigator(); - -interface KycState { - idType: string; - idPhoto: ImageManipulator.ImageResult; - selfie: ImageManipulator.ImageResult; -} -const defaultState = { - idType: '', - idPhoto: {} as ImageManipulator.ImageResult, - selfie: {} as ImageManipulator.ImageResult, -}; - -export const Kyc: FunctionComponent<{}> = () => { - const [state, setState] = useState(defaultState); - - return ( - { - setState({ ...state, idType: type }); - }, - setIdPhoto: (photo: ImageManipulator.ImageResult) => { - setState({ ...state, idPhoto: photo }); - }, - setSelfie: (photo: ImageManipulator.ImageResult) => { - setState({ ...state, selfie: photo }); - }, - }}> - - - - - - - - - - - - ); -}; diff --git a/src/modules/kyc/PersonalDataInput.tsx b/src/modules/kyc/PersonalDataInput.tsx deleted file mode 100644 index cabad8e75..000000000 --- a/src/modules/kyc/PersonalDataInput.tsx +++ /dev/null @@ -1,418 +0,0 @@ -import React, { FunctionComponent, useContext, useState } from 'react'; -import { - View, - Platform, - TouchableOpacity, - Text, - ScrollView, - Dimensions, -} from 'react-native'; -import styled from 'styled-components/native'; -import { useNavigation } from '@react-navigation/native'; - -import { Picker } from '@react-native-community/picker'; -import { SafeAreaView } from 'react-navigation'; -import { TextField } from '../../shared/components/TextField'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import { Modal } from '../../shared/components/Modal'; -import KycSubmitPng from './images/kycsubmit.png'; -import i18n from '../../i18n/i18n'; -import { NationInput } from './components/NationInput'; -import { DateInput } from './components/DateInput'; -import { ShortOptionButton } from './components/ShortOptionButton'; -import { - P3Text, - H1Text, - SubTitleText, - P1Text, -} from '../../shared/components/Texts'; -import nations from './components/argos.json'; -import IosPickerModal from '../../shared/components/IosPickerModal'; -import KycContext from '../../contexts/KycContext'; -import { BackButton } from '../../shared/components/BackButton'; -import FunctionContext from '../../contexts/FunctionContext'; - -const IdImg = styled.Image` - margin-top: 10px; - width: ${Platform.OS === 'android' ? 200 : '100%'}; - height: ${Platform.OS === 'android' - ? `${Dimensions.get('window').width * 0.9}px` - : '200px'}; - left: ${Platform.OS === 'android' ? '22%' : '0px'}; - resize-mode: cover; -`; -const ConfirmImg = styled.Image` - width: 150px; - height: 150px; - align-self: center; -`; - -const PersonalDataInput: FunctionComponent<{}> = (props) => { - const [state, setState] = useState({ - gender: '', - firstName: '', - lastName: '', - nationality: '', - selectedNationality: '', - birthday: '', - modalVisible: false, - submitDisabled: false, - nationModalVisible: false, - birthdayModalVisible: false, - }); - - const navigation = useNavigation(); - const { idType, idPhoto } = useContext(KycContext); - const { Server, setKycStatus } = useContext(FunctionContext); - - const nationList = nations.map((nation, Key) => ( - - )); - const setModalVisible = (visible: boolean) => { - setState({ ...state, modalVisible: visible, submitDisabled: true }); - }; - - const setNationality = (input: string) => { - setState({ ...state, nationality: input }); - }; - - const setBirthday = (input: string) => { - setState({ ...state, birthday: input }); - }; - - const callKycApi = () => { - if ( - state.gender === '' || - state.firstName === '' || - state.lastName === '' || - state.birthday === '' || - state.nationality === '' - ) { - alert(i18n.t('kyc.alert_data')); - setState({ ...state, submitDisabled: false }); - } else { - Server.kycInformation( - state.firstName, - state.lastName, - state.nationality, - state.birthday, - state.gender, - idType === 'passport' ? 'passport' : 'government_id', - ) - .then((_res) => { - setModalVisible(true); - }) - .catch((e) => { - if (e.response.status === 404) { - alert(i18n.t('kyc.submit_error')); - navigation.navigate('Main', { screen: 'MoreMain' }); - } else if (e.response.status === 500) { - alert(i18n.t('account_errors.server')); - } - }); - } - }; - return ( - - - { - navigation.goBack(); - }} - style={{ - width: 30, - marginTop: Platform.OS === 'android' ? 25 : 5, - marginLeft: '5%', - }} - /> - - {i18n.t('kyc.step3')} - - - - - - - { - setState({ ...state, lastName: input }); - }} - style={{ - marginTop: 20, - }} - /> - { - setState({ ...state, firstName: input }); - }} - style={{ - marginTop: 20, - }} - /> - {Platform.OS === 'android' ? ( - - ) : ( - <> - - { - setState({ ...state, nationModalVisible: true }); - }}> - - - - )} - - {Platform.OS === 'android' ? ( - - - - ) : ( - { - setState({ ...state, birthdayModalVisible: true }); - }}> - - - )} - - - - setState({ - ...state, - gender: state.gender === 'male' ? '' : 'male', - }) - } - /> - - setState({ - ...state, - gender: state.gender === 'female' ? '' : 'female', - }) - } - /> - - - - {state.modalVisible === true && ( - - - - - - } - visible={state.modalVisible} - modalHandler={() => { - setModalVisible(false); - setKycStatus(); - navigation.navigate('Main', { screen: 'MoreMain' }); - }}> - )} - - { - setState({ ...state, submitDisabled: true }); - callKycApi(); - }} - disabled={state.submitDisabled} - style={{ - backgroundColor: state.submitDisabled ? '#D0D8DF' : '#3679B5', - marginBottom: 20, - }} - /> - {(state.modalVisible || - state.nationModalVisible || - state.birthdayModalVisible) && ( - - )} - { - setState({ ...state, birthdayModalVisible: false }); - }} - buttonNumber={1} - children={ - - } - /> - { - setState({ - ...state, - nationModalVisible: false, - nationality: state.selectedNationality, - }); - }} - cancelHandler={() => { - setState({ ...state, nationModalVisible: false }); - }} - buttonNumber={2} - children={ - { - setState({ ...state, selectedNationality: itemValue.toString() }); - }}> - {nationList} - - } - /> - - ); -}; -export default PersonalDataInput; diff --git a/src/modules/kyc/SelectID.tsx b/src/modules/kyc/SelectID.tsx deleted file mode 100644 index c47b7521d..000000000 --- a/src/modules/kyc/SelectID.tsx +++ /dev/null @@ -1,140 +0,0 @@ -import React, { FunctionComponent, useContext, useState } from 'react'; -import { View } from 'react-native'; -import styled from 'styled-components/native'; -import { useNavigation } from '@react-navigation/native'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import { OptionButton } from './components/OptionButton'; -import CheckedPng from './images/checked.png'; -import PassportPng from './images/passport.png'; -import DriverPng from './images/driver.png'; -import IDCardPng from './images/idcard.png'; -import CheckedPassportPng from './images/checkedpassport.png'; -import CheckedDriverPng from './images/checkeddriver.png'; -import CheckedIDCardPng from './images/checkedidcard.png'; -import WrapperLayout from '../../shared/components/WrapperLayout'; -import i18n from '../../i18n/i18n'; -import { KycPage } from '../../enums/pageEnum'; -import { SubTitleText } from '../../shared/components/Texts'; -import KycContext from '../../contexts/KycContext'; - -const IDImg = styled.Image` - width: 28px; - height: 28px; - margin: 6px 11px 6px 22px; -`; -const Checked = styled.Image` - width: 12px; - height: 12px; - margin-top: 12px; - margin-right: 15px; -`; - -const SelectID: FunctionComponent<{}> = (props) => { - const [state, setState] = useState({ - idType: '', - }); - const navigation = useNavigation(); - const { setIdType } = useContext(KycContext); - - const setID = (text: string) => { - if (state.idType !== text) { - setState({ idType: text }); - } else { - setState({ idType: '' }); - } - }; - - return ( - navigation.goBack()} - title={i18n.t('kyc.step1')} - subTitle={ - - } - isScrolling={false} - body={ - <> - - setID('passport')} - child={ - - } - checked={ - state.idType === 'passport' ? ( - - ) : ( - - ) - } - selected={state.idType === 'passport' ? 'selected' : ''} - /> - setID('drivers_license')} - child={ - - } - checked={ - state.idType === 'drivers_license' ? ( - - ) : ( - - ) - } - selected={state.idType === 'drivers_license' ? 'selected' : ''} - /> - setID('government_id')} - child={ - - } - checked={ - state.idType === 'government_id' ? ( - - ) : ( - - ) - } - selected={state.idType === 'government_id' ? 'selected' : ''} - /> - - } - button={ - { - if (state.idType === '') { - alert(i18n.t('kyc.alert_id')); - } else { - setIdType(state.idType); - navigation.navigate(KycPage.TakeID); - } - }} - /> - } - /> - ); -}; -export default SelectID; diff --git a/src/modules/kyc/StartKYC.tsx b/src/modules/kyc/StartKYC.tsx deleted file mode 100644 index 617840e5b..000000000 --- a/src/modules/kyc/StartKYC.tsx +++ /dev/null @@ -1,183 +0,0 @@ -import React, { FunctionComponent, useState } from 'react'; -import { View, Modal, Text } from 'react-native'; -import styled from 'styled-components/native'; -import { useNavigation } from '@react-navigation/native'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import ClockPng from './images/clock.png'; -import i18n from '../../i18n/i18n'; -import { KycPage } from '../../enums/pageEnum'; -import WrapperLayout from '../../shared/components/WrapperLayout'; -import { P1Text, SubTitleText } from '../../shared/components/Texts'; -import { Argos } from './Argos'; - -const ClockImg = styled.Image` - width: 13px; - height: 13px; -`; -const Circle = styled.View` - width: 26px; - height: 26px; - background-color: #3679b5; - border-radius: 13px; -`; -const CircleText = styled.Text` - width: 26px; - line-height: 26px; - text-align: center; - font-family: 'Roboto_400Regular'; - color: #fff; -`; -const CircleWrapper = styled.View` - margin-left: 5%; - margin-right: 5%; - margin-bottom: 50px; - font-size: 13px; -`; -const HrLine = styled.View` - position: absolute; - height: 175px; - border-left-width: 1px; - border-left-color: #3679b5; - left: 12px; - margin-left: 5%; -`; - -const StartKYC: FunctionComponent<{}> = () => { - const navigation = useNavigation(); - const [state, setState] = useState({ - agree: false, - modalVisible: false, - }); - return ( - { - navigation.goBack(); - }} - title={i18n.t('kyc.start')} - subTitle={ - <> - - - - } - isScrolling={true} - body={ - <> - - - - - {1} - - - - - - {2} - - - - - - {3} - - - - - - - - - - setState({ ...state, modalVisible: false, agree: true }) - } - /> - - - - } - button={ - <> - setState({ ...state, modalVisible: true })} - variant={'WhiteTheme'} - style={{ marginBottom: 10 }} - /> - - state.agree === false - ? alert(i18n.t('kyc.argos')) - : navigation.navigate(KycPage.SelectID) - } - variant={state.agree === false ? 'GrayTheme' : undefined} - /> - - } - /> - ); -}; -export default StartKYC; diff --git a/src/modules/kyc/TakeID.tsx b/src/modules/kyc/TakeID.tsx deleted file mode 100644 index ba0ba794f..000000000 --- a/src/modules/kyc/TakeID.tsx +++ /dev/null @@ -1,431 +0,0 @@ -/* eslint-disable @typescript-eslint/camelcase */ -import React, { - FunctionComponent, - useContext, - useEffect, - useState, -} from 'react'; -import { - TouchableOpacity, - Platform, - View, - Modal, - ActivityIndicator, -} from 'react-native'; -import { Camera } from 'expo-camera'; -import * as Permissions from 'expo-permissions'; -import * as ImagePicker from 'expo-image-picker'; -import * as MediaLibrary from 'expo-media-library'; -import * as Linking from 'expo-linking'; -import * as ImageManipulator from 'expo-image-manipulator'; - -import { useNavigation, useIsFocused } from '@react-navigation/native'; -import styled from 'styled-components/native'; -import { Ionicons } from '@expo/vector-icons'; -import ReversePng from './images/reverse.png'; -import RecordPng from './images/recordbutton.png'; -import i18n from '../../i18n/i18n'; -import { BackButton } from '../../shared/components/BackButton'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import { KycPage } from '../../enums/pageEnum'; -import CameraPermissionPng from './images/cameraPermission.png'; -import WrapperLayout from '../../shared/components/WrapperLayout'; -import { H1Text, P1Text } from '../../shared/components/Texts'; -import { LoadingStatus } from '../../enums/LoadingStatus'; -import KycContext from '../../contexts/KycContext'; - -const ButtonImg = styled.Image` - width: 47px; - height: 47px; -`; -const TakeIdWrapper = styled.View` - flex: 1; - background-color: #000000; -`; -const HeaderCameraWrapper = styled.View` - position: relative; - width: 100%; - flex: 1; - background-color: rgba(0, 0, 0, 0.5); - flex-direction: column; - padding-top: 25px; -`; -const BottomCameraWrapper = styled.View` - position: relative; - width: 100%; - flex: 1; - background-color: rgba(0, 0, 0, 0.5); -`; -const BottomButtonWrapper = styled.View` - flex: 1; - flex-direction: row; - justify-content: space-between; - margin: 30px; -`; -const CameraFocusWrapper = styled.View` - flex: 1; - flex-direction: row; -`; -const CameraFocusLeft = styled.View` - width: 5% - background-color: rgba(0, 0, 0, 0.5); -`; -const CameraFocusRight = styled.View` - width: 5% - background-color: rgba(0, 0, 0, 0.5); -`; -const CameraFocus = styled.View` - width: 90%; - height: 100%; - border-color: rgba(255, 255, 255, 0.5); - border-width: 1px; -`; -const CameraInnerWLine = styled.View` - position: absolute; - width: 100%; - height: 35%; - margin-top: 22.5%; - margin-bottom: 22.5%; - border-top-color: rgba(255, 255, 255, 0.5); - border-top-width: 1px; - border-bottom-color: rgba(255, 255, 255, 0.5); - border-bottom-width: 1px; -`; -const CameraInnerDLine = styled.View` - position: absolute; - height: 100%; - width: 40%; - margin-left: 30%; - margin-right: 30%; - border-left-color: rgba(255, 255, 255, 0.5); - border-left-width: 1px; - border-right-color: rgba(255, 255, 255, 0.5); - border-right-width: 1px; -`; -const CameraInnerLeftTopLine = styled.View` - position: absolute; - border-left-color: white; - border-left-width: 3px; - border-top-color: white; - border-top-width: 3px; - width: 25px; - height: 25px; - left: 5%; -`; -const CameraInnerRightTopLine = styled.View` - position: absolute; - border-right-color: white; - border-right-width: 3px; - border-top-color: white; - border-top-width: 3px; - width: 25px; - height: 25px; - left: 89%; -`; -const CameraInnerLeftBottomLine = styled.View` - position: absolute; - border-left-color: white; - border-left-width: 3px; - border-bottom-color: white; - border-bottom-width: 3px; - width: 25px; - height: 25px; - top: 90%; - left: 5%; -`; -const CameraInnerRightBottomLine = styled.View` - position: absolute; - border-right-color: white; - border-right-width: 3px; - border-bottom-color: white; - border-bottom-width: 3px; - width: 25px; - height: 25px; - top: 90%; - left: 89%; -`; -const CameraPermissionImg = styled.Image` - width: 209px; - margin: 6% auto 15px auto; -`; - -interface State { - hasPermission: boolean; - type: typeof Camera.Constants.Type; -} - -const TakeID: FunctionComponent<{}> = () => { - let camera: Camera | null; - const isFocused = useIsFocused(); - const navigation = useNavigation(); - const { idType, setIdPhoto } = useContext(KycContext); - const [state, setState] = useState({ - hasPermission: false, - type: Camera.Constants.Type.back, - }); - const [status, setStatus] = useState(LoadingStatus.NONE); - - useEffect(() => { - Permissions.askAsync(Permissions.CAMERA_ROLL, Permissions.CAMERA).then( - (status) => { - if (!status.granted) { - alert('Sorry, we need camera roll permissions to make this work!'); - } else { - setState({ ...state, hasPermission: true }); - } - }, - ); - }, []); - - // const getRatio = async () => { - // if (camera) { - // const ratio = await camera.getSupportedRatiosAsync(); - // setState({ ...state, androidRatio: ratio[0] }); - // } - // }; - - // useEffect(() => { - // getRatio(); - // }, [state]); - - const reverseCamera = () => { - setState({ - ...state, - type: - state.type === Camera.Constants.Type.back - ? Camera.Constants.Type.front - : Camera.Constants.Type.back, - }); - }; - - const takePicture = async (): Promise< - ImageManipulator.ImageResult | undefined - > => { - setStatus(LoadingStatus.PENDING); - if (camera) { - const idPhoto = await camera.takePictureAsync({ - quality: 0, - exif: true, - base64: true, - }); - const compressedIdPhoto = await ImageManipulator.manipulateAsync( - idPhoto.uri, - [{ resize: { width: 800 } }], - { compress: 0, format: ImageManipulator.SaveFormat.PNG, base64: true }, - ); - await MediaLibrary.createAssetAsync(`${idPhoto.uri}`); - return compressedIdPhoto; - } - }; - - const pickImage = async () => { - const idAlbum = await ImagePicker.launchImageLibraryAsync({ - mediaTypes: ImagePicker.MediaTypeOptions.Images, - quality: 1, - base64: true, - }); - if (!idAlbum.cancelled) { - setStatus(LoadingStatus.PENDING); - const compressedIdAlbum = await ImageManipulator.manipulateAsync( - !idAlbum.cancelled ? idAlbum.uri : '', - [{ resize: { width: 600 } }], - { compress: 0, format: ImageManipulator.SaveFormat.PNG, base64: true }, - ); - return compressedIdAlbum; - } - }; - - if (!state.hasPermission) { - return ( - { - setState({ - ...state, - }); - navigation.goBack(); - }} - isScrolling={false} - body={ - <> - - - - - } - button={ - { - if (Platform.OS === 'ios') Linking.openURL('App-Prefs:root'); - - setState({ - ...state, - hasPermission: false, - }); - navigation.goBack(); - }} - /> - } - /> - ); - } else { - return ( - <> - { - - - - - - - } - - {isFocused && ( - { - camera = ref; - }}> - - - navigation.goBack()} - isWhite={true} - /> - - - - - - - - - - - - - - - - - - - - { - const pickedIdPhoto = await pickImage(); - if (pickedIdPhoto) { - setIdPhoto(pickedIdPhoto); - navigation.navigate(KycPage.ConfirmID); - setStatus(LoadingStatus.SUCCESS); - } - }}> - - - { - const idPhotoTaken = await takePicture(); - if (idPhotoTaken) { - setIdPhoto(idPhotoTaken); - navigation.navigate(KycPage.ConfirmID); - setStatus(LoadingStatus.SUCCESS); - } - }}> - - - - - - - - - )} - - {status === LoadingStatus.PENDING && ( - - )} - - ); - } -}; - -export default TakeID; diff --git a/src/modules/kyc/TakeSelfie.tsx b/src/modules/kyc/TakeSelfie.tsx deleted file mode 100644 index f3e93ffba..000000000 --- a/src/modules/kyc/TakeSelfie.tsx +++ /dev/null @@ -1,289 +0,0 @@ -/* eslint-disable @typescript-eslint/camelcase */ -import React, { - FunctionComponent, - useContext, - useEffect, - useState, -} from 'react'; -import { View, TouchableOpacity, Modal, ActivityIndicator } from 'react-native'; -import styled from 'styled-components/native'; -import { useNavigation, useIsFocused } from '@react-navigation/native'; - -import { Camera } from 'expo-camera'; -import * as Permissions from 'expo-permissions'; -import * as ImagePicker from 'expo-image-picker'; -import * as MediaLibrary from 'expo-media-library'; -import * as ImageManipulator from 'expo-image-manipulator'; -import { Ionicons } from '@expo/vector-icons'; - -import { BackButton } from '../../shared/components/BackButton'; -import ReversePng from './images/reverse.png'; -import RecordPng from './images/recordbutton.png'; -import i18n from '../../i18n/i18n'; -import { KycPage } from '../../enums/pageEnum'; -import WrapperLayout from '../../shared/components/WrapperLayout'; -import { H1Text, P1Text } from '../../shared/components/Texts'; -import CameraPermissionPng from './images/cameraPermission.png'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import { LoadingStatus } from '../../enums/LoadingStatus'; -import KycContext from '../../contexts/KycContext'; - -const ButtonImg = styled.Image` - width: 47px; - height: 47px; -`; -const CameraPermissionImg = styled.Image` - width: 209px; - margin: 20% auto 30px auto; -`; -const TakeSelfieWrapper = styled.View` - flex: 1; - background-color: #000000; -`; -const HeaderCameraWrapper = styled.View` - position: relative; - width: 100%; - background-color: rgba(20, 15, 38, 0.87); - flex-direction: column; - padding-top: 25px; - height: 150px; -`; -const BottomCameraWrapper = styled.View` - position: relative; - width: 100%; - height: 120px; - background-color: rgba(6, 5, 5, 1); -`; -const BottomButtonWrapper = styled.View` - flex: 1; - flex-direction: row; - justify-content: space-between; - margin: 30px; -`; - -interface State { - hasPermission: boolean; - type: typeof Camera.Constants.Type; -} - -const TakeSelfie: FunctionComponent<{}> = () => { - let camera: Camera | null; - const isFocused = useIsFocused(); - const navigation = useNavigation(); - const { setSelfie } = useContext(KycContext); - const [state, setState] = useState({ - hasPermission: true, - type: Camera.Constants.Type.back, - }); - const [status, setStatus] = useState(LoadingStatus.NONE); - - useEffect(() => { - Permissions.askAsync(Permissions.CAMERA_ROLL, Permissions.CAMERA).then( - (status) => { - if (!status.granted) { - alert('Sorry, we need camera roll permissions to make this work!'); - } else { - setState({ ...state, hasPermission: true }); - } - }, - ); - }, []); - - const reverseCamera = () => { - setState({ - ...state, - type: - state.type === Camera.Constants.Type.back - ? Camera.Constants.Type.front - : Camera.Constants.Type.back, - }); - }; - - const takePicture = async (): Promise< - ImageManipulator.ImageResult | undefined - > => { - if (camera) { - setStatus(LoadingStatus.PENDING); - const selfie = await camera.takePictureAsync({ - quality: 1, - exif: true, - base64: true, - }); - const compressedSelfie = await ImageManipulator.manipulateAsync( - selfie.uri, - [{ resize: { width: 800 } }], - { compress: 1, format: ImageManipulator.SaveFormat.PNG, base64: true }, - ); - await MediaLibrary.createAssetAsync(`${selfie.uri}`); - return compressedSelfie; - } - }; - - const pickImage = async () => { - const selfieAlbum = await ImagePicker.launchImageLibraryAsync({ - mediaTypes: ImagePicker.MediaTypeOptions.Images, - quality: 1, - base64: true, - }); - if (!selfieAlbum.cancelled) { - setStatus(LoadingStatus.PENDING); - const compressedSelfieAlbum = await ImageManipulator.manipulateAsync( - !selfieAlbum.cancelled ? selfieAlbum.uri : '', - [{ resize: { width: 600 } }], - { compress: 0, format: ImageManipulator.SaveFormat.PNG, base64: true }, - ); - return compressedSelfieAlbum; - } - }; - - if (!state.hasPermission) { - return ( - { - setState({ - ...state, - }); - navigation.goBack(); - }} - isScrolling={false} - body={ - <> - - - - - } - button={ - { - setState({ - ...state, - hasPermission: false, - }); - navigation.goBack(); - }} - /> - } - /> - ); - } else { - return ( - <> - { - - - - - - - } - - {isFocused && ( - { - camera = ref; - }}> - - navigation.goBack()} - isWhite={true} - style={{ marginTop: 30, marginLeft: 20 }} - /> - - - - - - { - const pickedSelfie = await pickImage(); - if (pickedSelfie) { - setSelfie(pickedSelfie); - navigation.navigate(KycPage.ConfirmSelfie); - setStatus(LoadingStatus.SUCCESS); - } - }}> - - - { - const selfieTaken = await takePicture(); - if (selfieTaken) { - setSelfie(selfieTaken); - navigation.navigate(KycPage.ConfirmSelfie); - setStatus(LoadingStatus.SUCCESS); - } - }}> - - - - - - - - - )} - - {status === LoadingStatus.PENDING && ( - - )} - - ); - } -}; - -export default TakeSelfie; diff --git a/src/modules/kyc/TakeSelfieBefore.tsx b/src/modules/kyc/TakeSelfieBefore.tsx deleted file mode 100644 index 1ab1eb8ae..000000000 --- a/src/modules/kyc/TakeSelfieBefore.tsx +++ /dev/null @@ -1,181 +0,0 @@ -/* eslint-disable @typescript-eslint/camelcase */ -import React, { FunctionComponent, useState } from 'react'; -import { View } from 'react-native'; -import styled from 'styled-components/native'; -import { useNavigation } from '@react-navigation/native'; -import { SubmitButton } from '../../shared/components/SubmitButton'; -import SelfieBeforePng from './images/selfiebefore.png'; -import { KycPage } from '../../enums/pageEnum'; -import i18n from '../../i18n/i18n'; -import { Modal } from '../../shared/components/Modal'; -import { - H1Text, - P1Text, - P3Text, - SubTitleText, -} from '../../shared/components/Texts'; -import WrapperLayout from '../../shared/components/WrapperLayout'; - -const Container = styled.View` - background-color: #fff; - width: 90%; - height: 206px; - left: 5%; - border-radius: 13px; - border: solid 2px #d0d8df; - margin-bottom: 23px; -`; -const Selfie = styled.Image` - margin: 9px auto 0px auto; - resize-mode: stretch; - flex: 1; - top: 1px; -`; -const InformationCircle = styled.View` - width: 10px; - height: 10px; - background-color: #3679b5; - border-radius: 10px; - margin-right: 10px; - top: 2px; -`; - -const TakeSelfieBefore: FunctionComponent<{}> = () => { - const [state, setState] = useState({ - modalVisible: false, - }); - const navigation = useNavigation(); - - return ( - <> - navigation.navigate(KycPage.ConfirmID)} - isScrolling={false} - title={i18n.t('kyc.step2')} - subTitle={ - - } - body={ - <> - - - - - - - - - - - - - - - } - button={ - setState({ modalVisible: true })} - /> - } - /> - {state.modalVisible === true && ( - <> - - - - - - - - - - - - - - - - - - - - - - - - - - - { - setState({ modalVisible: false }); - navigation.navigate(KycPage.TakeSelfie); - }} - style={{ width: '100%', right: '5%' }} - /> - - } - modalHandler={() => { - setState({ modalVisible: false }); - }} - visible={state.modalVisible}> - - )} - - ); -}; -export default TakeSelfieBefore; diff --git a/src/modules/kyc/components/DateInput.tsx b/src/modules/kyc/components/DateInput.tsx deleted file mode 100644 index 073a6d12b..000000000 --- a/src/modules/kyc/components/DateInput.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import React, { FunctionComponent } from 'react'; -import { - View, - StyleProp, - ViewStyle, - Platform, -} from 'react-native'; -import DateTimePicker from '@react-native-community/datetimepicker'; -import DatePicker from 'react-native-datepicker'; -import styled from 'styled-components/native'; -import i18n from '../../../i18n/i18n'; - -interface Props { - type: string; - eventHandler: (input: string) => void; - birthday: string; - style?: StyleProp; -} - -const InputHeaderText = styled.Text` - color: #a7a7a7; - font-size: 12px; - text-align: left; - font-family: 'Roboto_400Regular'; -`; - -export const DateInput: FunctionComponent = (props) => { - const currentDate = new Date(); - - return ( - - {Platform.OS === 'ios' ? ( - - props.eventHandler(i18n.strftime(date, '%Y-%m-%d')) - } - minimumDate={new Date(1900, 1, 1)} - maximumDate={currentDate} - /> - ) : ( - { - props.eventHandler(date); - }} - allowFontScaling={false} - mode="date" - androidMode="spinner" - placeholder={i18n.strftime(currentDate, '%Y-%m-%d')} - format="YYYY-MM-DD" - minDate={new Date(1900, 1, 1)} - maxDate={currentDate} - confirmBtnText={i18n.t('more_label.done')} - cancelBtnText={i18n.t('more_label.close')} - customStyles={{ - dateText: { - fontSize: 15, - fontFamily: 'Roboto_400Regular', - }, - btnTextConfirm: { - color: '#3679B5', - }, - dateIcon: { - width: 0, - height: 0, - opacity: 0, - position: 'relative', - }, - dateInput: { - marginLeft: 'auto', - marginRight: 'auto', - borderRadius: 5, - borderWidth: 0, - borderColor: '#D0D8DF', - }, - }} - /> - )} - - ); -}; diff --git a/src/modules/kyc/components/NationInput.tsx b/src/modules/kyc/components/NationInput.tsx deleted file mode 100644 index 6f0c8757b..000000000 --- a/src/modules/kyc/components/NationInput.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import React, { FunctionComponent } from 'react'; -import { - StyleSheet, - View, - StyleProp, - ViewStyle, -} from 'react-native'; -import styled from 'styled-components/native'; -import { Picker } from '@react-native-community/picker'; -import nations from './argos.json'; - -const InputHeaderText = styled.Text` - color: #a7a7a7; - font-size: 12px; - text-align: left; - font-family: 'Roboto_400Regular'; -`; - -interface Props { - type?: string; - nationality?: string; - eventHandler: (input: string) => void; - style?: StyleProp; -} - -export const NationInput: FunctionComponent = (props) => { - const nationList = nations.map((nation, Key) => ( - - )); - - return ( - - - {props.type} - - - { - props.eventHandler(itemValue.toString()); - }}> - {nationList} - - - - ); -}; - -const pickerSelectStyles = StyleSheet.create({ - inputIOS: { - backgroundColor: '#fff', - fontSize: 14, - paddingVertical: 12, - paddingHorizontal: 15, - height: 45, - borderWidth: 1, - borderColor: '#d0d8df', - borderRadius: 5, - color: '#1C1C1C', - paddingRight: 30, - fontFamily: 'Roboto_400Regular', - textAlign: 'center', - }, - inputAndroid: { - backgroundColor: '#fff', - fontSize: 14, - paddingVertical: 0, - paddingHorizontal: 5, - borderWidth: 1, - borderColor: '#d0d8df', - borderRadius: 5, - color: '#1C1C1C', - paddingRight: 30, - fontFamily: 'Roboto_400Regular', - textAlign: 'center', - }, -}); diff --git a/src/modules/kyc/components/OptionButton.tsx b/src/modules/kyc/components/OptionButton.tsx deleted file mode 100644 index b9fbe3eea..000000000 --- a/src/modules/kyc/components/OptionButton.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import React, { FunctionComponent } from "react"; -import { - View, -} from "react-native"; -import styled from "styled-components/native"; -import { P1Text } from '../../../shared/components/Texts'; - - -interface ButtonProps { - checking: string; -} - -const OptionBtn = styled.TouchableOpacity` - color: #000; - width: 90%; - margin: 5px auto; - height: 40px; - background-color: #fff; - border-radius: 5px; - border: solid 1px - ${(props: ButtonProps) => (props.checking === "selected" ? "#3679B5" : "#d0d8df")}; - display: flex; - flex-direction: row; - justify-content: center; - align-content: center; -`; -const OptionBtnChecked = styled.View` - flex-direction: row; - margin-left: auto; -`; - -interface Props { - title: string; - handler: any; - child: any; - checked: any; - selected?: string; -} - -export const OptionButton: FunctionComponent = (props: Props) => { - return ( - - - {props.child} - - {props.checked} - - - ); -}; diff --git a/src/modules/kyc/components/ShortOptionButton.tsx b/src/modules/kyc/components/ShortOptionButton.tsx deleted file mode 100644 index dfd1da231..000000000 --- a/src/modules/kyc/components/ShortOptionButton.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import React, { FunctionComponent } from "react"; -import styled from "styled-components/native"; - -const OptionBtn = styled.TouchableOpacity` - color: #000; - width: 48%; - margin: 0 auto; - height: 45px; - background-color: #fff; - border-radius: 5px; - border: solid 1px #d0d8df; - flex-direction: row; - justify-content: center; - align-content: center; -`; -const CheckedOptionBtn = styled.TouchableOpacity` - color: #000; - width: 48%; - margin: 0 auto; - height: 45px; - background-color: #fff; - border-radius: 5px; - border: solid 1px #3679b5; - flex-direction: row; - justify-content: center; - align-content: center; -`; -const OptionBtnText = styled.Text` - color: #a7a7a7; - font-size: 14px; - text-align: center; - line-height: 40px; - z-index: 5; - align-self:center; -`; -const CheckedOptionBtnText = styled.Text` - color: #1c1c1c; - font-size: 14px; - text-align: center; - line-height: 40px; - z-index: 5; - align-self:center; -`; -const InputHeaderText = styled.Text` - color: #a7a7a7; - margin: 5px 20px; - font-size: 12px; - text-align: left; -`; - -export const ShortOptionButton: FunctionComponent<{ - check: string; - title: string; - // handler: (event: GestureResponderEvent) => void; - handler: any; -}> = ({ title, handler, check }) => { - if (check === "checked") { - return ( - - {title} - - ); - } else { - return ( - - {title} - - ); - } -}; diff --git a/src/modules/kyc/components/argos.json b/src/modules/kyc/components/argos.json deleted file mode 100644 index d0301fd25..000000000 --- a/src/modules/kyc/components/argos.json +++ /dev/null @@ -1,1478 +0,0 @@ -[ - { - "Key": 1, - "Nationality": "Afghanistan", - "ISO": "AFG", - "Argos": "Afghanistan, AFG" - }, - { - "Key": 2, - "Nationality": "Albania", - "ISO": "ALB", - "Argos": "Albania, ALB" - }, - { - "Key": 3, - "Nationality": "Algeria", - "ISO": "DZA", - "Argos": "Algeria, DZA" - }, - { - "Key": 4, - "Nationality": "American Samoa", - "ISO": "ASM", - "Argos": "American Samoa, ASM" - }, - { - "Key": 5, - "Nationality": "Andorra", - "ISO": "AND", - "Argos": "Andorra, AND" - }, - { - "Key": 6, - "Nationality": "Angola", - "ISO": "AGO", - "Argos": "Angola, AGO" - }, - { - "Key": 7, - "Nationality": "Anguilla", - "ISO": "AIA", - "Argos": "Anguilla, AIA" - }, - { - "Key": 8, - "Nationality": "Antarctica", - "ISO": "ATA", - "Argos": "Antarctica, ATA" - }, - { - "Key": 9, - "Nationality": "Antigua and Barbuda", - "ISO": "ATG", - "Argos": "Antigua and Barbuda, ATG" - }, - { - "Key": 10, - "Nationality": "Argentina", - "ISO": "ARG", - "Argos": "Argentina, ARG" - }, - { - "Key": 11, - "Nationality": "Armenia", - "ISO": "ARM", - "Argos": "Armenia, ARM" - }, - { - "Key": 12, - "Nationality": "Aruba", - "ISO": "ABW", - "Argos": "Aruba, ABW" - }, - { - "Key": 13, - "Nationality": "Australia", - "ISO": "AUS", - "Argos": "Australia, AUS" - }, - { - "Key": 14, - "Nationality": "Austria", - "ISO": "AUT", - "Argos": "Austria, AUT" - }, - { - "Key": 15, - "Nationality": "Azerbaijan", - "ISO": "AZE", - "Argos": "Azerbaijan, AZE" - }, - { - "Key": 16, - "Nationality": "Bahamas", - "ISO": "BHS", - "Argos": "Bahamas, BHS" - }, - { - "Key": 17, - "Nationality": "Bahrain", - "ISO": "BHR", - "Argos": "Bahrain, BHR" - }, - { - "Key": 18, - "Nationality": "Bangladesh", - "ISO": "BGD", - "Argos": "Bangladesh, BGD" - }, - { - "Key": 19, - "Nationality": "Barbados", - "ISO": "BRB", - "Argos": "Barbados, BRB" - }, - { - "Key": 20, - "Nationality": "Belarus", - "ISO": "BLR", - "Argos": "Belarus, BLR" - }, - { - "Key": 21, - "Nationality": "Belgium", - "ISO": "BEL", - "Argos": "Belgium, BEL" - }, - { - "Key": 22, - "Nationality": "Belize", - "ISO": "BLZ", - "Argos": "Belize, BLZ" - }, - { - "Key": 23, - "Nationality": "Benin", - "ISO": "BEN", - "Argos": "Benin, BEN" - }, - { - "Key": 24, - "Nationality": "Bermuda", - "ISO": "BMU", - "Argos": "Bermuda, BMU" - }, - { - "Key": 25, - "Nationality": "Bhutan", - "ISO": "BTN", - "Argos": "Bhutan, BTN" - }, - { - "Key": 26, - "Nationality": "Bolivia", - "ISO": "BOL", - "Argos": "Bolivia, BOL" - }, - { - "Key": 27, - "Nationality": "Bosnia and Herzegovina", - "ISO": "BIH", - "Argos": "Bosnia and Herzegovina, BIH" - }, - { - "Key": 28, - "Nationality": "Botswana", - "ISO": "BWA", - "Argos": "Botswana, BWA" - }, - { - "Key": 29, - "Nationality": "Bouvet Island", - "ISO": "BVT", - "Argos": "Bouvet Island, BVT" - }, - { - "Key": 30, - "Nationality": "Brazil", - "ISO": "BRA", - "Argos": "Brazil, BRA" - }, - { - "Key": 31, - "Nationality": "British Indian Ocean Territory", - "ISO": "IOT", - "Argos": "British Indian Ocean Territory, IOT" - }, - { - "Key": 32, - "Nationality": "British Virgin Islands", - "ISO": "VGB", - "Argos": "British Virgin Islands, VGB" - }, - { - "Key": 33, - "Nationality": "Brunei", - "ISO": "BRN", - "Argos": "Brunei, BRN" - }, - { - "Key": 34, - "Nationality": "Bulgaria", - "ISO": "BGR", - "Argos": "Bulgaria, BGR" - }, - { - "Key": 35, - "Nationality": "Burkina Faso", - "ISO": "BFA", - "Argos": "Burkina Faso, BFA" - }, - { - "Key": 36, - "Nationality": "Burundi", - "ISO": "BDI", - "Argos": "Burundi, BDI" - }, - { - "Key": 37, - "Nationality": "Cambodia", - "ISO": "KHM", - "Argos": "Cambodia, KHM" - }, - { - "Key": 38, - "Nationality": "Cameroon", - "ISO": "CMR", - "Argos": "Cameroon, CMR" - }, - { - "Key": 39, - "Nationality": "Canada", - "ISO": "CAN", - "Argos": "Canada, CAN" - }, - { - "Key": 40, - "Nationality": "Cape Verde", - "ISO": "CPV", - "Argos": "Cape Verde, CPV" - }, - { - "Key": 41, - "Nationality": "Cayman Islands", - "ISO": "CYM", - "Argos": "Cayman Islands, CYM" - }, - { - "Key": 42, - "Nationality": "Central African Republic", - "ISO": "CAF", - "Argos": "Central African Republic, CAF" - }, - { - "Key": 43, - "Nationality": "Chad", - "ISO": "TCD", - "Argos": "Chad, TCD" - }, - { - "Key": 44, - "Nationality": "Chile", - "ISO": "CHL", - "Argos": "Chile, CHL" - }, - { - "Key": 45, - "Nationality": "China", - "ISO": "CHN", - "Argos": "China, CHN" - }, - { - "Key": 46, - "Nationality": "Christmas Island", - "ISO": "CXR", - "Argos": "Christmas Island, CXR" - }, - { - "Key": 47, - "Nationality": "Cocos (Keeling) Islands", - "ISO": "CCK", - "Argos": "Cocos (Keeling) Islands, CCK" - }, - { - "Key": 48, - "Nationality": "Colombia", - "ISO": "COL", - "Argos": "Colombia, COL" - }, - { - "Key": 49, - "Nationality": "Comoros", - "ISO": "COM", - "Argos": "Comoros, COM" - }, - { - "Key": 50, - "Nationality": "Congo Republic", - "ISO": "COG", - "Argos": "Congo Republic, COG" - }, - { - "Key": 51, - "Nationality": "Cook Islands", - "ISO": "COK", - "Argos": "Cook Islands, COK" - }, - { - "Key": 52, - "Nationality": "Costa Rica", - "ISO": "CRI", - "Argos": "Costa Rica, CRI" - }, - { - "Key": 53, - "Nationality": "Cote dIvoire", - "ISO": "CIV", - "Argos": "Cote dIvoire, CIV" - }, - { - "Key": 54, - "Nationality": "Croatia", - "ISO": "HRV", - "Argos": "Croatia, HRV" - }, - { - "Key": 55, - "Nationality": "Cuba", - "ISO": "CUB", - "Argos": "Cuba, CUB" - }, - { - "Key": 56, - "Nationality": "Cyprus", - "ISO": "CYP", - "Argos": "Cyprus, CYP" - }, - { - "Key": 57, - "Nationality": "Czech Republic", - "ISO": "CZE", - "Argos": "Czech Republic, CZE" - }, - { - "Key": 58, - "Nationality": "Democratic Republic of the Congo", - "ISO": "COD", - "Argos": "Democratic Republic of the Congo, COD" - }, - { - "Key": 59, - "Nationality": "Denmark", - "ISO": "DNK", - "Argos": "Denmark, DNK" - }, - { - "Key": 60, - "Nationality": "Djibouti", - "ISO": "DJI", - "Argos": "Djibouti, DJI" - }, - { - "Key": 61, - "Nationality": "Dominica", - "ISO": "DMA", - "Argos": "Dominica, DMA" - }, - { - "Key": 62, - "Nationality": "Dominican Republic", - "ISO": "DOM", - "Argos": "Dominican Republic, DOM" - }, - { - "Key": 63, - "Nationality": "Timor Leste", - "ISO": "TLS", - "Argos": "Timor Leste, TLS" - }, - { - "Key": 64, - "Nationality": "Ecuador", - "ISO": "ECU", - "Argos": "Ecuador, ECU" - }, - { - "Key": 65, - "Nationality": "Egypt", - "ISO": "EGY", - "Argos": "Egypt, EGY" - }, - { - "Key": 66, - "Nationality": "El Salvador", - "ISO": "SLV", - "Argos": "El Salvador, SLV" - }, - { - "Key": 67, - "Nationality": "Equatorial Guinea", - "ISO": "GNQ", - "Argos": "Equatorial Guinea, GNQ" - }, - { - "Key": 68, - "Nationality": "Eritrea", - "ISO": "ERI", - "Argos": "Eritrea, ERI" - }, - { - "Key": 69, - "Nationality": "Estonia", - "ISO": "EST", - "Argos": "Estonia, EST" - }, - { - "Key": 70, - "Nationality": "Ethiopia", - "ISO": "ETH", - "Argos": "Ethiopia, ETH" - }, - { - "Key": 71, - "Nationality": "Faroe Islands", - "ISO": "FRO", - "Argos": "Faroe Islands, FRO" - }, - { - "Key": 72, - "Nationality": "Falkland Islands", - "ISO": "FLK", - "Argos": "Falkland Islands, FLK" - }, - { - "Key": 73, - "Nationality": "Fiji", - "ISO": "FJI", - "Argos": "Fiji, FJI" - }, - { - "Key": 74, - "Nationality": "Finland", - "ISO": "FIN", - "Argos": "Finland, FIN" - }, - { - "Key": 75, - "Nationality": "France", - "ISO": "FRA", - "Argos": "France, FRA" - }, - { - "Key": 76, - "Nationality": "French Guiana", - "ISO": "GUF", - "Argos": "French Guiana, GUF" - }, - { - "Key": 77, - "Nationality": "French Polynesia", - "ISO": "PYF", - "Argos": "French Polynesia, PYF" - }, - { - "Key": 78, - "Nationality": "Gabon", - "ISO": "GAB", - "Argos": "Gabon, GAB" - }, - { - "Key": 79, - "Nationality": "Gambia", - "ISO": "GMB", - "Argos": "Gambia, GMB" - }, - { - "Key": 80, - "Nationality": "Georgia", - "ISO": "GEO", - "Argos": "Georgia, GEO" - }, - { - "Key": 81, - "Nationality": "Germany", - "ISO": "DEU", - "Argos": "Germany, DEU" - }, - { - "Key": 82, - "Nationality": "Ghana", - "ISO": "GHA", - "Argos": "Ghana, GHA" - }, - { - "Key": 83, - "Nationality": "Gibraltar", - "ISO": "GIB", - "Argos": "Gibraltar, GIB" - }, - { - "Key": 84, - "Nationality": "Greece", - "ISO": "GRC", - "Argos": "Greece, GRC" - }, - { - "Key": 85, - "Nationality": "Greenland", - "ISO": "GRL", - "Argos": "Greenland, GRL" - }, - { - "Key": 86, - "Nationality": "Grenada", - "ISO": "GRD", - "Argos": "Grenada, GRD" - }, - { - "Key": 87, - "Nationality": "Guadeloupe", - "ISO": "GLP", - "Argos": "Guadeloupe, GLP" - }, - { - "Key": 88, - "Nationality": "Guam", - "ISO": "GUM", - "Argos": "Guam, GUM" - }, - { - "Key": 89, - "Nationality": "Guatemala", - "ISO": "GTM", - "Argos": "Guatemala, GTM" - }, - { - "Key": 90, - "Nationality": "Guinea", - "ISO": "GIN", - "Argos": "Guinea, GIN" - }, - { - "Key": 91, - "Nationality": "Guinea-Bissau", - "ISO": "GNB", - "Argos": "Guinea-Bissau, GNB" - }, - { - "Key": 92, - "Nationality": "Guyana", - "ISO": "GUY", - "Argos": "Guyana, GUY" - }, - { - "Key": 93, - "Nationality": "Haiti", - "ISO": "HTI", - "Argos": "Haiti, HTI" - }, - { - "Key": 94, - "Nationality": "Heard and McDonald Islands", - "ISO": "HMD", - "Argos": "Heard and McDonald Islands, HMD" - }, - { - "Key": 95, - "Nationality": "Honduras", - "ISO": "HND", - "Argos": "Honduras, HND" - }, - { - "Key": 96, - "Nationality": "Hong Kong", - "ISO": "HKG", - "Argos": "Hong Kong, HKG" - }, - { - "Key": 97, - "Nationality": "Hungary", - "ISO": "HUN", - "Argos": "Hungary, HUN" - }, - { - "Key": 98, - "Nationality": "Iceland", - "ISO": "ISL", - "Argos": "Iceland, ISL" - }, - { - "Key": 99, - "Nationality": "India", - "ISO": "IND", - "Argos": "India, IND" - }, - { - "Key": 100, - "Nationality": "Indonesia", - "ISO": "IDN", - "Argos": "Indonesia, IDN" - }, - { - "Key": 101, - "Nationality": "Iran", - "ISO": "IRN", - "Argos": "Iran, IRN" - }, - { - "Key": 102, - "Nationality": "Iraq", - "ISO": "IRQ", - "Argos": "Iraq, IRQ" - }, - { - "Key": 103, - "Nationality": "Ireland", - "ISO": "IRL", - "Argos": "Ireland, IRL" - }, - { - "Key": 104, - "Nationality": "Israel", - "ISO": "ISR", - "Argos": "Israel, ISR" - }, - { - "Key": 105, - "Nationality": "Italy", - "ISO": "ITA", - "Argos": "Italy, ITA" - }, - { - "Key": 106, - "Nationality": "Jamaica", - "ISO": "JAM", - "Argos": "Jamaica, JAM" - }, - { - "Key": 107, - "Nationality": "Japan", - "ISO": "JPN", - "Argos": "Japan, JPN" - }, - { - "Key": 108, - "Nationality": "Jordan", - "ISO": "JOR", - "Argos": "Jordan, JOR" - }, - { - "Key": 109, - "Nationality": "Kazakhstan", - "ISO": "KAZ", - "Argos": "Kazakhstan, KAZ" - }, - { - "Key": 110, - "Nationality": "Kenya", - "ISO": "KEN", - "Argos": "Kenya, KEN" - }, - { - "Key": 111, - "Nationality": "Kiribati", - "ISO": "KIR", - "Argos": "Kiribati, KIR" - }, - { - "Key": 112, - "Nationality": "Kuwait", - "ISO": "KWT", - "Argos": "Kuwait, KWT" - }, - { - "Key": 113, - "Nationality": "Kyrgyzstan", - "ISO": "KGZ", - "Argos": "Kyrgyzstan, KGZ" - }, - { - "Key": 114, - "Nationality": "Laos", - "ISO": "LAO", - "Argos": "Laos, LAO" - }, - { - "Key": 115, - "Nationality": "Latvia", - "ISO": "LVA", - "Argos": "Latvia, LVA" - }, - { - "Key": 116, - "Nationality": "Lebanon", - "ISO": "LBN", - "Argos": "Lebanon, LBN" - }, - { - "Key": 117, - "Nationality": "Lesotho", - "ISO": "LSO", - "Argos": "Lesotho, LSO" - }, - { - "Key": 118, - "Nationality": "Liberia", - "ISO": "LBR", - "Argos": "Liberia, LBR" - }, - { - "Key": 119, - "Nationality": "Libya", - "ISO": "LBY", - "Argos": "Libya, LBY" - }, - { - "Key": 120, - "Nationality": "Liechtenstein", - "ISO": "LIE", - "Argos": "Liechtenstein, LIE" - }, - { - "Key": 121, - "Nationality": "Lithuania", - "ISO": "LTU", - "Argos": "Lithuania, LTU" - }, - { - "Key": 122, - "Nationality": "Luxembourg", - "ISO": "LUX", - "Argos": "Luxembourg, LUX" - }, - { - "Key": 123, - "Nationality": "Macau", - "ISO": "MAC", - "Argos": "Macau, MAC" - }, - { - "Key": 124, - "Nationality": "Macedonia", - "ISO": "MKD", - "Argos": "Macedonia, MKD" - }, - { - "Key": 125, - "Nationality": "Madagascar", - "ISO": "MDG", - "Argos": "Madagascar, MDG" - }, - { - "Key": 126, - "Nationality": "Malawi", - "ISO": "MWI", - "Argos": "Malawi, MWI" - }, - { - "Key": 127, - "Nationality": "Malaysia", - "ISO": "MYS", - "Argos": "Malaysia, MYS" - }, - { - "Key": 128, - "Nationality": "Maldives", - "ISO": "MDV", - "Argos": "Maldives, MDV" - }, - { - "Key": 129, - "Nationality": "Mali", - "ISO": "MLI", - "Argos": "Mali, MLI" - }, - { - "Key": 130, - "Nationality": "Malta", - "ISO": "MLT", - "Argos": "Malta, MLT" - }, - { - "Key": 131, - "Nationality": "Marshall Islands", - "ISO": "MHL", - "Argos": "Marshall Islands, MHL" - }, - { - "Key": 132, - "Nationality": "Martinique", - "ISO": "MTQ", - "Argos": "Martinique, MTQ" - }, - { - "Key": 133, - "Nationality": "Mauritania", - "ISO": "MRT", - "Argos": "Mauritania, MRT" - }, - { - "Key": 134, - "Nationality": "Mauritius", - "ISO": "MUS", - "Argos": "Mauritius, MUS" - }, - { - "Key": 135, - "Nationality": "Mayotte", - "ISO": "MYT", - "Argos": "Mayotte, MYT" - }, - { - "Key": 136, - "Nationality": "Mexico", - "ISO": "MEX", - "Argos": "Mexico, MEX" - }, - { - "Key": 137, - "Nationality": "Micronesia", - "ISO": "FSM", - "Argos": "Micronesia, FSM" - }, - { - "Key": 138, - "Nationality": "Moldova", - "ISO": "MDA", - "Argos": "Moldova, MDA" - }, - { - "Key": 139, - "Nationality": "Monaco", - "ISO": "MCO", - "Argos": "Monaco, MCO" - }, - { - "Key": 140, - "Nationality": "Mongolia", - "ISO": "MNG", - "Argos": "Mongolia, MNG" - }, - { - "Key": 141, - "Nationality": "Montserrat", - "ISO": "MSR", - "Argos": "Montserrat, MSR" - }, - { - "Key": 142, - "Nationality": "Morocco", - "ISO": "MAR", - "Argos": "Morocco, MAR" - }, - { - "Key": 143, - "Nationality": "Mozambique", - "ISO": "MOZ", - "Argos": "Mozambique, MOZ" - }, - { - "Key": 144, - "Nationality": "Myanmar", - "ISO": "MMR", - "Argos": "Myanmar, MMR" - }, - { - "Key": 145, - "Nationality": "Namibia", - "ISO": "NAM", - "Argos": "Namibia, NAM" - }, - { - "Key": 146, - "Nationality": "Nauru", - "ISO": "NRU", - "Argos": "Nauru, NRU" - }, - { - "Key": 147, - "Nationality": "Nepal", - "ISO": "NPL", - "Argos": "Nepal, NPL" - }, - { - "Key": 148, - "Nationality": "Netherlands", - "ISO": "NLD", - "Argos": "Netherlands, NLD" - }, - { - "Key": 149, - "Nationality": "Curacao", - "ISO": "CUW", - "Argos": "Curacao, CUW" - }, - { - "Key": 150, - "Nationality": "New Caledonia", - "ISO": "NCL", - "Argos": "New Caledonia, NCL" - }, - { - "Key": 151, - "Nationality": "New Zealand", - "ISO": "NZL", - "Argos": "New Zealand, NZL" - }, - { - "Key": 152, - "Nationality": "Nicaragua", - "ISO": "NIC", - "Argos": "Nicaragua, NIC" - }, - { - "Key": 153, - "Nationality": "Niger", - "ISO": "NER", - "Argos": "Niger, NER" - }, - { - "Key": 154, - "Nationality": "Nigeria", - "ISO": "NGA", - "Argos": "Nigeria, NGA" - }, - { - "Key": 155, - "Nationality": "Niue", - "ISO": "NIU", - "Argos": "Niue, NIU" - }, - { - "Key": 156, - "Nationality": "Norfolk Island", - "ISO": "NFK", - "Argos": "Norfolk Island, NFK" - }, - { - "Key": 157, - "Nationality": "North Korea", - "ISO": "PRK", - "Argos": "North Korea, PRK" - }, - { - "Key": 158, - "Nationality": "Northern Mariana Islands", - "ISO": "MNP", - "Argos": "Northern Mariana Islands, MNP" - }, - { - "Key": 159, - "Nationality": "Norway", - "ISO": "NOR", - "Argos": "Norway, NOR" - }, - { - "Key": 160, - "Nationality": "Oman", - "ISO": "OMN", - "Argos": "Oman, OMN" - }, - { - "Key": 161, - "Nationality": "Pakistan", - "ISO": "PAK", - "Argos": "Pakistan, PAK" - }, - { - "Key": 162, - "Nationality": "Palau", - "ISO": "PLW", - "Argos": "Palau, PLW" - }, - { - "Key": 163, - "Nationality": "Palestine", - "ISO": "PSE", - "Argos": "Palestine, PSE" - }, - { - "Key": 164, - "Nationality": "Panama", - "ISO": "PAN", - "Argos": "Panama, PAN" - }, - { - "Key": 165, - "Nationality": "Papua New Guinea", - "ISO": "PNG", - "Argos": "Papua New Guinea, PNG" - }, - { - "Key": 166, - "Nationality": "Paraguay", - "ISO": "PRY", - "Argos": "Paraguay, PRY" - }, - { - "Key": 167, - "Nationality": "Peru", - "ISO": "PER", - "Argos": "Peru, PER" - }, - { - "Key": 168, - "Nationality": "Philippines", - "ISO": "PHL", - "Argos": "Philippines, PHL" - }, - { - "Key": 169, - "Nationality": "Pitcairn", - "ISO": "PCN", - "Argos": "Pitcairn, PCN" - }, - { - "Key": 170, - "Nationality": "Poland", - "ISO": "POL", - "Argos": "Poland, POL" - }, - { - "Key": 171, - "Nationality": "Portugal", - "ISO": "PRT", - "Argos": "Portugal, PRT" - }, - { - "Key": 172, - "Nationality": "Puerto Rico", - "ISO": "PRI", - "Argos": "Puerto Rico, PRI" - }, - { - "Key": 173, - "Nationality": "Qatar", - "ISO": "QAT", - "Argos": "Qatar, QAT" - }, - { - "Key": 174, - "Nationality": "Reunion", - "ISO": "REU", - "Argos": "Reunion, REU" - }, - { - "Key": 175, - "Nationality": "Romania", - "ISO": "ROU", - "Argos": "Romania, ROU" - }, - { - "Key": 176, - "Nationality": "Russia", - "ISO": "RUS", - "Argos": "Russia, RUS" - }, - { - "Key": 177, - "Nationality": "Rwanda", - "ISO": "RWA", - "Argos": "Rwanda, RWA" - }, - { - "Key": 178, - "Nationality": "Saint Lucia", - "ISO": "LCA", - "Argos": "Saint Lucia, LCA" - }, - { - "Key": 179, - "Nationality": "Samoa", - "ISO": "WSM", - "Argos": "Samoa, WSM" - }, - { - "Key": 180, - "Nationality": "San Marino", - "ISO": "SMR", - "Argos": "San Marino, SMR" - }, - { - "Key": 181, - "Nationality": "Sao Tome and Principe", - "ISO": "STP", - "Argos": "Sao Tome and Principe, STP" - }, - { - "Key": 182, - "Nationality": "Saudi Arabia", - "ISO": "SAU", - "Argos": "Saudi Arabia, SAU" - }, - { - "Key": 183, - "Nationality": "Senegal", - "ISO": "SEN", - "Argos": "Senegal, SEN" - }, - { - "Key": 184, - "Nationality": "Seychelles", - "ISO": "SYC", - "Argos": "Seychelles, SYC" - }, - { - "Key": 185, - "Nationality": "Sierra Leone", - "ISO": "SLE", - "Argos": "Sierra Leone, SLE" - }, - { - "Key": 186, - "Nationality": "Singapore", - "ISO": "SGP", - "Argos": "Singapore, SGP" - }, - { - "Key": 187, - "Nationality": "Slovakia", - "ISO": "SVK", - "Argos": "Slovakia, SVK" - }, - { - "Key": 188, - "Nationality": "Slovenia", - "ISO": "SVN", - "Argos": "Slovenia, SVN" - }, - { - "Key": 189, - "Nationality": "Solomon Islands", - "ISO": "SLB", - "Argos": "Solomon Islands, SLB" - }, - { - "Key": 190, - "Nationality": "Somalia", - "ISO": "SOM", - "Argos": "Somalia, SOM" - }, - { - "Key": 191, - "Nationality": "South Africa", - "ISO": "ZAF", - "Argos": "South Africa, ZAF" - }, - { - "Key": 192, - "Nationality": "South Georgia and South Sandwich Islands", - "ISO": "SGS", - "Argos": "South Georgia and South Sandwich Islands, SGS" - }, - { - "Key": 193, - "Nationality": "South Korea", - "ISO": "KOR", - "Argos": "South Korea, KOR" - }, - { - "Key": 194, - "Nationality": "Spain", - "ISO": "ESP", - "Argos": "Spain, ESP" - }, - { - "Key": 195, - "Nationality": "Sri Lanka", - "ISO": "LKA", - "Argos": "Sri Lanka, LKA" - }, - { - "Key": 196, - "Nationality": "St. Helena", - "ISO": "SHN", - "Argos": "St. Helena, SHN" - }, - { - "Key": 197, - "Nationality": "St. Kitts and Nevis", - "ISO": "KNA", - "Argos": "St. Kitts and Nevis, KNA" - }, - { - "Key": 198, - "Nationality": "St. Martin", - "ISO": "MAF", - "Argos": "St. Martin, MAF" - }, - { - "Key": 199, - "Nationality": "St. Pierre and Miquelon", - "ISO": "SPM", - "Argos": "St. Pierre and Miquelon, SPM" - }, - { - "Key": 200, - "Nationality": "St. Vincent and the Grenadines", - "ISO": "VCT", - "Argos": "St. Vincent and the Grenadines, VCT" - }, - { - "Key": 201, - "Nationality": "Sudan", - "ISO": "SDN", - "Argos": "Sudan, SDN" - }, - { - "Key": 202, - "Nationality": "Suriname", - "ISO": "SUR", - "Argos": "Suriname, SUR" - }, - { - "Key": 203, - "Nationality": "Svalbard and Jan Mayen Islands", - "ISO": "SJM", - "Argos": "Svalbard and Jan Mayen Islands, SJM" - }, - { - "Key": 204, - "Nationality": "Swaziland", - "ISO": "SWZ", - "Argos": "Swaziland, SWZ" - }, - { - "Key": 205, - "Nationality": "Sweden", - "ISO": "SWE", - "Argos": "Sweden, SWE" - }, - { - "Key": 206, - "Nationality": "Switzerland", - "ISO": "CHE", - "Argos": "Switzerland, CHE" - }, - { - "Key": 207, - "Nationality": "Syria", - "ISO": "SYR", - "Argos": "Syria, SYR" - }, - { - "Key": 208, - "Nationality": "Taiwan", - "ISO": "TWN", - "Argos": "Taiwan, TWN" - }, - { - "Key": 209, - "Nationality": "Tajikistan", - "ISO": "TJK", - "Argos": "Tajikistan, TJK" - }, - { - "Key": 210, - "Nationality": "Tanzania", - "ISO": "TZA", - "Argos": "Tanzania, TZA" - }, - { - "Key": 211, - "Nationality": "Thailand", - "ISO": "THA", - "Argos": "Thailand, THA" - }, - { - "Key": 212, - "Nationality": "Togo", - "ISO": "TGO", - "Argos": "Togo, TGO" - }, - { - "Key": 213, - "Nationality": "Tokelau", - "ISO": "TKL", - "Argos": "Tokelau, TKL" - }, - { - "Key": 214, - "Nationality": "Tonga", - "ISO": "TON", - "Argos": "Tonga, TON" - }, - { - "Key": 215, - "Nationality": "Trinidad and Tobago", - "ISO": "TTO", - "Argos": "Trinidad and Tobago, TTO" - }, - { - "Key": 216, - "Nationality": "Tunisia", - "ISO": "TUN", - "Argos": "Tunisia, TUN" - }, - { - "Key": 217, - "Nationality": "Turkey", - "ISO": "TUR", - "Argos": "Turkey, TUR" - }, - { - "Key": 218, - "Nationality": "Turkmenistan", - "ISO": "TKM", - "Argos": "Turkmenistan, TKM" - }, - { - "Key": 219, - "Nationality": "Turks and Caicos Islands", - "ISO": "TCA", - "Argos": "Turks and Caicos Islands, TCA" - }, - { - "Key": 220, - "Nationality": "Tuvalu", - "ISO": "TUV", - "Argos": "Tuvalu, TUV" - }, - { - "Key": 221, - "Nationality": "Uganda", - "ISO": "UGA", - "Argos": "Uganda, UGA" - }, - { - "Key": 222, - "Nationality": "Ukraine", - "ISO": "UKR", - "Argos": "Ukraine, UKR" - }, - { - "Key": 223, - "Nationality": "United Arab Emirates", - "ISO": "ARE", - "Argos": "United Arab Emirates, ARE" - }, - { - "Key": 224, - "Nationality": "United Kingdom", - "ISO": "GBR", - "Argos": "United Kingdom, GBR" - }, - { - "Key": 225, - "Nationality": "United States", - "ISO": "USA", - "Argos": "United States, USA" - }, - { - "Key": 226, - "Nationality": "Uruguay", - "ISO": "URY", - "Argos": "Uruguay, URY" - }, - { - "Key": 227, - "Nationality": "Uzbekistan", - "ISO": "UZB", - "Argos": "Uzbekistan, UZB" - }, - { - "Key": 228, - "Nationality": "Vanuatu", - "ISO": "VUT", - "Argos": "Vanuatu, VUT" - }, - { - "Key": 229, - "Nationality": "Vatican City", - "ISO": "VAT", - "Argos": "Vatican City, VAT" - }, - { - "Key": 230, - "Nationality": "Venezuela", - "ISO": "VEN", - "Argos": "Venezuela, VEN" - }, - { - "Key": 231, - "Nationality": "Vietnam", - "ISO": "VNM", - "Argos": "Vietnam, VNM" - }, - { - "Key": 232, - "Nationality": "Wallis and Futuna Islands", - "ISO": "WLF", - "Argos": "Wallis and Futuna Islands, WLF" - }, - { - "Key": 233, - "Nationality": "Western Sahara", - "ISO": "ESH", - "Argos": "Western Sahara, ESH" - }, - { - "Key": 234, - "Nationality": "Yemen", - "ISO": "YEM", - "Argos": "Yemen, YEM" - }, - { - "Key": 235, - "Nationality": "Serbia", - "ISO": "SRB", - "Argos": "Serbia, SRB" - }, - { - "Key": 236, - "Nationality": "Zambia", - "ISO": "ZMB", - "Argos": "Zambia, ZMB" - }, - { - "Key": 237, - "Nationality": "Zimbabwe", - "ISO": "ZWE", - "Argos": "Zimbabwe, ZWE" - }, - { - "Key": 238, - "Nationality": "Montenegro", - "ISO": "MNE", - "Argos": "Montenegro, MNE" - }, - { - "Key": 239, - "Nationality": "Kosovo", - "ISO": "XKX", - "Argos": "Kosovo, XKX" - }, - { - "Key": 240, - "Nationality": "U.S. Virgin Islands", - "ISO": "VIR", - "Argos": "U.S. Virgin Islands, VIR" - }, - { - "Key": 241, - "Nationality": "Saint Barthelemy", - "ISO": "BLM", - "Argos": "Saint Barthelemy, BLM" - }, - { - "Key": 242, - "Nationality": "Guernsey", - "ISO": "GGY", - "Argos": "Guernsey, GGY" - }, - { - "Key": 243, - "Nationality": "Isle of Man", - "ISO": "IMN", - "Argos": "Isle of Man, IMN" - }, - { - "Key": 244, - "Nationality": "Jersey", - "ISO": "JEY", - "Argos": "Jersey, JEY" - }, - { - "Key": 245, - "Nationality": "St. Maarten", - "ISO": "SXM", - "Argos": "St. Maarten, SXM" - }, - { - "Key": 246, - "Nationality": "South Sudan", - "ISO": "SSD", - "Argos": "South Sudan, SSD" - } -] diff --git a/src/modules/kyc/images/cameraPermission.png b/src/modules/kyc/images/cameraPermission.png deleted file mode 100644 index 99b2f8820..000000000 Binary files a/src/modules/kyc/images/cameraPermission.png and /dev/null differ diff --git a/src/modules/kyc/images/cameraPermission@2x.png b/src/modules/kyc/images/cameraPermission@2x.png deleted file mode 100644 index 493bf13fb..000000000 Binary files a/src/modules/kyc/images/cameraPermission@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/cameraPermission@3x.png b/src/modules/kyc/images/cameraPermission@3x.png deleted file mode 100644 index c64aee94b..000000000 Binary files a/src/modules/kyc/images/cameraPermission@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/checked.png b/src/modules/kyc/images/checked.png deleted file mode 100644 index 871809768..000000000 Binary files a/src/modules/kyc/images/checked.png and /dev/null differ diff --git a/src/modules/kyc/images/checked@2x.png b/src/modules/kyc/images/checked@2x.png deleted file mode 100644 index 4001dad38..000000000 Binary files a/src/modules/kyc/images/checked@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/checked@3x.png b/src/modules/kyc/images/checked@3x.png deleted file mode 100644 index 6f47acb76..000000000 Binary files a/src/modules/kyc/images/checked@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/checkeddriver.png b/src/modules/kyc/images/checkeddriver.png deleted file mode 100644 index 44afbc415..000000000 Binary files a/src/modules/kyc/images/checkeddriver.png and /dev/null differ diff --git a/src/modules/kyc/images/checkeddriver@2x.png b/src/modules/kyc/images/checkeddriver@2x.png deleted file mode 100644 index 50ab3e10a..000000000 Binary files a/src/modules/kyc/images/checkeddriver@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/checkeddriver@3x.png b/src/modules/kyc/images/checkeddriver@3x.png deleted file mode 100644 index e5dfdecd5..000000000 Binary files a/src/modules/kyc/images/checkeddriver@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/checkedidcard.png b/src/modules/kyc/images/checkedidcard.png deleted file mode 100644 index 5fa24d726..000000000 Binary files a/src/modules/kyc/images/checkedidcard.png and /dev/null differ diff --git a/src/modules/kyc/images/checkedidcard@2x.png b/src/modules/kyc/images/checkedidcard@2x.png deleted file mode 100644 index 3cd8c025a..000000000 Binary files a/src/modules/kyc/images/checkedidcard@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/checkedidcard@3x.png b/src/modules/kyc/images/checkedidcard@3x.png deleted file mode 100644 index 1075d8d03..000000000 Binary files a/src/modules/kyc/images/checkedidcard@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/checkedpassport.png b/src/modules/kyc/images/checkedpassport.png deleted file mode 100644 index cbcd10613..000000000 Binary files a/src/modules/kyc/images/checkedpassport.png and /dev/null differ diff --git a/src/modules/kyc/images/checkedpassport@2x.png b/src/modules/kyc/images/checkedpassport@2x.png deleted file mode 100644 index 3bda5e546..000000000 Binary files a/src/modules/kyc/images/checkedpassport@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/checkedpassport@3x.png b/src/modules/kyc/images/checkedpassport@3x.png deleted file mode 100644 index 550bcb24d..000000000 Binary files a/src/modules/kyc/images/checkedpassport@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/clock.png b/src/modules/kyc/images/clock.png deleted file mode 100644 index 7a0dad7bd..000000000 Binary files a/src/modules/kyc/images/clock.png and /dev/null differ diff --git a/src/modules/kyc/images/clock@2x.png b/src/modules/kyc/images/clock@2x.png deleted file mode 100644 index 136dc9166..000000000 Binary files a/src/modules/kyc/images/clock@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/clock@3x.png b/src/modules/kyc/images/clock@3x.png deleted file mode 100644 index 55373dc36..000000000 Binary files a/src/modules/kyc/images/clock@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/driver.png b/src/modules/kyc/images/driver.png deleted file mode 100644 index 684c02f95..000000000 Binary files a/src/modules/kyc/images/driver.png and /dev/null differ diff --git a/src/modules/kyc/images/driver@2x.png b/src/modules/kyc/images/driver@2x.png deleted file mode 100644 index 1c9bf6711..000000000 Binary files a/src/modules/kyc/images/driver@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/driver@3x.png b/src/modules/kyc/images/driver@3x.png deleted file mode 100644 index f2a68df46..000000000 Binary files a/src/modules/kyc/images/driver@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/idcard.png b/src/modules/kyc/images/idcard.png deleted file mode 100644 index 39328eed6..000000000 Binary files a/src/modules/kyc/images/idcard.png and /dev/null differ diff --git a/src/modules/kyc/images/idcard@2x.png b/src/modules/kyc/images/idcard@2x.png deleted file mode 100644 index 31c3833e0..000000000 Binary files a/src/modules/kyc/images/idcard@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/idcard@3x.png b/src/modules/kyc/images/idcard@3x.png deleted file mode 100644 index 54e44bafe..000000000 Binary files a/src/modules/kyc/images/idcard@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/kycsubmit.png b/src/modules/kyc/images/kycsubmit.png deleted file mode 100644 index 0994e762b..000000000 Binary files a/src/modules/kyc/images/kycsubmit.png and /dev/null differ diff --git a/src/modules/kyc/images/kycsubmit@2x.png b/src/modules/kyc/images/kycsubmit@2x.png deleted file mode 100644 index 13a42559b..000000000 Binary files a/src/modules/kyc/images/kycsubmit@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/kycsubmit@3x.png b/src/modules/kyc/images/kycsubmit@3x.png deleted file mode 100644 index 451b856af..000000000 Binary files a/src/modules/kyc/images/kycsubmit@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/passport.png b/src/modules/kyc/images/passport.png deleted file mode 100644 index 7274bf738..000000000 Binary files a/src/modules/kyc/images/passport.png and /dev/null differ diff --git a/src/modules/kyc/images/passport@2x.png b/src/modules/kyc/images/passport@2x.png deleted file mode 100644 index d4bfad99a..000000000 Binary files a/src/modules/kyc/images/passport@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/passport@3x.png b/src/modules/kyc/images/passport@3x.png deleted file mode 100644 index 8b363e0dd..000000000 Binary files a/src/modules/kyc/images/passport@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/recordbutton.png b/src/modules/kyc/images/recordbutton.png deleted file mode 100644 index 2cba2b8ee..000000000 Binary files a/src/modules/kyc/images/recordbutton.png and /dev/null differ diff --git a/src/modules/kyc/images/recordbutton@2x.png b/src/modules/kyc/images/recordbutton@2x.png deleted file mode 100644 index 5bbf09a6f..000000000 Binary files a/src/modules/kyc/images/recordbutton@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/recordbutton@3x.png b/src/modules/kyc/images/recordbutton@3x.png deleted file mode 100644 index 842405e04..000000000 Binary files a/src/modules/kyc/images/recordbutton@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/reverse.png b/src/modules/kyc/images/reverse.png deleted file mode 100644 index b75465e0e..000000000 Binary files a/src/modules/kyc/images/reverse.png and /dev/null differ diff --git a/src/modules/kyc/images/reverse@2x.png b/src/modules/kyc/images/reverse@2x.png deleted file mode 100644 index f91da05ea..000000000 Binary files a/src/modules/kyc/images/reverse@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/reverse@3x.png b/src/modules/kyc/images/reverse@3x.png deleted file mode 100644 index cfd8b3647..000000000 Binary files a/src/modules/kyc/images/reverse@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/selfiebefore.png b/src/modules/kyc/images/selfiebefore.png deleted file mode 100644 index e7b2d5e04..000000000 Binary files a/src/modules/kyc/images/selfiebefore.png and /dev/null differ diff --git a/src/modules/kyc/images/selfiebefore@2x.png b/src/modules/kyc/images/selfiebefore@2x.png deleted file mode 100644 index 4c615f893..000000000 Binary files a/src/modules/kyc/images/selfiebefore@2x.png and /dev/null differ diff --git a/src/modules/kyc/images/selfiebefore@3x.png b/src/modules/kyc/images/selfiebefore@3x.png deleted file mode 100644 index eb33bc904..000000000 Binary files a/src/modules/kyc/images/selfiebefore@3x.png and /dev/null differ diff --git a/src/modules/kyc/images/userIcon.png b/src/modules/kyc/images/userIcon.png deleted file mode 100644 index f2bd63c77..000000000 Binary files a/src/modules/kyc/images/userIcon.png and /dev/null differ diff --git a/src/modules/main/Main.tsx b/src/modules/main/Main.tsx index 8b7f2f96f..026b75a01 100644 --- a/src/modules/main/Main.tsx +++ b/src/modules/main/Main.tsx @@ -16,7 +16,6 @@ import MainInfo from '../more/MainInfo'; import MainList from '../products/MainList'; import { Main as DashBoardMain } from '../dashboard/Main'; import Notifications from '../notification/Notifications'; -import { KycStatus } from '../../enums/KycStatus'; import LegacyRefundStatus from '../../enums/LegacyRefundStatus'; import ProviderType from '../../enums/ProviderType'; import UserContext from '../../contexts/UserContext'; @@ -112,18 +111,18 @@ const Main: FunctionComponent = () => { {notifications.filter( (notification) => notification.status === 'unread', ).length > 0 && ( - - )} + + )} ), }} @@ -143,9 +142,7 @@ const Main: FunctionComponent = () => { }} source={focused ? OptionsBlackPng : OptionsPng} /> - {((user.kycStatus === KycStatus.NONE && - user.provider === ProviderType.EMAIL) || - !(user.ethAddresses?.length > 0)) && ( + {!(user.ethAddresses?.length > 0) && ( { }}> {(user.provider === ProviderType.GUEST || user.provider === ProviderType.ETH) && ( - - setState({ ...state, email: input }) - } - /> - )} + + setState({ ...state, email: input }) + } + /> + )}