Initial commit

This commit is contained in:
Yaser
2026-08-13 19:42:08 +03:30
commit d59bf30ef0
173 changed files with 11702 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
---
# Copy to config/app.local.yml and fill in values for local Docker development.
# cp config/app.local.yml.example config/app.local.yml
#
# After editing: rake render:config
#
app:
domain: app.local
subdomain: www
shahoo_subdomain: shahoo
shahoo_subdomain: shahoo
shahoo_subdomain: shahoo
shahoo_subdomain: shahoo
shahoo_subdomain: shahoo
render_protect: false
csrfEnabled: false
serverip:
enabled: false
ip: 127.0.0.1
ssl:
enabled: false
updateVersions: false
captchaLogin: false
captcha:
type: none
images:
peatio: custom/dena:1
barong: custom/dalan:1
frontend: custom/gereh:1
gereh: custom/gereh:1
shahoo: custom/shahoo:1
shahoo_bff: custom/shahoo-bff:1
tower: ya3er/admin_tower:2.2.66
rango: quay.io/openware/rango:2.6.1
vault:
root_token: changeme
peatio_rails_token: changeme
peatio_crypto_token: changeme
peatio_upstream_token: changeme
peatio_matching_token: changeme
barong_token: changeme
database:
password: changeme
BetaCandaTestNetwork: true
parity:
enabled: false
bitcoind:
enabled: false

View File

@@ -0,0 +1,57 @@
---
# Copy to config/app.production.yml on the production server (gitignored).
# Set OPENDAX_ENV=production before rake render:config / rake service:all.
#
# cp config/app.production.yml.example config/app.production.yml
#
app:
domain: tibitex.com
subdomain: www
serverip:
enabled: true
ip: YOUR_SERVER_PUBLIC_IP
ssl:
enabled: true
email: admin@fibitex.com
csrfEnabled: true
captchaLogin: true
captcha:
type: recaptcha
siteKey: YOUR_RECAPTCHA_SITE_KEY
secretKey: YOUR_RECAPTCHA_SECRET_KEY
database:
password: STRONG_DB_PASSWORD
vault:
root_token: changeme
peatio_rails_token: changeme
peatio_crypto_token: changeme
peatio_upstream_token: changeme
peatio_matching_token: changeme
barong_token: changeme
jibit:
key: YOUR_JIBIT_KEY
secret: YOUR_JIBIT_SECRET
kavenegar:
key: YOUR_KAVENEGAR_KEY
sender: YOUR_SENDER
vandar:
mobile: changeme
password: changeme
key: changeme
smtp:
host: mail.fibitex.com
port: 587
user: "no-reply@fibitex.com"
password: "YOUR_SMTP_PASSWORD"
sender_email: "no-reply@fibitex.com"
sender_name: Fibitex
sender_logo: https://beta.fibitex.com/logo-email.png
auth: plain
domain: fibitex.com
starttls_auto: true
openssl_verify_mode: none
BetaCandaTestNetwork: false
parity:
enabled: false
bitcoind:
enabled: false

View File

@@ -0,0 +1,15 @@
---
# Production cutover overlay — Shahoo replaces Gereh on www.* (use after T5.2 QA sign-off).
# Copy to config/app.staging.yml (or app.production.yml) and set OPENDAX_ENV accordingly.
#
# images.frontend: custom/shahoo:1 ← main user-facing SPA
# Gereh service can be removed from compose after validation.
#
app:
domain: tibitex.com
subdomain: www
shahoo_subdomain: shahoo
images:
frontend: custom/shahoo:1
shahoo: custom/shahoo:1
shahoo_bff: custom/shahoo-bff:1

View File

@@ -0,0 +1,83 @@
---
# Staging overlay — Fibitex beta environment (gitignored: app.staging.yml).
#
# Host naming (matches Cloudflare DNS on fibitex.com zone):
# domain: fibitex.com + subdomain: beta → beta.fibitex.com (Gereh)
# shahoo_subdomain: shahoo → shahoo.fibitex.com (Shahoo + BFF)
#
# Do NOT use domain: beta.fibitex.com + subdomain: www (creates www.beta.fibitex.com).
#
# cp config/app.staging.yml.example config/app.staging.yml
# export OPENDAX_ENV=staging
# bundle exec rake render:config
# docker compose up -d --force-recreate proxy frontend shahoo shahoo-bff
#
app:
domain: fibitex.com
subdomain: beta
shahoo_subdomain: shahoo
# optional explicit host (default: shahoo.fibitex.com):
# shahoo_host: shahoo.fibitex.com
serverip:
enabled: true
ip: YOUR_SERVER_PUBLIC_IP
ssl:
enabled: true
email: admin@fibitex.com
csrfEnabled: true
captchaLogin: true
images:
peatio: custom/dena:1
barong: custom/dalan:1
frontend: custom/gereh:1
gereh: custom/gereh:1
shahoo: custom/shahoo:1
shahoo_bff: custom/shahoo-bff:1
database:
password: "STRONG_DB_PASSWORD"
vault:
root_token: "PASTE_FROM_EXISTING_CONFIG"
peatio_rails_token: "PASTE_FROM_EXISTING_CONFIG"
peatio_crypto_token: "PASTE_FROM_EXISTING_CONFIG"
peatio_upstream_token: "PASTE_FROM_EXISTING_CONFIG"
peatio_matching_token: "PASTE_FROM_EXISTING_CONFIG"
barong_token: "PASTE_FROM_EXISTING_CONFIG"
jibit:
key: "YOUR_JIBIT_KEY"
secret: "YOUR_JIBIT_SECRET"
kavenegar:
key: "YOUR_KAVENEGAR_KEY"
sender: "YOUR_SENDER"
vandar:
mobile: "YOUR_VANDAR_MOBILE"
password: "YOUR_VANDAR_PASSWORD"
key: "YOUR_VANDAR_KEY"
captcha:
siteKey: "YOUR_RECAPTCHA_SITE_KEY"
secretKey: "YOUR_RECAPTCHA_SECRET_KEY"
smtp:
host: mail.fibitex.com
port: 587
user: "no-reply@fibitex.com"
password: "YOUR_SMTP_PASSWORD"
sender_email: "no-reply@fibitex.com"
sender_name: Fibitex
# Host logo on your domain (not postimg.cc) — improves Gmail inbox rate
sender_logo: https://beta.fibitex.com/logo-email.png
auth: plain
domain: fibitex.com
starttls_auto: true
openssl_verify_mode: none
BetaCandaTestNetwork: false

147
config/app.yml Normal file
View File

@@ -0,0 +1,147 @@
---
# Shared baseline configuration (safe to commit — no real secrets).
# Local overrides: config/app.local.yml (gitignored)
# Production secrets: config/app.production.yml (gitignored, OPENDAX_ENV=production)
app:
name: Fibitex
domain: tibitex.com
subdomain: www
shahoo_subdomain: shahoo
show_landing: true
render_protect: false
csrfEnabled: true
serverip:
enabled: true
ip: changeme
admin:
user: admin@fibitex.com
pass: changeme
jibit:
url: https://napi.jibit.ir/ide/v1/
key: changeme
secret: changeme
kavenegar:
key: changeme
sender: changeme
vandar:
mobile: changeme
password: changeme
key: changeme
name: developers
ssl:
enabled: true
email: admin@fibitex.com
updateVersions: false
images:
peatio: custom/dena:1
barong: custom/dalan:1
frontend: custom/gereh:1
gereh: custom/gereh:1
shahoo: custom/shahoo:1
shahoo_bff: custom/shahoo-bff:1
tower: ya3er/admin_tower:2.2.66
rango: quay.io/openware/rango:2.6.1
finex:
enabled: false
image: quay.io/openware/finex:2.6.39
license_key: changeme
vendor:
frontend: git@github.com:openware/baseapp.git
kyc:
provider: local
authorization_token: changeme
sandbox_mode: true
api_endpoint: https://api.kycaid.com/
vault:
root_token: changeme
peatio_rails_token: changeme
peatio_crypto_token: changeme
peatio_upstream_token: changeme
peatio_matching_token: changeme
barong_token: changeme
finex_engine_token: changeme
database:
host: db
adapter: mysql
port: 3306
user: root
password: changeme
storage:
provider: local
twilio:
enabled: false
phone_number: "+15005550000"
account_sid: changeme
auth_token: changeme
gaTrackerKey: ''
captchaLogin: true
captcha:
type: recaptcha
siteKey: changeme
secretKey: changeme
smtp:
host: mail.fibitex.com
port: 587
user: changeme
password: changeme
sender_email: changeme
sender_name: Fibitex
sender_logo: https://beta.fibitex.com/logo-email.png
auth: plain
domain: fibitex.com
starttls_auto: true
openssl_verify_mode: none
wallets:
eth:
- kind: deposit
address: changeme
max_balance: 0.0
secret: changeme
- kind: hot
address: changeme
max_balance: 100.0
secret: changeme
- kind: warm
address: changeme
max_balance: 1000.0
secret: changeme
btc:
- kind: deposit
address: changeme
max_balance: 0.0
- kind: hot
address: changeme
max_balance: 100.0
- kind: warm
address: changeme
max_balance: 1000.0
BetaCandaTestNetwork: false
parity:
enabled: false
network: testnet
address: parity
rpcport: 8545
port: 30303
bitcoind:
enabled: false
rpcuser: admin
rpcpassword: changeme
address: bitcoind
network: testnet
rpcport: 18332
port: 18333
litecoind:
rpcuser: admin
rpcpassword: changeme
address: litecoind
network: testnet
rpcport: 19332
port: 19335
terraform:
credentials: "~/safe/opendax.json"
project: example-opendax
region: europe-west4
zone: europe-west4-a
instance_name: opendax-cloud
machine_type: n1-standard-4
image: debian-cloud/debian-9

0
config/applogic/.gitkeep Normal file
View File

0
config/arke/.gitkeep Normal file
View File

View File

@@ -0,0 +1,18 @@
#
# pass for whitelisted (public) routes
# block for blacklisted routes
#
rules:
pass:
- api/v2/dalan/public
- api/v2/dalan/identity
- api/v2/dena/public
- api/v2/dena/coinmarketcap
- api/v2/dena/coingecko
- api/v2/ranger/public
- api/v2/applogic/public
- api/v2/arke/public
- api/v2/finex/public
block:
- api/v2/dalan/management
- api/v2/dena/management

52
config/barong/barong.yml Normal file
View File

@@ -0,0 +1,52 @@
activation_requirements:
email: 'verified'
state_triggers:
banned:
- ban
- fraud
deleted:
- delete
locked:
- suspicious
- lock
document_types:
- Passport
- Identity card
- Driver license
- Utility Bill
- Residental
- Institutional
- Poa
- Selfie
document_categories:
- front_side
- selfie
- back_side
user_storage_titles:
# - personal ## example
# - company ## example
captcha_protected_endpoints: []
# - user_create
# - session_create
# - password_reset
# - email_confirmation
profile_verification_roles:
- superadmin
# - admin
# - kyc_worker
kyc_levels:
1:
2: profile
3: access_phone
4: card
5: iban
2:
6: poa
7: telephone
8: selfie
9: owner_phone
3:
10: vip

382
config/barong/seeds.yml Normal file
View File

@@ -0,0 +1,382 @@
# List of Barong administrators.
#
# Other parameters that you can set here can be found in Account,
# Profile and Phone models (e.g. app/models/account.rb...); all the
# model properties are listed at the very bottom of this models files.
#
# Note: email is the only required field here.
users:
- email: admin@test.com
password: "123qwe!@#QWE"
role: superadmin
state: active
level: 3
- email: user@test.com
password: "123qwe!@#QWE"
role: member
state: active
level: 0
- email: bot@test.com
password: "123qwe!@#QWE"
role: member
state: active
level: 3
levels:
- key: email
id: 1
value: verified
description: "User enter a valid code after registration"
- key: profile
id: 2
value: verified
description: "User personal documents have been verified"
- key: access_phone
id: 3
value: verified
description: "User entered a valid code from sms"
- key: card
id: 4
value: verified
description: "User card number have been verified"
- key: iban
id: 5
value: verified
description: "User iban have been verified"
- key: poa
id: 6
value: verified
description: "User card bank have been verified"
- key: telephone
id: 7
value: verified
description: "User entered a valid code from ring call"
- key: selfie
id: 8
value: verified
description: "User selfie documents have been verified"
- key: owner_phone
id: 9
value: verified
description: "User owner mobile have been verified"
- key: vip
id: 10
value: verified
description: "User Vip have been verified"
restrictions: {}
# - { category: whitelist, scope: country, value: UA, state: disabled }
# - { category: maintenance, scope: all, value: all, state: disabled }
# - { category: blacklist, scope: ip, value: 164.116.47.255, state: disabled, code: 433 }
# - { category: blacklist, scope: ip_subnet, value: 164.116.47.0/24, state: disabled, code: 434 }
# - { category: blacklist, scope: country, value: USA, state: disabled, code: 435 }
# - { category: blacklist, scope: continent, value: SA, state: disabled, code: 436 }
permissions:
# SUPER ADMIN has an access to the whole system without any limits
# so we can just grant him access to /api/v2/*
- { role: superadmin, verb: all, path: api/v2, action: accept }
# Rango(ranger) access
- { role: superadmin, verb: get, path: api/v2/ranger, action: accept }
# we are watching after you 0_0
- { role: superadmin, verb: post, path: api/v2/, action: audit }
- { role: superadmin, verb: put, path: api/v2/, action: audit }
- { role: superadmin, verb: delete, path: api/v2/, action: audit }
# ADMIN
# admin has nearly full access to barong and peatio api, except managing permissions
- { role: admin, verb: all, path: api/v2, action: accept }
# ranger access
- { role: admin, verb: get, path: api/v2/ranger, action: accept }
# Finex upstream access
- { role: admin, verb: get, path: api/v2/open_finance, action: accept }
# admin doesnt have access to manage platform roles and permissions
- { role: admin, verb: all, path: api/v2/dalan/admin/permissions, action: drop }
# admin doesnt have access to manage roles
- { role: admin, verb: all, path: api/v2/dalan/admin/users/role, action: drop }
# admin doesnt have access to admin activities
- { role: admin, verb: all, path: api/v2/dalan/admin/activities/admin, action: drop }
# we are watching after you 0_0
- { role: admin, verb: post, path: api/v2/, action: audit }
- { role: admin, verb: put, path: api/v2/, action: audit }
- { role: admin, verb: delete, path: api/v2/, action: audit }
# ACCOUNTANT
# accountant has a read access to Barong admin
- { role: accountant, verb: get, path: api/v2/dalan/admin, action: accept }
# accountant has a read access to Peatio financial information and creating of adjustments
- { role: accountant, verb: get, path: api/v2/dena/admin/members, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/beneficiaries, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/currencies, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/blockchains, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/wallets, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/trading_fees, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/withdraw_limits, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/orders, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/markets, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/engine, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/trades, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/deposits, action: accept }
- { role: accountant, verb: post, path: api/v2/dena/admin/deposits/new, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/withdraws, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/adjustments, action: accept }
- { role: accountant, verb: post, path: api/v2/dena/admin/adjustments/new, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/assets, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/liabilities, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/revenues, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/expenses, action: accept }
- { role: accountant, verb: get, path: api/v2/dena/admin/internal_transfers, action: accept }
# accountant doesnt have access to see pending documents
- { role: accountant, verb: get, path: api/v2/dalan/admin/users/documents/pending, action: drop }
# accountant doesnt have access to manage platform roles and permissions
- { role: accountant, verb: all, path: api/v2/dalan/admin/users/role, action: drop }
- { role: accountant, verb: all, path: api/v2/dalan/admin/permissions, action: drop }
# accountant doesnt have access to admin activities
- { role: accountant, verb: all, path: api/v2/dalan/admin/activities/admin, action: drop }
# we are watching after you 0_0
- { role: accountant, verb: post, path: api/v2/, action: audit }
- { role: accountant, verb: put, path: api/v2/, action: audit }
- { role: accountant, verb: delete, path: api/v2/, action: audit }
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: accountant, verb: all, path: api/v2/dena/account, action: accept }
- { role: accountant, verb: all, path: api/v2/dena/market, action: accept }
- { role: accountant, verb: all, path: api/v2/finex/market, action: accept }
- { role: accountant, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: accountant, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: accountant, verb: all, path: api/v2/dena/swagger, action: accept }
# Drop Peatio order endpoint requests
# ranger access
- { role: accountant, verb: get, path: api/v2/ranger, action: accept }
# applogic access
- { role: accountant, verb: all, path: api/v2/applogic, action: accept }
# get abilities
- { role: accountant, verb: all, path: api/v2/dena/admin/abilities, action: accept }
- { role: accountant, verb: all, path: api/v2/dalan/admin/abilities, action: accept }
# COMPLIANCE
- { role: compliance, verb: get, path: api/v2/dalan/admin, action: accept }
# has an access to CRUD of user-related resources
- { role: compliance, verb: get, path: api/v2/dena/admin/members, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/beneficiaries, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/currencies, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/trades, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/orders, action: accept }
- { role: compliance, verb: all, path: api/v2/dalan/admin/users, action: accept }
# has ability to see deposit, withdraw, operations (partial)
- { role: compliance, verb: get, path: api/v2/dena/admin/deposits, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/withdraws, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/assets, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/liabilities, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/expenses, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/markets, action: accept }
- { role: compliance, verb: get, path: api/v2/dena/admin/engine, action: accept }
# has no ability to see the configurations
- { role: compliance, verb: all, path: api/v2/dena/admin/adjustments, action: drop }
- { role: compliance, verb: all, path: api/v2/dena/admin/revenues, action: drop }
- { role: compliance, verb: all, path: api/v2/dena/admin/blockchains, action: drop }
- { role: compliance, verb: all, path: api/v2/dena/admin/wallets, action: drop }
- { role: compliance, verb: all, path: api/v2/dena/admin/trading_fees, action: drop }
- { role: compliance, verb: all, path: api/v2/dena/admin/withdraw_limits, action: drop }
- { role: compliance, verb: all, path: api/v2/dalan/admin/restrictions, action: drop }
# compliance doesnt have access to change users roles
- { role: compliance, verb: all, path: api/v2/dalan/admin/users/role, action: drop }
# compliance doesnt have access to admin activities
- { role: compliance, verb: all, path: api/v2/dalan/admin/activities/admin, action: drop }
# compliance doesnt have access to manage platform roles and permissions
- { role: compliance, verb: all, path: api/v2/dalan/admin/permissions, action: drop }
# we are watching after you 0_0
- { role: compliance, verb: post, path: api/v2/, action: audit }
- { role: compliance, verb: put, path: api/v2/, action: audit }
- { role: compliance, verb: delete, path: api/v2/, action: audit }
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: compliance, verb: all, path: api/v2/dena/account, action: accept }
- { role: compliance, verb: all, path: api/v2/dena/market, action: accept }
- { role: compliance, verb: all, path: api/v2/finex/market, action: accept }
- { role: compliance, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: compliance, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: compliance, verb: all, path: api/v2/dena/swagger, action: accept }
# Drop Peatio order endpoint requests
# ranger access
- { role: compliance, verb: get, path: api/v2/ranger, action: accept }
# applogic access
- { role: compliance, verb: all, path: api/v2/applogic, action: accept }
# get abilities
- { role: compliance, verb: all, path: api/v2/dena/admin/abilities, action: accept }
- { role: compliance, verb: all, path: api/v2/dalan/admin/abilities, action: accept }
# TECHNICAL
# has an access to CRUD of peatio admin functionality on market, blockchain, wallets, currencies
- { role: technical, verb: get, path: api/v2/dalan/admin, action: accept }
- { role: technical, verb: get, path: api/v2/dena/admin, action: accept }
# technical has a configuration access to Peatio admin
- { role: technical, verb: all, path: api/v2/dena/admin/blockchains, action: accept }
- { role: technical, verb: all, path: api/v2/dena/admin/currencies, action: accept }
- { role: technical, verb: all, path: api/v2/dena/admin/markets, action: accept }
- { role: technical, verb: all, path: api/v2/dena/admin/wallets, action: accept }
- { role: technical, verb: all, path: api/v2/dena/admin/trading_fees, action: accept }
- { role: technical, verb: all, path: api/v2/dena/admin/withdraw_limits, action: accept }
- { role: technical, verb: get, path: api/v2/dena/admin/internal_transfers, action: accept }
- { role: technical, verb: all, path: api/v2/dena/admin/engine, action: accept }
# technical has access to delete orders
- { role: technical, verb: delete, path: api/v2/finex/admin/bulk/orders_by_id, action: accept }
- { role: technical, verb: post, path: api/v2/finex/admin/orders/cancel, action: accept }
# technical has an ability to create and update restrictions
- { role: technical, verb: all, path: api/v2/dalan/admin/restrictions, action: accept }
# has no ability to see and update Deposit, Withdraw, Adjustments
- { role: technical, verb: all, path: api/v2/dena/admin/deposits, action: drop }
- { role: technical, verb: all, path: api/v2/dena/admin/withdraws, action: drop }
- { role: technical, verb: all, path: api/v2/dena/admin/adjustments, action: drop }
# Finex upstream access
- { role: technical, verb: get, path: api/v2/open_finance, action: accept }
# technical doesnt have access to see pending documents
- { role: technical, verb: get, path: api/v2/dalan/admin/users/documents/pending, action: drop }
# technical doesnt have access to admin activities
- { role: technical, verb: all, path: api/v2/dalan/admin/activities/admin, action: drop }
# technical doesnt have access to manage platform roles and permissions
- { role: technical, verb: all, path: api/v2/dalan/admin/permissions, action: drop }
# we are watching after you 0_0
- { role: technical, verb: post, path: api/v2/, action: audit }
- { role: technical, verb: put, path: api/v2/, action: audit }
- { role: technical, verb: delete, path: api/v2/, action: audit }
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: technical, verb: all, path: api/v2/dena/account, action: accept }
- { role: technical, verb: all, path: api/v2/dena/market, action: accept }
- { role: technical, verb: all, path: api/v2/finex/market, action: accept }
- { role: technical, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: technical, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: technical, verb: all, path: api/v2/dena/swagger, action: accept }
# Drop Peatio order endpoint requests
# ranger access
- { role: technical, verb: get, path: api/v2/ranger, action: accept }
# applogic access
- { role: technical, verb: all, path: api/v2/applogic, action: accept }
# get abilities
- { role: technical, verb: all, path: api/v2/dena/admin/abilities, action: accept }
- { role: technical, verb: all, path: api/v2/dalan/admin/abilities, action: accept }
# SUPPORT
# has read only access to several statistic and user-related endpoints
- { role: support, verb: get, path: api/v2/dalan/admin, action: accept }
- { role: support, verb: get, path: api/v2/dena/admin, action: accept }
# has no ability to see the configurations
- { role: support, verb: all, path: api/v2/dena/admin/adjustments, action: drop }
- { role: support, verb: all, path: api/v2/dena/admin/revenues, action: drop }
- { role: support, verb: all, path: api/v2/dena/admin/blockchains, action: drop }
- { role: support, verb: all, path: api/v2/dena/admin/wallets, action: drop }
- { role: support, verb: all, path: api/v2/dena/admin/trading_fees, action: drop }
- { role: support, verb: all, path: api/v2/dena/admin/withdraw_limits, action: drop }
- { role: support, verb: all, path: api/v2/dalan/admin/restrictions, action: drop }
- { role: support, verb: get, path: api/v2/dena/admin/internal_transfers, action: accept }
- { role: support, verb: get, path: api/v2/dena/admin/engine, action: accept }
# has ability to disable 2FA
- { role: support, verb: post, path: api/v2/dalan/admin/users/update, action: accept }
# support doesnt have access to admin activities
- { role: support, verb: all, path: api/v2/dalan/admin/activities/admin, action: drop }
# support doesnt have access to manage platform roles and permissions
- { role: support, verb: all, path: api/v2/dalan/admin/permissions, action: drop }
- { role: support, verb: all, path: api/v2/dalan/admin/permissions, action: drop }
# we are watching after you 0_0
- { role: support, verb: post, path: api/v2/, action: audit }
- { role: support, verb: put, path: api/v2/, action: audit }
- { role: support, verb: delete, path: api/v2/, action: audit }
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: support, verb: all, path: api/v2/dena/account, action: accept }
- { role: support, verb: all, path: api/v2/dena/market, action: accept }
- { role: support, verb: all, path: api/v2/finex/market, action: accept }
- { role: support, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: support, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: support, verb: all, path: api/v2/dena/swagger, action: accept }
# Drop Peatio order endpoint requests
# ranger access
- { role: support, verb: get, path: api/v2/ranger, action: accept }
# applogic access
- { role: support, verb: all, path: api/v2/applogic, action: accept }
# get abilities
- { role: support, verb: all, path: api/v2/dena/admin/abilities, action: accept }
- { role: support, verb: all, path: api/v2/dalan/admin/abilities, action: accept }
# TRADER
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: trader, verb: all, path: api/v2/dena/account, action: accept }
- { role: trader, verb: all, path: api/v2/dena/market, action: accept }
- { role: trader, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: trader, verb: all, path: api/v2/resource, action: accept }
- { role: trader, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: trader, verb: all, path: api/v2/dena/swagger, action: accept }
# ranger access
- { role: trader, verb: get, path: api/v2/ranger, action: accept }
# Finex upstream access
- { role: trader, verb: get, path: api/v2/open_finance, action: accept }
# applogic access
- { role: trader, verb: all, path: api/v2/applogic, action: accept }
# MEMBER
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: member, verb: all, path: api/v2/dena/account, action: accept }
- { role: member, verb: all, path: api/v2/dena/market, action: accept }
- { role: member, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: member, verb: all, path: api/v2/resource, action: accept }
- { role: member, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: member, verb: all, path: api/v2/dena/swagger, action: accept }
# ranger access
- { role: member, verb: get, path: api/v2/ranger, action: accept }
# Finex upstream access
- { role: member, verb: get, path: api/v2/open_finance, action: accept }
# applogic access
- { role: member, verb: all, path: api/v2/applogic, action: accept }
# BROKER
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: broker, verb: all, path: api/v2/dena/account, action: accept }
- { role: broker, verb: all, path: api/v2/dena/market, action: accept }
- { role: broker, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: broker, verb: all, path: api/v2/resource, action: accept }
- { role: broker, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: broker, verb: all, path: api/v2/dena/swagger, action: accept }
# ranger access
- { role: broker, verb: get, path: api/v2/ranger, action: accept }
# Finex upstream access
- { role: broker, verb: get, path: api/v2/open_finance, action: accept }
# applogic access
- { role: broker, verb: all, path: api/v2/applogic, action: accept }
# MAKER
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: maker, verb: all, path: api/v2/dena/account, action: accept }
- { role: maker, verb: all, path: api/v2/dena/market, action: accept }
- { role: maker, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: maker, verb: all, path: api/v2/resource, action: accept }
- { role: maker, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: maker, verb: all, path: api/v2/dena/swagger, action: accept }
# ranger access
- { role: maker, verb: get, path: api/v2/ranger, action: accept }
# Finex upstream access
- { role: maker, verb: get, path: api/v2/open_finance, action: accept }
# applogic access
- { role: maker, verb: all, path: api/v2/applogic, action: accept }
# Service Account Maker
# has standard user permissions to ACCOUNT, MARKET, RESOURCE modules
- { role: sa_maker, verb: all, path: api/v2/dena/account, action: accept }
- { role: sa_maker, verb: all, path: api/v2/dena/market, action: accept }
- { role: sa_maker, verb: all, path: api/v2/dalan/resource, action: accept }
- { role: sa_maker, verb: all, path: api/v2/dena/account/internal_transfers, action: accept }
- { role: sa_maker, verb: all, path: api/v2/dena/swagger, action: accept }
# Service Account can not interact with Password, 2FA, KYC, API keys, Beneficiary, Deposit and Withdraw
- { role: sa_maker, verb: all, path: api/v2/dalan/resource/otp, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dalan/resource/phones, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dalan/resource/profiles, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dalan/resource/documents, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dalan/resource/addresses, action: drop }
- { role: sa_maker, verb: all, path: api/v2/applogic/private/tenants, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dalan/resource/api_keys, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dalan/resource/users/password, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dena/account/deposit_address, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dena/account/withdraws, action: drop }
- { role: sa_maker, verb: all, path: api/v2/dena/account/beneficiaries, action: drop }
# Finex upstream access
- { role: sa_maker, verb: get, path: api/v2/open_finance, action: accept }
# ranger access
- { role: sa_maker, verb: get, path: api/v2/ranger, action: accept }
# applogic access
- { role: sa_maker, verb: all, path: api/v2/applogic, action: accept }

0
config/frontend/.gitkeep Normal file
View File

0
config/gateway/.gitkeep Normal file
View File

79
config/influxdb/arke.sql Normal file
View File

@@ -0,0 +1,79 @@
CREATE DATABASE arke_development;
CREATE CONTINUOUS QUERY "trade_to_cq_1m" ON arke_development
RESAMPLE EVERY 5s FOR 10m
BEGIN
SELECT FIRST(price) AS open, max(price) AS high, min(price) AS low, last(price) AS close, sum(amount) AS volume INTO candles_1m FROM trades GROUP BY time(1m), market fill(null)
END;
CREATE CONTINUOUS QUERY "trade_amount_to_cq_1m" ON arke_development
RESAMPLE EVERY 5s FOR 10m
BEGIN
SELECT sum(amount) AS volume INTO candles_1m FROM trades GROUP BY time(1m), market fill(0)
END;
CREATE CONTINUOUS QUERY "cq_5m" ON arke_development
RESAMPLE EVERY 5s FOR 10m
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_5m" FROM "candles_1m" GROUP BY time(5m), market
END;
CREATE CONTINUOUS QUERY "cq_15m" ON arke_development
RESAMPLE EVERY 5s FOR 30m
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_15m" FROM "candles_5m" GROUP BY time(15m), market
END;
CREATE CONTINUOUS QUERY "cq_30m" ON arke_development
RESAMPLE EVERY 5s FOR 1h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_30m" FROM "candles_15m" GROUP BY time(30m), market
END;
CREATE CONTINUOUS QUERY "cq_1h" ON arke_development
RESAMPLE EVERY 5s FOR 2h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1h" FROM "candles_30m" GROUP BY time(1h), market
END;
CREATE CONTINUOUS QUERY "cq_2h" ON arke_development
RESAMPLE EVERY 5s FOR 4h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_2h" FROM "candles_1h" GROUP BY time(2h), market
END;
CREATE CONTINUOUS QUERY "cq_4h" ON arke_development
RESAMPLE EVERY 5s FOR 8h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_4h" FROM "candles_2h" GROUP BY time(4h), market
END;
CREATE CONTINUOUS QUERY "cq_6h" ON arke_development
RESAMPLE EVERY 5s FOR 12h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_6h" FROM "candles_2h" GROUP BY time(6h), market
END;
CREATE CONTINUOUS QUERY "cq_12h" ON arke_development
RESAMPLE EVERY 5s FOR 24h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_12h" FROM "candles_6h" GROUP BY time(12h), market
END;
CREATE CONTINUOUS QUERY "cq_1d" ON arke_development
RESAMPLE EVERY 5s FOR 2d
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1d" FROM "candles_6h" GROUP BY time(1d), market
END;
CREATE CONTINUOUS QUERY "cq_3d" ON arke_development
RESAMPLE EVERY 5s FOR 6d
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_3d" FROM "candles_1d" GROUP BY time(3d), market
END;
CREATE CONTINUOUS QUERY "cq_1w" ON arke_development
RESAMPLE EVERY 5s FOR 2w
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1w" FROM "candles_1d" GROUP BY time(7d), market
END;

View File

@@ -0,0 +1,11 @@
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_5m" FROM "candles_1m" GROUP BY time(5m), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_15m" FROM "candles_5m" GROUP BY time(15m), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_30m" FROM "candles_15m" GROUP BY time(30m), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1h" FROM "candles_30m" GROUP BY time(1h), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_2h" FROM "candles_1h" GROUP BY time(2h), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_4h" FROM "candles_2h" GROUP BY time(4h), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_6h" FROM "candles_2h" GROUP BY time(6h), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_12h" FROM "candles_6h" GROUP BY time(6h), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1d" FROM "candles_4h" GROUP BY time(1d), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_3d" FROM "candles_1d" GROUP BY time(3d), market;
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1w" FROM "candles_1d" GROUP BY time(1w), market;

View File

@@ -0,0 +1,66 @@
CREATE DATABASE peatio_production;
CREATE CONTINUOUS QUERY "trade_to_cq_1m" ON peatio_production
RESAMPLE EVERY 1s FOR 3m
BEGIN
SELECT FIRST(price) AS open, max(price) AS high, min(price) AS low, last(price) AS close, sum(amount) AS volume INTO candles_1m FROM trades GROUP BY time(1m), market
END;
CREATE CONTINUOUS QUERY "candles_1m_to_cq_1m" ON peatio_production
RESAMPLE EVERY 1m FOR 2m
BEGIN
SELECT last(close) AS open, last(close) AS high, last(close) AS low, last(close) AS close, last(volume) * 0 as volume INTO candles_1m FROM candles_1m GROUP BY time(1m), market fill(previous)
END;
CREATE CONTINUOUS QUERY "cq_5m" ON peatio_production
RESAMPLE EVERY 5s FOR 10m
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_5m" FROM "candles_1m" GROUP BY time(5m), market
END;
CREATE CONTINUOUS QUERY "cq_15m" ON peatio_production
RESAMPLE EVERY 5s FOR 30m
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_15m" FROM "candles_5m" GROUP BY time(15m), market
END;
CREATE CONTINUOUS QUERY "cq_30m" ON peatio_production
RESAMPLE EVERY 5s FOR 1h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_30m" FROM "candles_15m" GROUP BY time(30m), market
END;
CREATE CONTINUOUS QUERY "cq_1h" ON peatio_production
RESAMPLE EVERY 5s FOR 2h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1h" FROM "candles_30m" GROUP BY time(1h), market
END;
CREATE CONTINUOUS QUERY "cq_2h" ON peatio_production
RESAMPLE EVERY 5s FOR 4h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_2h" FROM "candles_1h" GROUP BY time(2h), market
END;
CREATE CONTINUOUS QUERY "cq_4h" ON peatio_production
RESAMPLE EVERY 5s FOR 8h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_4h" FROM "candles_2h" GROUP BY time(4h), market
END;
CREATE CONTINUOUS QUERY "cq_6h" ON peatio_production
RESAMPLE EVERY 5s FOR 12h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_6h" FROM "candles_2h" GROUP BY time(6h), market
END;
CREATE CONTINUOUS QUERY "cq_12h" ON peatio_production
RESAMPLE EVERY 5s FOR 24h
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_12h" FROM "candles_6h" GROUP BY time(12h), market
END;
CREATE CONTINUOUS QUERY "cq_1d" ON peatio_production
RESAMPLE EVERY 5s FOR 2d
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1d" FROM "candles_6h" GROUP BY time(1d), market
END;
CREATE CONTINUOUS QUERY "cq_3d" ON peatio_production
RESAMPLE EVERY 5s FOR 6d
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_3d" FROM "candles_1d" GROUP BY time(3d), market
END;
CREATE CONTINUOUS QUERY "cq_1w" ON peatio_production
RESAMPLE EVERY 5s FOR 2w
BEGIN
SELECT FIRST(open) as open, MAX(high) as high, MIN(low) as low, LAST(close) as close, SUM(volume) as volume INTO "candles_1w" FROM "candles_1d" GROUP BY time(7d), market
END;

View File

@@ -0,0 +1,55 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p>Deposit <b><%= @record.state %></b></p>
<p>
Your deposit #<%= @record.tid %> of <%= @record.amount %> <%= @record.currency %> has been <%= @record.state %>.
</p>
<br /><br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,73 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p style="margin-top: 18px"><b>Hello!</b></p>
<p>
Use this unique link to confirm your email <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<a href="<%= @record.domain %>/accounts/confirmation?confirmation_token=<%= @record.token %>&lang=en">Confirm</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,73 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p style="margin-top: 18px"><b>Здравствуйте!</b></p>
<p>
Используйте эту уникальную ссылку для подтверждения вашей почты <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<a href="<%= @record.domain %>/accounts/confirmation?confirmation_token=<%= @record.token %>&lang=en">Подтвердить</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,97 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p style="margin-top: 18px"><b>Hello!</b></p>
<p>
Use this code to confirm your email <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<span><%= @record.code %></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br />
<% if @record.token.present? %>
<p>
Or use this one-time link to confirm your email:
</p>
<br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<a href="<%= @record.domain %>/accounts/confirmation?confirmation_token=<%= @record.token %>&lang=en">Confirm email</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<% end %>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,73 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p style="margin-top: 18px"><b>Hello!</b></p>
<p>
Use this code to disbale 2fa <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<span><%= @record.code %></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,73 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p style="margin-top: 18px"><b>Hello!</b></p>
<p>
Use this code to enable your 2fa <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<span><%= @record.code %></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,76 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p>Hello!</p>
<p>
<% if @record.value == "verified" %>
Congratulations, your account details was successfully upgraded.
<% end %>
<% if @record.value == "rejected" %>
Unfortunately, your account details was rejected.
<% end %>
Your current account level is <b><%= @record.user.level %></b>
Your account state is <b><%= @record.user.state %></b>
</p>
<p>
<% if @record.key == "profile" %>
Recently your user profile was <%= @record.value %>.
<% end %>
<% if @record.key == "id_document" %>
Recently your main document was <%= @record.value %>.
<% end %>
<% if @record.key == "second_document" %>
Recently your second document was <% @record.value %>.
<% end %>
<% if @record.key == "institutional" %>
Recently your institutional document was <%= @record.value %>.
<% end %>
</p>
<br /><br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,55 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p>New <%= @record.currency %> beneficiary <b><%= @record.name %></b> created!</p>
<p>
Your <b>pin-code</b> for this beneficiary is <%= @record.pin %>.
</p>
<br /><br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,73 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p style="margin-top: 18px"><b>Hello!</b></p>
<p>
email: <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<span><%= @record.code %></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,73 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p style="margin-top: 18px"><b>Hello!</b></p>
<p>
Use this code to confirm your password <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<span><%= @record.code %></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,97 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p class="title">Hello!</p>
<p class="text">
Use this code or one-time link to reset your password for email <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<span><%= @record.code %></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br />
<% if @record.token.present? %>
<p class="text">
Or use this one-time link to reset your password:
</p>
<br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<a href="<%= @record.domain %>/accounts/password_reset?reset_token=<%= @record.token %>&lang=en">Reset password</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<% end %>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,73 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p class="title">Здравствуйте!</p>
<p class="text">
Используйте эту уникальную ссылку для сброса вашего пароля <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<a href="<%= @record.domain %>/accounts/password_reset?reset_token=<%= @record.token %>&lang=en">Сбросить</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,61 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p>Hello!</p>
<p>
We detected a login to your account.
</p>
<p>IP Address: <%= @record.user_ip %></p>
<p>User-agent: <%= @record.user_agent %></p>
<p>If this was you, please disregard this email.</p>
<p>If this wasn't you, please change your passwords immediately, as someone else may be accessing your account.</p>
<br /><br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,61 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p>Hello!</p>
<p>
We detected a failed login to your account.
</p>
<p>IP Address: <%= @record.user_ip %></p>
<p>User-agent: <%= @record.user_agent %></p>
<p>If this was you, please disregard this email.</p>
<p>If this wasn't you, please change your passwords immediately, as someone else may be accessing your account.</p>
<br /><br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,73 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p style="margin-top: 18px"><b>Hello!</b></p>
<p>
Use this code to confirm your withdraw: <%= @user.email %>
</p>
<br /><br /><br />
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary">
<tbody>
<tr>
<td align="left">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<span><%= @record.code %></span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

@@ -0,0 +1,55 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td>&nbsp;</td>
<td class="container">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align: center">
<%= image_tag @logo, alt: 'Company Logo', class: 'logo-img' %>
</td>
</tr>
</table>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="container">
<div class="content">
<table role="presentation" class="main">
<!-- START MAIN CONTENT AREA -->
<tr>
<td class="wrapper">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<br />
<p class="text">Withdrawal <b><%= @record.state %></b></p>
<p class="text">
Your withdrawal #<%= @record.tid %> of <%= @record.amount %> <%= @record.currency %> has been <%= @record.state %>.
</p>
<br /><br /><br />
</td>
</tr>
</table>
</td>
</tr>
<!-- END MAIN CONTENT AREA -->
</table>
</div>
<!-- START FOOTER -->
<div class="footer">
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span>FIBITEX TECHNOLOGIES INC.</span>
<br><span>Vancouver, Canada</span>
<br><a href="<%= @record.domain %>"><%= @record.domain %></a>
</td>
</tr>
</table>
</div>
<!-- END FOOTER -->
</td>
<td>&nbsp;</td>
</tr>
</table>

View File

View File

View File

View File

8
config/mysql/innodb.cnf Normal file
View File

@@ -0,0 +1,8 @@
[mysqld]
innodb_buffer_pool_size = 2G
innodb_buffer_pool_instances = 2
innodb_log_buffer_size = 128M
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 0
# mysql2 0.5.x (Rails 5.2) — keep native password until Ruby/mysql2 upgrade
default_authentication_plugin=mysql_native_password

22
config/peatio/plugins.yml Normal file
View File

@@ -0,0 +1,22 @@
# Be sure to run "bin/install_plugins" when you modify this file.
#
# This file is used for listing Peatio plugins.
# The plugins must be listed as an array. Each element of array described the plugin using the next variables:
#
# * name
# Mandatory. Specify plugin name. The name must be compatible with filesystem rules.
#
# * git
# Mandatory. Specify Git repository URL.
#
# * commit
# Mandatory. Specify commit hash which Peatio will checkout via "bin/install_plugins".
#
# * require
# Optional. Specify relative path to file from vendor/plugins which should be required by Peatio.
# You may set this value to "false" if you don't want Peatio to require the plugin.
# Example configuration:
#- name: peatio-plugin-example
# git: https://github.com/rubykube/peatio-plugin-example.git
# commit: 11edd2e7c0bef229516f42fde79615a68a008d45

View File

View File

@@ -0,0 +1,411 @@
- id: irt
name: Iranian Toman
type: fiat
precision: 2
base_factor: 1
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 10
min_collection_amount: 10
withdraw_limit_24h: 1000
withdraw_limit_72h: 2000
deposit_fee: 0
withdraw_fee: 0
position: 100
options: {}
- id: cad
name: Canadian Dollar
type: fiat
precision: 2
base_factor: 1
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 10
min_collection_amount: 10
withdraw_limit_24h: 1000
withdraw_limit_72h: 2000
deposit_fee: 0
withdraw_fee: 0
position: 1
options: {}
- id: usdt
name: Tether
blockchain_key: eth-rinkeby
type: coin
precision: 2
base_factor: 1
# IMPORTANT: Don't forget to update this variable according
# to your ERC20-based currency requirements (usually can be found on the official website).
visible: true
deposit_enabled: false
withdrawal_enabled: false
# Deposits with less amount are skipped during blockchain synchronization.
# We advise to set value 10 times bigger than the network fee to prevent losses.
# NOTE: Network fee is paid in ETH but min_deposit_amount is in TRST.
min_deposit_amount: 2
min_collection_amount: 20
withdraw_limit_24h: 1000
withdraw_limit_72h: 3000
deposit_fee: 0
withdraw_fee: 4
position: 2
options:
# ERC20 tx fees configurations.
# Maximum amount of gas you're willing to spend on a particular transaction.
gas_limit: 90_000
# Internal price that is paid for running a contract on the Ethereum network.
gas_price: 1_000_000_000
#
# ERC20 configuration.
erc20_contract_address: '0xdac17f958d2ee523a2206206994597c13d831ec7' # Always wrap this value in quotes!
- id: btc
name: Bitcoin
blockchain_key: btc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 0.00005
min_collection_amount: 0.0001
withdraw_limit_24h: 0.1
withdraw_limit_72h: 0.2
deposit_fee: 0
withdraw_fee: 0.0003
position: 3
options: {}
- id: eth
name: Ethereum
blockchain_key: eth-rinkeby
type: coin
precision: 8
base_factor: 1_000_000_000_000_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 0.00021
min_collection_amount: 0.00021
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 0
position: 4
options:
gas_limit: 21_000
gas_price: 1_000_000_000
- id: etc
name: Ethereum Classic
blockchain_key: btc-testnet
type: coin
precision: 8
base_factor: 1_000_000_000_000_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 0.00021
min_collection_amount: 0.00021
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 0
position: 5
options: {}
- id: shib
name: 1000 Shiba Inu
blockchain_key: btc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 6
options: {}
- id: bch
name: Bitcoin Cash
blockchain_key: btc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 7
options: {}
- id: ltc
name: Litecoin
blockchain_key: btc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 8
options: {}
- id: ada
name: Cardano
blockchain_key: btc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 9
options: {}
- id: bnb
name: BNB
blockchain_key: btc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 10
options: {}
- id: xlm
name: Stellar Lumens
blockchain_key: xlm-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 11
options: {}
- id: xrp
name: Ripple
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 12
options: {}
- id: trx
name: Tron
blockchain_key: trx-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 13
options: {}
- id: doge
name: Dogecoin
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 14
options: {}
- id: uni
name: Uniswap
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 15
options: {}
- id: link
name: Chainlink
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 16
options: {}
- id: dot
name: Polkadot
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 17
options: {}
- id: aave
name: AAVE
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 18
options: {}
- id: matic
name: Polygon
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 19
options: {}
- id: mkr
name: Maker
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 20
options: {}
- id: sol
name: Solana
blockchain_key: bsc-testnet
type: coin
precision: 8
base_factor: 100_000_000
visible: true
deposit_enabled: false
withdrawal_enabled: false
min_deposit_amount: 1000
min_collection_amount: 1000
withdraw_limit_24h: 0.2
withdraw_limit_72h: 0.5
deposit_fee: 0
withdraw_fee: 400
position: 21
options: {}

View File

@@ -0,0 +1,752 @@
# IRT Market------------------------------------------
- id: usdtirt
engine_name: peatio-default-engine
base_unit: usdt
quote_unit: irt
amount_precision: 2
price_precision: 2
min_price: 9000
max_price: 9000000
min_amount: 1
position: 40
state: enabled
data: {}
- id: btcirt
engine_name: peatio-default-engine
base_unit: btc
quote_unit: irt
amount_precision: 6
price_precision: 2
min_price: 90000000
max_price: 18000000000
min_amount: 0.0001
position: 41
state: enabled
data: {}
- id: ethirt
engine_name: peatio-default-engine
base_unit: eth
quote_unit: irt
amount_precision: 5
price_precision: 2
min_price: 9000000
max_price: 1800000000
min_amount: 0.0001
position: 42
state: enabled
data: {}
- id: etcirt
engine_name: peatio-default-engine
base_unit: etc
quote_unit: irt
amount_precision: 2
price_precision: 4
min_price: 90000
max_price: 45000000
min_amount: 0.01
position: 43
state: enabled
data: {}
- id: shibirt
engine_name: peatio-default-engine
base_unit: shib
quote_unit: irt
amount_precision: 0
price_precision: 6
min_price: 1
max_price: 900000
min_amount: 1
position: 44
state: enabled
data: {}
- id: bchirt
engine_name: peatio-default-engine
base_unit: bch
quote_unit: irt
amount_precision: 5
price_precision: 2
min_price: 9000
max_price: 450000000
min_amount: 0.001
position: 45
state: enabled
data: {}
- id: ltcirt
engine_name: peatio-default-engine
base_unit: ltc
quote_unit: irt
amount_precision: 6
price_precision: 2
min_price: 9000
max_price: 450000000
min_amount: 0.001
position: 46
state: enabled
data: {}
- id: adairt
engine_name: peatio-default-engine
base_unit: ada
quote_unit: irt
amount_precision: 3
price_precision: 4
min_price: 9
max_price: 9000000
min_amount: 0.1
position: 47
state: enabled
data: {}
- id: bnbirt
engine_name: peatio-default-engine
base_unit: bnb
quote_unit: irt
amount_precision: 4
price_precision: 3
min_price: 90000
max_price: 450000000
min_amount: 0.01
position: 48
state: enabled
data: {}
- id: xlmirt
engine_name: peatio-default-engine
base_unit: xlm
quote_unit: irt
amount_precision: 5
price_precision: 4
min_price: 9
max_price: 9000000
min_amount: 0.1
position: 49
state: enabled
data: {}
- id: xrpirt
engine_name: peatio-default-engine
base_unit: xrp
quote_unit: irt
amount_precision: 5
price_precision: 4
min_price: 9
max_price: 9000000
min_amount: 0.1
position: 50
state: enabled
data: {}
- id: trxirt
engine_name: peatio-default-engine
base_unit: trx
quote_unit: irt
amount_precision: 5
price_precision: 4
min_price: 9
max_price: 9000000
min_amount: 0.1
position: 51
state: enabled
data: {}
- id: dogeirt
engine_name: peatio-default-engine
base_unit: doge
quote_unit: irt
amount_precision: 5
price_precision: 4
min_price: 9
max_price: 9000000
min_amount: 1
position: 52
state: enabled
data: {}
- id: uniirt
engine_name: peatio-default-engine
base_unit: uni
quote_unit: irt
amount_precision: 4
price_precision: 4
min_price: 9
max_price: 9000000
min_amount: 0.001
position: 53
state: enabled
data: {}
- id: linkirt
engine_name: peatio-default-engine
base_unit: link
quote_unit: irt
amount_precision: 4
price_precision: 4
min_price: 9
max_price: 9000000
min_amount: 0.001
position: 54
state: enabled
data: {}
- id: dotirt
engine_name: peatio-default-engine
base_unit: dot
quote_unit: irt
amount_precision: 3
price_precision: 4
min_price: 90
max_price: 9000000
min_amount: 0.1
position: 55
state: enabled
data: {}
- id: aaveirt
engine_name: peatio-default-engine
base_unit: aave
quote_unit: irt
amount_precision: 4
price_precision: 6
min_price: 9000
max_price: 450000000
min_amount: 0.0001
position: 56
state: enabled
data: {}
- id: maticirt
engine_name: peatio-default-engine
base_unit: matic
quote_unit: irt
amount_precision: 3
price_precision: 4
min_price: 90
max_price: 9000000
min_amount: 1
position: 57
state: enabled
data: {}
- id: mkrirt
engine_name: peatio-default-engine
base_unit: mkr
quote_unit: irt
amount_precision: 4
price_precision: 4
min_price: 9000
max_price: 450000000
min_amount: 0.0001
position: 58
state: enabled
data: {}
- id: solirt
engine_name: peatio-default-engine
base_unit: sol
quote_unit: irt
amount_precision: 4
price_precision: 6
min_price: 90
max_price: 9000000
min_amount: 0.001
position: 59
state: enabled
data: {}
# CAD Market------------------------------------------
- id: usdtcad
engine_name: peatio-default-engine
base_unit: usdt
quote_unit: cad
amount_precision: 2
price_precision: 2
min_price: 0.1
max_price: 100
min_amount: 1
position: 1
state: enabled
data: {}
- id: btccad
engine_name: peatio-default-engine
base_unit: btc
quote_unit: cad
amount_precision: 6
price_precision: 2
min_price: 1000
max_price: 200000
min_amount: 0.0001
position: 2
state: enabled
data: {}
- id: ethcad
engine_name: peatio-default-engine
base_unit: eth
quote_unit: cad
amount_precision: 5
price_precision: 2
min_price: 100
max_price: 20000
min_amount: 0.0001
position: 3
state: enabled
data: {}
- id: etccad
engine_name: peatio-default-engine
base_unit: etc
quote_unit: cad
amount_precision: 2
price_precision: 4
min_price: 1
max_price: 500
min_amount: 0.01
position: 4
state: enabled
data: {}
- id: shibcad
engine_name: peatio-default-engine
base_unit: shib
quote_unit: cad
amount_precision: 0
price_precision: 6
min_price: 0.00001
max_price: 10
min_amount: 1
position: 5
state: enabled
data: {}
- id: bchcad
engine_name: peatio-default-engine
base_unit: bch
quote_unit: cad
amount_precision: 5
price_precision: 2
min_price: 0.1
max_price: 5000
min_amount: 0.001
position: 6
state: enabled
data: {}
- id: ltccad
engine_name: peatio-default-engine
base_unit: ltc
quote_unit: cad
amount_precision: 6
price_precision: 2
min_price: 0.1
max_price: 5000
min_amount: 0.001
position: 7
state: enabled
data: {}
- id: adacad
engine_name: peatio-default-engine
base_unit: ada
quote_unit: cad
amount_precision: 3
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.1
position: 8
state: enabled
data: {}
- id: bnbcad
engine_name: peatio-default-engine
base_unit: bnb
quote_unit: cad
amount_precision: 4
price_precision: 3
min_price: 1
max_price: 5000
min_amount: 0.01
position: 9
state: enabled
data: {}
- id: xlmcad
engine_name: peatio-default-engine
base_unit: xlm
quote_unit: cad
amount_precision: 5
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.1
position: 10
state: enabled
data: {}
- id: xrpcad
engine_name: peatio-default-engine
base_unit: xrp
quote_unit: cad
amount_precision: 5
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.1
position: 11
state: enabled
data: {}
- id: trxcad
engine_name: peatio-default-engine
base_unit: trx
quote_unit: cad
amount_precision: 5
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.1
position: 12
state: enabled
data: {}
- id: dogecad
engine_name: peatio-default-engine
base_unit: doge
quote_unit: cad
amount_precision: 5
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 1
position: 13
state: enabled
data: {}
- id: unicad
engine_name: peatio-default-engine
base_unit: uni
quote_unit: cad
amount_precision: 4
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.001
position: 14
state: enabled
data: {}
- id: linkcad
engine_name: peatio-default-engine
base_unit: link
quote_unit: cad
amount_precision: 4
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.001
position: 15
state: enabled
data: {}
- id: dotcad
engine_name: peatio-default-engine
base_unit: dot
quote_unit: cad
amount_precision: 3
price_precision: 4
min_price: 0.001
max_price: 100
min_amount: 0.1
position: 16
state: enabled
data: {}
- id: aavecad
engine_name: peatio-default-engine
base_unit: aave
quote_unit: cad
amount_precision: 4
price_precision: 6
min_price: 0.1
max_price: 5000
min_amount: 0.0001
position: 17
state: enabled
data: {}
- id: maticcad
engine_name: peatio-default-engine
base_unit: matic
quote_unit: cad
amount_precision: 3
price_precision: 4
min_price: 0.001
max_price: 100
min_amount: 1
position: 18
state: enabled
data: {}
- id: mkrcad
engine_name: peatio-default-engine
base_unit: mkr
quote_unit: cad
amount_precision: 4
price_precision: 4
min_price: 0.1
max_price: 5000
min_amount: 0.0001
position: 19
state: enabled
data: {}
- id: solcad
engine_name: peatio-default-engine
base_unit: sol
quote_unit: cad
amount_precision: 4
price_precision: 6
min_price: 0.001
max_price: 100
min_amount: 0.001
position: 20
state: enabled
data: {}
# USDT Market------------------------------------------
- id: btcusdt
engine_name: peatio-default-engine
base_unit: btc
quote_unit: usdt
amount_precision: 6
price_precision: 4
min_price: 1000
max_price: 200000
min_amount: 0.0001
position: 21
state: enabled
data: {}
- id: ethusdt
engine_name: peatio-default-engine
base_unit: eth
quote_unit: usdt
amount_precision: 5
price_precision: 4
min_price: 100
max_price: 20000
min_amount: 0.0001
position: 22
state: enabled
data: {}
- id: etcusdt
engine_name: peatio-default-engine
base_unit: etc
quote_unit: usdt
amount_precision: 4
price_precision: 4
min_price: 1
max_price: 500
min_amount: 0.001
position: 23
state: enabled
data: {}
- id: shibusdt
engine_name: peatio-default-engine
base_unit: shib
quote_unit: usdt
amount_precision: 0
price_precision: 6
min_price: 0.000001
max_price: 10
min_amount: 1
position: 24
state: enabled
data: {}
- id: bchusdt
engine_name: peatio-default-engine
base_unit: bch
quote_unit: usdt
amount_precision: 5
price_precision: 4
min_price: 0.1
max_price: 5000
min_amount: 0.001
position: 25
state: enabled
data: {}
- id: ltcusdt
engine_name: peatio-default-engine
base_unit: ltc
quote_unit: usdt
amount_precision: 6
price_precision: 4
min_price: 0.1
max_price: 5000
min_amount: 0.0001
position: 26
state: enabled
data: {}
- id: adausdt
engine_name: peatio-default-engine
base_unit: ada
quote_unit: usdt
amount_precision: 3
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.1
position: 27
state: enabled
data: {}
- id: bnbusdt
engine_name: peatio-default-engine
base_unit: bnb
quote_unit: usdt
amount_precision: 4
price_precision: 3
min_price: 1
max_price: 5000
min_amount: 0.01
position: 28
state: enabled
data: {}
- id: xlmusdt
engine_name: peatio-default-engine
base_unit: xlm
quote_unit: usdt
amount_precision: 5
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.1
position: 29
state: enabled
data: {}
- id: xrpusdt
engine_name: peatio-default-engine
base_unit: xrp
quote_unit: usdt
amount_precision: 5
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.1
position: 30
state: enabled
data: {}
- id: trxusdt
engine_name: peatio-default-engine
base_unit: trx
quote_unit: usdt
amount_precision: 5
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.1
position: 31
state: enabled
data: {}
- id: dogeusdt
engine_name: peatio-default-engine
base_unit: doge
quote_unit: usdt
amount_precision: 5
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 1
position: 32
state: enabled
data: {}
- id: uniusdt
engine_name: peatio-default-engine
base_unit: uni
quote_unit: usdt
amount_precision: 4
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.001
position: 33
state: enabled
data: {}
- id: linkusdt
engine_name: peatio-default-engine
base_unit: link
quote_unit: usdt
amount_precision: 4
price_precision: 4
min_price: 0.0001
max_price: 100
min_amount: 0.001
position: 34
state: enabled
data: {}
- id: dotusdt
engine_name: peatio-default-engine
base_unit: dot
quote_unit: usdt
amount_precision: 3
price_precision: 4
min_price: 0.001
max_price: 100
min_amount: 0.1
position: 35
state: enabled
data: {}
- id: aaveusdt
engine_name: peatio-default-engine
base_unit: aave
quote_unit: usdt
amount_precision: 4
price_precision: 6
min_price: 0.1
max_price: 5000
min_amount: 0.0001
position: 36
state: enabled
data: {}
- id: maticusdt
engine_name: peatio-default-engine
base_unit: matic
quote_unit: usdt
amount_precision: 3
price_precision: 4
min_price: 0.001
max_price: 100
min_amount: 1
position: 37
state: enabled
data: {}
- id: mkrusdt
engine_name: peatio-default-engine
base_unit: mkr
quote_unit: usdt
amount_precision: 4
price_precision: 4
min_price: 0.1
max_price: 5000
min_amount: 0.001
position: 38
state: enabled
data: {}
- id: solusdt
engine_name: peatio-default-engine
base_unit: sol
quote_unit: usdt
amount_precision: 4
price_precision: 6
min_price: 0.0001
max_price: 100
min_amount: 0.001
position: 39
state: enabled
data: {}

0
config/secrets/.gitkeep Normal file
View File

43
config/test_users.yml Normal file
View File

@@ -0,0 +1,43 @@
# Test users for local / test environments (see bin/seed_test_users.rb)
# Password for all: 123qwe!@#QWE
remove_emails:
- admin@fibitex.com
- admin@barong.io
- john@barong.io
users:
- email: user@test.com
uid: TST0001USER
password: "123qwe!@#QWE"
role: member
state: active
level: 0
kyc: zero
peatio_group: vip-0
fiat_balance: 20000
coin_multiplier: 2
- email: bot@test.com
uid: TST0002BOT
password: "123qwe!@#QWE"
role: member
state: active
level: 3
kyc: full
peatio_group: bot
fiat_balance: 20000000
coin_multiplier: 1000000
coin_fixed:
usdt: 20000000
- email: admin@test.com
uid: TST0003ADMIN
password: "123qwe!@#QWE"
role: superadmin
state: active
level: 3
kyc: full
peatio_group: vip-0
fiat_balance: 2000
coin_multiplier: 10

178
config/utils.yml Normal file
View File

@@ -0,0 +1,178 @@
images:
applogic: rubykube/applogic:latest
arke: custom/arke:3 #quay.io/openware/arke:2.6.0-bccb72c
superset: amancevice/superset:0.28.1
superset:
email: yaser@fibitex.com
username: yaser
password: changeme
arke:
log_level: WARN # Level of Arke log info
accounts:
#---------------------------{source}-----------------------------------
- id: bitfinex_source # Unique account id of the source
driver: bitfinex # One of supported sources drivers
delay: 1 # Delay of balance information update
key: "" # API key from source (not required for copy strategy)
secret: "" # Secret from API key from source (not required for copy strategy)
#---------------------------{source}-----------------------------------
- id: binance_source # Unique account id of the source
driver: binance # One of supported sources drivers
delay: 1 # Delay of balance information update
key: "" # API key from source (not required for copy strategy)
secret: "" # Secret from API key from source (not required for copy strategy)
#---------------------------{target}-----------------------------------
- id: opendax_target # Unique account id of the target
driver: opendax # Only supported target driver
key: "b1068c9c54fa2035" # API key from the target, required
secret: "6048b9c7668ea7ea0107a62265674540" # Secret from API key from the target, required
host: "https://www.tibitex.com" # Your target URL
ws: "wss://www.tibitex.com" # Your target WebSocet URL
debug: false
verify_ssl: false
finex: false
strategies:
#---------------------------{strategy}-----------------------------------
- id: copy-BTCUSD # Name of a strategy
type: copy # Type of the strategy
debug: true # True to see extra Arke logs
enabled: true # True to run this strategy after Arke (re)startgit
period: 90 # Period of order book refresh
params:
spread_bids: 0.0015 # Percentage difference from the best price on buy side
spread_asks: 0.0015 # Percentage difference from the best price on sell side
limit_asks_base: 0.08 # The amount of base currency that will be placed for sale in the order book, if have enough balance
limit_bids_base: 0.08 # The amount of base currency that will be placed for buy in the order book, if have enough balance in quote currency equivalent
max_amount_per_order: 0.014 # Limit amount of base currency per order (the small amount are, the bigger number of orders at the same price will be created)
levels_size: 1 # Minimum price difference between price points
levels_count: 10 # Maximum amount of price points that may be created
side: both # Side, ask, bid or both to apply the strategy on
target:
account_id: opendax_target # Unique account id, from the account section, that will be used as a target (your exchange)
market_id: btctestusdt # Market pair code in lowercase, from your target exchange
sources:
- account_id: binance_source # Unique account id, from the account section, that will be used as a source
market_id: BTCUSDT # Market pair code in uppercase, from you source exchange
#---------------------------{Microtrades-Market strategy}-----------------------------------
- id: microtrades-BTCUSD # Name of a strategy
type: microtrades-market # Type of the strategy
debug: true # True to see extra Arke logs
enabled: true # True to run this strategy after Arke (re)startgit
period: 10 # Period between micro trades
period_random_delay: 13 # Random delay applied to a period
params:
linked_strategy_id: copy-BTCUSD # Strategy that microtrade links to, to calculate order price
min_amount: 0.000001 # Minimum amount of order
max_amount: 0.00009 # Maximum amount of order
target:
account_id: opendax_target # Unique account id, from the account section, that will be used as a target (your exchange)
market_id: btctestusdt # Market pair code in lowercase, from your target exchange
# log_level: INFO
# accounts:
# - id: 1
# driver: bitfaker
# debug: false
# host: "http://www.app.local"
# ws: "ws://www.app.local"
# key: ""
# secret: ""
# delay: 1
# - id: 2
# driver: bitfaker
# host: "api.binance.com"
# key:
# secret:
# delay: 1
# strategies:
# - id: 1
# type: copy
# debug: true
# enabled: true
# period: 10
# params:
# spread_bids: 0.003
# spread_asks: 0.003
# limit_asks_base: 0.05
# limit_bids_base: 0.05
# levels_size: 0.25
# levels_count: 10
# side: both
# enable_orderback: false
# target:
# account_id: 1
# market:
# id: BTCUSD
# base: btc
# quote: usd
# base_precision: 2
# quote_precision: 2
# min_ask_amount: 1.5
# min_bid_amount: 1.5
# sources:
# - account_id: 2
# market:
# id: BTCUSD
# base: BTC
# quote: USD
# base_precision: 8
# quote_precision: 8
# min_order_back_amount: 1.5
# - id: 2
# type: microtrades
# debug: true
# period: 5
# period_random_delay: 10
# params:
# linked_strategy_id: 1
# min_amount: 0.05
# max_amount: 10
# min_price: 100
# max_price: 1000
# target:
# account_id: 1
# market:
# id: BTCUSD
# base: btc
# quote: usd
# base_precision: 2
# quote_precision: 2
# min_ask_amount: 1.5
# min_bid_amount: 1.5
# strategy:
# type: copy
# volume_ratio: 0.1
# target:
# driver: rubykube
# market: 'FTHUSD'
# host: "http://www.app.local"
# key: ""
# secret: ""
# rate_limit: 1
# sources:
# - driver: bitfaker
# market: 'tETHUSD'
# host: "api.bitfinex.com"
# key: ""
# secret: ""
# rate_limit: 0.2
# - driver: bitfinex
# market: 'tETHUSD'
# host: "api.bitfinex.com"
# key: ""
# secret: ""
# rate_limit: 0.2
# - driver: binance
# market: 'ETHUSDT'
# host: "api.binance.com"
# key: ""
# secret: ""
# rate_limit: 0.2