├── .babelrc
├── .dockerignore
├── .domains.example
├── .drone.yml
├── .gitignore
├── .nvmrc
├── .prettierrc
├── .stylelintrc.json
├── .vscode
└── launch.json
├── .yarnclean
├── Dockerfile
├── LICENSE.md
├── README.md
├── VERSION
├── __mocks__
├── fileMock.js
└── styleMock.js
├── capacitor.config.json
├── config-overrides.js
├── cypress.json
├── docs
├── basic_customization.html.md
├── releases
│ ├── 2.1.0.md
│ └── 2.2.0.md
└── roadmap.md
├── images.d.ts
├── ionic.config.json
├── jest.config.js
├── mocks
├── api
│ └── v2
│ │ ├── applogic
│ │ └── customization
│ │ │ ├── GET.mock
│ │ │ ├── OPTIONS.mock
│ │ │ └── POST.mock
│ │ ├── barong
│ │ ├── identity
│ │ │ ├── configs
│ │ │ │ └── GET.mock
│ │ │ ├── ping
│ │ │ │ └── GET.mock
│ │ │ ├── sessions
│ │ │ │ ├── DELETE.mock
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ ├── POST--email=&password=&otp_code=.mock
│ │ │ │ ├── POST--email=accountant@barong.io&password=123123.mock
│ │ │ │ ├── POST--email=admin@barong.io&password=123123&otp_code=&recaptcha_response=.mock
│ │ │ │ ├── POST--email=compliance@barong.io&password=123123&otp_code=.mock
│ │ │ │ ├── POST--email=otp@peatio.tech&password=123123&otp_code=&recaptcha_response=.mock
│ │ │ │ ├── POST--email=otp@peatio.tech&password=123123&otp_code=123456&recaptcha_response=.mock
│ │ │ │ ├── POST--email=superadmin@barong.io&password=123123&otp_code=.mock
│ │ │ │ ├── POST--email=support@barong.io&password=123123&otp_code=.mock
│ │ │ │ ├── POST--email=technical@peatio.tech&password=123123&otp_code=.mock
│ │ │ │ ├── POST--email=toweradmin@barong.io&password=123123&otp_code=.mock
│ │ │ │ ├── POST--email=user1@peatio.tech&password=123123&otp_code=&recaptcha_response=.mock
│ │ │ │ ├── POST--email=user2@peatio.tech&password=123123&otp_code=&recaptcha_response=.mock
│ │ │ │ ├── POST--email=wrong@peatio.tech&password=123123&otp_code=&recaptcha_response=.mock
│ │ │ │ └── POST.mock
│ │ │ └── users
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ ├── POST.mock
│ │ │ │ ├── email
│ │ │ │ └── generate_code
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ ├── POST--email=wrong@email.com.mock
│ │ │ │ │ └── POST.mock
│ │ │ │ ├── password
│ │ │ │ ├── confirm_code
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ └── POST.mock
│ │ │ │ └── generate_code
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ └── POST.mock
│ │ │ │ └── register_geetest
│ │ │ │ └── GET.mock
│ │ └── resource
│ │ │ ├── api_keys
│ │ │ ├── GET--page=1&limit=4.mock
│ │ │ ├── GET--page=2&limit=4.mock
│ │ │ ├── GET--page=5&limit=1.mock
│ │ │ ├── GET--totp_code=.mock
│ │ │ ├── GET.mock
│ │ │ ├── OPTIONS.mock
│ │ │ ├── POST--totp_code=&algorithm=HS256.mock
│ │ │ ├── POST.mock
│ │ │ └── __
│ │ │ │ ├── DELETE--totp_code=.mock
│ │ │ │ ├── DELETE.mock
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ ├── PATCH--totp_code=000000&state=disabled.mock
│ │ │ │ └── PATCH.mock
│ │ │ ├── documents
│ │ │ └── POST.mock
│ │ │ ├── labels
│ │ │ └── GET.mock
│ │ │ ├── otp
│ │ │ ├── enable
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ ├── POST--code=0000000.mock
│ │ │ │ └── POST.mock
│ │ │ └── generate_qrcode
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ └── POST.mock
│ │ │ ├── phones
│ │ │ ├── OPTIONS.mock
│ │ │ ├── POST--phone_number=+1111.mock
│ │ │ ├── POST--phone_number=+1234.mock
│ │ │ ├── send_code
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ └── POST.mock
│ │ │ └── verify
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ └── POST.mock
│ │ │ ├── profiles
│ │ │ ├── OPTIONS.mock
│ │ │ └── POST.mock
│ │ │ └── users
│ │ │ ├── activity
│ │ │ ├── GET--limit=25&page=1.mock
│ │ │ ├── GET--limit=25&page=2.mock
│ │ │ └── all
│ │ │ │ ├── GET--limit=10&page=1.mock
│ │ │ │ ├── GET--limit=10&page=2.mock
│ │ │ │ ├── GET--limit=10&page=3.mock
│ │ │ │ ├── GET--limit=25&page=1.mock
│ │ │ │ ├── GET--limit=25&page=2.mock
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── me
│ │ │ ├── GET.mock
│ │ │ ├── OPTIONS.mock
│ │ │ └── PUT.mock
│ │ │ └── password
│ │ │ ├── OPTIONS.mock
│ │ │ ├── PUT--old_password=11111111&new_password=11111111&confirm_password=11111111.mock
│ │ │ └── PUT.mock
│ │ ├── finex
│ │ └── public
│ │ │ └── markets
│ │ │ └── GET.mock
│ │ └── peatio
│ │ ├── account
│ │ ├── balances
│ │ │ ├── GET.mock
│ │ │ ├── OPTIONS.mock
│ │ │ ├── bch
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── btc
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── dash
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── eth
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── eur
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── ltc
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── usd
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── xrp
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ └── zar
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ ├── beneficiaries
│ │ │ ├── 10
│ │ │ │ ├── DELETE.mock
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ ├── activate
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ ├── PATCH--pin=111111&id=10.mock
│ │ │ │ │ ├── PATCH.mock
│ │ │ │ │ └── POST.mock
│ │ │ │ └── resend_pin
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ ├── PATCH--id=10.mock
│ │ │ │ │ └── PATCH.mock
│ │ │ ├── GET.mock
│ │ │ ├── OPTIONS.mock
│ │ │ ├── POST--currency=btc&name=111&data.address=111.mock
│ │ │ └── POST.mock
│ │ ├── deposit_address
│ │ │ ├── bch
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── btc
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── dash
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── eth
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ ├── ltc
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ │ └── xrp
│ │ │ │ ├── GET.mock
│ │ │ │ └── OPTIONS.mock
│ │ ├── deposits
│ │ │ ├── GET--limit=1¤cy=btc&page=7.mock
│ │ │ ├── GET--limit=100.mock
│ │ │ ├── GET--limit=6¤cy=btc&page=1.mock
│ │ │ ├── GET--limit=6¤cy=btc&page=2.mock
│ │ │ ├── GET--page=1&limit=25.mock
│ │ │ ├── GET--page=2&limit=25.mock
│ │ │ ├── GET.mock
│ │ │ └── OPTIONS.mock
│ │ ├── history
│ │ │ ├── GET--currency=btc&sort=date&order=asc&start_date=2019-04-01&end_date=2019-04-08.mock
│ │ │ ├── GET--currency=btc&sort=date&order=asc.mock
│ │ │ ├── GET--currency=btc&sort=date&order=desc&start_date=2019-04-01&end_date=2019-04-08.mock
│ │ │ ├── GET--currency=btc&sort=date&order=desc.mock
│ │ │ ├── GET--filter=deposit+withdraw¤cy=btc&sort=date&order=asc&start_date=2019-04-01&end_date=2019-04-08.mock
│ │ │ ├── GET--filter=deposit+withdraw¤cy=btc&sort=date&order=asc.mock
│ │ │ ├── GET--filter=deposit+withdraw¤cy=btc&sort=date&order=desc&start_date=2019-04-01&end_date=2019-04-08.mock
│ │ │ ├── GET--filter=deposit+withdraw¤cy=btc&sort=date&order=desc.mock
│ │ │ ├── GET--filter=trade¤cy=btc&sort=date&order=asc&start_date=2019-04-01&end_date=2019-04-08.mock
│ │ │ ├── GET--filter=trade¤cy=btc&sort=date&order=asc.mock
│ │ │ ├── GET--filter=trade¤cy=btc&sort=date&order=desc&start_date=2019-04-01&end_date=2019-04-08.mock
│ │ │ ├── GET--filter=trade¤cy=btc&sort=date&order=desc.mock
│ │ │ ├── GET--limit=5¤cy=btc&sort=date&order=asc.mock
│ │ │ ├── GET--limit=5¤cy=btc&sort=date&order=desc.mock
│ │ │ ├── GET.mock
│ │ │ └── OPTIONS.mock
│ │ └── withdraws
│ │ │ ├── GET--limit=100.mock
│ │ │ ├── GET--page=1&limit=25.mock
│ │ │ ├── GET--page=2&limit=25.mock
│ │ │ ├── GET.mock
│ │ │ ├── OPTIONS.mock
│ │ │ └── POST.mock
│ │ ├── market
│ │ ├── orders
│ │ │ ├── GET--limit=25&page=2&state=wait.mock
│ │ │ ├── GET--market=bchbtc&state=cancel.mock
│ │ │ ├── GET--market=bchbtc&state=done.mock
│ │ │ ├── GET--market=bchbtc&state=wait.mock
│ │ │ ├── GET--market=bchbtc.mock
│ │ │ ├── GET--market=bchzar&state=cancel.mock
│ │ │ ├── GET--market=bchzar&state=done.mock
│ │ │ ├── GET--market=bchzar&state=wait.mock
│ │ │ ├── GET--market=bchzar.mock
│ │ │ ├── GET--market=btczar&state=cancel.mock
│ │ │ ├── GET--market=btczar&state=done.mock
│ │ │ ├── GET--market=btczar&state=wait.mock
│ │ │ ├── GET--market=btczar.mock
│ │ │ ├── GET--market=dashbtc&state=cancel.mock
│ │ │ ├── GET--market=dashbtc&state=done.mock
│ │ │ ├── GET--market=dashbtc&state=wait.mock
│ │ │ ├── GET--market=dashbtc.mock
│ │ │ ├── GET--market=dashzar&state=cancel.mock
│ │ │ ├── GET--market=dashzar&state=done.mock
│ │ │ ├── GET--market=dashzar&state=wait.mock
│ │ │ ├── GET--market=dashzar.mock
│ │ │ ├── GET--market=ethbtc&state=cancel.mock
│ │ │ ├── GET--market=ethbtc&state=done.mock
│ │ │ ├── GET--market=ethbtc&state=wait.mock
│ │ │ ├── GET--market=ethbtc.mock
│ │ │ ├── GET--market=ethusd&state=cancel.mock
│ │ │ ├── GET--market=ethusd&state=done.mock
│ │ │ ├── GET--market=ethusd&state=wait.mock
│ │ │ ├── GET--market=ethusd.mock
│ │ │ ├── GET--market=ethzar&state=cancel.mock
│ │ │ ├── GET--market=ethzar&state=done.mock
│ │ │ ├── GET--market=ethzar&state=wait.mock
│ │ │ ├── GET--market=ethzar.mock
│ │ │ ├── GET--market=eurusd&state=cancel.mock
│ │ │ ├── GET--market=eurusd&state=done.mock
│ │ │ ├── GET--market=eurusd&state=wait.mock
│ │ │ ├── GET--market=eurusd.mock
│ │ │ ├── GET--market=ltcbtc&state=cancel.mock
│ │ │ ├── GET--market=ltcbtc&state=done.mock
│ │ │ ├── GET--market=ltcbtc&state=wait.mock
│ │ │ ├── GET--market=ltcbtc.mock
│ │ │ ├── GET--market=ltczar&state=cancel.mock
│ │ │ ├── GET--market=ltczar&state=done.mock
│ │ │ ├── GET--market=ltczar&state=wait.mock
│ │ │ ├── GET--market=ltczar.mock
│ │ │ ├── GET--market=xrpbtc&state=cancel.mock
│ │ │ ├── GET--market=xrpbtc&state=done.mock
│ │ │ ├── GET--market=xrpbtc&state=wait.mock
│ │ │ ├── GET--market=xrpbtc.mock
│ │ │ ├── GET--market=xrpzar&state=cancel.mock
│ │ │ ├── GET--market=xrpzar&state=done.mock
│ │ │ ├── GET--market=xrpzar&state=wait.mock
│ │ │ ├── GET--market=xrpzar.mock
│ │ │ ├── GET--page=1&limit=25&state=wait.mock
│ │ │ ├── GET--page=1&limit=25.mock
│ │ │ ├── GET--page=2&limit=25.mock
│ │ │ ├── GET.mock
│ │ │ ├── OPTIONS.mock
│ │ │ ├── POST--market=ethbtc&side=buy&volume=0.5&ord_type=market.mock
│ │ │ ├── POST--market=ethbtc&side=buy&volume=1.5&ord_type=market.mock
│ │ │ ├── POST--market=ethbtc&side=sell&volume=2&ord_type=limit&price=20.mock
│ │ │ ├── POST--market=ethusd&side=buy&volume=0.5&ord_type=market.mock
│ │ │ ├── POST--market=ethusd&side=buy&volume=1&ord_type=limit&price=10.mock
│ │ │ ├── POST--market=ethusd&side=sell&volume=1&ord_type=market.mock
│ │ │ ├── POST--market=ethusd&side=sell&volume=2&ord_type=limit&price=20.mock
│ │ │ ├── POST.mock
│ │ │ ├── __
│ │ │ │ └── cancel
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ └── POST.mock
│ │ │ └── cancel
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ └── POST.mock
│ │ └── trades
│ │ │ ├── GET--market=bchzar.mock
│ │ │ ├── GET--market=btczar.mock
│ │ │ ├── GET--market=dashbtc.mock
│ │ │ ├── GET--market=ethbtc.mock
│ │ │ ├── GET--market=eurusd.mock
│ │ │ ├── GET--page=1&limit=25.mock
│ │ │ ├── GET.mock
│ │ │ └── OPTIONS.mock
│ │ ├── public
│ │ ├── currencies
│ │ │ └── GET.mock
│ │ ├── markets
│ │ │ ├── GET.mock
│ │ │ ├── OPTIONS.mock
│ │ │ ├── bchzar
│ │ │ │ ├── depth
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ └── script.js
│ │ │ │ ├── k-line
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ │ └── trades
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ ├── btczar
│ │ │ │ ├── depth
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ └── script.js
│ │ │ │ ├── k-line
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ │ └── trades
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ ├── dashbtc
│ │ │ │ ├── depth
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ └── script.js
│ │ │ │ ├── k-line
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ │ └── trades
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ ├── ethbtc
│ │ │ │ ├── depth
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ ├── OPTIONS.mock
│ │ │ │ │ └── script.js
│ │ │ │ ├── k-line
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ │ └── trades
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ ├── eurusd
│ │ │ │ ├── depth
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ │ ├── k-line
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ │ └── trades
│ │ │ │ │ ├── GET.mock
│ │ │ │ │ └── OPTIONS.mock
│ │ │ ├── k-line.js
│ │ │ └── tickers
│ │ │ │ ├── GET.mock
│ │ │ │ ├── OPTIONS.mock
│ │ │ │ └── script.js
│ │ └── member-levels
│ │ │ ├── GET.mock
│ │ │ └── OPTIONS.mock
│ │ └── swagger
│ │ └── GET.mock
├── helpers.js
├── markets.js
├── mockAPI.js
├── mockWS.js
├── mockserver.js
└── ranger.js
├── nginx.conf
├── package.json
├── postcss.config.js
├── public
├── charting_library
│ ├── charting_library.min.d.ts
│ ├── charting_library.min.js
│ ├── datafeed-api.d.ts
│ └── static
│ │ ├── ar-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── bundles
│ │ ├── 0.1d4cbcaddbec7d8c5363.js
│ │ ├── 1.2fa13f88d2bf6ae6f3f0.css
│ │ ├── 1.2fa13f88d2bf6ae6f3f0.rtl.css
│ │ ├── 1.ea828ac684caa2b94a1b.js
│ │ ├── 10.0501e55a3ef6aa50aec6.js
│ │ ├── 10.c0a8664f16f3834961e4.css
│ │ ├── 10.c0a8664f16f3834961e4.rtl.css
│ │ ├── 11.b900b9cb8ed6dd3bc321.css
│ │ ├── 11.b900b9cb8ed6dd3bc321.rtl.css
│ │ ├── 11.dd520838f92e45cd91e3.js
│ │ ├── 12.18e3c4b9c329e737cb80.js
│ │ ├── 12.87f9777d9fe2086ce090.css
│ │ ├── 12.87f9777d9fe2086ce090.rtl.css
│ │ ├── 13.46f312828e93b6546d0c.js
│ │ ├── 14.579d7892443d1a90180c.js
│ │ ├── 15.19c5212d15382007773d.js
│ │ ├── 16.cc58f582c191485d9392.css
│ │ ├── 16.cc58f582c191485d9392.rtl.css
│ │ ├── 16.e0d00f8a564954896734.js
│ │ ├── 17.00b04a06a8cd9c6f5f6c.js
│ │ ├── 18.183d41ade16dae257526.css
│ │ ├── 18.183d41ade16dae257526.rtl.css
│ │ ├── 18.e4c458360dbad4de5cf6.js
│ │ ├── 19.aba848e28ec755548668.css
│ │ ├── 19.aba848e28ec755548668.rtl.css
│ │ ├── 19.c5542d290eefbb001433.js
│ │ ├── 2.195070ea59b3395625da.js
│ │ ├── 2.a3e34146d368d13b6bc1.css
│ │ ├── 2.a3e34146d368d13b6bc1.rtl.css
│ │ ├── 20.2416da4fc4c075b56691.js
│ │ ├── 20.f75162343321d7d9178c.css
│ │ ├── 20.f75162343321d7d9178c.rtl.css
│ │ ├── 21.7e987db0ed47cc3f789c.css
│ │ ├── 21.7e987db0ed47cc3f789c.rtl.css
│ │ ├── 21.fc856808959a5b8734f7.js
│ │ ├── 22.c118eafc7686081984c8.js
│ │ ├── 22.f31ebffc8672752a2d4b.css
│ │ ├── 22.f31ebffc8672752a2d4b.rtl.css
│ │ ├── 23.7c4be219df640cb3880c.css
│ │ ├── 23.7c4be219df640cb3880c.rtl.css
│ │ ├── 23.e89d09694523563b8f86.js
│ │ ├── 24.319f9ed9725f3cea260a.js
│ │ ├── 25.15d449d35706e01821dd.js
│ │ ├── 26.16e9146c09ea7d6b839a.js
│ │ ├── 27.54aad15135c7ea57b345.js
│ │ ├── 28.3f2589cd73664ea3f3e3.js
│ │ ├── 29.6a6accc00e80feb13030.js
│ │ ├── 3.f41fdd1a128935b63e5b.js
│ │ ├── 30.c3cc90c5fbe9a2b87ffb.js
│ │ ├── 31.5c895c4f655400b0b4e2.css
│ │ ├── 31.5c895c4f655400b0b4e2.rtl.css
│ │ ├── 31.d081df3316799b489847.js
│ │ ├── 32.48df7a8cdc38d60b308b.js
│ │ ├── 32.b92773bfff0363a69bb9.css
│ │ ├── 32.b92773bfff0363a69bb9.rtl.css
│ │ ├── 33.4a74c62095be3045c87e.js
│ │ ├── 33.ac320c107772f8e72252.css
│ │ ├── 33.ac320c107772f8e72252.rtl.css
│ │ ├── 34.17e0ce399a577f17ba55.js
│ │ ├── 34.dd27b311326fd1fc6fde.css
│ │ ├── 34.dd27b311326fd1fc6fde.rtl.css
│ │ ├── 35.47b9d16b3fa10b495a11.css
│ │ ├── 35.47b9d16b3fa10b495a11.rtl.css
│ │ ├── 35.58433cec10095e3c1b7e.js
│ │ ├── 36.2ee80b40751fcc88a65c.js
│ │ ├── 36.e9a6bec06ee11d2c2d4a.css
│ │ ├── 36.e9a6bec06ee11d2c2d4a.rtl.css
│ │ ├── 37.065a5f2249aafcfe50ec.css
│ │ ├── 37.065a5f2249aafcfe50ec.rtl.css
│ │ ├── 37.1735365b01406a8d696d.js
│ │ ├── 38.4073381c29c4e2bc2209.css
│ │ ├── 38.4073381c29c4e2bc2209.rtl.css
│ │ ├── 38.9ae2eea9402c30aa3046.js
│ │ ├── 39.5f64b4bc2e263edfbf6e.css
│ │ ├── 39.5f64b4bc2e263edfbf6e.rtl.css
│ │ ├── 39.7e524b82ef9947f0f19f.js
│ │ ├── 4.80bf1a925965757be6d4.js
│ │ ├── 40.0f54f57304896d7506a2.css
│ │ ├── 40.0f54f57304896d7506a2.rtl.css
│ │ ├── 40.42bd9598272e9dd24457.js
│ │ ├── 41.11c024e8e0504741fd66.js
│ │ ├── 41.1dc91fcdd5dbde1247d7.css
│ │ ├── 41.1dc91fcdd5dbde1247d7.rtl.css
│ │ ├── 42.0491acaaf55887f7fcb3.js
│ │ ├── 42.db948a104cb86b7df06e.css
│ │ ├── 42.db948a104cb86b7df06e.rtl.css
│ │ ├── 43.12df9892872230fa2898.css
│ │ ├── 43.12df9892872230fa2898.rtl.css
│ │ ├── 43.4ae432f1b8259dbfd0e5.js
│ │ ├── 44.01ec30ff4ce8cf7fa8e5.css
│ │ ├── 44.01ec30ff4ce8cf7fa8e5.rtl.css
│ │ ├── 44.7aabc64d3dfb54c85d60.js
│ │ ├── 45.6c1fc3ac2f6063249f97.js
│ │ ├── 45.e09d2beed14ffd8995a9.css
│ │ ├── 45.e09d2beed14ffd8995a9.rtl.css
│ │ ├── 46.75a0e6fecbc3c92a6bc7.js
│ │ ├── 46.923fdbea563cd1d28d4c.css
│ │ ├── 46.923fdbea563cd1d28d4c.rtl.css
│ │ ├── 47.773635a99e184d6dc131.js
│ │ ├── 47.b48791ffffadc9c96a10.css
│ │ ├── 47.b48791ffffadc9c96a10.rtl.css
│ │ ├── 48.912258c9b4f11cd518c3.css
│ │ ├── 48.912258c9b4f11cd518c3.rtl.css
│ │ ├── 48.9d08141ee2d55bcad3e7.js
│ │ ├── 49.0cb5c561f3b28a047912.css
│ │ ├── 49.0cb5c561f3b28a047912.rtl.css
│ │ ├── 49.929acbc67c2613c57f58.js
│ │ ├── 5.1beaffde9123ffaeff74.js
│ │ ├── 50.2c50aad369bf63f77061.js
│ │ ├── 50.e2f9bc14536ad546e595.css
│ │ ├── 50.e2f9bc14536ad546e595.rtl.css
│ │ ├── 51.30c5804303a9f1c455e3.js
│ │ ├── 51.a35e4c0d0b08a018e307.css
│ │ ├── 51.a35e4c0d0b08a018e307.rtl.css
│ │ ├── 52.be1d70abe1a172cc5c3a.css
│ │ ├── 52.be1d70abe1a172cc5c3a.rtl.css
│ │ ├── 52.c212ca3684de16c6f115.js
│ │ ├── 53.3f6d736abe33683640bc.css
│ │ ├── 53.3f6d736abe33683640bc.rtl.css
│ │ ├── 53.7217742e39b70fc9d431.js
│ │ ├── 54.9eb4ca2a30197d95fe82.js
│ │ ├── 54.cf540e4ba48bf75e96c2.css
│ │ ├── 54.cf540e4ba48bf75e96c2.rtl.css
│ │ ├── 55.7707e6ae9f2ec8cfb656.js
│ │ ├── 55.c11884ad80d526214fb6.css
│ │ ├── 55.c11884ad80d526214fb6.rtl.css
│ │ ├── 56.83cd8456e872f49059c3.js
│ │ ├── 56.ea0c135a2b02b495fbb5.css
│ │ ├── 56.ea0c135a2b02b495fbb5.rtl.css
│ │ ├── 57.6384b62456dc4fed6ffb.js
│ │ ├── 57.651927021db01a7ed13f.css
│ │ ├── 57.651927021db01a7ed13f.rtl.css
│ │ ├── 58.8077d6b199609737b3d5.js
│ │ ├── 58.82b7bef062a290e587d4.css
│ │ ├── 58.82b7bef062a290e587d4.rtl.css
│ │ ├── 6.35dee0cfeb8a4d70732c.css
│ │ ├── 6.35dee0cfeb8a4d70732c.rtl.css
│ │ ├── 6.902d5f3923d45b49b876.js
│ │ ├── 7.e98fce2ffac2c552565f.css
│ │ ├── 7.e98fce2ffac2c552565f.rtl.css
│ │ ├── 7.fc0941206f7b7d32812d.js
│ │ ├── 8.180c6bdc716e5045b645.css
│ │ ├── 8.180c6bdc716e5045b645.rtl.css
│ │ ├── 8.62bd4ee21281906a7019.js
│ │ ├── 9.855edb9bea2352bd5129.js
│ │ ├── add-compare-dialog.e9db1b14483f3e7358f4.js
│ │ ├── change-interval-dialog.c8c04c297cc329376f2b.js
│ │ ├── chart-bottom-toolbar.da7ac0cc35cc8a26f65a.js
│ │ ├── chart-widget-gui.8005316cfc1f06be4bf0.js
│ │ ├── clipboard.5403f9bd852af06addff.js
│ │ ├── confirm-inputs-dialog.f9823e95a365cd8974c9.js
│ │ ├── confirm-symbol-input-dialog.c72289c830292c73812f.js
│ │ ├── context-menu-renderer.5eff9c34fa03e94b2c1b.js
│ │ ├── create-dialog.472fe015128398f27a86.js
│ │ ├── crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur
│ │ ├── dialogs-core.c712826575e8ea62d8e0.js
│ │ ├── dialogs-core.e9f630dd3fdeb4ceee21.css
│ │ ├── dialogs-core.e9f630dd3fdeb4ceee21.rtl.css
│ │ ├── dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur
│ │ ├── drawing-toolbar.35360bdf4aedb7db7287.js
│ │ ├── ds-property-pages.33a0b54c87f584f79681.js
│ │ ├── editobjectdialog.a4fd348616e0724542ac.js
│ │ ├── eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur
│ │ ├── export-data.ea9e219d1d41389ea3b7.js
│ │ ├── floating-toolbars.d7f25f59513991368767.js
│ │ ├── fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff
│ │ ├── fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2
│ │ ├── go-to-date-dialog-impl.51162344726d8956c763.js
│ │ ├── grab.bc156522a6b55a60be9fae15c14b66c5.cur
│ │ ├── grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur
│ │ ├── hammerjs.46686dd839f22b742351.js
│ │ ├── header-toolbar.743cca210a6a3e37939e.js
│ │ ├── ie-fallback-logos.589046871bfa17cbfbda.js
│ │ ├── lazy-jquery-ui.3a9fe36168ca8e6cacb8.js
│ │ ├── lazy-velocity.d040cf1092d3b2920dde.js
│ │ ├── library.bb7ca756e7cbe50becb3.css
│ │ ├── library.bb7ca756e7cbe50becb3.rtl.css
│ │ ├── library.e964cdc99937c68d0389.js
│ │ ├── line-tools-icons.c89643eed013eb0ff7c1.js
│ │ ├── load-chart-dialog.24806d5c5be9fbdfd103.js
│ │ ├── lt-pane-views.e06093931461762ecd11.js
│ │ ├── moment.fdf50ccef2c78863664d.js
│ │ ├── new-edit-object-dialog.232c44a337440602cba4.js
│ │ ├── objecttreedialog.bb84539d18c87a88a80b.js
│ │ ├── opacity-pattern.a6506134daec7169f68f563f084a9d41.svg
│ │ ├── precache-manifest.60144109bbe17651b1eb050c29e4f6f4.js
│ │ ├── react.cdaa9c19dda854fad341.js
│ │ ├── restricted-toolset.e356a29caff335c91f6b.js
│ │ ├── runtime.d22af752ee0c2111becd.js
│ │ ├── series-icons-map.e3b746e7a7341e8ddb2d.js
│ │ ├── series-pane-views.678a074c53e327c3184a.js
│ │ ├── service-worker.js
│ │ ├── study-market.ff409c6c02ba9edc0151.js
│ │ ├── study-pane-views.ee901b6c4a31f84ba03d.js
│ │ ├── study-template-dialog.a6f710070f1f64f2ef11.js
│ │ ├── symbol-info-dialog-impl.eaddb54cc066d7a021e2.js
│ │ ├── symbolsearch.0057814b113bcee3d957.js
│ │ ├── take-chart-image-dialog-impl.d61e03a87b11d0c1adf1.js
│ │ ├── vendors.267dd414d71e078f822c.js
│ │ └── zoom.e21f24dd632c7069139bc47ae89c54b5.cur
│ │ ├── cs-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── da_DK-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── de-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── el-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── en-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── es-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── et_EE-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── fa-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── fr-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── he_IL-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── hu_HU-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── id_ID-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── images
│ │ ├── balloon.png
│ │ ├── bar-loader.gif
│ │ ├── button-bg.png
│ │ ├── charting_library
│ │ │ ├── logo-widget-copyright-faded.png
│ │ │ └── logo-widget-copyright.png
│ │ ├── controlll.png
│ │ ├── delayed.png
│ │ ├── dialogs
│ │ │ ├── checkbox.png
│ │ │ ├── close-flat.png
│ │ │ ├── large-slider-handle.png
│ │ │ ├── linewidth-slider.png
│ │ │ └── opacity-slider.png
│ │ ├── icons.png
│ │ ├── prediction-clock-black.png
│ │ ├── prediction-clock-white.png
│ │ ├── prediction-failure-white.png
│ │ ├── prediction-success-white.png
│ │ ├── price_label.png
│ │ ├── select-bg.png
│ │ ├── svg
│ │ │ ├── chart
│ │ │ │ ├── bucket2.svg
│ │ │ │ ├── font.svg
│ │ │ │ ├── large-slider-handle.svg
│ │ │ │ └── pencil2.svg
│ │ │ └── question-mark-rounded.svg
│ │ ├── tvcolorpicker-bg-gradient.png
│ │ ├── tvcolorpicker-bg.png
│ │ ├── tvcolorpicker-check.png
│ │ └── tvcolorpicker-sprite.png
│ │ ├── it-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ja-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ko-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ms_MY-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── nl_NL-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── no-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── pl-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── pt-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ro-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ru-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── sk_SK-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── sv-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── th-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── tr-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── vi-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── zh-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ └── zh_TW-tv-chart.8562c7b8f7bdb50c1f5d.html
├── config
│ └── env.js
├── css
│ ├── theme.css
│ └── tradingview.css
├── datafeeds
│ ├── README.md
│ └── udf
│ │ ├── .npmrc
│ │ ├── README.md
│ │ ├── dist
│ │ ├── bundle.js
│ │ └── polyfills.js
│ │ ├── lib
│ │ ├── data-pulse-provider.js
│ │ ├── helpers.js
│ │ ├── history-provider.js
│ │ ├── iquotes-provider.js
│ │ ├── quotes-provider.js
│ │ ├── quotes-pulse-provider.js
│ │ ├── requester.js
│ │ ├── symbols-storage.js
│ │ ├── udf-compatible-datafeed-base.js
│ │ └── udf-compatible-datafeed.js
│ │ ├── package.json
│ │ ├── rollup.config.js
│ │ ├── src
│ │ ├── data-pulse-provider.js
│ │ ├── data-pulse-provider.ts
│ │ ├── helpers.js
│ │ ├── helpers.ts
│ │ ├── history-provider.js
│ │ ├── history-provider.ts
│ │ ├── iquotes-provider.js
│ │ ├── iquotes-provider.ts
│ │ ├── polyfills.es6
│ │ ├── quotes-provider.js
│ │ ├── quotes-provider.ts
│ │ ├── quotes-pulse-provider.js
│ │ ├── quotes-pulse-provider.ts
│ │ ├── requester.js
│ │ ├── requester.ts
│ │ ├── symbols-storage.js
│ │ ├── symbols-storage.ts
│ │ ├── udf-compatible-datafeed-base.js
│ │ ├── udf-compatible-datafeed-base.ts
│ │ ├── udf-compatible-datafeed.js
│ │ └── udf-compatible-datafeed.ts
│ │ └── tsconfig.json
├── favicon.ico
├── index.html
└── manifest.json
├── robots.txt
├── scripts
├── build.sh
└── validate_commit.js
├── spec
├── fixtures
│ ├── example.json
│ ├── profile.json
│ └── users.json
├── integration
│ └── login_spec.js
├── plugins
│ └── index.js
└── support
│ ├── commands.js
│ └── index.js
├── src
├── App.test.tsx
├── App.tsx
├── api
│ ├── config.ts
│ ├── index.ts
│ ├── requestBuilder.ts
│ ├── tests
│ │ └── requestBuilder.test.ts
│ └── types.ts
├── assets
│ └── images
│ │ ├── BackgroundMaintenance.tsx
│ │ ├── ChevronIcon.tsx
│ │ ├── ClockIcon.tsx
│ │ ├── CloseIcon.tsx
│ │ ├── LetterIcon.tsx
│ │ ├── LockIcon.tsx
│ │ ├── LockedIcon.tsx
│ │ ├── LogoIcon.tsx
│ │ ├── LogoutIcon.tsx
│ │ ├── MetaMaskLogo.tsx
│ │ ├── Moon.tsx
│ │ ├── NavBarIcons.tsx
│ │ ├── PendingIcon.tsx
│ │ ├── PlusIcon.tsx
│ │ ├── RejectedIcon.tsx
│ │ ├── SearchFieldCloseIcon.tsx
│ │ ├── SortIcons.tsx
│ │ ├── Sun.tsx
│ │ ├── TipIcon.tsx
│ │ ├── TrashBin.tsx
│ │ ├── background.svg
│ │ ├── chart.svg
│ │ ├── customization
│ │ ├── ArrowIcon.tsx
│ │ ├── PaletteIcon.tsx
│ │ └── SettingsIcon.tsx
│ │ ├── kyc
│ │ ├── CheckBigIcon.tsx
│ │ ├── CheckIcon.tsx
│ │ ├── ClocksIcon.tsx
│ │ ├── CrossIcon.tsx
│ │ ├── DocumentBackExample.svg
│ │ ├── DocumentFrontExample.svg
│ │ ├── DocumentSelfieExample.svg
│ │ └── TipIcon.tsx
│ │ ├── landing
│ │ ├── GridMainBG.svg
│ │ ├── GridSecondBG.svg
│ │ ├── PhoneImage.svg
│ │ ├── TradingUIFullBG.png
│ │ ├── features
│ │ │ ├── API.svg
│ │ │ ├── Community.svg
│ │ │ ├── Customize.svg
│ │ │ ├── Exchange.svg
│ │ │ ├── Security.svg
│ │ │ └── Types.svg
│ │ └── social
│ │ │ ├── CoinMarket.svg
│ │ │ ├── Facebook.svg
│ │ │ ├── LinkedIn.svg
│ │ │ ├── Medium.svg
│ │ │ ├── Reddit.svg
│ │ │ ├── Telegram.svg
│ │ │ ├── Twitter.svg
│ │ │ └── YouTube.svg
│ │ ├── openwareLogo.svg
│ │ └── sidebar
│ │ ├── LogoutIcon.tsx
│ │ ├── ProfileIcon.tsx
│ │ ├── SidebarIcons.tsx
│ │ ├── en.svg
│ │ └── ru.svg
├── charting_library
│ ├── charting_library.min.d.ts
│ ├── charting_library.min.js
│ ├── datafeed-api.d.ts
│ └── static
│ │ ├── ar-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── bundles
│ │ ├── 0.1d4cbcaddbec7d8c5363.js
│ │ ├── 1.2fa13f88d2bf6ae6f3f0.css
│ │ ├── 1.2fa13f88d2bf6ae6f3f0.rtl.css
│ │ ├── 1.ea828ac684caa2b94a1b.js
│ │ ├── 10.0501e55a3ef6aa50aec6.js
│ │ ├── 10.c0a8664f16f3834961e4.css
│ │ ├── 10.c0a8664f16f3834961e4.rtl.css
│ │ ├── 11.b900b9cb8ed6dd3bc321.css
│ │ ├── 11.b900b9cb8ed6dd3bc321.rtl.css
│ │ ├── 11.dd520838f92e45cd91e3.js
│ │ ├── 12.18e3c4b9c329e737cb80.js
│ │ ├── 12.87f9777d9fe2086ce090.css
│ │ ├── 12.87f9777d9fe2086ce090.rtl.css
│ │ ├── 13.46f312828e93b6546d0c.js
│ │ ├── 14.579d7892443d1a90180c.js
│ │ ├── 15.19c5212d15382007773d.js
│ │ ├── 16.cc58f582c191485d9392.css
│ │ ├── 16.cc58f582c191485d9392.rtl.css
│ │ ├── 16.e0d00f8a564954896734.js
│ │ ├── 17.00b04a06a8cd9c6f5f6c.js
│ │ ├── 18.183d41ade16dae257526.css
│ │ ├── 18.183d41ade16dae257526.rtl.css
│ │ ├── 18.e4c458360dbad4de5cf6.js
│ │ ├── 19.aba848e28ec755548668.css
│ │ ├── 19.aba848e28ec755548668.rtl.css
│ │ ├── 19.c5542d290eefbb001433.js
│ │ ├── 2.195070ea59b3395625da.js
│ │ ├── 2.a3e34146d368d13b6bc1.css
│ │ ├── 2.a3e34146d368d13b6bc1.rtl.css
│ │ ├── 20.2416da4fc4c075b56691.js
│ │ ├── 20.f75162343321d7d9178c.css
│ │ ├── 20.f75162343321d7d9178c.rtl.css
│ │ ├── 21.7e987db0ed47cc3f789c.css
│ │ ├── 21.7e987db0ed47cc3f789c.rtl.css
│ │ ├── 21.fc856808959a5b8734f7.js
│ │ ├── 22.c118eafc7686081984c8.js
│ │ ├── 22.f31ebffc8672752a2d4b.css
│ │ ├── 22.f31ebffc8672752a2d4b.rtl.css
│ │ ├── 23.7c4be219df640cb3880c.css
│ │ ├── 23.7c4be219df640cb3880c.rtl.css
│ │ ├── 23.e89d09694523563b8f86.js
│ │ ├── 24.319f9ed9725f3cea260a.js
│ │ ├── 25.15d449d35706e01821dd.js
│ │ ├── 26.16e9146c09ea7d6b839a.js
│ │ ├── 27.54aad15135c7ea57b345.js
│ │ ├── 28.3f2589cd73664ea3f3e3.js
│ │ ├── 29.6a6accc00e80feb13030.js
│ │ ├── 3.f41fdd1a128935b63e5b.js
│ │ ├── 30.c3cc90c5fbe9a2b87ffb.js
│ │ ├── 31.5c895c4f655400b0b4e2.css
│ │ ├── 31.5c895c4f655400b0b4e2.rtl.css
│ │ ├── 31.d081df3316799b489847.js
│ │ ├── 32.48df7a8cdc38d60b308b.js
│ │ ├── 32.b92773bfff0363a69bb9.css
│ │ ├── 32.b92773bfff0363a69bb9.rtl.css
│ │ ├── 33.4a74c62095be3045c87e.js
│ │ ├── 33.ac320c107772f8e72252.css
│ │ ├── 33.ac320c107772f8e72252.rtl.css
│ │ ├── 34.17e0ce399a577f17ba55.js
│ │ ├── 34.dd27b311326fd1fc6fde.css
│ │ ├── 34.dd27b311326fd1fc6fde.rtl.css
│ │ ├── 35.47b9d16b3fa10b495a11.css
│ │ ├── 35.47b9d16b3fa10b495a11.rtl.css
│ │ ├── 35.58433cec10095e3c1b7e.js
│ │ ├── 36.2ee80b40751fcc88a65c.js
│ │ ├── 36.e9a6bec06ee11d2c2d4a.css
│ │ ├── 36.e9a6bec06ee11d2c2d4a.rtl.css
│ │ ├── 37.065a5f2249aafcfe50ec.css
│ │ ├── 37.065a5f2249aafcfe50ec.rtl.css
│ │ ├── 37.1735365b01406a8d696d.js
│ │ ├── 38.4073381c29c4e2bc2209.css
│ │ ├── 38.4073381c29c4e2bc2209.rtl.css
│ │ ├── 38.9ae2eea9402c30aa3046.js
│ │ ├── 39.5f64b4bc2e263edfbf6e.css
│ │ ├── 39.5f64b4bc2e263edfbf6e.rtl.css
│ │ ├── 39.7e524b82ef9947f0f19f.js
│ │ ├── 4.80bf1a925965757be6d4.js
│ │ ├── 40.0f54f57304896d7506a2.css
│ │ ├── 40.0f54f57304896d7506a2.rtl.css
│ │ ├── 40.42bd9598272e9dd24457.js
│ │ ├── 41.11c024e8e0504741fd66.js
│ │ ├── 41.1dc91fcdd5dbde1247d7.css
│ │ ├── 41.1dc91fcdd5dbde1247d7.rtl.css
│ │ ├── 42.0491acaaf55887f7fcb3.js
│ │ ├── 42.db948a104cb86b7df06e.css
│ │ ├── 42.db948a104cb86b7df06e.rtl.css
│ │ ├── 43.12df9892872230fa2898.css
│ │ ├── 43.12df9892872230fa2898.rtl.css
│ │ ├── 43.4ae432f1b8259dbfd0e5.js
│ │ ├── 44.01ec30ff4ce8cf7fa8e5.css
│ │ ├── 44.01ec30ff4ce8cf7fa8e5.rtl.css
│ │ ├── 44.7aabc64d3dfb54c85d60.js
│ │ ├── 45.6c1fc3ac2f6063249f97.js
│ │ ├── 45.e09d2beed14ffd8995a9.css
│ │ ├── 45.e09d2beed14ffd8995a9.rtl.css
│ │ ├── 46.75a0e6fecbc3c92a6bc7.js
│ │ ├── 46.923fdbea563cd1d28d4c.css
│ │ ├── 46.923fdbea563cd1d28d4c.rtl.css
│ │ ├── 47.773635a99e184d6dc131.js
│ │ ├── 47.b48791ffffadc9c96a10.css
│ │ ├── 47.b48791ffffadc9c96a10.rtl.css
│ │ ├── 48.912258c9b4f11cd518c3.css
│ │ ├── 48.912258c9b4f11cd518c3.rtl.css
│ │ ├── 48.9d08141ee2d55bcad3e7.js
│ │ ├── 49.0cb5c561f3b28a047912.css
│ │ ├── 49.0cb5c561f3b28a047912.rtl.css
│ │ ├── 49.929acbc67c2613c57f58.js
│ │ ├── 5.1beaffde9123ffaeff74.js
│ │ ├── 50.2c50aad369bf63f77061.js
│ │ ├── 50.e2f9bc14536ad546e595.css
│ │ ├── 50.e2f9bc14536ad546e595.rtl.css
│ │ ├── 51.30c5804303a9f1c455e3.js
│ │ ├── 51.a35e4c0d0b08a018e307.css
│ │ ├── 51.a35e4c0d0b08a018e307.rtl.css
│ │ ├── 52.be1d70abe1a172cc5c3a.css
│ │ ├── 52.be1d70abe1a172cc5c3a.rtl.css
│ │ ├── 52.c212ca3684de16c6f115.js
│ │ ├── 53.3f6d736abe33683640bc.css
│ │ ├── 53.3f6d736abe33683640bc.rtl.css
│ │ ├── 53.7217742e39b70fc9d431.js
│ │ ├── 54.9eb4ca2a30197d95fe82.js
│ │ ├── 54.cf540e4ba48bf75e96c2.css
│ │ ├── 54.cf540e4ba48bf75e96c2.rtl.css
│ │ ├── 55.7707e6ae9f2ec8cfb656.js
│ │ ├── 55.c11884ad80d526214fb6.css
│ │ ├── 55.c11884ad80d526214fb6.rtl.css
│ │ ├── 56.83cd8456e872f49059c3.js
│ │ ├── 56.ea0c135a2b02b495fbb5.css
│ │ ├── 56.ea0c135a2b02b495fbb5.rtl.css
│ │ ├── 57.6384b62456dc4fed6ffb.js
│ │ ├── 57.651927021db01a7ed13f.css
│ │ ├── 57.651927021db01a7ed13f.rtl.css
│ │ ├── 58.8077d6b199609737b3d5.js
│ │ ├── 58.82b7bef062a290e587d4.css
│ │ ├── 58.82b7bef062a290e587d4.rtl.css
│ │ ├── 6.35dee0cfeb8a4d70732c.css
│ │ ├── 6.35dee0cfeb8a4d70732c.rtl.css
│ │ ├── 6.902d5f3923d45b49b876.js
│ │ ├── 7.e98fce2ffac2c552565f.css
│ │ ├── 7.e98fce2ffac2c552565f.rtl.css
│ │ ├── 7.fc0941206f7b7d32812d.js
│ │ ├── 8.180c6bdc716e5045b645.css
│ │ ├── 8.180c6bdc716e5045b645.rtl.css
│ │ ├── 8.62bd4ee21281906a7019.js
│ │ ├── 9.855edb9bea2352bd5129.js
│ │ ├── add-compare-dialog.e9db1b14483f3e7358f4.js
│ │ ├── change-interval-dialog.c8c04c297cc329376f2b.js
│ │ ├── chart-bottom-toolbar.da7ac0cc35cc8a26f65a.js
│ │ ├── chart-widget-gui.8005316cfc1f06be4bf0.js
│ │ ├── clipboard.5403f9bd852af06addff.js
│ │ ├── confirm-inputs-dialog.f9823e95a365cd8974c9.js
│ │ ├── confirm-symbol-input-dialog.c72289c830292c73812f.js
│ │ ├── context-menu-renderer.5eff9c34fa03e94b2c1b.js
│ │ ├── create-dialog.472fe015128398f27a86.js
│ │ ├── crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur
│ │ ├── dialogs-core.c712826575e8ea62d8e0.js
│ │ ├── dialogs-core.e9f630dd3fdeb4ceee21.css
│ │ ├── dialogs-core.e9f630dd3fdeb4ceee21.rtl.css
│ │ ├── dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur
│ │ ├── drawing-toolbar.35360bdf4aedb7db7287.js
│ │ ├── ds-property-pages.33a0b54c87f584f79681.js
│ │ ├── editobjectdialog.a4fd348616e0724542ac.js
│ │ ├── eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur
│ │ ├── export-data.ea9e219d1d41389ea3b7.js
│ │ ├── floating-toolbars.d7f25f59513991368767.js
│ │ ├── fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff
│ │ ├── fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2
│ │ ├── go-to-date-dialog-impl.51162344726d8956c763.js
│ │ ├── grab.bc156522a6b55a60be9fae15c14b66c5.cur
│ │ ├── grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur
│ │ ├── hammerjs.46686dd839f22b742351.js
│ │ ├── header-toolbar.743cca210a6a3e37939e.js
│ │ ├── ie-fallback-logos.589046871bfa17cbfbda.js
│ │ ├── lazy-jquery-ui.3a9fe36168ca8e6cacb8.js
│ │ ├── lazy-velocity.d040cf1092d3b2920dde.js
│ │ ├── library.bb7ca756e7cbe50becb3.css
│ │ ├── library.bb7ca756e7cbe50becb3.rtl.css
│ │ ├── library.e964cdc99937c68d0389.js
│ │ ├── line-tools-icons.c89643eed013eb0ff7c1.js
│ │ ├── load-chart-dialog.24806d5c5be9fbdfd103.js
│ │ ├── lt-pane-views.e06093931461762ecd11.js
│ │ ├── moment.fdf50ccef2c78863664d.js
│ │ ├── new-edit-object-dialog.232c44a337440602cba4.js
│ │ ├── objecttreedialog.bb84539d18c87a88a80b.js
│ │ ├── opacity-pattern.a6506134daec7169f68f563f084a9d41.svg
│ │ ├── precache-manifest.60144109bbe17651b1eb050c29e4f6f4.js
│ │ ├── react.cdaa9c19dda854fad341.js
│ │ ├── restricted-toolset.e356a29caff335c91f6b.js
│ │ ├── runtime.d22af752ee0c2111becd.js
│ │ ├── series-icons-map.e3b746e7a7341e8ddb2d.js
│ │ ├── series-pane-views.678a074c53e327c3184a.js
│ │ ├── service-worker.js
│ │ ├── study-market.ff409c6c02ba9edc0151.js
│ │ ├── study-pane-views.ee901b6c4a31f84ba03d.js
│ │ ├── study-template-dialog.a6f710070f1f64f2ef11.js
│ │ ├── symbol-info-dialog-impl.eaddb54cc066d7a021e2.js
│ │ ├── symbolsearch.0057814b113bcee3d957.js
│ │ ├── take-chart-image-dialog-impl.d61e03a87b11d0c1adf1.js
│ │ ├── vendors.267dd414d71e078f822c.js
│ │ └── zoom.e21f24dd632c7069139bc47ae89c54b5.cur
│ │ ├── cs-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── da_DK-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── de-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── el-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── en-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── es-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── et_EE-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── fa-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── fr-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── he_IL-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── hu_HU-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── id_ID-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── images
│ │ ├── balloon.png
│ │ ├── bar-loader.gif
│ │ ├── button-bg.png
│ │ ├── charting_library
│ │ │ ├── logo-widget-copyright-faded.png
│ │ │ └── logo-widget-copyright.png
│ │ ├── controlll.png
│ │ ├── delayed.png
│ │ ├── dialogs
│ │ │ ├── checkbox.png
│ │ │ ├── close-flat.png
│ │ │ ├── large-slider-handle.png
│ │ │ ├── linewidth-slider.png
│ │ │ └── opacity-slider.png
│ │ ├── icons.png
│ │ ├── prediction-clock-black.png
│ │ ├── prediction-clock-white.png
│ │ ├── prediction-failure-white.png
│ │ ├── prediction-success-white.png
│ │ ├── price_label.png
│ │ ├── select-bg.png
│ │ ├── svg
│ │ │ ├── chart
│ │ │ │ ├── bucket2.svg
│ │ │ │ ├── font.svg
│ │ │ │ ├── large-slider-handle.svg
│ │ │ │ └── pencil2.svg
│ │ │ └── question-mark-rounded.svg
│ │ ├── tvcolorpicker-bg-gradient.png
│ │ ├── tvcolorpicker-bg.png
│ │ ├── tvcolorpicker-check.png
│ │ └── tvcolorpicker-sprite.png
│ │ ├── it-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ja-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ko-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ms_MY-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── nl_NL-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── no-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── pl-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── pt-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ro-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── ru-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── sk_SK-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── sv-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── th-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── tr-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── vi-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ ├── zh-tv-chart.8562c7b8f7bdb50c1f5d.html
│ │ └── zh_TW-tv-chart.8562c7b8f7bdb50c1f5d.html
├── components
│ ├── Beneficiaries
│ │ ├── Beneficiaries.pcss
│ │ ├── BeneficiariesActivateModal.tsx
│ │ ├── BeneficiariesAddModal.tsx
│ │ ├── BeneficiariesFailAddModal.tsx
│ │ └── index.tsx
│ ├── Blur
│ │ ├── Blur.pcss
│ │ └── index.tsx
│ ├── Captcha
│ │ ├── Captcha.pcss
│ │ └── index.tsx
│ ├── ChangePassword
│ │ ├── ChangePassword.pcss
│ │ └── index.tsx
│ ├── CombinedOrderBook
│ │ ├── CombinedOrderBook.pcss
│ │ ├── CombinedOrderBook.test.tsx
│ │ ├── __snapshots__
│ │ │ └── CombinedOrderBook.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── CopyableTextField
│ │ ├── CopyableTextField.pcss
│ │ ├── CopyableTextField.test.tsx
│ │ ├── __snapshots__
│ │ │ └── CopyableTextField.test.tsx.snap
│ │ └── index.tsx
│ ├── CryptoIcon
│ │ ├── CryptoIcon.pcss
│ │ ├── CryptoIcon.test.tsx
│ │ ├── __snapshots__
│ │ │ └── CryptoIcon.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── CurrencyInfo
│ │ ├── CurrencyInfo.pcss
│ │ └── index.tsx
│ ├── CustomInput
│ │ ├── CustomInput.pcss
│ │ ├── CustomInput.test.tsx
│ │ ├── __snapshots__
│ │ │ └── CustomInput.test.tsx.snap
│ │ └── index.tsx
│ ├── Customization
│ │ ├── Fonts
│ │ │ └── index.tsx
│ │ ├── Images
│ │ │ └── index.tsx
│ │ ├── Spacing
│ │ │ └── index.tsx
│ │ ├── Themes
│ │ │ ├── ColorSettings
│ │ │ │ ├── ColorSettings.pcss
│ │ │ │ └── index.tsx
│ │ │ ├── Themes.pcss
│ │ │ └── index.tsx
│ │ ├── index.ts
│ │ └── style.pcss
│ ├── Decimal
│ │ ├── Decimal.pcss
│ │ ├── Decimal.test.tsx
│ │ ├── __snapshots__
│ │ │ └── Decimal.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── DepositCrypto
│ │ ├── DepositCrypto.pcss
│ │ ├── DepositCrypto.test.tsx
│ │ ├── __snapshots__
│ │ │ └── DepositCrypto.test.tsx.snap
│ │ └── index.tsx
│ ├── DepositFiat
│ │ ├── DepositFiat.pcss
│ │ ├── DepositFiat.test.tsx
│ │ ├── __snapshots__
│ │ │ └── DepositFiat.test.tsx.snap
│ │ └── index.tsx
│ ├── Documentation
│ │ ├── Documentation.pcss
│ │ ├── Endpoints
│ │ │ ├── DocumentationEndpoints.pcss
│ │ │ ├── Item
│ │ │ │ ├── RequestTypeItem
│ │ │ │ │ ├── ParametersItem
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── ResponsesItem
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── Header
│ │ │ ├── DocumentationHeader.pcss
│ │ │ └── index.tsx
│ │ ├── Models
│ │ │ ├── DocumentationModels.pcss
│ │ │ ├── Item
│ │ │ │ ├── DocumentationModelsItem.pcss
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ └── index.ts
│ ├── Dropdown
│ │ ├── Dropdown.pcss
│ │ ├── Dropdown.test.tsx
│ │ ├── __snapshots__
│ │ │ └── Dropdown.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── EmailForm
│ │ ├── EmailForm.pcss
│ │ ├── EmailForm.test.tsx
│ │ ├── __snapshots__
│ │ │ └── EmailForm.test.tsx.snap
│ │ ├── close.svg
│ │ └── index.tsx
│ ├── ExpiredSessionModal
│ │ ├── ExpiredSessionModal.pcss
│ │ └── index.tsx
│ ├── FilterInput
│ │ ├── FilterInput.pcss
│ │ ├── FilterInput.test.tsx
│ │ ├── Search.svg
│ │ ├── __snapshots__
│ │ │ └── FilterInput.test.tsx.snap
│ │ └── index.tsx
│ ├── GridItem
│ │ ├── GriItem.test.tsx
│ │ ├── GridItem.pcss
│ │ ├── __snapshots__
│ │ │ └── GriItem.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── History
│ │ ├── History.pcss
│ │ ├── History.test.tsx
│ │ ├── __snapshots__
│ │ │ └── History.test.tsx.snap
│ │ └── index.tsx
│ ├── MarketDepths
│ │ ├── MarketDepths.pcss
│ │ ├── MarketDepths.test.tsx
│ │ ├── __snapshots__
│ │ │ └── MarketDepths.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── Markets
│ │ ├── Markets.pcss
│ │ ├── Markets.test.tsx
│ │ ├── __snapshots__
│ │ │ └── Markets.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── MetaMaskButton
│ │ ├── MetaMaskButton.pcss
│ │ └── index.tsx
│ ├── Modal
│ │ ├── Modal.pcss
│ │ ├── Modal.test.tsx
│ │ ├── __snapshots__
│ │ │ └── Modal.test.tsx.snap
│ │ └── index.tsx
│ ├── OpenOrders
│ │ ├── OpenOrders.pcss
│ │ ├── OpenOrders.test.tsx
│ │ ├── __snapshots__
│ │ │ └── OpenOrders.test.tsx.snap
│ │ └── index.tsx
│ ├── Order
│ │ ├── Order.pcss
│ │ ├── Order.test.tsx
│ │ ├── __snapshots__
│ │ │ └── Order.test.tsx.snap
│ │ └── index.tsx
│ ├── OrderBook
│ │ ├── OrderBook.pcss
│ │ ├── OrderBook.test.tsx
│ │ ├── __snapshots__
│ │ │ └── OrderBook.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── OrderForm
│ │ ├── OrderForm.pcss
│ │ ├── OrderForm.test.tsx
│ │ ├── __snapshots__
│ │ │ └── OrderForm.test.tsx.snap
│ │ └── index.tsx
│ ├── OrderInput
│ │ ├── OrderInput.pcss
│ │ ├── OrderInput.test.tsx
│ │ ├── __snapshots__
│ │ │ └── OrderInput.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── Pagination
│ │ ├── Pagination.pcss
│ │ ├── Pagination.test.tsx
│ │ ├── __snapshots__
│ │ │ └── Pagination.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── PasswordStrengthMeter
│ │ ├── PasswordStrengthMeter.pcss
│ │ ├── PasswordStrengthMeter.test.tsx
│ │ ├── Readme.md
│ │ ├── __snapshots__
│ │ │ └── PasswordStrengthMeter.test.tsx.snap
│ │ └── index.tsx
│ ├── PasswordStrengthTip
│ │ ├── PasswordStrengthTip.pcss
│ │ ├── PasswordStrengthTip.test.tsx
│ │ ├── Readme.md
│ │ ├── __snapshots__
│ │ │ └── PasswordStrengthTip.test.tsx.snap
│ │ └── index.tsx
│ ├── PercentageButton
│ │ ├── PercentageButton.pcss
│ │ ├── PercentageButton.test.tsx
│ │ ├── __snapshots__
│ │ │ └── PercentageButton.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── QRCode
│ │ ├── QRCode.pcss
│ │ ├── QRCode.test.tsx
│ │ ├── __snapshots__
│ │ │ └── QRCode.test.tsx.snap
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── SearchDropdown
│ │ ├── SearchDropdown.pcss
│ │ └── index.tsx
│ ├── SignIn
│ │ ├── SignIn.pcss
│ │ ├── SignIn.test.tsx
│ │ ├── __snapshots__
│ │ │ └── SignIn.test.tsx.snap
│ │ └── index.tsx
│ ├── SignUp
│ │ ├── SignUp.pcss
│ │ ├── SignUp.test.tsx
│ │ ├── __snapshots__
│ │ │ └── SignUp.test.tsx.snap
│ │ └── index.tsx
│ ├── SummaryField
│ │ ├── SummaryField.pcss
│ │ ├── SummaryField.test.tsx
│ │ ├── __snapshots__
│ │ │ └── SummaryField.test.tsx.snap
│ │ └── index.tsx
│ ├── TabPanel
│ │ ├── TabPanel.pcss
│ │ ├── TabPanel.test.tsx
│ │ ├── __snapshots__
│ │ │ └── TabPanel.test.tsx.snap
│ │ └── index.tsx
│ ├── Table
│ │ ├── Table.pcss
│ │ ├── Table.test.tsx
│ │ ├── index.tsx
│ │ └── readme.md
│ ├── TickerTable
│ │ ├── TickerTable.pcss
│ │ └── index.tsx
│ ├── Tooltip
│ │ ├── Tooltip.pcss
│ │ └── index.tsx
│ ├── TwoFactorAuth
│ │ ├── TwoFactorAuth.test.tsx
│ │ ├── __snapshots__
│ │ │ └── TwoFactorAuth.test.tsx.snap
│ │ └── index.tsx
│ ├── UploadFile
│ │ ├── UploadFile.pcss
│ │ └── index.tsx
│ ├── WalletItem
│ │ ├── WalletItem.pcss
│ │ ├── WalletItem.test.tsx
│ │ ├── __snapshots__
│ │ │ └── WalletItem.test.tsx.snap
│ │ └── index.tsx
│ ├── WalletList
│ │ ├── WalletList.pcss
│ │ ├── WalletList.test.tsx
│ │ ├── __snapshots__
│ │ │ └── WalletList.test.tsx.snap
│ │ ├── fixtures.ts
│ │ └── index.tsx
│ ├── index.ts
│ └── style.pcss
├── constants
│ ├── constants.test.ts
│ └── index.ts
├── containers
│ ├── Alerts
│ │ ├── Alerts.pcss
│ │ └── index.tsx
│ ├── ChangePassword
│ │ ├── ChangePassword.pcss
│ │ └── index.tsx
│ ├── Charts
│ │ ├── Charts.pcss
│ │ └── index.tsx
│ ├── Confirm
│ │ ├── Address
│ │ │ └── index.tsx
│ │ ├── Documents
│ │ │ ├── Documents.pcss
│ │ │ └── index.tsx
│ │ ├── Identity
│ │ │ ├── Identity.pcss
│ │ │ └── index.tsx
│ │ ├── Phone
│ │ │ ├── Phone.pcss
│ │ │ └── index.tsx
│ │ └── index.ts
│ ├── Customization
│ │ ├── Customization.pcss
│ │ └── index.tsx
│ ├── Errors
│ │ └── index.tsx
│ ├── Footer
│ │ ├── Footer.pcss
│ │ └── index.tsx
│ ├── GeetestCaptcha
│ │ └── index.tsx
│ ├── Header
│ │ ├── Header.pcss
│ │ ├── arrows
│ │ │ ├── arrowBottom.svg
│ │ │ ├── arrowBottomLight.svg
│ │ │ ├── arrowRight.svg
│ │ │ └── arrowRightLight.svg
│ │ ├── back.svg
│ │ ├── backLight.svg
│ │ └── index.tsx
│ ├── HeaderToolbar
│ │ └── index.tsx
│ ├── HistoryElement
│ │ └── index.tsx
│ ├── LegalDocuments
│ │ ├── LegalDocuments.pcss
│ │ └── index.tsx
│ ├── MarketDepth
│ │ ├── MarketDepth.pcss
│ │ └── index.tsx
│ ├── Markets
│ │ ├── Markets.pcss
│ │ └── index.tsx
│ ├── MarketsTable
│ │ └── index.tsx
│ ├── ModalWithdrawConfirmation
│ │ ├── ModalWithdrawConfirmation.pcss
│ │ └── index.tsx
│ ├── ModalWithdrawSubmit
│ │ ├── ModalWithdrawSubmit.pcss
│ │ └── index.tsx
│ ├── NavBar
│ │ ├── NavBar.pcss
│ │ ├── close-avatar.svg
│ │ ├── close-icon.svg
│ │ ├── close.svg
│ │ ├── down-arrow.svg
│ │ ├── index.tsx
│ │ ├── open-avatar.svg
│ │ └── open-icon.svg
│ ├── OpenOrders
│ │ ├── OpenOrders.pcss
│ │ ├── OpenOrders.test.tsx
│ │ ├── __snapshots__
│ │ │ └── OpenOrders.test.tsx.snap
│ │ └── index.tsx
│ ├── Order
│ │ ├── Order.pcss
│ │ └── index.tsx
│ ├── OrderBook
│ │ ├── OrderBook.pcss
│ │ └── index.tsx
│ ├── OrdersElement
│ │ └── index.tsx
│ ├── ProfileAccountActivity
│ │ ├── ProfileAccountActivity.pcss
│ │ └── index.tsx
│ ├── ProfileApiKeys
│ │ ├── ProfileApiKeys.pcss
│ │ └── index.tsx
│ ├── ProfileAuthDetails
│ │ ├── close.svg
│ │ └── index.tsx
│ ├── ProfileTwoFactorAuth
│ │ ├── ProfileTwoFactorAuth.pcss
│ │ └── index.tsx
│ ├── ProfileVerification
│ │ ├── ProfileVerification.pcss
│ │ └── index.tsx
│ ├── RecentTrades
│ │ ├── Market.tsx
│ │ ├── RecentTrades.pcss
│ │ ├── RecentTrades.test.tsx
│ │ ├── Yours.tsx
│ │ ├── __snapshots__
│ │ │ └── RecentTrades.test.tsx.snap
│ │ └── index.tsx
│ ├── ReferralProgram
│ │ ├── ReferralProgram.pcss
│ │ └── index.tsx
│ ├── Sidebar
│ │ ├── Sidebar.pcss
│ │ └── index.tsx
│ ├── ToolBar
│ │ ├── MarketSelector
│ │ │ ├── MarketSelector.pcss
│ │ │ ├── MarketsList
│ │ │ │ ├── MarketsList.pcss
│ │ │ │ └── index.tsx
│ │ │ ├── MarketsTabs
│ │ │ │ ├── MarketsTabs.pcss
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── PriceBar
│ │ │ ├── PriceBar.pcss
│ │ │ └── index.tsx
│ │ ├── ProgressLabel
│ │ │ ├── ProgressLabel.pcss
│ │ │ └── index.tsx
│ │ ├── ToolBar.pcss
│ │ ├── icons
│ │ │ ├── ArrowIcon.tsx
│ │ │ ├── hidden.svg
│ │ │ └── search.svg
│ │ └── index.tsx
│ ├── TradingChart
│ │ ├── TradingChart.pcss
│ │ ├── api.ts
│ │ ├── config.ts
│ │ ├── index.tsx
│ │ ├── timezones.test.tsx
│ │ └── timezones.ts
│ ├── TwoFactorAuth
│ │ └── TwoFactorAuth.pcss
│ ├── Wallets
│ │ ├── EstimatedValue
│ │ │ ├── EstimatedValue.pcss
│ │ │ └── index.tsx
│ │ ├── FailIcon.tsx
│ │ ├── History.tsx
│ │ └── SucceedIcon.tsx
│ ├── WalletsFetch
│ │ ├── WalletsFetch.test.tsx
│ │ ├── __snapshots__
│ │ │ └── WalletsFetch.test.tsx.snap
│ │ └── index.tsx
│ ├── Withdraw
│ │ └── index.tsx
│ ├── index.ts
│ └── style.pcss
├── custom
│ ├── helpers
│ │ └── layout.ts
│ ├── styles
│ │ ├── colors.pcss
│ │ ├── fonts.pcss
│ │ ├── style.pcss
│ │ └── themes
│ │ │ └── style.pcss
│ ├── tradingChartConfig.ts
│ └── translations
│ │ ├── en.ts
│ │ ├── index.ts
│ │ ├── nationalities.ts
│ │ └── ru.ts
├── filters
│ ├── FilterPrice
│ │ ├── FilterPriceCustomStep.ts
│ │ ├── FilterPriceSignificantDigit.ts
│ │ ├── index.test.ts
│ │ └── index.ts
│ └── index.ts
├── helpers
│ ├── accumulateVolume.ts
│ ├── areEqualProps.ts
│ ├── areEqualSelectedProps.ts
│ ├── buildQueryString.test.ts
│ ├── buildQueryString.ts
│ ├── calcMaxVolume.ts
│ ├── changeElementPosition.ts
│ ├── checkDate.ts
│ ├── cleanPositiveFloatInput.ts
│ ├── convertRgbToHex.test.ts
│ ├── convertRgbToHex.ts
│ ├── copy.ts
│ ├── emailValidation.ts
│ ├── estimateValue.test.ts
│ ├── estimateValue.ts
│ ├── filterData.ts
│ ├── formatCCYAddress.ts
│ ├── formatDate.ts
│ ├── geetest.js
│ ├── getCsrfToken.ts
│ ├── getHistorySagaParam.ts
│ ├── getLanguageByCode.ts
│ ├── getOrderAPI.ts
│ ├── getStylesValueByKey.ts
│ ├── getTimestampPeriod.ts
│ ├── getTotalPrice.ts
│ ├── getUnique.ts
│ ├── getUrlPart.ts
│ ├── getUserAgent.ts
│ ├── getVerificationStep.ts
│ ├── handleCCYPrecision.ts
│ ├── handleIncrementalUpdate.test.ts
│ ├── handleIncrementalUpdate.ts
│ ├── helpers.test.ts
│ ├── historyTableUtils.ts
│ ├── index.ts
│ ├── jest.ts
│ ├── layout.ts
│ ├── localeDate.ts
│ ├── passwordValidation.ts
│ ├── providers.tsx
│ ├── randomSecretHex.ts
│ ├── regExp.test.ts
│ ├── regExp.ts
│ ├── setDocumentTitle.ts
│ ├── setTradeColor.ts
│ ├── sliceArray.ts
│ ├── sliceString.ts
│ ├── sortByDate.ts
│ ├── sortByPrice.ts
│ ├── timeConvert.ts
│ ├── timezone.ts
│ ├── toggleColorTheme.ts
│ ├── truncateMiddle.ts
│ ├── usernameValidation.ts
│ ├── validateBeneficiaryAddress.test.ts
│ └── validateBeneficiaryAddress.ts
├── hooks
│ ├── index.ts
│ ├── useApiKeysFetch.ts
│ ├── useBeneficiariesFetch.ts
│ ├── useCurrenciesFetch.ts
│ ├── useDepthFetch.ts
│ ├── useDocumentTitle.ts
│ ├── useDocumentationFetch.ts
│ ├── useHistoryFetch.ts
│ ├── useMarketsFetch.ts
│ ├── usePrevious.ts
│ ├── useResetCaptchaState.ts
│ ├── useSetMobileDevice.ts
│ ├── useSetShouldGeetestReset.ts
│ ├── useTickersFetch.ts
│ ├── useUserActivityFetch.ts
│ ├── useUserOrdersHistoryFetch.ts
│ └── useWalletsFetch.ts
├── index.pcss
├── index.tsx
├── mobile
│ ├── assets
│ │ └── images
│ │ │ ├── AddIcon.tsx
│ │ │ ├── CheckIcon.tsx
│ │ │ ├── ChevronIcon.tsx
│ │ │ ├── MinusIcon.tsx
│ │ │ ├── PlusIcon.tsx
│ │ │ ├── WarningIcon.tsx
│ │ │ └── footer
│ │ │ ├── HomeIcon.tsx
│ │ │ ├── OrderIcon.tsx
│ │ │ ├── ProfileIcon.tsx
│ │ │ ├── TradeIcon.tsx
│ │ │ └── WalletIcon.tsx
│ ├── components
│ │ ├── CreatedApiKeyModal
│ │ │ └── index.tsx
│ │ ├── CurrentMarketInfo
│ │ │ └── index.tsx
│ │ ├── EstimatedValue
│ │ │ └── index.tsx
│ │ ├── Footer
│ │ │ └── index.tsx
│ │ ├── Header
│ │ │ └── index.tsx
│ │ ├── HistoryTable
│ │ │ ├── Rowitem.tsx
│ │ │ └── index.tsx
│ │ ├── Modal
│ │ │ └── index.tsx
│ │ ├── ModalWithdrawConfirmation
│ │ │ └── index.tsx
│ │ ├── OpenOrders
│ │ │ └── index.tsx
│ │ ├── OrderButtons
│ │ │ └── index.tsx
│ │ ├── OrderInput
│ │ │ └── index.tsx
│ │ ├── Orders
│ │ │ ├── OrdersItem.tsx
│ │ │ └── index.tsx
│ │ ├── Profile
│ │ │ ├── ApiKeysItem
│ │ │ │ └── index.tsx
│ │ │ ├── ProfileLinks
│ │ │ │ └── index.tsx
│ │ │ ├── UserActivityItem
│ │ │ │ └── index.tsx
│ │ │ ├── UserInfo
│ │ │ │ └── index.tsx
│ │ │ └── index.ts
│ │ ├── Subheader
│ │ │ └── index.tsx
│ │ ├── TradingTabs
│ │ │ ├── Charts
│ │ │ │ └── index.tsx
│ │ │ ├── CreateOrder
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── TwoFactorModal
│ │ │ └── index.tsx
│ │ ├── WalletBanner
│ │ │ └── index.tsx
│ │ ├── WalletDepositBody
│ │ │ └── index.tsx
│ │ ├── WalletHeader
│ │ │ └── index.tsx
│ │ ├── WalletItem
│ │ │ └── index.tsx
│ │ ├── WalletWithdrawBody
│ │ │ └── index.tsx
│ │ ├── WalletsButtons
│ │ │ └── index.tsx
│ │ └── index.ts
│ ├── screens
│ │ ├── ChangeForgottenPasswordScreen
│ │ │ └── index.tsx
│ │ ├── ConfirmScreen
│ │ │ └── index.tsx
│ │ ├── EmailVerificationScreen
│ │ │ └── index.tsx
│ │ ├── ForgotPassword
│ │ │ └── index.tsx
│ │ ├── Landing
│ │ │ └── index.tsx
│ │ ├── Orders
│ │ │ └── index.tsx
│ │ ├── Profile
│ │ │ └── index.tsx
│ │ ├── ProfileAccountActivity
│ │ │ └── index.tsx
│ │ ├── ProfileApiKeys
│ │ │ └── index.tsx
│ │ ├── ProfileAuth
│ │ │ └── index.tsx
│ │ ├── ProfileChangePassword
│ │ │ └── index.tsx
│ │ ├── ProfileColorTheme
│ │ │ └── index.tsx
│ │ ├── ProfileLanguage
│ │ │ └── index.tsx
│ │ ├── ProfileVerificationScreen
│ │ │ └── index.tsx
│ │ ├── SelectedWalletScreen
│ │ │ └── index.tsx
│ │ ├── SignInScreen
│ │ │ └── index.tsx
│ │ ├── SignUpScreen
│ │ │ └── index.tsx
│ │ ├── Trading
│ │ │ └── index.tsx
│ │ ├── WalletDeposit
│ │ │ └── index.tsx
│ │ ├── WalletWithdraw
│ │ │ └── index.tsx
│ │ ├── WalletsHistory
│ │ │ └── index.tsx
│ │ ├── WalletsScreen
│ │ │ └── index.tsx
│ │ └── index.ts
│ ├── styles
│ │ ├── components
│ │ │ ├── ApiKeysItem.pcss
│ │ │ ├── Charts.pcss
│ │ │ ├── CreateOrder.pcss
│ │ │ ├── CreatedApiKeyModal.pcss
│ │ │ ├── CurrentMarketInfo.pcss
│ │ │ ├── EstimatedValue.pcss
│ │ │ ├── Footer.pcss
│ │ │ ├── Header.pcss
│ │ │ ├── Modal.pcss
│ │ │ ├── ModalWithdrawConfirmation.pcss
│ │ │ ├── OpenOrders.pcss
│ │ │ ├── OrderButtons.pcss
│ │ │ ├── OrderInput.pcss
│ │ │ ├── Orders.pcss
│ │ │ ├── OrdersItem.pcss
│ │ │ ├── ProfileLinks.pcss
│ │ │ ├── RowItem.pcss
│ │ │ ├── Subheader.pcss
│ │ │ ├── TickerTable.pcss
│ │ │ ├── TradingTabs.pcss
│ │ │ ├── TwoFactorModal.pcss
│ │ │ ├── UserActivityItem.pcss
│ │ │ ├── UserInfo.pcss
│ │ │ ├── WalletBanner.pcss
│ │ │ ├── WalletDepositBody.pcss
│ │ │ ├── WalletHeader.pcss
│ │ │ ├── WalletItem.pcss
│ │ │ ├── WalletWithdrawBody.pcss
│ │ │ ├── WalletsButtons.pcss
│ │ │ └── styles.pcss
│ │ ├── screens
│ │ │ ├── ChangeForgottenPasswordMobileScreen.pcss
│ │ │ ├── ConfirmMobileScreen.pcss
│ │ │ ├── EmailVerificationMobileScreen.pcss
│ │ │ ├── ForgotPassword.pcss
│ │ │ ├── HistoryTable.pcss
│ │ │ ├── Landing.pcss
│ │ │ ├── Orders.pcss
│ │ │ ├── Profile.pcss
│ │ │ ├── ProfileApiKeys.pcss
│ │ │ ├── ProfileAuthMobileScreen.pcss
│ │ │ ├── ProfileChangePassword.pcss
│ │ │ ├── ProfileColorTheme.pcss
│ │ │ ├── ProfileLanguage.pcss
│ │ │ ├── ProfileUserActivity.pcss
│ │ │ ├── ProfileVerificationMobileScreen.pcss
│ │ │ ├── SignInMobileScreen.pcss
│ │ │ ├── SignUpMobileScreen.pcss
│ │ │ ├── WalletWithdraw.pcss
│ │ │ └── styles.pcss
│ │ └── style.pcss
│ └── translations
│ │ ├── en.ts
│ │ ├── index.ts
│ │ └── ru.ts
├── modules
│ ├── app.ts
│ ├── helpers.ts
│ ├── index.ts
│ ├── public
│ │ ├── alert
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── handleAlertSaga.ts
│ │ │ │ ├── handleErrorAlert.test.ts
│ │ │ │ ├── handleSuccessAlert.test.ts
│ │ │ │ └── index.ts
│ │ │ └── selectors.ts
│ │ ├── blocklistAccess
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── blocklistAccessFetchSaga.test.ts
│ │ │ │ ├── blocklistAccessFetchSaga.ts
│ │ │ │ └── index.ts
│ │ │ └── selectors.ts
│ │ ├── configs
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── configsFetchSaga.test.ts
│ │ │ │ ├── configsFetchSaga.ts
│ │ │ │ └── index.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ │ ├── currencies
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── currenciesFetchSaga.test.ts
│ │ │ │ └── currenciesFetchSaga.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ │ ├── customization
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── customizationFetchSaga.test.ts
│ │ │ │ ├── customizationFetchSaga.ts
│ │ │ │ └── index.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ │ ├── errorHandler
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── helpers
│ │ │ │ └── getMetaMaskErrorMessage.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.ts
│ │ │ └── sagas
│ │ │ │ ├── handleErrorSaga.ts
│ │ │ │ └── index.ts
│ │ ├── globalSettings
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ └── selectors.ts
│ │ ├── gridLayout
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ └── selectors.ts
│ │ ├── i18n
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ └── selectors.ts
│ │ ├── kline
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── handleKlineFetchSaga.test.ts
│ │ │ │ ├── handleKlineFetchSaga.ts
│ │ │ │ └── index.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ │ ├── markets
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── marketsFetchSaga.test.ts
│ │ │ │ └── marketsFetchSaga.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ │ ├── memberLevels
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── index.ts
│ │ │ │ ├── memberLevelsSaga.test.ts
│ │ │ │ └── memberLevelsSaga.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ │ ├── orderBook
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── depthSaga.test.ts
│ │ │ │ ├── depthSaga.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── orderBookSaga.test.ts
│ │ │ │ └── orderBookSaga.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ │ ├── ranger
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── helpers.test.ts
│ │ │ ├── helpers.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── index.ts
│ │ │ │ ├── rangerSaga.test.ts
│ │ │ │ └── rangerSaga.ts
│ │ │ └── selectors.ts
│ │ └── recentTrades
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ ├── index.ts
│ │ │ ├── recentTradesFetchSaga.test.ts
│ │ │ └── recentTradesFetchSaga.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ ├── types.ts
│ └── user
│ │ ├── apiKeys
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── apiKeyCreateSaga.test.ts
│ │ │ ├── apiKeyCreateSaga.ts
│ │ │ ├── apiKeyDeleteSaga.test.ts
│ │ │ ├── apiKeyDeleteSaga.ts
│ │ │ ├── apiKeyUpdateSaga.test.ts
│ │ │ ├── apiKeyUpdateSaga.ts
│ │ │ ├── apiKeysSaga.test.ts
│ │ │ ├── apiKeysSaga.ts
│ │ │ └── index.ts
│ │ ├── selectors.test.ts
│ │ └── selectors.ts
│ │ ├── auth
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── entropyPassword.ts
│ │ │ ├── index.ts
│ │ │ ├── logoutSaga.test.ts
│ │ │ ├── logoutSaga.ts
│ │ │ ├── signInSaga.test.ts
│ │ │ ├── signInSaga.ts
│ │ │ ├── signUpSaga.ts
│ │ │ └── verificationSaga.ts
│ │ └── selectors.ts
│ │ ├── beneficiaries
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── beneficiariesActivateSaga.test.ts
│ │ │ ├── beneficiariesActivateSaga.ts
│ │ │ ├── beneficiariesCreateSaga.test.ts
│ │ │ ├── beneficiariesCreateSaga.ts
│ │ │ ├── beneficiariesDeleteSaga.test.ts
│ │ │ ├── beneficiariesDeleteSaga.ts
│ │ │ ├── beneficiariesResendPinSaga.test.ts
│ │ │ ├── beneficiariesResendPinSaga.ts
│ │ │ ├── beneficiariesSaga.test.ts
│ │ │ ├── beneficiariesSaga.ts
│ │ │ └── index.ts
│ │ ├── selectors.ts
│ │ └── types.ts
│ │ ├── captcha
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── geetestCaptchaSaga.ts
│ │ │ └── index.ts
│ │ └── selectors.ts
│ │ ├── customization
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── customizationUpdateSaga.test.ts
│ │ │ ├── customizationUpdateSaga.ts
│ │ │ └── index.ts
│ │ └── selectors.ts
│ │ ├── documentation
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── docTradeUserApiFetchSaga.test.ts
│ │ │ ├── docTradeUserApiFetchSaga.ts
│ │ │ └── index.ts
│ │ ├── selectors.ts
│ │ └── types.ts
│ │ ├── emailVerification
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── EmailVerificationSaga.test.ts
│ │ │ ├── emailVerificationSaga.ts
│ │ │ └── index.ts
│ │ └── selectors.ts
│ │ ├── history
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── historyPushSaga.ts
│ │ │ ├── historySaga.test.ts
│ │ │ ├── historySaga.ts
│ │ │ └── index.ts
│ │ ├── selectors.ts
│ │ └── types.ts
│ │ ├── kyc
│ │ ├── addresses
│ │ │ ├── actions.test.ts
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── index.ts
│ │ │ │ ├── sendAddressesSaga.test.ts
│ │ │ │ └── sendAddressesSaga.ts
│ │ │ ├── selectors.test.ts
│ │ │ └── selectors.ts
│ │ ├── documents
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── index.ts
│ │ │ │ ├── sendDocumentsSaga.test.ts
│ │ │ │ └── sendDocumentsSaga.ts
│ │ │ └── selectors.ts
│ │ ├── identity
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── editIdentity.test.ts
│ │ │ │ ├── editIdentitySaga.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── sendIdentity.test.ts
│ │ │ │ └── sendIdentitySaga.ts
│ │ │ ├── selectors.ts
│ │ │ └── types.ts
│ │ ├── index.ts
│ │ ├── label
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ │ ├── index.ts
│ │ │ │ ├── labelSaga.test.ts
│ │ │ │ └── labelSaga.ts
│ │ │ └── selectors.ts
│ │ └── phone
│ │ │ ├── actions.ts
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── reducer.test.ts
│ │ │ ├── reducer.ts
│ │ │ ├── sagas
│ │ │ ├── confirmPhoneSaga.ts
│ │ │ ├── index.ts
│ │ │ ├── resendCodeSaga.ts
│ │ │ ├── sendCodeSaga.test.ts
│ │ │ └── sendCodeSaga.ts
│ │ │ └── selectors.ts
│ │ ├── openOrders
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── helpers.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── index.ts
│ │ │ ├── openOrdersCancelSaga.test.ts
│ │ │ ├── openOrdersCancelSaga.ts
│ │ │ ├── userOpenOrdersFetchSaga.test.ts
│ │ │ └── userOpenOrdersFetchSaga.ts
│ │ └── selectors.ts
│ │ ├── orders
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── index.ts
│ │ │ ├── ordersExecuteSaga.test.ts
│ │ │ └── ordersExecuteSaga.ts
│ │ └── selectors.ts
│ │ ├── ordersHistory
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── helpers.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── index.ts
│ │ │ ├── ordersCancelAllSaga.test.ts
│ │ │ ├── ordersCancelAllSaga.ts
│ │ │ ├── ordersHistoryCancelSaga.test.ts
│ │ │ ├── ordersHistoryCancelSaga.ts
│ │ │ ├── ordersHistorySaga.test.ts
│ │ │ └── ordersHistorySaga.ts
│ │ └── selectors.ts
│ │ ├── password
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── changeForgotPasswordSaga.test.ts
│ │ │ ├── changeForgotPasswordSaga.ts
│ │ │ ├── forgotPasswordSaga.test.ts
│ │ │ ├── forgotPasswordSaga.ts
│ │ │ └── index.ts
│ │ └── selectors.ts
│ │ ├── profile
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── changePasswordSaga.test.ts
│ │ │ ├── changePasswordSaga.ts
│ │ │ ├── changeUserDataSaga.test.ts
│ │ │ ├── changeUserDataSaga.ts
│ │ │ ├── generate2faQRSaga.test.ts
│ │ │ ├── generate2faQRSaga.ts
│ │ │ ├── index.ts
│ │ │ ├── toggle2faSaga.test.ts
│ │ │ ├── toggle2faSaga.ts
│ │ │ ├── userSaga.test.ts
│ │ │ └── userSaga.ts
│ │ ├── selectors.ts
│ │ └── types.ts
│ │ ├── userActivity
│ │ ├── actions.test.ts
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── index.ts
│ │ │ ├── userActivitySaga.test.ts
│ │ │ └── userActivitySaga.ts
│ │ ├── selectors.test.ts
│ │ └── selectors.ts
│ │ ├── wallets
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ │ ├── index.ts
│ │ │ ├── walletsAddressSaga.ts
│ │ │ ├── walletsSaga.test.ts
│ │ │ ├── walletsSaga.ts
│ │ │ └── walletsWithdrawSaga.ts
│ │ ├── selectors.ts
│ │ └── types.ts
│ │ └── withdrawLimit
│ │ ├── actions.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ ├── reducer.test.ts
│ │ ├── reducer.ts
│ │ ├── sagas
│ │ ├── index.ts
│ │ ├── withdrawLimitSaga.test.ts
│ │ └── withdrawLimitSaga.ts
│ │ ├── selectors.test.ts
│ │ ├── selectors.ts
│ │ └── types.ts
├── react-app-env.d.ts
├── routes
│ ├── Layout
│ │ ├── Layout.pcss
│ │ └── index.tsx
│ └── index.ts
├── screens
│ ├── ChangeForgottenPasswordScreen
│ │ ├── ChangeForgottenPasswordScreen.pcss
│ │ └── index.tsx
│ ├── ConfirmScreen
│ │ ├── ConfirmScreen.pcss
│ │ └── index.tsx
│ ├── DocumentationScreen
│ │ ├── DocumentationScreen.pcss
│ │ └── index.tsx
│ ├── EmailVerification
│ │ ├── EmailVerification.pcss
│ │ └── index.tsx
│ ├── ForgotPassword
│ │ ├── ForgotPassword.pcss
│ │ └── index.tsx
│ ├── History
│ │ ├── HistoryTab.pcss
│ │ └── index.tsx
│ ├── LandingScreen
│ │ ├── LandingScreen.pcss
│ │ └── index.tsx
│ ├── MagicLinkScreen
│ │ └── index.tsx
│ ├── MaintenanceScreen
│ │ ├── MaintenanceScreen.pcss
│ │ └── index.tsx
│ ├── OrdersTabScreen
│ │ ├── OrdersTabScreen.pcss
│ │ └── index.tsx
│ ├── ProfileScreen
│ │ ├── ProfileScreen.pcss
│ │ └── index.tsx
│ ├── ProfileTwoFactorAuthScreen
│ │ ├── ProfileTwoFactorAuthScreen.pcss
│ │ ├── close.svg
│ │ └── index.tsx
│ ├── RestrictedScreen
│ │ ├── RestrictedScreen.pcss
│ │ └── index.tsx
│ ├── SignInScreen
│ │ ├── SignInScreen.pcss
│ │ └── index.tsx
│ ├── SignUpScreen
│ │ ├── SignUpScreen.pcss
│ │ └── index.tsx
│ ├── TradingScreen
│ │ ├── TradingScreen.pcss
│ │ └── index.tsx
│ ├── VerificationScreen
│ │ └── index.tsx
│ ├── WalletsScreen
│ │ ├── WalletsScreen.pcss
│ │ └── index.tsx
│ ├── index.ts
│ ├── style.pcss
│ └── tests
│ │ ├── ChangeForgottenPassword.test.tsx
│ │ ├── ConfirmScreen.test.tsx
│ │ ├── EmailVerification.test.tsx
│ │ ├── ForgotPassword.test.tsx
│ │ ├── History.test.tsx
│ │ ├── MaintenanceScreen.test.tsx
│ │ ├── OrdersTabScreen.test.tsx
│ │ ├── ProfileScreen.test.tsx
│ │ ├── ProfileTwoFactorAuthScreen.test.tsx
│ │ ├── RestrictedScreen.test.tsx
│ │ ├── SignInScreen.test.tsx
│ │ ├── SignUpScreen.test.tsx
│ │ ├── VerificationScreen.test.tsx
│ │ ├── WalletsScreen.test.tsx
│ │ └── __snapshots__
│ │ ├── ChangeForgottenPassword.test.tsx.snap
│ │ ├── ConfirmScreen.test.tsx.snap
│ │ ├── EmailVerification.test.tsx.snap
│ │ ├── ForgotPassword.test.tsx.snap
│ │ ├── History.test.tsx.snap
│ │ ├── MaintenanceScreen.test.tsx.snap
│ │ ├── OrdersTabScreen.test.tsx.snap
│ │ ├── ProfileScreen.test.tsx.snap
│ │ ├── ProfileTwoFactorAuthScreen.test.tsx.snap
│ │ ├── RestrictedScreen.test.tsx.snap
│ │ ├── SignInScreen.test.tsx.snap
│ │ ├── SignUpScreen.test.tsx.snap
│ │ ├── VerificationScreen.test.tsx.snap
│ │ └── WalletsScreen.test.tsx.snap
├── setupTests.js
├── store.ts
├── styles
│ ├── buttons.pcss
│ ├── colors.pcss
│ ├── customizationBarColors.pcss
│ ├── style.pcss
│ └── themes
│ │ ├── dark.pcss
│ │ ├── light.pcss
│ │ └── style.pcss
├── themes
│ ├── ColorTitles.ts
│ ├── index.ts
│ └── templates
│ │ ├── DarkBlue.tsx
│ │ ├── DarkRed.tsx
│ │ ├── Green.tsx
│ │ ├── Purple.tsx
│ │ └── index.ts
└── translations
│ ├── en.ts
│ ├── index.ts
│ └── nationalities.ts
├── tsconfig.json
├── tsconfig.prod.json
├── tslint.json
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | "transform-es2015-modules-commonjs"
4 | ]
5 | }
6 |
7 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | *Dockerfile*
2 | *docker-compose*
3 | node_modules
4 |
--------------------------------------------------------------------------------
/.domains.example:
--------------------------------------------------------------------------------
1 | localhost,.app.local,.openfinex.io,.devkube.com,.openware.work,.opendax.app
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.npmrc
2 |
3 | # dependencies
4 | /node_modules
5 |
6 | # testing
7 | /coverage
8 |
9 | # production
10 | /build
11 | /.idea
12 | /android
13 | /ios
14 | .gradle/
15 |
16 | # misc
17 | .DS_Store
18 | .env.local
19 | .env.development.local
20 | .env.test.local
21 | .env.production.local
22 | .env
23 | env.js
24 |
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 | index.css
29 |
30 | # environment config
31 | public/config/
32 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | v10.15.0
2 |
--------------------------------------------------------------------------------
/.stylelintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "stylelint-config-standard",
3 | "plugins": [
4 | "stylelint-order"
5 | ],
6 | "rules": {
7 | "at-rule-no-unknown": null,
8 | "order/order": [
9 | "custom-properties",
10 | "declarations"
11 | ],
12 | "order/properties-alphabetical-order": true,
13 | "no-descending-specificity": null
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | 2.6.0
2 |
--------------------------------------------------------------------------------
/__mocks__/fileMock.js:
--------------------------------------------------------------------------------
1 | module.exports = 'test-file-stub';
2 |
--------------------------------------------------------------------------------
/__mocks__/styleMock.js:
--------------------------------------------------------------------------------
1 | module.exports = {};
2 |
--------------------------------------------------------------------------------
/capacitor.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "appId": "odax.openware.work",
3 | "appName": "Baseapp",
4 | "bundledWebRuntime": false,
5 | "npmClient": "yarn",
6 | "webDir": "build",
7 | "plugins": {
8 | "SplashScreen": {
9 | "launchShowDuration": 0
10 | }
11 | },
12 | "ios": {
13 | "contentInset": "always"
14 | },
15 | "linuxAndroidStudioPath": "/snap/bin/android-studio",
16 | "cordova": {},
17 | "server": {
18 | "hostname": "odax.openware.work"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseUrl": "http://www.app.local",
3 | "fixturesFolder": "spec/fixtures",
4 | "integrationFolder": "spec/integration",
5 | "pluginsFile": "spec/plugins/index.js",
6 | "supportFile": "spec/support/index.js",
7 | "screenshotsFolder": "cypress/screenshots",
8 | "videosFolder": "cypress/videos"
9 | }
10 |
--------------------------------------------------------------------------------
/docs/releases/2.2.0.md:
--------------------------------------------------------------------------------
1 | #### Overview
2 |
3 | BaseApp frontend v2.2.0 fully compatible with Barong v2.2.20 and Peatio v2.2.19.
4 |
5 | ## New features comparing with v2.1.0:
6 |
7 | - Ability to switch between dark and light themes;
8 | - Added user's trade on recent trades component;
9 | - Improved sorting on market selector component;
10 | - List API keys immediately without providing 2FA code;
11 | - Cancelling orders by event from WS;
12 | - General UI fixes, platform stabilization and small improvements.
13 |
--------------------------------------------------------------------------------
/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.svg';
2 | declare module '*.png';
3 | declare module '*.jpg';
4 |
--------------------------------------------------------------------------------
/ionic.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Baseapp",
3 | "integrations": {
4 | "capacitor": {}
5 | },
6 | "type": "react"
7 | }
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/applogic/customization/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/configs/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | access-control-allow-origin: *
4 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
5 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
6 |
7 | {
8 | "session_expire_time": 5000,
9 | "captcha_type": "none",
10 | "captcha_id": "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI",
11 | "password_min_entropy": 14
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/ping/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | access-control-allow-origin: *
4 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
5 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
6 |
7 | {
8 | "ping": "pong"
9 | }
10 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/sessions/DELETE.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/sessions/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 |
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/sessions/POST--email=&password=&otp_code=.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 400
2 | content-type: application/json
3 | access-control-allow-origin: *
4 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
5 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
6 |
7 |
8 | {"error":"Email is missing, Password is missing, otp_code is missing, recaptcha response is missing"}
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/sessions/POST--email=otp@peatio.tech&password=123123&otp_code=&recaptcha_response=.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 403
2 | Content-Type: application/json; charset=utf-8
3 | access-control-allow-origin: *
4 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
5 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
6 |
7 | {"error":"The account has enabled 2FA but OTP code is missing"}
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/sessions/POST--email=wrong@peatio.tech&password=123123&otp_code=&recaptcha_response=.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 401
2 | Content-Type: application/json; charset=utf-8
3 | access-control-allow-origin: *
4 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
5 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
6 |
7 |
8 | {"error":"Invalid Email or Password"}
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: content-type, x-csrf-token
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/email/generate_code/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 |
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/email/generate_code/POST--email=wrong@email.com.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 422
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 | {
7 | "error": "User doesn't exist or has already been activated"
8 | }
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/email/generate_code/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 | 201
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/password/confirm_code/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 |
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/password/confirm_code/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 | 201
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/password/generate_code/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 |
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/password/generate_code/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 | 201
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/identity/users/register_geetest/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | access-control-allow-origin: *
4 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
5 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
6 |
7 | {
8 | "gt": "0c4ab8ac2ed12c1c3f4a023dff99cd87",
9 | "challenge": "25e8fe07feed0b02eb88634a7b052be4"
10 | }
11 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/api_keys/GET--totp_code=.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 422
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
6 | {
7 | "error": "This code was already used. Wait until the next time period"
8 | }
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/api_keys/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/api_keys/POST--totp_code=&algorithm=HS256.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 422
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | {
8 | "error": "This code was already used. Wait until the next time period"
9 | }
10 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/api_keys/__/DELETE--totp_code=.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 422
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | {
8 | "error": "This code was already used. Wait until the next time period"
9 | }
10 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/api_keys/__/DELETE.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 204
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/api_keys/__/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/api_keys/__/PATCH--totp_code=000000&state=disabled.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 422
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | {
8 | "error": "This code was already used. Wait until the next time period"
9 | }
10 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/api_keys/__/PATCH.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | {
8 | "algorithm": "HS256",
9 | "created_at": "2019-02-14T15:56:57Z",
10 | "kid": "5c3933e8c8f97071",
11 | "scope": [],
12 | "state": "disabled",
13 | "updated_at": "2019-02-14T15:56:57Z"
14 | }
15 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/documents/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | 201
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/otp/enable/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/otp/enable/POST--code=0000000.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 422
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | {
8 | "error": "OTP code is invalid"
9 | }
10 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/otp/enable/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | 200
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/otp/generate_qrcode/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/phones/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Allow-Headers: *
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/phones/POST--phone_number=+1111.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 400
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | {"errors":["resource.phone.number_exist"]}
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/phones/POST--phone_number=+1234.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 400
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | {"errors":["resource.phone.exists"]}
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/phones/send_code/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Allow-Headers: *
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/phones/send_code/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | {"message":"Code was sent successfully via sms"}
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/phones/verify/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/phones/verify/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | 201
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/profiles/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/profiles/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Allow-Headers: *
6 |
7 | 201
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/users/activity/all/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/users/activity/all/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/users/me/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/users/password/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | access-control-allow-origin: *
3 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/users/password/PUT--old_password=11111111&new_password=11111111&confirm_password=11111111.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 422
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Allow-Headers: *
5 |
6 | {"errors":["password.requirements","password.password.password_strength"]}
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/barong/resource/users/password/PUT.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: *
7 |
8 | 201
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/bch/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: *
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/btc/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/dash/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/eth/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/eur/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currency":"eur",
10 | "balance":"1000.0",
11 | "locked":"0.0"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/eur/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/ltc/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/usd/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currency":"usd",
10 | "balance":"1000.0",
11 | "locked":"0.0"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/usd/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/xrp/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currency":"xrp",
10 | "balance":"0",
11 | "locked":"0"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/xrp/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/zar/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currency":"zar",
10 | "balance":"1000.0",
11 | "locked":"0.0"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/balances/zar/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/beneficiaries/10/DELETE.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: content-type, x-csrf-token
7 |
8 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/beneficiaries/10/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: content-type, x-csrf-token
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/beneficiaries/10/activate/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: content-type, x-csrf-token
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/beneficiaries/10/resend_pin/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: content-type, x-csrf-token
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/beneficiaries/10/resend_pin/PATCH--id=10.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 | Access-Control-Allow-Headers: content-type, x-csrf-token
8 |
9 | 204
10 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/beneficiaries/10/resend_pin/PATCH.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 | Access-Control-Allow-Headers: content-type, x-csrf-token
8 |
9 | 204
10 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/beneficiaries/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: content-type, x-csrf-token
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/bch/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currencies": ["bch"],
10 | "address": null,
11 | "state": "pending"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/bch/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/btc/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currencies": ["btc"],
10 | "address": "2NCimTNGnbm92drX7ARcwBKw6rvr456VWym",
11 | "state": "active"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/btc/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/dash/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currencies": ["dash"],
10 | "address": "XpESxaUmonkq8RaLLp46Brx2K39ggQe226",
11 | "state": "active"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/dash/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/eth/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currencies": ["eth", "ltc"],
10 | "address": "0x00eec1e95026faf0412d7a29b94d514d31446141",
11 | "state": "active"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/eth/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/ltc/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currencies": ["eth", "ltc"],
10 | "address": "0x00eec1e95026faf0412d7a29b94d514d31446141",
11 | "state": "active"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/ltc/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/xrp/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "currencies": ["xrp"],
10 | "address": null,
11 | "state": "pending"
12 | }
13 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposit_address/xrp/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/deposits/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/history/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/account/withdraws/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/market/orders/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 | Access-Control-Allow-Headers: *
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/market/orders/__/cancel/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | Content-Type: application/json; charset=utf-8
3 | access-control-allow-origin: *
4 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
5 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
6 | Access-Control-Allow-Headers: *
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/market/orders/__/cancel/POST.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 201
2 | Content-Type: application/json; charset=utf-8
3 | access-control-allow-origin: *
4 | access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
5 | access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
6 | Access-Control-Allow-Headers: *
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/market/orders/cancel/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/market/trades/GET--market=eurusd.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | []
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/market/trades/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
7 | [
8 | {"id":35,"price":10894000,"amount":0.1164,"total":1268061.6,"market":"btczar","created_at":1594951964,"taker_type":"buy"},
9 | {"id":34,"price":10894000,"amount":0.2414,"total":2629811.6,"market":"btczar","created_at":1594951957,"taker_type":"sell"}
10 | ]
11 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/market/trades/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/bchzar/depth/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import './script.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/bchzar/depth/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/bchzar/k-line/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import '../../k-line.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/bchzar/k-line/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/bchzar/trades/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/btczar/depth/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import './script.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/btczar/depth/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/btczar/k-line/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import '../../k-line.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/btczar/k-line/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/btczar/trades/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/dashbtc/depth/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | cContent-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import './script.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/dashbtc/depth/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/dashbtc/k-line/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import '../../k-line.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/dashbtc/k-line/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/dashbtc/trades/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/ethbtc/depth/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import './script.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/ethbtc/depth/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/ethbtc/k-line/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import '../../k-line.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/ethbtc/k-line/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/ethbtc/trades/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/eurusd/depth/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/eurusd/k-line/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import '../../k-line.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/eurusd/k-line/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/eurusd/trades/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/tickers/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | #import './script.js';
9 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/markets/tickers/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/member-levels/GET.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Content-Type: application/json; charset=utf-8
3 | Access-Control-Allow-Origin: *
4 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
5 | Access-Control-Max-Age: 3600
6 | Access-Control-Allow-Credentials: true
7 |
8 | {
9 | "deposit": {
10 | "minimum_level": 3
11 | },
12 | "withdraw": {
13 | "minimum_level": 3
14 | },
15 | "trading": {
16 | "minimum_level": 3
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/mocks/api/v2/peatio/public/member-levels/OPTIONS.mock:
--------------------------------------------------------------------------------
1 | HTTP/2 200
2 | Access-Control-Allow-Origin: *
3 | Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS, HEAD
4 | Access-Control-Max-Age: 3600
5 | Access-Control-Allow-Credentials: true
6 |
--------------------------------------------------------------------------------
/mocks/markets.js:
--------------------------------------------------------------------------------
1 | module.exports = [
2 | 'BTC/ZAR',
3 | 'BCH/ZAR',
4 | 'ETH/BTC',
5 | 'DASH/BTC',
6 | 'EUR/USD',
7 | ]
8 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | include: [
3 | 'node_modules',
4 | ],
5 | plugins: [
6 | require('postcss-import'),
7 | require('postcss-nested'),
8 | require('postcss-hexrgba'),
9 | require('autoprefixer'),
10 | ],
11 | };
12 |
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/1.ea828ac684caa2b94a1b.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[1],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/10.0501e55a3ef6aa50aec6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[10],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/11.dd520838f92e45cd91e3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[11],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/12.18e3c4b9c329e737cb80.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[12],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/12.87f9777d9fe2086ce090.css:
--------------------------------------------------------------------------------
1 | .dialog-2APwxL3O-{display:flex;min-width:280px;text-align:left;box-sizing:border-box;background-color:#fff;flex-direction:column}html.theme-dark .dialog-2APwxL3O-{background-color:#1e222d}.dialog-2APwxL3O-.rounded-tXI9mwGE-{border-radius:4px}.dialog-2APwxL3O-.shadowed-2M13-xZa-{box-shadow:0 1px 2px 1px rgba(0,0,0,.275)}.dialog-2APwxL3O-.fullscreen-2RqU2pqU-{position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;min-height:100%}
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/12.87f9777d9fe2086ce090.rtl.css:
--------------------------------------------------------------------------------
1 | .dialog-2APwxL3O-{display:flex;min-width:280px;text-align:right;box-sizing:border-box;background-color:#fff;flex-direction:column}html.theme-dark .dialog-2APwxL3O-{background-color:#1e222d}.dialog-2APwxL3O-.rounded-tXI9mwGE-{border-radius:4px}.dialog-2APwxL3O-.shadowed-2M13-xZa-{box-shadow:0 1px 2px 1px rgba(0,0,0,.275)}.dialog-2APwxL3O-.fullscreen-2RqU2pqU-{position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;min-height:100%}
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/16.e0d00f8a564954896734.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[16],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/18.e4c458360dbad4de5cf6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[18],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/19.c5542d290eefbb001433.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[19],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/2.195070ea59b3395625da.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[2],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/20.2416da4fc4c075b56691.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[20],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/21.fc856808959a5b8734f7.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[21],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/22.c118eafc7686081984c8.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[22],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/23.7c4be219df640cb3880c.css:
--------------------------------------------------------------------------------
1 | .dialog-34XTwGTT-{position:fixed;min-width:280px;width:100%;max-width:380px}.dialog-34XTwGTT- [data-dragg-area]{cursor:url(grab.bc156522a6b55a60be9fae15c14b66c5.cur),move;cursor:grab}.dialog-34XTwGTT- [data-dragg-area].dragging-33JfMDO6-{cursor:url(grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur),move;cursor:grabbing}
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/23.7c4be219df640cb3880c.rtl.css:
--------------------------------------------------------------------------------
1 | .dialog-34XTwGTT-{position:fixed;min-width:280px;width:100%;max-width:380px}.dialog-34XTwGTT- [data-dragg-area]{cursor:url(grab.bc156522a6b55a60be9fae15c14b66c5.cur),move;cursor:grab}.dialog-34XTwGTT- [data-dragg-area].dragging-33JfMDO6-{cursor:url(grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur),move;cursor:grabbing}
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/23.e89d09694523563b8f86.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[23],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/31.d081df3316799b489847.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[31],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/32.48df7a8cdc38d60b308b.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[32],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/33.4a74c62095be3045c87e.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[33],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/34.17e0ce399a577f17ba55.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[34],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/35.58433cec10095e3c1b7e.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[35],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/36.2ee80b40751fcc88a65c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[36],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/37.065a5f2249aafcfe50ec.css:
--------------------------------------------------------------------------------
1 | .star-uhAI7sV4-{display:block;opacity:.7;box-sizing:border-box;transition:opacity .35s ease;padding:4px;margin:-4px}.star-uhAI7sV4- svg{display:block;fill:currentColor;pointer-events:none}.star-uhAI7sV4-.checked-2bhy04CF- svg{fill:#ffca3b}.star-uhAI7sV4-:active{opacity:1;transition-duration:60ms}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.star-uhAI7sV4-:hover{opacity:1;transition-duration:60ms}}
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/37.065a5f2249aafcfe50ec.rtl.css:
--------------------------------------------------------------------------------
1 | .star-uhAI7sV4-{display:block;opacity:.7;box-sizing:border-box;transition:opacity .35s ease;padding:4px;margin:-4px}.star-uhAI7sV4- svg{display:block;fill:currentColor;pointer-events:none}.star-uhAI7sV4-.checked-2bhy04CF- svg{fill:#ffca3b}.star-uhAI7sV4-:active{opacity:1;transition-duration:60ms}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.star-uhAI7sV4-:hover{opacity:1;transition-duration:60ms}}
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/37.1735365b01406a8d696d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[37],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/38.9ae2eea9402c30aa3046.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[38],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/39.7e524b82ef9947f0f19f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[39],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/40.42bd9598272e9dd24457.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[40],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/41.11c024e8e0504741fd66.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[41],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/42.0491acaaf55887f7fcb3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[42],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/43.4ae432f1b8259dbfd0e5.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[43],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/44.7aabc64d3dfb54c85d60.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[44],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/45.6c1fc3ac2f6063249f97.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[45],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/46.75a0e6fecbc3c92a6bc7.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[46],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/47.773635a99e184d6dc131.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[47],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/48.9d08141ee2d55bcad3e7.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[48],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/49.929acbc67c2613c57f58.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[49],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/50.2c50aad369bf63f77061.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[50],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/51.30c5804303a9f1c455e3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[51],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/52.c212ca3684de16c6f115.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[52],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/53.7217742e39b70fc9d431.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[53],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/54.9eb4ca2a30197d95fe82.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[54],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/55.7707e6ae9f2ec8cfb656.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[55],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/56.83cd8456e872f49059c3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[56],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/57.6384b62456dc4fed6ffb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[57],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/58.8077d6b199609737b3d5.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[58],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/6.902d5f3923d45b49b876.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/7.fc0941206f7b7d32812d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[7],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/8.62bd4ee21281906a7019.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],[]]);
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/bundles/fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/bundles/fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/opacity-pattern.a6506134daec7169f68f563f084a9d41.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/precache-manifest.60144109bbe17651b1eb050c29e4f6f4.js:
--------------------------------------------------------------------------------
1 | self.__precacheManifest = [
2 | ];
--------------------------------------------------------------------------------
/public/charting_library/static/bundles/zoom.e21f24dd632c7069139bc47ae89c54b5.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/bundles/zoom.e21f24dd632c7069139bc47ae89c54b5.cur
--------------------------------------------------------------------------------
/public/charting_library/static/images/balloon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/balloon.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/bar-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/bar-loader.gif
--------------------------------------------------------------------------------
/public/charting_library/static/images/button-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/button-bg.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/charting_library/logo-widget-copyright-faded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/charting_library/logo-widget-copyright-faded.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/charting_library/logo-widget-copyright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/charting_library/logo-widget-copyright.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/controlll.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/controlll.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/delayed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/delayed.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/dialogs/checkbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/dialogs/checkbox.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/dialogs/close-flat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/dialogs/close-flat.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/dialogs/large-slider-handle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/dialogs/large-slider-handle.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/dialogs/linewidth-slider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/dialogs/linewidth-slider.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/dialogs/opacity-slider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/dialogs/opacity-slider.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/icons.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/prediction-clock-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/prediction-clock-black.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/prediction-clock-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/prediction-clock-white.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/prediction-failure-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/prediction-failure-white.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/prediction-success-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/prediction-success-white.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/price_label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/price_label.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/select-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/select-bg.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/svg/chart/bucket2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/charting_library/static/images/svg/chart/font.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/charting_library/static/images/svg/chart/pencil2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/charting_library/static/images/tvcolorpicker-bg-gradient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/tvcolorpicker-bg-gradient.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/tvcolorpicker-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/tvcolorpicker-bg.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/tvcolorpicker-check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/tvcolorpicker-check.png
--------------------------------------------------------------------------------
/public/charting_library/static/images/tvcolorpicker-sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/charting_library/static/images/tvcolorpicker-sprite.png
--------------------------------------------------------------------------------
/public/css/theme.css:
--------------------------------------------------------------------------------
1 | :root {
2 | /* Override application styles by redeclaring variables using !important rule */
3 |
4 | /* Example: */
5 | /* --text: blue !important; */
6 | }
7 |
--------------------------------------------------------------------------------
/public/css/tradingview.css:
--------------------------------------------------------------------------------
1 | html.theme-dark .chart-page {
2 | background-color: var(--body-background-color);
3 | }
4 |
5 | html.theme-dark .group-wWM3zP_M- {
6 | background-color: transparent;
7 | }
8 |
--------------------------------------------------------------------------------
/public/datafeeds/README.md:
--------------------------------------------------------------------------------
1 | # Charting Library Datafeeds
2 |
3 | This folder contains implementation of Charting Library Datafeeds.
4 |
--------------------------------------------------------------------------------
/public/datafeeds/udf/.npmrc:
--------------------------------------------------------------------------------
1 | package-lock=false
2 |
--------------------------------------------------------------------------------
/public/datafeeds/udf/lib/iquotes-provider.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/datafeeds/udf/lib/iquotes-provider.js
--------------------------------------------------------------------------------
/public/datafeeds/udf/src/iquotes-provider.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/datafeeds/udf/src/iquotes-provider.js
--------------------------------------------------------------------------------
/public/datafeeds/udf/src/iquotes-provider.ts:
--------------------------------------------------------------------------------
1 | import { QuoteData } from '../../../charting_library/datafeed-api';
2 |
3 | import {
4 | UdfOkResponse,
5 | } from './helpers';
6 |
7 | export interface UdfQuotesResponse extends UdfOkResponse {
8 | d: QuoteData[];
9 | }
10 |
11 | export interface IQuotesProvider {
12 | // tslint:disable-next-line:variable-name tv-variable-name
13 | getQuotes(symbols: string[]): Promise;
14 | }
15 |
--------------------------------------------------------------------------------
/public/datafeeds/udf/src/polyfills.es6:
--------------------------------------------------------------------------------
1 | import 'promise-polyfill';
2 | import 'whatwg-fetch';
3 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/public/favicon.ico
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": "./index.html",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/robots.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/robots.txt
--------------------------------------------------------------------------------
/scripts/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | export REACT_APP_GIT_SHA=$(git rev-parse --short HEAD)
4 | export BUILD_DOMAIN=$(test -e .domains && cat .domains)
5 | [ -n "$BUILD_EXPIRE" ] && export REACT_APP_BUILD_EXPIRE=$(date -d "+${BUILD_EXPIRE}" +%s000)
6 |
7 | yarn build
8 |
--------------------------------------------------------------------------------
/spec/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
--------------------------------------------------------------------------------
/spec/fixtures/profile.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 8739,
3 | "name": "Jane",
4 | "email": "jane@example.com"
5 | }
--------------------------------------------------------------------------------
/spec/integration/login_spec.js:
--------------------------------------------------------------------------------
1 | describe('My First Test', function() {
2 | it('clicks the link "Trade"', function() {
3 | cy.visit('/')
4 | cy.contains('Trade').click()
5 | })
6 |
7 | it('Can login', function() {
8 | cy.contains('Sign In').click()
9 | cy.get('input[type=email]').type('admin@barong.io')
10 | cy.get('input[type=password]').type('0lDHd9ufs9t@')
11 | cy.get('input[type=submit]').click()
12 | })
13 | })
14 |
--------------------------------------------------------------------------------
/src/assets/images/ChevronIcon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | interface ChevronIconProps {
4 | className?: string;
5 | }
6 |
7 | export const ChevronIcon: React.FC = (props: ChevronIconProps) => (
8 |
11 | );
12 |
--------------------------------------------------------------------------------
/src/assets/images/customization/ArrowIcon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export const ArrowIcon = () => {
4 | return (
5 |
8 | );
9 | };
10 |
--------------------------------------------------------------------------------
/src/assets/images/customization/SettingsIcon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export const SettingsIcon = () => {
4 | return (
5 |
8 | );
9 | };
10 |
--------------------------------------------------------------------------------
/src/assets/images/kyc/CheckBigIcon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export const CheckBigIcon = () => {
4 | return (
5 |
8 | );
9 | };
10 |
--------------------------------------------------------------------------------
/src/assets/images/kyc/CheckIcon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export const CheckIcon = () => {
4 | return (
5 |
8 | );
9 | };
10 |
--------------------------------------------------------------------------------
/src/assets/images/landing/TradingUIFullBG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/assets/images/landing/TradingUIFullBG.png
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/1.ea828ac684caa2b94a1b.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[1],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/10.0501e55a3ef6aa50aec6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[10],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/11.dd520838f92e45cd91e3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[11],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/12.18e3c4b9c329e737cb80.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[12],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/12.87f9777d9fe2086ce090.css:
--------------------------------------------------------------------------------
1 | .dialog-2APwxL3O-{display:flex;min-width:280px;text-align:left;box-sizing:border-box;background-color:#fff;flex-direction:column}html.theme-dark .dialog-2APwxL3O-{background-color:#1e222d}.dialog-2APwxL3O-.rounded-tXI9mwGE-{border-radius:4px}.dialog-2APwxL3O-.shadowed-2M13-xZa-{box-shadow:0 1px 2px 1px rgba(0,0,0,.275)}.dialog-2APwxL3O-.fullscreen-2RqU2pqU-{position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;min-height:100%}
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/12.87f9777d9fe2086ce090.rtl.css:
--------------------------------------------------------------------------------
1 | .dialog-2APwxL3O-{display:flex;min-width:280px;text-align:right;box-sizing:border-box;background-color:#fff;flex-direction:column}html.theme-dark .dialog-2APwxL3O-{background-color:#1e222d}.dialog-2APwxL3O-.rounded-tXI9mwGE-{border-radius:4px}.dialog-2APwxL3O-.shadowed-2M13-xZa-{box-shadow:0 1px 2px 1px rgba(0,0,0,.275)}.dialog-2APwxL3O-.fullscreen-2RqU2pqU-{position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;min-height:100%}
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/16.e0d00f8a564954896734.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[16],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/18.e4c458360dbad4de5cf6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[18],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/19.c5542d290eefbb001433.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[19],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/2.195070ea59b3395625da.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[2],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/20.2416da4fc4c075b56691.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[20],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/21.fc856808959a5b8734f7.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[21],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/22.c118eafc7686081984c8.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[22],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/23.7c4be219df640cb3880c.css:
--------------------------------------------------------------------------------
1 | .dialog-34XTwGTT-{position:fixed;min-width:280px;width:100%;max-width:380px}.dialog-34XTwGTT- [data-dragg-area]{cursor:url(grab.bc156522a6b55a60be9fae15c14b66c5.cur),move;cursor:grab}.dialog-34XTwGTT- [data-dragg-area].dragging-33JfMDO6-{cursor:url(grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur),move;cursor:grabbing}
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/23.7c4be219df640cb3880c.rtl.css:
--------------------------------------------------------------------------------
1 | .dialog-34XTwGTT-{position:fixed;min-width:280px;width:100%;max-width:380px}.dialog-34XTwGTT- [data-dragg-area]{cursor:url(grab.bc156522a6b55a60be9fae15c14b66c5.cur),move;cursor:grab}.dialog-34XTwGTT- [data-dragg-area].dragging-33JfMDO6-{cursor:url(grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur),move;cursor:grabbing}
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/23.e89d09694523563b8f86.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[23],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/31.d081df3316799b489847.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[31],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/32.48df7a8cdc38d60b308b.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[32],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/33.4a74c62095be3045c87e.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[33],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/34.17e0ce399a577f17ba55.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[34],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/35.58433cec10095e3c1b7e.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[35],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/36.2ee80b40751fcc88a65c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[36],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/37.065a5f2249aafcfe50ec.css:
--------------------------------------------------------------------------------
1 | .star-uhAI7sV4-{display:block;opacity:.7;box-sizing:border-box;transition:opacity .35s ease;padding:4px;margin:-4px}.star-uhAI7sV4- svg{display:block;fill:currentColor;pointer-events:none}.star-uhAI7sV4-.checked-2bhy04CF- svg{fill:#ffca3b}.star-uhAI7sV4-:active{opacity:1;transition-duration:60ms}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.star-uhAI7sV4-:hover{opacity:1;transition-duration:60ms}}
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/37.065a5f2249aafcfe50ec.rtl.css:
--------------------------------------------------------------------------------
1 | .star-uhAI7sV4-{display:block;opacity:.7;box-sizing:border-box;transition:opacity .35s ease;padding:4px;margin:-4px}.star-uhAI7sV4- svg{display:block;fill:currentColor;pointer-events:none}.star-uhAI7sV4-.checked-2bhy04CF- svg{fill:#ffca3b}.star-uhAI7sV4-:active{opacity:1;transition-duration:60ms}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.star-uhAI7sV4-:hover{opacity:1;transition-duration:60ms}}
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/37.1735365b01406a8d696d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[37],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/38.9ae2eea9402c30aa3046.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[38],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/39.7e524b82ef9947f0f19f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[39],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/40.42bd9598272e9dd24457.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[40],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/41.11c024e8e0504741fd66.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[41],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/42.0491acaaf55887f7fcb3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[42],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/43.4ae432f1b8259dbfd0e5.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[43],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/44.7aabc64d3dfb54c85d60.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[44],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/45.6c1fc3ac2f6063249f97.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[45],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/46.75a0e6fecbc3c92a6bc7.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[46],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/47.773635a99e184d6dc131.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[47],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/48.9d08141ee2d55bcad3e7.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[48],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/49.929acbc67c2613c57f58.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[49],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/50.2c50aad369bf63f77061.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[50],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/51.30c5804303a9f1c455e3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[51],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/52.c212ca3684de16c6f115.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[52],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/53.7217742e39b70fc9d431.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[53],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/54.9eb4ca2a30197d95fe82.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[54],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/55.7707e6ae9f2ec8cfb656.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[55],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/56.83cd8456e872f49059c3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[56],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/57.6384b62456dc4fed6ffb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[57],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/58.8077d6b199609737b3d5.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[58],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/6.902d5f3923d45b49b876.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/7.fc0941206f7b7d32812d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[7],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/8.62bd4ee21281906a7019.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],[]]);
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/bundles/fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/bundles/fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/opacity-pattern.a6506134daec7169f68f563f084a9d41.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/precache-manifest.60144109bbe17651b1eb050c29e4f6f4.js:
--------------------------------------------------------------------------------
1 | self.__precacheManifest = [
2 | ];
--------------------------------------------------------------------------------
/src/charting_library/static/bundles/zoom.e21f24dd632c7069139bc47ae89c54b5.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/bundles/zoom.e21f24dd632c7069139bc47ae89c54b5.cur
--------------------------------------------------------------------------------
/src/charting_library/static/images/balloon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/balloon.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/bar-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/bar-loader.gif
--------------------------------------------------------------------------------
/src/charting_library/static/images/button-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/button-bg.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/charting_library/logo-widget-copyright-faded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/charting_library/logo-widget-copyright-faded.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/charting_library/logo-widget-copyright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/charting_library/logo-widget-copyright.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/controlll.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/controlll.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/delayed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/delayed.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/dialogs/checkbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/dialogs/checkbox.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/dialogs/close-flat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/dialogs/close-flat.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/dialogs/large-slider-handle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/dialogs/large-slider-handle.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/dialogs/linewidth-slider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/dialogs/linewidth-slider.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/dialogs/opacity-slider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/dialogs/opacity-slider.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/icons.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/prediction-clock-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/prediction-clock-black.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/prediction-clock-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/prediction-clock-white.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/prediction-failure-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/prediction-failure-white.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/prediction-success-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/prediction-success-white.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/price_label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/price_label.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/select-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/select-bg.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/svg/chart/bucket2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/charting_library/static/images/svg/chart/font.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/charting_library/static/images/svg/chart/large-slider-handle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/charting_library/static/images/svg/chart/pencil2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/charting_library/static/images/tvcolorpicker-bg-gradient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/tvcolorpicker-bg-gradient.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/tvcolorpicker-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/tvcolorpicker-bg.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/tvcolorpicker-check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/tvcolorpicker-check.png
--------------------------------------------------------------------------------
/src/charting_library/static/images/tvcolorpicker-sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openware/baseapp/f719faf435ada93e1a7ab1f506748344b3aadd33/src/charting_library/static/images/tvcolorpicker-sprite.png
--------------------------------------------------------------------------------
/src/components/Captcha/Captcha.pcss:
--------------------------------------------------------------------------------
1 | .pg-captcha {
2 | &--recaptcha {
3 | display: flex;
4 | justify-content: center;
5 | margin: var(--email-form-padding);
6 | }
7 |
8 | &--geetest {
9 | margin: 10px calc(var(--big-gap) * 0.9);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/components/CombinedOrderBook/__snapshots__/CombinedOrderBook.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`CombinedOrderBook should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/CopyableTextField/__snapshots__/CopyableTextField.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`CopyableTextField should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/CryptoIcon/CryptoIcon.pcss:
--------------------------------------------------------------------------------
1 | .cr-crypto-icon {
2 | color: var(--base);
3 | }
4 |
--------------------------------------------------------------------------------
/src/components/CryptoIcon/__snapshots__/CryptoIcon.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`CryptoIcon should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/CryptoIcon/readme.md:
--------------------------------------------------------------------------------
1 | Example of usage:
2 |
3 | ```js
4 |
5 |
6 | 7.40
7 |
8 |
9 |
10 | ```
--------------------------------------------------------------------------------
/src/components/CustomInput/__snapshots__/CustomInput.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`CustomInput component should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/Customization/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Themes';
2 | export * from './Fonts';
3 | export * from './Images';
4 | export * from './Spacing';
5 |
--------------------------------------------------------------------------------
/src/components/Customization/style.pcss:
--------------------------------------------------------------------------------
1 | @import "./Themes/Themes.pcss";
2 | @import "./Themes/ColorSettings/ColorSettings.pcss";
3 |
--------------------------------------------------------------------------------
/src/components/Decimal/Decimal.pcss:
--------------------------------------------------------------------------------
1 | .cr-decimal__opacity {
2 | opacity: 0.6;
3 | }
4 |
--------------------------------------------------------------------------------
/src/components/Decimal/readme.md:
--------------------------------------------------------------------------------
1 | Decimal format example:
2 |
3 | ```js
4 | const fixed = 5;
5 | const prevValue = '1234.56333';
6 |
7 | 1234.56999
8 | ```
9 |
--------------------------------------------------------------------------------
/src/components/DepositCrypto/__snapshots__/DepositCrypto.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`DepositCrypto should match snapshot 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/DepositFiat/__snapshots__/DepositFiat.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`DepositFiat should match snapshot 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/Documentation/Documentation.pcss:
--------------------------------------------------------------------------------
1 | @import "./Endpoints/DocumentationEndpoints.pcss";
2 | @import "./Header/DocumentationHeader.pcss";
3 | @import "./Models/DocumentationModels.pcss";
4 |
--------------------------------------------------------------------------------
/src/components/Documentation/Endpoints/DocumentationEndpoints.pcss:
--------------------------------------------------------------------------------
1 | .pg-documentation-endpoints {
2 | padding: 0 20px 20px 20px;
3 | }
4 |
--------------------------------------------------------------------------------
/src/components/Documentation/Models/DocumentationModels.pcss:
--------------------------------------------------------------------------------
1 | @import "./Item/DocumentationModelsItem.pcss";
2 |
3 | .pg-documentation-models {
4 | padding: 0 20px 20px 20px;
5 | }
6 |
--------------------------------------------------------------------------------
/src/components/Documentation/Models/Item/DocumentationModelsItem.pcss:
--------------------------------------------------------------------------------
1 | .pg-documentation-models-item {
2 | &:last-child {
3 | margin-bottom: 0;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/components/Documentation/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Header';
2 | export * from './Endpoints';
3 | export * from './Models';
4 |
--------------------------------------------------------------------------------
/src/components/Dropdown/__snapshots__/Dropdown.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Dropdown #render should render dropdown 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/Dropdown/readme.md:
--------------------------------------------------------------------------------
1 |
2 | ```js
3 | const testData = ['Limit', 'Market'];
4 |
5 | const onSelect = (value) => console.log(value);
6 |
7 |
11 |
12 | ```
13 |
--------------------------------------------------------------------------------
/src/components/EmailForm/__snapshots__/EmailForm.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`EmailForm component should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/EmailForm/close.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/components/FilterInput/__snapshots__/FilterInput.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`FilterInput should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/GridItem/__snapshots__/GriItem.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`GridItem should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/GridItem/readme.md:
--------------------------------------------------------------------------------
1 | GridItem example:
2 |
3 | ```js
4 |
5 | Child Body
6 |
7 | ```
8 |
--------------------------------------------------------------------------------
/src/components/History/History.pcss:
--------------------------------------------------------------------------------
1 | .cr-history {
2 | &-action {
3 | background: transparent;
4 |
5 | &--buy {
6 | color: var(--history-action-buy);
7 | }
8 |
9 | &--sell {
10 | color: var(--history-action-sell);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/components/History/__snapshots__/History.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`History should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/MarketDepths/MarketDepths.pcss:
--------------------------------------------------------------------------------
1 | .cr-market-depths {
2 | box-sizing: border-box;
3 | height: 100%;
4 | max-width: 100%;
5 | }
6 |
--------------------------------------------------------------------------------
/src/components/MarketDepths/__snapshots__/MarketDepths.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`CryptoIcon should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/Markets/__snapshots__/Markets.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Markets should render 1`] = `ShallowWrapper {}`;
4 |
5 | exports[`Markets should render empty data 1`] = `ShallowWrapper {}`;
6 |
--------------------------------------------------------------------------------
/src/components/Markets/readme.md:
--------------------------------------------------------------------------------
1 | ```js
2 | const data = [
3 | ['eth/btc', '0.0710000'],
4 | ['xpr/btc', '0.0710000'],
5 | ['xpr/ltc', '0.0710000'],
6 | ['usdt/btc', '0.0710000'],
7 | ['ltc/btc', '0.0710000'],
8 | ];
9 |
10 | const headers = ['Pair', 'Price', '24h Change'];
11 |
12 | const index = 0;
13 |
14 | const onSelect = (index) => console.log(index);
15 |
16 |
17 | ```
18 |
--------------------------------------------------------------------------------
/src/components/MetaMaskButton/MetaMaskButton.pcss:
--------------------------------------------------------------------------------
1 | .pg-metamask {
2 | align-items: center;
3 | display: flex;
4 | height: 40px;
5 | justify-content: center;
6 | margin-top: 30px;
7 |
8 | &__logo-icon {
9 | cursor: pointer;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/components/Modal/__snapshots__/Modal.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Basic Modal should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/OpenOrders/__snapshots__/OpenOrders.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`OpenOrders should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/Order/__snapshots__/Order.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Order should match snapshot 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/OrderBook/OrderBook.pcss:
--------------------------------------------------------------------------------
1 | .cr-order-book {
2 | tr {
3 | td:nth-child(1) {
4 | text-align: left;
5 | }
6 |
7 | td:nth-child(2) {
8 | width: 100%;
9 | }
10 |
11 | td:nth-child(3) {
12 | text-align: right;
13 | }
14 |
15 | th:nth-child(1) {
16 | text-align: left;
17 | }
18 |
19 | th:nth-child(3) {
20 | text-align: right;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/components/OrderBook/__snapshots__/OrderBook.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`History should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/OrderForm/__snapshots__/OrderForm.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`OrderForm should match snapshot 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/OrderInput/__snapshots__/OrderInput.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`InputBlock should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/OrderInput/readme.md:
--------------------------------------------------------------------------------
1 | InputBlock example:
2 |
3 | ```js
4 |
5 | ```
6 |
--------------------------------------------------------------------------------
/src/components/Pagination/Pagination.pcss:
--------------------------------------------------------------------------------
1 | .pg-history-elem__pagination {
2 | align-items: center;
3 | display: flex;
4 | justify-content: flex-end;
5 | padding: calc(var(--gap) * 2.5) 0 0;
6 |
7 | button {
8 | background: none;
9 | border: none;
10 | cursor: pointer;
11 | margin-left: calc(var(--gap) * 4.5);
12 | outline: none;
13 | padding: 0;
14 |
15 | &:disabled {
16 | cursor: default;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Pagination should matches snapshot 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/Pagination/readme.md:
--------------------------------------------------------------------------------
1 | Example of usage:
2 |
3 | ```js
4 | const onClickPrevPage = () => console.log(1);
5 |
6 | const onClickNextPage = () => console.log(2);
7 |
8 |
17 | ```
--------------------------------------------------------------------------------
/src/components/PasswordStrengthMeter/__snapshots__/PasswordStrengthMeter.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`PasswordStrengthMeter component should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/PasswordStrengthTip/PasswordStrengthTip.pcss:
--------------------------------------------------------------------------------
1 | .pg-password-strength-tip {
2 | display: flex;
3 | flex-direction: column;
4 | padding-top: 14px;
5 |
6 | &-title {
7 | padding-bottom: 6px;
8 | }
9 |
10 | &-text {
11 | color: var(--primary-text-color);
12 | opacity: 0.72;
13 | padding-bottom: 2px;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/components/PasswordStrengthTip/__snapshots__/PasswordStrengthTip.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`PasswordStrengthMeter component should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/PercentageButton/__snapshots__/PercentageButton.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Close Button should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/PercentageButton/readme.md:
--------------------------------------------------------------------------------
1 | Example of usage:
2 |
3 | ```js
4 | const onClick = label => alert(`Clicked: ${label}`);
5 |
6 |
10 | ```
11 |
--------------------------------------------------------------------------------
/src/components/QRCode/QRCode.pcss:
--------------------------------------------------------------------------------
1 | .qr-code {
2 | svg {
3 | border: 1px solid var(--base-bright);
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/components/QRCode/__snapshots__/QRCode.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`QRCode renders correctly 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/QRCode/readme.md:
--------------------------------------------------------------------------------
1 | QRCode example:
2 |
3 | ```js
4 | const address = 'kjsnvjkrv3434jnv';
5 |
6 |
10 | ```
11 |
--------------------------------------------------------------------------------
/src/components/SignIn/__snapshots__/SignIn.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`SignIn component should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/SignUp/__snapshots__/SignUp.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`SignUp component should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/SummaryField/__snapshots__/SummaryField.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`SummaryField should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/TabPanel/__snapshots__/TabPanel.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`TabPanel should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/TwoFactorAuth/__snapshots__/TwoFactorAuth.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`TwoFactorAuth component should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/WalletItem/__snapshots__/WalletItem.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`WalletItem #render should match snapshot 1`] = `ReactWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/components/WalletList/WalletList.pcss:
--------------------------------------------------------------------------------
1 | .cr-wallet-list {
2 | background-color: var(--background);
3 | box-sizing: border-box;
4 | list-style: none;
5 | overflow-y: auto;
6 | padding: 0;
7 | }
8 |
--------------------------------------------------------------------------------
/src/components/WalletList/__snapshots__/WalletList.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`WalletList should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/containers/Confirm/Identity/Identity.pcss:
--------------------------------------------------------------------------------
1 | .pg-confirm__content-identity {
2 | &__forms {
3 | align-items: flex-start;
4 | display: flex;
5 | flex-direction: column;
6 | height: 100%;
7 | height: max-content;
8 | justify-content: flex-start;
9 | margin: 0;
10 | padding: 0;
11 | width: 100%;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/containers/Confirm/Phone/Phone.pcss:
--------------------------------------------------------------------------------
1 | .pg-confirm__content-phone {
2 | display: flex;
3 | flex-direction: column;
4 | max-width: 380px;
5 | width: 100vw;
6 |
7 | &-col {
8 | margin: 0;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/containers/Confirm/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Address';
2 | export * from './Documents';
3 | export * from './Identity';
4 | export * from './Phone';
5 |
--------------------------------------------------------------------------------
/src/containers/Header/arrows/arrowBottom.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/Header/arrows/arrowBottomLight.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/Header/arrows/arrowRight.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/Header/arrows/arrowRightLight.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/Header/back.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/Header/backLight.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/ModalWithdrawConfirmation/ModalWithdrawConfirmation.pcss:
--------------------------------------------------------------------------------
1 | .modal-body__withdraw-confirm {
2 | text-align: center;
3 | }
4 |
5 | .modal-footer__withdraw-confirm {
6 | display: flex;
7 | justify-content: space-between;
8 | }
9 |
--------------------------------------------------------------------------------
/src/containers/NavBar/close-icon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/NavBar/close.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/containers/NavBar/open-avatar.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/containers/NavBar/open-icon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/OpenOrders/__snapshots__/OpenOrders.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`OpenOrders should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/containers/ProfileAuthDetails/close.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/RecentTrades/__snapshots__/RecentTrades.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`RecentTradesComponent should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/containers/ToolBar/icons/hidden.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/containers/Wallets/FailIcon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 |
4 | export const FailIcon = () => {
5 | return (
6 |
10 |
11 | );
12 | };
13 |
--------------------------------------------------------------------------------
/src/containers/WalletsFetch/__snapshots__/WalletsFetch.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`WalletsFetch component should match snapshot 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/custom/helpers/layout.ts:
--------------------------------------------------------------------------------
1 | export const customLayouts = {};
2 |
--------------------------------------------------------------------------------
/src/custom/styles/colors.pcss:
--------------------------------------------------------------------------------
1 | /* variables overwriting */
2 |
--------------------------------------------------------------------------------
/src/custom/styles/fonts.pcss:
--------------------------------------------------------------------------------
1 | /* custom fonts */
2 |
--------------------------------------------------------------------------------
/src/custom/styles/style.pcss:
--------------------------------------------------------------------------------
1 | @import "./fonts.pcss";
2 | @import "./themes/style.pcss";
3 | @import "./colors.pcss";
4 |
--------------------------------------------------------------------------------
/src/custom/styles/themes/style.pcss:
--------------------------------------------------------------------------------
1 | /* custom themes */
2 |
--------------------------------------------------------------------------------
/src/custom/translations/en.ts:
--------------------------------------------------------------------------------
1 | export const en = {};
2 |
--------------------------------------------------------------------------------
/src/custom/translations/index.ts:
--------------------------------------------------------------------------------
1 | import { ru } from './ru';
2 |
3 | export const customLanguageMap = {
4 | ru,
5 | };
6 |
--------------------------------------------------------------------------------
/src/custom/translations/nationalities.ts:
--------------------------------------------------------------------------------
1 | export const customNationalitiesNames = {};
2 |
--------------------------------------------------------------------------------
/src/filters/index.ts:
--------------------------------------------------------------------------------
1 | export * from './FilterPrice';
2 |
--------------------------------------------------------------------------------
/src/helpers/accumulateVolume.ts:
--------------------------------------------------------------------------------
1 | export const accumulateVolume = array => {
2 | const total: number[] = [];
3 | array.map(item => {
4 | return item[1];
5 | }).reduce((accumulator, currentValue, currentIndex) => {
6 | total[currentIndex] = Number(accumulator) + Number(currentValue);
7 |
8 | return (Number(accumulator) + Number(currentValue));
9 | }, 0);
10 |
11 | return total;
12 | };
13 |
--------------------------------------------------------------------------------
/src/helpers/areEqualProps.ts:
--------------------------------------------------------------------------------
1 | const areEqualProps = (prevProps, nextProps) => {
2 | const keys = Object.keys(prevProps);
3 |
4 | return keys.every(key => prevProps[key] === nextProps[key]);
5 | };
6 |
7 | export {
8 | areEqualProps,
9 | };
10 |
--------------------------------------------------------------------------------
/src/helpers/areEqualSelectedProps.ts:
--------------------------------------------------------------------------------
1 | const areEqualSelectedProps = (key, props) => (prevProps, nextProps) => {
2 | return props.every(prop => prevProps[key][prop] === nextProps[key][prop]);
3 | };
4 |
5 | export {
6 | areEqualSelectedProps,
7 | };
8 |
--------------------------------------------------------------------------------
/src/helpers/calcMaxVolume.ts:
--------------------------------------------------------------------------------
1 | import { accumulateVolume } from './accumulateVolume';
2 |
3 | export const calcMaxVolume = (bids: string[][], asks: string[][]) => {
4 | return Math.max(...accumulateVolume(bids), ...accumulateVolume(asks));
5 | };
6 |
--------------------------------------------------------------------------------
/src/helpers/cleanPositiveFloatInput.ts:
--------------------------------------------------------------------------------
1 | export const cleanPositiveFloatInput = (text: string) => {
2 | let cleanInput = text
3 | .replace(',', '.')
4 | .replace(/-+/, '')
5 | .replace(/^0+/, '0')
6 | .replace(/\.+/, '.')
7 | .replace(/^0+([1-9])/, '$1');
8 |
9 | if (cleanInput[0] === '.') {
10 | cleanInput = `0${cleanInput}`;
11 | }
12 |
13 | return cleanInput;
14 | };
15 |
--------------------------------------------------------------------------------
/src/helpers/convertRgbToHex.ts:
--------------------------------------------------------------------------------
1 | const componentToHex = (c: string) => {
2 | const hex = (+c).toString(16);
3 |
4 | return hex.length === 1 ? `0${hex}` : hex;
5 | };
6 |
7 | export const convertRgbToHex = (rgb: string): string => {
8 | const colorCodes = rgb.replace(' ', '').split(',');
9 |
10 | if (colorCodes.length > 2) {
11 | return `#${componentToHex(colorCodes[0])}${componentToHex(colorCodes[1])}${componentToHex(colorCodes[2])}`;
12 | }
13 |
14 | return '';
15 | };
16 |
17 |
--------------------------------------------------------------------------------
/src/helpers/copy.ts:
--------------------------------------------------------------------------------
1 | export const copy = (id: string) => {
2 | const copyText: HTMLInputElement | null = document.querySelector(`#${id}`);
3 |
4 | if (copyText) {
5 | copyText.select();
6 |
7 | document.execCommand('copy');
8 | (window.getSelection() as any).removeAllRanges(); // tslint:disable-line
9 | }
10 | };
11 |
--------------------------------------------------------------------------------
/src/helpers/filterData.ts:
--------------------------------------------------------------------------------
1 | const consist = (a, b) => {
2 | return a.toLowerCase().indexOf(b.toLowerCase()) !== -1;
3 | };
4 |
5 | export const handleFilter = (item, term) => {
6 | return consist(item.currency, term);
7 | };
8 |
--------------------------------------------------------------------------------
/src/helpers/getCsrfToken.ts:
--------------------------------------------------------------------------------
1 | export const getCsrfToken = () => localStorage.getItem('csrfToken') || undefined;
2 |
--------------------------------------------------------------------------------
/src/helpers/getHistorySagaParam.ts:
--------------------------------------------------------------------------------
1 | import { HistoryFetchPayload } from '../modules/user/history';
2 |
3 | export const getHistorySagaParam = (action: HistoryFetchPayload) => (Object.entries(action)
4 | .filter(w => w[1] !== undefined && w[0] !== 'type')
5 | .map(k => {
6 | const param = k[0] === 'page' ? Number(k[1]) + 1 : k[1];
7 |
8 | return `${k[0]}=${encodeURIComponent(param)}`;
9 | })
10 | .join('&'));
11 |
--------------------------------------------------------------------------------
/src/helpers/getLanguageByCode.ts:
--------------------------------------------------------------------------------
1 | export const getLanguageName = (code: string) => {
2 | switch (code) {
3 | case 'en':
4 | return 'English';
5 | case 'ru':
6 | return 'Русский';
7 | case 'zh':
8 | return '中国';
9 | default:
10 | return 'English';
11 | }
12 | };
13 |
--------------------------------------------------------------------------------
/src/helpers/getOrderAPI.ts:
--------------------------------------------------------------------------------
1 | import { isFinexEnabled } from '../api';
2 |
3 | export const getOrderAPI = () => isFinexEnabled() ? 'finex' : 'peatio';
4 |
--------------------------------------------------------------------------------
/src/helpers/getStylesValueByKey.ts:
--------------------------------------------------------------------------------
1 | export const getStylesValueByKey = (variable: string): string => {
2 | const bodyStyles = window.getComputedStyle(document.body);
3 |
4 | if (bodyStyles && variable) {
5 | const key = variable.slice(4, variable.length - 1);
6 |
7 | return bodyStyles.getPropertyValue(key);
8 | }
9 |
10 | return '';
11 | };
12 |
--------------------------------------------------------------------------------
/src/helpers/getTimestampPeriod.ts:
--------------------------------------------------------------------------------
1 | export const getTimestampPeriod = (ts: number | string, period: number | string): number => +ts - +ts % ((+period || 1) * 60);
2 |
--------------------------------------------------------------------------------
/src/helpers/getUnique.ts:
--------------------------------------------------------------------------------
1 | export const getUnique = (arr, comp) => {
2 | return arr
3 | .map(item => item[comp])
4 | .map((item, i, final) => final.indexOf(item) === i && i)
5 | .filter(item => arr[item]).map(item => arr[item]);
6 | };
7 |
--------------------------------------------------------------------------------
/src/helpers/getUrlPart.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export const getUrlPart = (index: number, url: string): string => {
3 | const part = url.split(/[\/#?]/)[index];
4 |
5 | return part ? part : '';
6 | };
7 |
--------------------------------------------------------------------------------
/src/helpers/handleCCYPrecision.ts:
--------------------------------------------------------------------------------
1 | import { Currency } from '../modules';
2 |
3 | export const handleCCYPrecision = (currencies: Currency[], currency: string, defaultPrecision: number): number => {
4 | const precisableCCY = currencies[0] && currency.length && currencies.find(item => (item.id.toLowerCase() === currency.toLowerCase()));
5 |
6 | return (precisableCCY && precisableCCY.precision) || defaultPrecision;
7 | };
8 |
--------------------------------------------------------------------------------
/src/helpers/passwordValidation.ts:
--------------------------------------------------------------------------------
1 | export const passwordErrorFirstSolution = (value: string) => value.match(/.{8,80}/g);
2 | export const passwordErrorSecondSolution = (value: string) => value.match(/(?=.*[a-z])(?=.*[A-Z]).*/g);
3 | export const passwordErrorThirdSolution = (value: string) => value.match(/[a-zA-Z0-9]*[0-9]+[a-zA-Z0-9]*/g);
4 |
--------------------------------------------------------------------------------
/src/helpers/regExp.test.ts:
--------------------------------------------------------------------------------
1 | import { precisionRegExp } from './';
2 |
3 | describe('Describe regular expressions helper', () => {
4 | it('should match precisionRegExp', () => {
5 | expect('1').toMatch(precisionRegExp(0));
6 | expect('1.1').not.toMatch(precisionRegExp(0));
7 | expect('0.0000001').toMatch(precisionRegExp(7));
8 | expect('0.00000001').not.toMatch(precisionRegExp(7));
9 | });
10 | });
11 |
--------------------------------------------------------------------------------
/src/helpers/regExp.ts:
--------------------------------------------------------------------------------
1 | export const precisionRegExp = (precision: number) => new RegExp(precision ?
2 | `^(?:[\\d-]*\\.?[\\d-]{0,${precision}}|[\\d-]*\\.[\\d-])$` :
3 | `^(?:[\\d-]*)$`,
4 | );
5 |
--------------------------------------------------------------------------------
/src/helpers/setDocumentTitle.ts:
--------------------------------------------------------------------------------
1 | import { PG_TITLE_PREFIX } from '../constants';
2 |
3 | export const setDocumentTitle = (title: string): void => {
4 | document.title = [PG_TITLE_PREFIX, title].join(': ');
5 | };
6 |
--------------------------------------------------------------------------------
/src/helpers/setTradeColor.ts:
--------------------------------------------------------------------------------
1 | const tradesColorMapping = {
2 | buy: {
3 | color: 'var(--bids)',
4 | },
5 | sell: {
6 | color: 'var(--asks)',
7 | },
8 | };
9 |
10 | export const setTradeColor = (side: string) => tradesColorMapping[side] || { color: ''};
11 |
--------------------------------------------------------------------------------
/src/helpers/sliceArray.ts:
--------------------------------------------------------------------------------
1 | export const sliceArray = (data, limit) => {
2 | const temp = data;
3 | if (!temp) {
4 | return temp;
5 | }
6 |
7 | if (temp.length > limit) {
8 | temp.length = limit;
9 | }
10 |
11 | return temp;
12 | };
13 |
--------------------------------------------------------------------------------
/src/helpers/sliceString.ts:
--------------------------------------------------------------------------------
1 | export const sliceString = (str, period) => {
2 | return str ? str.length > period ? `${str.slice(0, period)}...` : str : str;
3 | };
4 |
--------------------------------------------------------------------------------
/src/helpers/sortByDate.ts:
--------------------------------------------------------------------------------
1 | import * as moment from 'moment';
2 | import { localeDate } from './localeDate';
3 |
4 | export const sortByDate = (prop: string, format: string) => {
5 | return (a, b) => {
6 | return moment(localeDate(a[prop], 'fullDate'), format) > moment(localeDate(b[prop], 'fullDate'), format) ? -1 : 1;
7 | };
8 | };
9 |
--------------------------------------------------------------------------------
/src/helpers/sortByPrice.ts:
--------------------------------------------------------------------------------
1 | export const sortAsks = (asks: string[][]) => {
2 | return asks.sort((a, b) => Number(a[0]) - Number(b[0]));
3 | };
4 |
5 | export const sortBids = (bids: string[][]) => {
6 | return bids.sort((a, b) => Number(b[0]) - Number(a[0]));
7 | };
8 |
--------------------------------------------------------------------------------
/src/helpers/timezone.ts:
--------------------------------------------------------------------------------
1 | import * as moment from 'moment-timezone';
2 |
3 | let timezone = '';
4 | export const getTimezone = () => timezone.length > 0 ? timezone : moment.tz.guess();
5 | export const setTimezone = (tz: string) => timezone = tz;
6 |
7 | export const stdTimezoneOffset = (date: Date) => {
8 | const jan = new Date(date.getFullYear(), 0, 1);
9 | const jul = new Date(date.getFullYear(), 6, 1);
10 |
11 | return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
12 | };
13 |
--------------------------------------------------------------------------------
/src/helpers/toggleColorTheme.ts:
--------------------------------------------------------------------------------
1 | export const toggleColorTheme = (value: string) => {
2 | const rootElement = document.getElementsByTagName('body')[0];
3 | if (value === 'light') {
4 | rootElement && rootElement.classList.add('light-mode');
5 | } else {
6 | rootElement && rootElement.classList.remove('light-mode');
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/src/helpers/truncateMiddle.ts:
--------------------------------------------------------------------------------
1 | export const truncateMiddle = (fullStr: string, strLen: number, sep?: string): string => {
2 | if (!fullStr || fullStr.length <= strLen) { return fullStr; }
3 | const separator = sep || '...';
4 | const charsToShow = strLen - separator.length;
5 | const frontChars = Math.ceil(charsToShow / 2);
6 | const backChars = Math.floor(charsToShow / 2);
7 |
8 | return `${fullStr.substr(0, frontChars)}${separator}${fullStr.substr(fullStr.length - backChars)}`;
9 | };
10 |
--------------------------------------------------------------------------------
/src/helpers/usernameValidation.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export const USERNAME_REGEX = /^[a-zA-Z0-9]{4,12}$/;
3 | export const ERROR_SHORT_USERNAME = 'page.header.signUp.username.minLength.error';
4 | export const ERROR_LONG_USERNAME = 'page.header.signUp.username.maxLength.error';
5 |
--------------------------------------------------------------------------------
/src/hooks/useApiKeysFetch.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { useDispatch } from 'react-redux';
3 | import { apiKeysFetch } from '../modules';
4 |
5 | export const useApiKeysFetch = (pageIndex, limit) => {
6 | const dispatch = useDispatch();
7 |
8 | React.useEffect(() => {
9 | dispatch(apiKeysFetch({ pageIndex, limit }));
10 | }, [dispatch, pageIndex, limit]);
11 | };
12 |
--------------------------------------------------------------------------------
/src/hooks/useDocumentTitle.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { PG_TITLE_PREFIX } from '../constants';
3 |
4 | export const useDocumentTitle = title => {
5 | React.useEffect(() => {
6 | document.title = [PG_TITLE_PREFIX, title].join(': ');
7 | }, [title]);
8 | };
9 |
--------------------------------------------------------------------------------
/src/hooks/useHistoryFetch.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { useDispatch } from 'react-redux';
3 | import { fetchHistory } from '../modules';
4 |
5 | export const useHistoryFetch = ({ type, currency, limit = 6, page = 0 }) => {
6 | const dispatch = useDispatch();
7 |
8 | React.useEffect(() => {
9 | dispatch(fetchHistory({ type, limit, currency, page }));
10 | }, [dispatch, type, currency, limit, page]);
11 | };
12 |
--------------------------------------------------------------------------------
/src/hooks/usePrevious.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export const usePrevious = value => {
4 | const ref = React.useRef();
5 | React.useEffect(() => {
6 | ref.current = value;
7 | });
8 |
9 | return ref.current;
10 | };
11 |
--------------------------------------------------------------------------------
/src/hooks/useResetCaptchaState.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { useDispatch } from 'react-redux';
3 | import { resetCaptchaState } from '../modules';
4 |
5 | export const useResetCaptchaState = () => {
6 | const dispatch = useDispatch();
7 |
8 | React.useEffect(() => {
9 | dispatch(resetCaptchaState());
10 | }, [dispatch]);
11 | };
12 |
--------------------------------------------------------------------------------
/src/hooks/useUserActivityFetch.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { useDispatch } from 'react-redux';
3 | import { getUserActivity } from '../modules';
4 |
5 | export const useUserActivityFetch = ({ page = 0, limit = 25 }) => {
6 | const dispatch = useDispatch();
7 |
8 | React.useEffect(() => {
9 | dispatch(getUserActivity({ page, limit }));
10 | }, [dispatch, page, limit]);
11 | };
12 |
--------------------------------------------------------------------------------
/src/hooks/useUserOrdersHistoryFetch.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { useDispatch } from 'react-redux';
3 | import { userOrdersHistoryFetch } from '../modules';
4 |
5 | export const useUserOrdersHistoryFetch = (pageIndex, type, limit) => {
6 | const dispatch = useDispatch();
7 |
8 | React.useEffect(() => {
9 | dispatch(userOrdersHistoryFetch({ pageIndex, type, limit }));
10 | }, [dispatch, pageIndex, type, limit]);
11 | };
12 |
--------------------------------------------------------------------------------
/src/mobile/assets/images/CheckIcon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | interface Props {
4 | className?: string;
5 | }
6 |
7 | export const CheckIcon: React.FC = (props: Props) => (
8 |
11 | );
12 |
--------------------------------------------------------------------------------
/src/mobile/assets/images/MinusIcon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | interface Props {
4 | className?: string;
5 | }
6 |
7 | export const MinusIcon: React.FC = (props: Props) => (
8 |
11 | );
12 |
--------------------------------------------------------------------------------
/src/mobile/components/Profile/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ApiKeysItem';
2 | export * from './ProfileLinks';
3 | export * from './UserActivityItem';
4 | export * from './UserInfo';
5 |
--------------------------------------------------------------------------------
/src/mobile/screens/Landing/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { MarketsTable } from '../../../containers';
3 |
4 | const LandingComponent: React.FC = () => {
5 | return (
6 |
7 |
8 |
9 | );
10 | };
11 |
12 | export const LandingScreenMobile = React.memo(LandingComponent);
13 |
--------------------------------------------------------------------------------
/src/mobile/screens/Orders/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { Orders } from '../../components';
3 |
4 | const OrdersMobileScreenComponent: React.FC = () => (
5 |
6 |
7 |
8 | );
9 |
10 | export const OrdersMobileScreen = React.memo(OrdersMobileScreenComponent);
11 |
--------------------------------------------------------------------------------
/src/mobile/styles/components/RowItem.pcss:
--------------------------------------------------------------------------------
1 | /* stylelint-disable */
2 | .cr-mobile-table-row {
3 | &__amount {
4 | display: flex;
5 | font-size: 14px;
6 | margin-bottom: 12px;
7 |
8 | &-value {
9 | padding-right: 5px;
10 | color: var(--primary-text-color);
11 | }
12 |
13 | &-currency {
14 | text-transform: uppercase;
15 | color: var(--primary-text-color);
16 | }
17 | }
18 |
19 | &__date {
20 | font-size: 14px;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/mobile/styles/screens/ChangeForgottenPasswordMobileScreen.pcss:
--------------------------------------------------------------------------------
1 | /* stylelint-disable */
2 | .pg-mobile-app {
3 | .pg-change-forgotten-password-screen {
4 | background: unset;
5 | height: auto;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/mobile/styles/screens/Landing.pcss:
--------------------------------------------------------------------------------
1 | .pg-landing-screen-mobile {
2 | align-items: center;
3 | display: flex;
4 | flex-direction: column;
5 | height: 100%;
6 | justify-content: flex-start;
7 | width: 100%;
8 | }
9 |
--------------------------------------------------------------------------------
/src/mobile/styles/screens/Orders.pcss:
--------------------------------------------------------------------------------
1 | .pg-mobile-orders-screen {
2 | display: flex;
3 | margin: 4px 0;
4 | }
5 |
--------------------------------------------------------------------------------
/src/mobile/styles/screens/Profile.pcss:
--------------------------------------------------------------------------------
1 | .pg-mobile-profile-screen {
2 | align-items: center;
3 | display: flex;
4 | flex-direction: column;
5 | height: 100%;
6 | justify-content: flex-start;
7 | width: 100%;
8 | }
9 |
--------------------------------------------------------------------------------
/src/mobile/styles/screens/ProfileChangePassword.pcss:
--------------------------------------------------------------------------------
1 | .pg-mobile-profile-change-password-screen {
2 | align-items: center;
3 | display: flex;
4 | flex-direction: column;
5 | justify-content: flex-start;
6 | margin: 4px 0;
7 | width: 100%;
8 | }
9 |
--------------------------------------------------------------------------------
/src/mobile/styles/style.pcss:
--------------------------------------------------------------------------------
1 | @import "./screens/styles.pcss";
2 | @import "./components/styles.pcss";
3 |
--------------------------------------------------------------------------------
/src/mobile/translations/index.ts:
--------------------------------------------------------------------------------
1 | import { en } from './en';
2 | import { ru } from './ru';
3 |
4 | export {
5 | en,
6 | ru,
7 | };
8 |
--------------------------------------------------------------------------------
/src/modules/helpers.ts:
--------------------------------------------------------------------------------
1 | import { MakerType } from './user/history';
2 |
3 | const makerTypeMap = {
4 | ask: 'sell',
5 | bid: 'buy',
6 | };
7 |
8 | export const kindToMakerType = (kind: string): MakerType => makerTypeMap[kind];
9 |
--------------------------------------------------------------------------------
/src/modules/public/alert/constants.ts:
--------------------------------------------------------------------------------
1 | export const ALERT_DELETE = 'alert/ALERT_DELETE';
2 | export const ALERT_DATA = 'alert/ALERT_DATA';
3 | export const ALERT_PUSH = 'alert/ALERT_PUSH';
4 | export const ALERT_DELETE_BY_INDEX = 'alert/ALERT_DELETE_BY_INDEX';
5 |
--------------------------------------------------------------------------------
/src/modules/public/alert/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './sagas';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/public/alert/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeEvery } from 'redux-saga/effects';
2 | import { ALERT_PUSH } from '../constants';
3 | import { handleAlertSaga } from './handleAlertSaga';
4 |
5 | export function* rootHandleAlertSaga() {
6 | yield takeEvery(ALERT_PUSH, handleAlertSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/alert/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../';
2 | import { AlertState } from './reducer';
3 |
4 | export const selectAlertState = (state: RootState): AlertState => state.public.alerts;
5 |
--------------------------------------------------------------------------------
/src/modules/public/blocklistAccess/constants.ts:
--------------------------------------------------------------------------------
1 | export const SEND_BLOCKLIST_ACCESS_TOKEN_FETCH = 'SEND_BLOCKLIST_ACCESS_TOKEN_FETCH';
2 | export const SEND_BLOCKLIST_ACCESS_TOKEN_DATA = 'SEND_BLOCKLIST_ACCESS_TOKEN_DATA';
3 | export const SEND_BLOCKLIST_ACCESS_TOKEN_ERROR = 'SEND_BLOCKLIST_ACCESS_TOKEN_ERROR';
4 |
5 | export const SET_BLOCKLIST_STATUS = 'SET_BLOCKLIST_STATUS';
6 |
--------------------------------------------------------------------------------
/src/modules/public/blocklistAccess/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './selectors';
4 | export * from './sagas';
5 |
--------------------------------------------------------------------------------
/src/modules/public/blocklistAccess/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeEvery } from 'redux-saga/effects';
2 | import { SEND_BLOCKLIST_ACCESS_TOKEN_FETCH } from '../constants';
3 | import { blocklistAccessFetchSaga } from './blocklistAccessFetchSaga';
4 |
5 | export function* rootBlocklistAccessSaga() {
6 | yield takeEvery(SEND_BLOCKLIST_ACCESS_TOKEN_FETCH, blocklistAccessFetchSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/configs/constants.ts:
--------------------------------------------------------------------------------
1 | export const CONFIGS_FETCH = 'configs/FETCH';
2 | export const CONFIGS_DATA = 'configs/DATA';
3 | export const CONFIGS_ERROR = 'configs/ERROR';
4 |
--------------------------------------------------------------------------------
/src/modules/public/configs/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './sagas';
3 | export * from './reducer';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/public/configs/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { CONFIGS_FETCH } from '../constants';
3 | import { configsFetchSaga } from './configsFetchSaga';
4 |
5 | export function* rootConfigsSaga() {
6 | yield takeLatest(CONFIGS_FETCH, configsFetchSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/configs/types.ts:
--------------------------------------------------------------------------------
1 | export interface Configs {
2 | captcha_type: 'recaptcha' | 'geetest' | 'none';
3 | captcha_id?: string;
4 | password_min_entropy: number;
5 | }
6 |
--------------------------------------------------------------------------------
/src/modules/public/currencies/constants.ts:
--------------------------------------------------------------------------------
1 | export const CURRENCIES_FETCH = 'currencies/FETCH';
2 | export const CURRENCIES_DATA = 'currencies/DATA';
3 | export const CURRENCIES_ERROR = 'currencies/ERROR';
4 |
--------------------------------------------------------------------------------
/src/modules/public/currencies/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './sagas/currenciesFetchSaga';
3 | export * from './reducer';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/public/customization/constants.ts:
--------------------------------------------------------------------------------
1 | export const CUSTOMIZATION_CURRENT = 'customization/CURRENT';
2 | export const CUSTOMIZATION_FETCH = 'customization/FETCH';
3 | export const CUSTOMIZATION_DATA = 'customization/DATA';
4 | export const CUSTOMIZATION_ERROR = 'customization/ERROR';
5 |
--------------------------------------------------------------------------------
/src/modules/public/customization/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './sagas';
3 | export * from './reducer';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/public/customization/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { CUSTOMIZATION_FETCH } from '../constants';
3 | import { customizationFetchSaga } from './customizationFetchSaga';
4 |
5 | export function* rootCustomizationSaga() {
6 | yield takeLatest(CUSTOMIZATION_FETCH, customizationFetchSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/customization/types.ts:
--------------------------------------------------------------------------------
1 | export interface CustomizationDataInterface {
2 | settings?: string;
3 | }
4 |
5 | export interface CustomizationCurrentDataInterface {
6 | theme_id: number;
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/errorHandler/constants.ts:
--------------------------------------------------------------------------------
1 | export const ERROR_HANDLE_FETCH = 'errorHandler/ERROR_HANDLE_FETCH';
2 | export const ERROR_HANDLE_DATA = 'errorHandler/ERROR_HANDLE_DATA';
3 |
--------------------------------------------------------------------------------
/src/modules/public/errorHandler/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './sagas';
4 |
--------------------------------------------------------------------------------
/src/modules/public/errorHandler/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeEvery } from 'redux-saga/effects';
2 | import { ERROR_HANDLE_FETCH } from '../constants';
3 | import { handleErrorSaga } from './handleErrorSaga';
4 |
5 | export function* rootErrorHandlerSaga() {
6 | yield takeEvery(ERROR_HANDLE_FETCH, handleErrorSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/globalSettings/constants.ts:
--------------------------------------------------------------------------------
1 | export const CHANGE_COLOR_THEME = 'colorTheme/CHANGE_COLOR_THEME';
2 | export const TOGGLE_CHART_REBUILD = 'colorTheme/TOGGLE_CHART_REBUILD';
3 | export const TOGGLE_MARKET_SELECTOR = 'colorTheme/TOGGLE_MARKET_SELECTOR';
4 | export const TOGGLE_MOBILE_DEVICE = 'colorTheme/TOGGLE_MOBILE_DEVICE';
5 | export const TOGGLE_SIDEBAR = 'colorTheme/TOGGLE_SIDEBAR';
6 |
--------------------------------------------------------------------------------
/src/modules/public/globalSettings/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './selectors';
4 |
--------------------------------------------------------------------------------
/src/modules/public/gridLayout/constants.ts:
--------------------------------------------------------------------------------
1 | export const SAVE_LAYOUTS = 'layouts/SAVE_LAYOUTS';
2 | export const RESET_LAYOUTS = 'layouts/RESET_LAYOUTS';
3 |
--------------------------------------------------------------------------------
/src/modules/public/gridLayout/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './selectors';
4 |
--------------------------------------------------------------------------------
/src/modules/public/gridLayout/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../';
2 | import { GridLayoutState } from './reducer';
3 |
4 | export const selectGridLayoutState = (state: RootState): GridLayoutState => state.public.rgl;
5 |
--------------------------------------------------------------------------------
/src/modules/public/i18n/actions.ts:
--------------------------------------------------------------------------------
1 | import { CHANGE_LANGUAGE } from './constants';
2 |
3 | export interface ChangeLanguageAction {
4 | type: string;
5 | payload: string;
6 | }
7 | export const changeLanguage = (payload: string): ChangeLanguageAction => ({
8 | type: CHANGE_LANGUAGE,
9 | payload,
10 | });
11 |
--------------------------------------------------------------------------------
/src/modules/public/i18n/constants.ts:
--------------------------------------------------------------------------------
1 | export const CHANGE_LANGUAGE = 'i18n/CHANGE_LANGUAGE';
2 |
--------------------------------------------------------------------------------
/src/modules/public/i18n/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './selectors';
4 |
--------------------------------------------------------------------------------
/src/modules/public/i18n/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../';
2 | import { LanguageState } from './reducer';
3 |
4 | export const selectCurrentLanguage = (state: RootState): LanguageState['lang'] =>
5 | state.public.i18n.lang;
6 |
--------------------------------------------------------------------------------
/src/modules/public/kline/constants.ts:
--------------------------------------------------------------------------------
1 | export const KLINE_PUSH = 'kline/PUSH';
2 |
3 | export const KLINE_FETCH = 'kline/KLINE_FETCH';
4 | export const KLINE_DATA = 'kline/KLINE_DATA';
5 |
6 | export const KLINE_UPDATE_TIME_RANGE = 'kline/KLINE_UPDATE_TIME_RANGE';
7 | export const KLINE_UPDATE_PERIOD = 'kline/KLINE_UPDATE_PERIOD';
8 |
9 | export const KLINE_ERROR = 'kline/KLINE_ERROR';
10 |
--------------------------------------------------------------------------------
/src/modules/public/kline/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './selectors';
4 | export * from './types';
5 | export * from './sagas';
6 |
--------------------------------------------------------------------------------
/src/modules/public/kline/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { KLINE_FETCH } from '../constants';
3 | import { handleKlineFetchSaga } from './handleKlineFetchSaga';
4 |
5 | export function* rootKlineFetchSaga() {
6 | yield takeLatest(KLINE_FETCH, handleKlineFetchSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/kline/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../';
2 | import { KlineState } from './reducer';
3 |
4 | export const selectKline = (state: RootState): KlineState =>
5 | state.public.kline;
6 |
--------------------------------------------------------------------------------
/src/modules/public/kline/types.ts:
--------------------------------------------------------------------------------
1 | export interface KlineEvent {
2 | time: number;
3 | close: number;
4 | open: number;
5 | high: number;
6 | low: number;
7 | volume: number;
8 | }
9 |
--------------------------------------------------------------------------------
/src/modules/public/markets/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './sagas/marketsFetchSaga';
3 | export * from './reducer';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/public/memberLevels/constants.ts:
--------------------------------------------------------------------------------
1 | export const MEMBER_LEVELS_FETCH = 'memberLevels/FETCH';
2 | export const MEMBER_LEVELS_DATA = 'memberLevels/DATA';
3 | export const MEMBER_LEVELS_ERROR = 'memberLevels/ERROR';
4 |
--------------------------------------------------------------------------------
/src/modules/public/memberLevels/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './sagas';
3 | export * from './reducer';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/public/memberLevels/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { MEMBER_LEVELS_FETCH } from '../constants';
3 | import { memberLevelsSaga } from './memberLevelsSaga';
4 |
5 | export function* rootMemberLevelsSaga() {
6 | yield takeLatest(MEMBER_LEVELS_FETCH, memberLevelsSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/memberLevels/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../';
2 | import { MemberLevels } from './types';
3 |
4 | export const selectMemberLevels = (state: RootState): MemberLevels | undefined =>
5 | state.public.memberLevels.levels;
6 |
7 | export const selectMemberLevelsLoading = (state: RootState): boolean =>
8 | state.public.memberLevels.loading;
9 |
--------------------------------------------------------------------------------
/src/modules/public/memberLevels/types.ts:
--------------------------------------------------------------------------------
1 | export interface MemberLevels {
2 | deposit: { minimum_level: number };
3 | withdraw: { minimum_level: number };
4 | trading: { minimum_level: number };
5 | }
6 |
--------------------------------------------------------------------------------
/src/modules/public/orderBook/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/public/orderBook/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { DEPTH_FETCH, ORDER_BOOK_FETCH } from '../constants';
3 | import { depthSaga } from './depthSaga';
4 | import { orderBookSaga } from './orderBookSaga';
5 |
6 | export function* rootOrderBookSaga() {
7 | yield takeLatest(ORDER_BOOK_FETCH, orderBookSaga);
8 | yield takeLatest(DEPTH_FETCH, depthSaga);
9 | }
10 |
--------------------------------------------------------------------------------
/src/modules/public/ranger/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './sagas';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/public/ranger/sagas/index.ts:
--------------------------------------------------------------------------------
1 | export * from './rangerSaga';
2 |
--------------------------------------------------------------------------------
/src/modules/public/recentTrades/constants.ts:
--------------------------------------------------------------------------------
1 | export const RECENT_TRADES_FETCH = 'recentTrades/FETCH';
2 | export const RECENT_TRADES_DATA = 'recentTrades/DATA';
3 | export const RECENT_TRADES_ERROR = 'recentTrades/ERROR';
4 | export const RECENT_TRADES_PUSH = 'recentTrades/PUSH';
5 |
--------------------------------------------------------------------------------
/src/modules/public/recentTrades/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/public/recentTrades/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLeading } from 'redux-saga/effects';
2 | import { RECENT_TRADES_FETCH } from '../constants';
3 | import { recentTradesFetchSaga } from './recentTradesFetchSaga';
4 |
5 | export function* rootRecentTradesSaga() {
6 | yield takeLeading(RECENT_TRADES_FETCH, recentTradesFetchSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/public/recentTrades/types.ts:
--------------------------------------------------------------------------------
1 | export interface PublicTradeEvent {
2 | tid: number;
3 | taker_type: 'buy' | 'sell';
4 | date: number;
5 | price: string;
6 | amount: string;
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/apiKeys/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 |
--------------------------------------------------------------------------------
/src/modules/user/auth/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/beneficiaries/index.ts:
--------------------------------------------------------------------------------
1 | export * from './reducer';
2 | export * from './actions';
3 | export * from './selectors';
4 | export * from './sagas/index';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/user/captcha/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/captcha/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { GET_GEETEST_CAPTCHA_FETCH } from '../constants';
3 | import { geetestCaptchaSaga } from './geetestCaptchaSaga';
4 |
5 | export function* rootGeetestCaptchaSaga() {
6 | yield takeLatest(GET_GEETEST_CAPTCHA_FETCH, geetestCaptchaSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/customization/constants.ts:
--------------------------------------------------------------------------------
1 | export const CUSTOMIZATION_UPDATE = 'customization/UPDATE';
2 | export const CUSTOMIZATION_UPDATE_DATA = 'customization/UPDATE_DATA';
3 | export const CUSTOMIZATION_UPDATE_ERROR = 'customization/UPDATE_ERROR';
4 |
--------------------------------------------------------------------------------
/src/modules/user/customization/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './sagas';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/customization/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { CUSTOMIZATION_UPDATE } from '../constants';
3 | import { customizationUpdateSaga } from './customizationUpdateSaga';
4 |
5 | export function* rootCustomizationUpdateSaga() {
6 | yield takeLatest(CUSTOMIZATION_UPDATE, customizationUpdateSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/documentation/constants.ts:
--------------------------------------------------------------------------------
1 | export const DOC_TRADE_USER_API_FETCH = 'docTradeUserApi/FETCH';
2 | export const DOC_TRADE_USER_API_DATA = 'docTradeUserApi/DATA';
3 | export const DOC_TRADE_USER_API_ERROR = 'docTradeUserApi/ERROR';
4 |
--------------------------------------------------------------------------------
/src/modules/user/documentation/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './sagas';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/user/documentation/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { DOC_TRADE_USER_API_FETCH } from '../constants';
3 | import { docTradeUserApiFetchSaga } from './docTradeUserApiFetchSaga';
4 |
5 | export function* rootDocumentationSaga() {
6 | yield takeLatest(DOC_TRADE_USER_API_FETCH, docTradeUserApiFetchSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/emailVerification/constants.ts:
--------------------------------------------------------------------------------
1 | export const EMAIL_VERIFICATION_DATA = 'emailVerification/DATA';
2 | export const EMAIL_VERIFICATION_ERROR = 'emailVerification/ERROR';
3 | export const EMAIL_VERIFICATION_FETCH = 'emailVerification/FETCH';
4 |
--------------------------------------------------------------------------------
/src/modules/user/emailVerification/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/emailVerification/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import {
3 | EMAIL_VERIFICATION_FETCH,
4 | } from '../constants';
5 | import { emailVerificationSaga } from './emailVerificationSaga';
6 |
7 | export function* rootEmailVerificationSaga() {
8 | yield takeLatest(EMAIL_VERIFICATION_FETCH, emailVerificationSaga);
9 | }
10 |
--------------------------------------------------------------------------------
/src/modules/user/history/constants.ts:
--------------------------------------------------------------------------------
1 | export const HISTORY_FETCH = 'history/FETCH';
2 | export const HISTORY_DATA = 'history/DATA';
3 | export const HISTORY_ERROR = 'history/ERROR';
4 | export const HISTORY_RESET = 'history/RESET';
5 | export const HISTORY_PUSH_EMIT = 'history/PUSH_EMIT';
6 | export const HISTORY_PUSH_FINISH = 'history/PUSH_FINISH';
7 |
--------------------------------------------------------------------------------
/src/modules/user/history/index.ts:
--------------------------------------------------------------------------------
1 | export * from './reducer';
2 | export * from './actions';
3 | export * from './selectors';
4 | export * from './sagas/index';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/user/history/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { HISTORY_FETCH, HISTORY_PUSH_EMIT } from '../constants';
3 | import { historyPushSaga } from './historyPushSaga';
4 | import { historySaga } from './historySaga';
5 |
6 | export function* rootHistorySaga() {
7 | yield takeLatest(HISTORY_PUSH_EMIT, historyPushSaga);
8 | yield takeLatest(HISTORY_FETCH, historySaga);
9 | }
10 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/addresses/constants.ts:
--------------------------------------------------------------------------------
1 | export const SEND_ADDRESSES_ERROR = 'addresses/SEND_ADDRESSES_ERROR';
2 | export const SEND_ADDRESSES_FETCH = 'addresses/SEND_ADDRESSES_FETCH';
3 | export const SEND_ADDRESSES_DATA = 'addresses/SEND_ADDRESSES_DATA';
4 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/addresses/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/addresses/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeEvery } from 'redux-saga/effects';
2 | import { SEND_ADDRESSES_FETCH } from '../constants';
3 | import { sendAddressesSaga } from './sendAddressesSaga';
4 |
5 | export function* rootSendAddressesSaga() {
6 | yield takeEvery(SEND_ADDRESSES_FETCH, sendAddressesSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/addresses/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../../';
2 | import { AddressesState } from './reducer';
3 |
4 | export const selectSendAddressesSuccess = (state: RootState): AddressesState['success'] =>
5 | state.user.addresses.success;
6 |
7 | export const selectSendAddressesLoading = (state: RootState): AddressesState['loading'] =>
8 | state.user.addresses.loading;
9 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/documents/constants.ts:
--------------------------------------------------------------------------------
1 | export const SEND_DOCUMENTS_ERROR = 'documents/SEND_DOCUMENTS_ERROR';
2 | export const SEND_DOCUMENTS_FETCH = 'documents/SEND_DOCUMENTS_FETCH';
3 | export const SEND_DOCUMENTS_DATA = 'documents/SEND_DOCUMENTS_DATA';
4 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/documents/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/documents/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeEvery } from 'redux-saga/effects';
2 | import { SEND_DOCUMENTS_FETCH } from '../constants';
3 | import { sendDocumentsSaga } from './sendDocumentsSaga';
4 |
5 | export function* rootSendDocumentsSaga() {
6 | yield takeEvery(SEND_DOCUMENTS_FETCH, sendDocumentsSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/documents/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../../';
2 | import { DocumentsState } from './reducer';
3 |
4 | export const selectSendDocumentsSuccess = (state: RootState): DocumentsState['success'] =>
5 | state.user.documents.success;
6 |
7 | export const selectSendDocumentsLoading = (state: RootState): DocumentsState['loading'] =>
8 | state.user.documents.loading;
9 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/identity/constants.ts:
--------------------------------------------------------------------------------
1 | export const EDIT_IDENTITY_ERROR = 'identity/EDIT_IDENTITY_ERROR';
2 | export const EDIT_IDENTITY_FETCH = 'identity/EDIT_IDENTITY_FETCH';
3 | export const EDIT_IDENTITY_DATA = 'identity/EDIT_IDENTITY_DATA';
4 |
5 | export const SEND_IDENTITY_ERROR = 'identity/SEND_IDENTITY_ERROR';
6 | export const SEND_IDENTITY_FETCH = 'identity/SEND_IDENTITY_FETCH';
7 | export const SEND_IDENTITY_DATA = 'identity/SEND_IDENTITY_DATA';
8 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/identity/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/identity/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeEvery } from 'redux-saga/effects';
2 | import { EDIT_IDENTITY_FETCH, SEND_IDENTITY_FETCH } from '../constants';
3 | import { editIdentitySaga } from './editIdentitySaga';
4 | import { sendIdentitySaga } from './sendIdentitySaga';
5 |
6 | export function* rootSendIdentitySaga() {
7 | yield takeEvery(EDIT_IDENTITY_FETCH, editIdentitySaga);
8 | yield takeEvery(SEND_IDENTITY_FETCH, sendIdentitySaga);
9 | }
10 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/identity/types.ts:
--------------------------------------------------------------------------------
1 | export interface IdentityData {
2 | first_name: string;
3 | last_name: string;
4 | dob: string;
5 | address: string;
6 | postcode: string;
7 | city: string;
8 | country: string;
9 | metadata?: string;
10 | confirm?: boolean;
11 | }
12 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/label/constants.ts:
--------------------------------------------------------------------------------
1 | export const GET_LABEL_FETCH = 'confirm/GET_LABEL_FETCH';
2 | export const GET_LABEL_DATA = 'confirm/GET_LABEL_DATA';
3 | export const GET_LABEL_ERROR = 'confirm/GET_LABEL_ERROR';
4 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/label/index.ts:
--------------------------------------------------------------------------------
1 | export * from './selectors';
2 | export * from './sagas';
3 | export * from './actions';
4 | export * from './reducer';
5 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/label/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { GET_LABEL_FETCH } from '../constants';
3 | import { labelSaga } from './labelSaga';
4 |
5 | export function* rootLabelSaga() {
6 | yield takeLatest(GET_LABEL_FETCH, labelSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/label/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../../';
2 | import { Label } from './actions';
3 |
4 | export const selectLabelData = (state: RootState): Label[] =>
5 | state.user.label.data;
6 |
7 | export const selectLabelFetching = (state: RootState): boolean =>
8 | state.user.label.isFetching;
9 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/phone/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/kyc/phone/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../../';
2 | import { PhoneState } from './reducer';
3 |
4 | export const sendPhoneCode = (state: RootState): PhoneState['codeSend'] =>
5 | state.user.phone.codeSend;
6 |
7 | export const selectVerifyPhoneSuccess = (state: RootState): PhoneState['successMessage'] =>
8 | state.user.phone.successMessage;
9 |
--------------------------------------------------------------------------------
/src/modules/user/openOrders/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/openOrders/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeEvery, takeLatest } from 'redux-saga/effects';
2 | import { OPEN_ORDERS_CANCEL_FETCH, OPEN_ORDERS_FETCH } from '../constants';
3 | import { openOrdersCancelSaga } from './openOrdersCancelSaga';
4 | import { userOpenOrdersFetchSaga } from './userOpenOrdersFetchSaga';
5 |
6 | export function* rootOpenOrdersSaga() {
7 | yield takeLatest(OPEN_ORDERS_FETCH, userOpenOrdersFetchSaga);
8 | yield takeEvery(OPEN_ORDERS_CANCEL_FETCH, openOrdersCancelSaga);
9 | }
10 |
--------------------------------------------------------------------------------
/src/modules/user/openOrders/selectors.ts:
--------------------------------------------------------------------------------
1 | import { RootState } from '../../';
2 | import { OrderCommon } from '../../types';
3 |
4 | export const selectOpenOrdersList = (state: RootState): OrderCommon[] =>
5 | state.user.openOrders.list;
6 |
7 | export const selectOpenOrdersFetching = (state: RootState): boolean =>
8 | state.user.openOrders.fetching;
9 |
10 | export const selectCancelOpenOrdersFetching = (state: RootState): boolean =>
11 | state.user.openOrders.cancelFetching;
12 |
--------------------------------------------------------------------------------
/src/modules/user/orders/constants.ts:
--------------------------------------------------------------------------------
1 | export const ORDER_EXECUTE_FETCH = 'orders/EXECUTE_FETCH';
2 | export const ORDER_EXECUTE_DATA= 'orders/EXECUTE_DATA';
3 | export const ORDER_EXECUTE_ERROR = 'orders/EXECUTE_ERROR';
4 |
5 | export const ORDERS_SET_CURRENT_PRICE = 'orders/SET_CURRENT_PRICE';
6 | export const ORDERS_SET_AMOUNT = 'orders/SET_AMOUNT';
7 | export const ORDERS_SET_ORDER_TYPE = 'orders/SET_ORDER_TYPE';
8 |
--------------------------------------------------------------------------------
/src/modules/user/orders/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/orders/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { ORDER_EXECUTE_FETCH } from '../constants';
3 | import { ordersExecuteSaga } from './ordersExecuteSaga';
4 |
5 | export function* rootOrdersSaga() {
6 | yield takeLatest(ORDER_EXECUTE_FETCH, ordersExecuteSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/ordersHistory/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './selectors';
4 | export * from './sagas';
5 |
--------------------------------------------------------------------------------
/src/modules/user/password/constants.ts:
--------------------------------------------------------------------------------
1 | export const PASSWORD_FORGOT_FETCH = 'password/FORGOT_PASSWORD_FETCH';
2 | export const PASSWORD_FORGOT_SUCCESS = 'password/FORGOT_PASSWORD_SUCCESS';
3 | export const PASSWORD_FORGOT_ERROR = 'password/FORGOT_PASSWORD_ERROR';
4 |
5 | export const PASSWORD_CHANGE_FORGOT_PASSWORD_FETCH = 'password/CHANGE_FORGOT_PASSWORD_FETCH';
6 | export const PASSWORD_CHANGE_FORGOT_PASSWORD_SUCCESS = 'password/CHANGE_FORGOT_PASSWORD_SUCCESS';
7 |
--------------------------------------------------------------------------------
/src/modules/user/password/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/profile/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducer';
3 | export * from './sagas';
4 | export * from './selectors';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/user/userActivity/constants.ts:
--------------------------------------------------------------------------------
1 | export const USER_ACTIVITY_FETCH = 'userActivity/FETCH';
2 | export const USER_ACTIVITY_DATA = 'userActivity/DATA';
3 | export const USER_ACTIVITY_ERROR = 'userActivity/ERROR';
4 |
--------------------------------------------------------------------------------
/src/modules/user/userActivity/index.ts:
--------------------------------------------------------------------------------
1 | export * from './sagas';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './selectors';
5 |
--------------------------------------------------------------------------------
/src/modules/user/userActivity/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { USER_ACTIVITY_FETCH } from '../constants';
3 | import { userActivitySaga } from './userActivitySaga';
4 |
5 | export function* rootUserActivitySaga() {
6 | yield takeLatest(USER_ACTIVITY_FETCH, userActivitySaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/wallets/index.ts:
--------------------------------------------------------------------------------
1 | export * from './selectors';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './sagas';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/user/withdrawLimit/constants.ts:
--------------------------------------------------------------------------------
1 | export const WITHDRAW_LIMIT_FETCH = 'withdraw-limit/FETCH';
2 | export const WITHDRAW_LIMIT_DATA = 'withdraw-limit/DATA';
3 | export const WITHDRAW_LIMIT_ERROR = 'withdraw-limit/ERROR';
4 |
--------------------------------------------------------------------------------
/src/modules/user/withdrawLimit/index.ts:
--------------------------------------------------------------------------------
1 | export * from './selectors';
2 | export * from './actions';
3 | export * from './reducer';
4 | export * from './sagas';
5 | export * from './types';
6 |
--------------------------------------------------------------------------------
/src/modules/user/withdrawLimit/sagas/index.ts:
--------------------------------------------------------------------------------
1 | import { takeLatest } from 'redux-saga/effects';
2 | import { WITHDRAW_LIMIT_FETCH } from '../constants';
3 | import { withdrawLimitSaga } from './withdrawLimitSaga';
4 |
5 | export function* rootWithdrawLimitSaga() {
6 | yield takeLatest(WITHDRAW_LIMIT_FETCH, withdrawLimitSaga);
7 | }
8 |
--------------------------------------------------------------------------------
/src/modules/user/withdrawLimit/types.ts:
--------------------------------------------------------------------------------
1 | export interface WithdrawLimit {
2 | limit: number | string;
3 | period: number;
4 | withdrawal_amount: number | string;
5 | currency: string;
6 | }
7 |
--------------------------------------------------------------------------------
/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/src/routes/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Layout';
2 |
--------------------------------------------------------------------------------
/src/screens/ProfileTwoFactorAuthScreen/close.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/ChangeForgottenPassword.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`ChangeForgottenPasswordScreen test should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/ConfirmScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`ConfirmScreen test should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/EmailVerification.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`EmailVerificationScreen should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/ForgotPassword.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`ForgotPasswordScreen should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/History.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`HistoryScreen should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/MaintenanceScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`MaintenanceScreen should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/OrdersTabScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`OrdersTabScreen test should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/ProfileScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`ProfileScreen test should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/ProfileTwoFactorAuthScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`ProfileTwoFactorAuthScreen test should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/RestrictedScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`RestrictedScreen should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/SignInScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`SignInScreen should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/SignUpScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`SignUpScreen should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/VerificationScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`VerificationScreen test should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/screens/tests/__snapshots__/WalletsScreen.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`WalletsScreen should render 1`] = `ShallowWrapper {}`;
4 |
--------------------------------------------------------------------------------
/src/setupTests.js:
--------------------------------------------------------------------------------
1 | import { configure } from 'enzyme';
2 | import Adapter from 'enzyme-adapter-react-16';
3 |
4 | configure({ adapter: new Adapter() });
5 |
--------------------------------------------------------------------------------
/src/styles/style.pcss:
--------------------------------------------------------------------------------
1 | @import "./themes/style.pcss";
2 | @import "./customizationBarColors.pcss";
3 | @import "./colors.pcss";
4 | @import "./buttons.pcss";
5 | @import "../routes/Layout/Layout.pcss";
6 | @import "../screens/style.pcss";
7 | @import "../containers/style.pcss";
8 | @import "../components/style.pcss";
9 | @import "../mobile/styles/style.pcss";
10 |
--------------------------------------------------------------------------------
/src/styles/themes/style.pcss:
--------------------------------------------------------------------------------
1 | @import "./dark.pcss";
2 | @import "./light.pcss";
3 |
--------------------------------------------------------------------------------
/src/themes/templates/index.ts:
--------------------------------------------------------------------------------
1 | export * from './DarkBlue';
2 | export * from './DarkRed';
3 | export * from './Green';
4 | export * from './Purple';
5 |
6 | export interface ThemeColorInterface {
7 | key: string;
8 | value: string;
9 | }
10 |
--------------------------------------------------------------------------------
/src/translations/index.ts:
--------------------------------------------------------------------------------
1 | import { customLanguageMap } from '../custom/translations';
2 | import { en as enCustom } from '../custom/translations/en';
3 | import { en } from './en';
4 |
5 | export type LangType = typeof en;
6 |
7 | export const languageMap = {
8 | default: en,
9 | en: { ...en, ...enCustom },
10 | ...customLanguageMap,
11 | };
12 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | tsconfig.prod.json
--------------------------------------------------------------------------------