Initial commit
This commit is contained in:
149
config/templates/application.yml.erb
Normal file
149
config/templates/application.yml.erb
Normal file
@@ -0,0 +1,149 @@
|
||||
defaults: &defaults
|
||||
TIMEZONE: 'Tehran'
|
||||
|
||||
# Configure Redis URL, for a TCP connection:
|
||||
# `redis://:[password]@[hostname]:[port]/[db]`
|
||||
# (password, port and database are optional).
|
||||
REDIS_URL: redis://localhost:6379
|
||||
REDIS_PASSWORD: ~
|
||||
REDIS_CLUSTER: false
|
||||
|
||||
# Application URL configuration variables.
|
||||
URL_HOST: peatio.tech
|
||||
URL_ROOT_PATH: '/'
|
||||
URL_SCHEME: http
|
||||
FORCE_SECURE_CONNECTION: 'false' # Set to "true" to disable access via unsecured HTTP, send HSTS headers and use secure cookies.
|
||||
|
||||
# Configuration variables for logger.
|
||||
LOG_LEVEL: ~ # Default level for production is warn, otherwise – debug.
|
||||
|
||||
# Configuration variables for API CORS.
|
||||
#
|
||||
# Set list of allowed origins using the variable below.
|
||||
# By default it allows access to API from all origins.
|
||||
# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
|
||||
API_CORS_ORIGINS: '*'
|
||||
# Access-Control-Allow-Credentials response header is not supported
|
||||
# if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’.
|
||||
API_CORS_ALLOW_CREDENTIALS: 'false'
|
||||
# The Access-Control-Max-Age response header indicates how long
|
||||
# the results of a preflight request can be cached.
|
||||
# Default value 3600.
|
||||
API_CORS_MAX_AGE: ~
|
||||
|
||||
# Configuration variables for Sentry.
|
||||
SENTRY_DSN_BACKEND: ~ # Specify Sentry DSN used for Rails application.
|
||||
|
||||
# Customize page metadata like title, description & keywords for landing, cabinet & admin modules.
|
||||
METADATA_TITLE: Peatio Exchange
|
||||
METADATA_DESCRIPTION: The Opensource Cryptocurrency Exchange
|
||||
METADATA_KEYWORDS: Peatio,Opensource,Exchange,Cryptocurrency
|
||||
|
||||
# Configuration variables for JWT verification.
|
||||
# Get explanation at https://en.wikipedia.org/wiki/JSON_Web_Token.
|
||||
#
|
||||
# JWT_PUBLIC_KEY
|
||||
#
|
||||
# JWT provider uses private key for encoding JSON Web Tokens
|
||||
# while public key is used for decoding by resources.
|
||||
#
|
||||
# For example, Barong is JWT provider, Peatio is resource accepting JWT.
|
||||
# Barong must have private key installed, Peatio must have public key installed.
|
||||
#
|
||||
# You can generate keypair by running:
|
||||
#
|
||||
# ruby -e "require 'openssl'; require 'base64'; OpenSSL::PKey::RSA.generate(2048).tap { |p| puts '', 'PRIVATE RSA KEY (URL-safe Base64 encoded, PEM):', '', Base64.urlsafe_encode64(p.to_pem), '', 'PUBLIC RSA KEY (URL-safe Base64 encoded, PEM):', '', Base64.urlsafe_encode64(p.public_key.to_pem) }"
|
||||
#
|
||||
# Copy the generated private key and put it's value to appropriate variable at JWT provider (for example, at Barong it will be JWT_SHARED_SECRET_KEY).
|
||||
# Copy the generated public key and put it's value to variable JWT_PUBLIC_KEY (at Peatio).
|
||||
#
|
||||
# Peatio and JWT provider should have the same keypair installed, or they would not understand each other.
|
||||
#
|
||||
# You may want to adjust key length or cipher.
|
||||
#
|
||||
# Development and test environments already don't include sample keys.
|
||||
#
|
||||
# You can generate valid JWT by running:
|
||||
#
|
||||
# JWT.encode(payload, OpenSSL::PKey.read(Base64.urlsafe_decode64(ENCODED_PRIVATE_KEY)), ENV.fetch('JWT_ALGORITHM'))
|
||||
#
|
||||
# Replace ENCODED_PRIVATE_KEY with private key printed by previous command.
|
||||
#
|
||||
# You can decode JWT by running:
|
||||
#
|
||||
# JWT.decode(token, OpenSSL::PKey.read(Base64.urlsafe_decode64(ENCODED_PUBLIC_KEY)), true, algorithms: [ENV.fetch('JWT_ALGORITHM')])
|
||||
#
|
||||
# To authenticate using JWT send it's value in "Authorization" header:
|
||||
#
|
||||
# curl -H "Authorization: Bearer TOKEN" http://localhost:3000/api/v2/account/balances
|
||||
#
|
||||
JWT_PUBLIC_KEY: ~
|
||||
JWT_ALGORITHM: RS256 # JWT signing algorithm (mandatory).
|
||||
JWT_ISSUER: ~ # JWT issuer name (optional).
|
||||
JWT_AUDIENCE: peatio # Could be comma-separated value (optional).
|
||||
JWT_DEFAULT_LEEWAY: ~ # Seconds (optional).
|
||||
JWT_ISSUED_AT_LEEWAY: '180' # Seconds (optional).
|
||||
JWT_EXPIRATION_LEEWAY: ~ # Seconds (optional).
|
||||
JWT_NOT_BEFORE_LEEWAY: ~ # Seconds (optional).
|
||||
PEATIO_JWT_PRIVATE_KEY: ~
|
||||
|
||||
# Scout APM configuration variables.
|
||||
SCOUT_KEY: ~ # Your organization key for Scout APM. Found on the settings screen.
|
||||
SCOUT_APP_NAME: ~ # Application name in APM Web UI.
|
||||
SCOUT_LOG_LEVEL: warn # Verboseness of logs (debug, info, warn, error)
|
||||
SCOUT_ENV: production # List of Rails environments for which Scout should be enabled.
|
||||
|
||||
# Configuration variables for dynamic Barong levels (1.8+).
|
||||
MINIMUM_MEMBER_LEVEL_FOR_DEPOSIT: '0'
|
||||
MINIMUM_MEMBER_LEVEL_FOR_WITHDRAW: '0'
|
||||
MINIMUM_MEMBER_LEVEL_FOR_TRADING: '0'
|
||||
|
||||
# Event API configuration.
|
||||
|
||||
# JWT configuration.
|
||||
# You can generate keypair using:
|
||||
#
|
||||
# ruby -e "require 'openssl'; require 'base64'; OpenSSL::PKey::RSA.generate(2048).tap { |p| puts '', 'PRIVATE RSA KEY (URL-safe Base64 encoded, PEM):', '', Base64.urlsafe_encode64(p.to_pem), '', 'PUBLIC RSA KEY (URL-safe Base64 encoded, PEM):', '', Base64.urlsafe_encode64(p.public_key.to_pem) }"
|
||||
#
|
||||
EVENT_API_JWT_PRIVATE_KEY: ~ # Private key. Must be URL-safe Base64 encoded in PEM format.
|
||||
EVENT_API_JWT_ALGORITHM: RS256
|
||||
|
||||
# RabbitMQ configuration.
|
||||
# You can use just «EVENT_API_RABBITMQ_URL» or specify configuration per separate variable.
|
||||
EVENT_API_RABBITMQ_URL: ~
|
||||
EVENT_API_RABBITMQ_HOST: localhost
|
||||
EVENT_API_RABBITMQ_PORT: "5672"
|
||||
EVENT_API_RABBITMQ_USERNAME: guest
|
||||
EVENT_API_RABBITMQ_PASSWORD: guest
|
||||
|
||||
RANGER_HOST: '0.0.0.0'
|
||||
RANGER_PORT: '8081'
|
||||
RANGER_CONNECT_SECURE: 'false'
|
||||
|
||||
BULLET: 'false'
|
||||
|
||||
# Configuration to allow Withdraw via API i.e (POST api/v2/account/withdraws)
|
||||
ENABLE_ACCOUNT_WITHDRAWAL_API: 'true'
|
||||
|
||||
# Configure Vault to verify OTP for Withdraw API
|
||||
#VAULT_ADDR: http://127.0.0.1:8200
|
||||
#VAULT_TOKEN: ""
|
||||
|
||||
# Configure to limit currencies and markets on the platform.
|
||||
MAX_CURRENCIES: ~
|
||||
MAX_MARKETS: ~
|
||||
|
||||
development:
|
||||
<<: *defaults
|
||||
|
||||
# Development configuration variables for Event API JWT.
|
||||
# TODO i think below line must be comment
|
||||
# EVENT_API_JWT_PRIVATE_KEY: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBb3VLVHh2SFVJVDJENmdXaWJRcS9kbW9BUUwyeWJ6SGFiUXRlc1AyL2o1VjkvUExaCmhHNWtLVkpPWjcxVVdMQ3BjZTQxeHZzQ0lKd0Q5MnVDNW5Lak5wblRDTWpwTUJNMGg0aFF4a2VOeHdNeU41N1gKM1QzbWFCVmZzUTNCblErSm84L0tzdUxhODlvY0dDeDgvYlUyOGNld2FxRk8ydUVMWWJiaUZadGFCenFJd0ZCdQpTM3hGQmt6NE16MGgvWEIxTjl5ZDg5d25OMm1oWVBsU0xrTGVUdFoyeWswK2krZHhZd2V4MEozOXJDS0hnRWRKCko1NTZHNmdtZWpJZ3dtcHNVeHJpdkVJRU5jR09POHdmQVBUVy92SFZmc2ROTExHejRtZE9CWmxsa2orcFFQODYKTnFSUjRKSnFDdEg3dHYyaXVBSGI4NnB5anVlZkVGU3ljMmxZRXdJREFRQUJBb0lCQUJrUlViamVZczB5MEdobApzWmVpZmREVmczQnpRVkRIbFZ3TzBlWGZSMm5ya2RZcDhidmwyVmhhcUdKaXl1WlRXZUNFenBYdTcyYmhXK0xxCkV0MHdhMW50MW9LVm1QMmpGd1I4d0NHanhYZ0pUK01yZVFFOWs0WVZOQUxsb1JSdzNiZnVOTDNQRis5TGMrTnMKaFZmdVdhUmdIUkJyL3R6RW9hSEtLWVUxd1djM0poSitNRklNVkZBT0RvaGp6bXNlV2lzTDNnbzVrUC9KYUpVZwprNm13Wnd0QzRvQ3pPQ3FoRGF0WVI3cktJbXMyS1lCNVBwaTRDTThkRzJGTzBwWGxXUU9XT0t2N01TUjlVeEtzCmd4YWFRRlhjajBQM2lSRFVQMDRkSWtqblNtemZmR0F2L3lBTHovZjk0V1lIK3gvd01DWms4ejJ4bnRJclllM3UKN0NOd045RUNnWUVBMEplcThCaXlKczF6YlBpcTlWWnR5L3R0M1dhaXJDbUl4cXRwU2syVU9UNmh2TldiMTUxVwpBMGRWYWEvSVBhdDV4ZkNWdGhkNlB3UGpJbWVPVXQ4Mlhib2JYeE8zREJUcmVzTlRNWUhiMGVUK09sSG04SU5uCnVwOGFxZWpWejc1ME5VYUxGWWpxWk1wVVR1Z2FVREIzNWZ1bXg0SXliNm5LRGMvSStrN25qUlVDZ1lFQXgrZVAKcE4vR1dqYjJUOU1CUm1xdkVtSGxKOXBZSEZpWGZlWnJHdzg3Q2E5WjVDYVp1VzBrSVAwSlhWSDZOOThqL2RvbApDTHZPdE5oZVFoaGUrTU91VXJMT0ttaytpckM5SEk2cW9aT3Nkc0lCc0pXSHdPanB1UW00OWNvdXc0K2ZKOWRxCjN2cTE2bG5EQlNoRU5HTEFhdVBzWDhLRUlYVzhRRnBDM3ppbXFvY0NnWUI2bTh2VVdRL09reEQzeXFyaWpxejMKSzVFR2hKKzF4cXdvNnZSMndtY1B4dXJXemxCT1NxTVdSa1hFVzVpOTl4OGE1REY3MlF6NElWYlBFRU91SHBvYwpPWnFCSmx0LzlJUDlvdll4c1h6K1FUWFdIZkk3Q1dKZFpjd01kMW5HUk5LVnhpTld3eVhUbk1JMXAyUmdJajAzCnA5WCtpMThPRjZVMnZSNExVM256aVFLQmdBVVZzOGFxMW4zRzloN3pyQTJoZXhDSm91MlBsVHdyV0xjZ0hFdFUKNk5pSE9FOGdXRHFxTndnTHg2Z3pCSjFWTkxJcFVWWFdpUng2Z0hOSDhXcDhkN3VzeHFlM2c1cTlnaUh1MHhKSApFbFQyL0ZvRWc2NTVmakJ4dWQydXBkL2RrRnZRRSt6V0RiaUhUZm1jbTVlRmg0VndoTHV1MC9PUjdoYm85TmgrCnRXYVRBb0dCQUwxVjFUTWZZRFhwYjFwaFBaV2pQL29iV1NqK2VyUXlYdit3TTIxVzRYWFI4YTBkV2hOVXdVeDAKdU9WZ2s1ZlN1OExtNG0zWGNYZ09wV0VJVkZJTzFodDFNN0xxZ0VGNGhFOHl6Y0Vldy9HWXR4VkpCTWEyODVpVQpaVUtkeCt6QWd5VFlnYk50VkVseTVobGRuT2orVmNzanVEL3krWEhXWVl5OVpLa2pNdDhECi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
|
||||
# Event API JWT public key value is.
|
||||
# EVENT_API_JWT_PUBLIC_KEY: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFvdUtUeHZIVUlUMkQ2Z1dpYlFxLwpkbW9BUUwyeWJ6SGFiUXRlc1AyL2o1VjkvUExaaEc1a0tWSk9aNzFVV0xDcGNlNDF4dnNDSUp3RDkydUM1bktqCk5wblRDTWpwTUJNMGg0aFF4a2VOeHdNeU41N1gzVDNtYUJWZnNRM0JuUStKbzgvS3N1TGE4OW9jR0N4OC9iVTIKOGNld2FxRk8ydUVMWWJiaUZadGFCenFJd0ZCdVMzeEZCa3o0TXowaC9YQjFOOXlkODl3bk4ybWhZUGxTTGtMZQpUdFoyeWswK2krZHhZd2V4MEozOXJDS0hnRWRKSjU1Nkc2Z21laklnd21wc1V4cml2RUlFTmNHT084d2ZBUFRXCi92SFZmc2ROTExHejRtZE9CWmxsa2orcFFQODZOcVJSNEpKcUN0SDd0djJpdUFIYjg2cHlqdWVmRUZTeWMybFkKRXdJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==
|
||||
|
||||
test:
|
||||
<<: *defaults
|
||||
|
||||
production:
|
||||
<<: *defaults
|
||||
5
config/templates/bench/api_bench.yml.erb
Normal file
5
config/templates/bench/api_bench.yml.erb
Normal file
@@ -0,0 +1,5 @@
|
||||
order_count: 500
|
||||
base_url: 'http://localhost:3000'
|
||||
threads: 10
|
||||
market: 'btcusd'
|
||||
server_token: 'Bearer '
|
||||
36
config/templates/bench/matching.yml.erb
Normal file
36
config/templates/bench/matching.yml.erb
Normal file
@@ -0,0 +1,36 @@
|
||||
- currencies: btc,usd # List of fiat currencies for creating deposits.
|
||||
traders: 25 # Number of members who will trade.
|
||||
threads: 50 # Number of simultaneous threads which will publish messages to RabbitMQ.
|
||||
report_path: bench/reports # Path for saving benchmark report.
|
||||
log_path: bench/log # Path for logging benchmark status.
|
||||
orders:
|
||||
#
|
||||
# Generic config.
|
||||
injector: dummy # Order injector name.
|
||||
number: 100000 # Number of orders to be created and published to RabbitMQ (at least 100_000).
|
||||
step: 10000 # Step for writing sql transactions.
|
||||
markets: btcusd # Markets for performing trading.
|
||||
#
|
||||
# Dummy injector specific config.
|
||||
min_volume: 0.1 # Order min volume (default 0.1).
|
||||
max_volume: 1.0 # Order max volume (default 1.0).
|
||||
min_price: 0.5 # Order min price (default 0.5).
|
||||
max_price: 2.0 # Order max price (default 2.0).
|
||||
|
||||
- currencies: btc,usd # List of fiat currencies for creating deposits.
|
||||
traders: 25 # Number of members who will trade.
|
||||
threads: 50 # Number of simultaneous threads which will publish messages to RabbitMQ.
|
||||
report_path: bench/reports # Path for saving benchmark report.
|
||||
log_path: bench/log # Path for logging benchmark status.
|
||||
orders:
|
||||
#
|
||||
# Generic config.
|
||||
injector: bitfinex # Order injector name.
|
||||
number: 100000 # Number of orders to be created and published to RabbitMQ (at least 100_000).
|
||||
step: 10000 # Step for writing sql transactions.
|
||||
markets: btcusd # Markets for performing trading.
|
||||
#
|
||||
# Bitfinex injector specific config.
|
||||
# Path to bitfinex order history file.
|
||||
# TODO: Add example how to generate this file.
|
||||
data_load_path: config/bench/data/usd-eur.csv
|
||||
36
config/templates/bench/order_processing.yml.erb
Normal file
36
config/templates/bench/order_processing.yml.erb
Normal file
@@ -0,0 +1,36 @@
|
||||
- currencies: btc,usd # List of fiat currencies for creating deposits.
|
||||
traders: 25 # Number of members who will trade.
|
||||
threads: 50 # Number of simultaneous threads which will publish messages to RabbitMQ.
|
||||
report_path: bench/reports # Path for saving benchmark report.
|
||||
log_path: bench/log # Path for logging benchmark status.
|
||||
orders:
|
||||
#
|
||||
# Generic config.
|
||||
injector: dummy # Order injector name.
|
||||
number: 10000 # Number of orders to be created and published to RabbitMQ (at least 2000).
|
||||
step: 10000
|
||||
markets: btcusd # Markets for performing trading.
|
||||
#
|
||||
# Dummy injector specific config.
|
||||
min_volume: 0.1 # Order min volume (default 0.1).
|
||||
max_volume: 1.0 # Order max volume (default 1.0).
|
||||
min_price: 0.5 # Order min price (default 0.5).
|
||||
max_price: 2.0 # Order max price (default 2.0).
|
||||
|
||||
- currencies: btc,usd # List of fiat currencies for creating deposits.
|
||||
traders: 25 # Number of members who will trade.
|
||||
threads: 50 # Number of simultaneous threads which will publish messages to RabbitMQ.
|
||||
report_path: bench/reports # Path for saving benchmark report.
|
||||
log_path: bench/log # Path for logging benchmark status.
|
||||
orders:
|
||||
#
|
||||
# Generic config.
|
||||
injector: bitfinex # Order injector name.
|
||||
number: 10000 # Number of orders to be created and published to RabbitMQ (at least 2000).
|
||||
step: 10000 # Step for writing sql transactions.
|
||||
markets: btcusd # Markets for performing trading.
|
||||
#
|
||||
# Bitfinex injector specific config.
|
||||
# Path to bitfinex order history file.
|
||||
# TODO: Add example how to generate this file.
|
||||
data_load_path: config/bench/data/usd-eur.csv
|
||||
36
config/templates/bench/trade_execution.yml.erb
Normal file
36
config/templates/bench/trade_execution.yml.erb
Normal file
@@ -0,0 +1,36 @@
|
||||
- currencies: btc,usd # List of fiat currencies for creating deposits.
|
||||
traders: 25 # Number of members who will trade.
|
||||
threads: 50 # Number of simultaneous threads which will publish messages to RabbitMQ.
|
||||
report_path: bench/reports # Path for saving benchmark report.
|
||||
log_path: bench/log # Path for logging benchmark status.
|
||||
orders:
|
||||
#
|
||||
# Generic config.
|
||||
injector: dummy # Order injector name.
|
||||
number: 20000 # Number of orders to be created and published to RabbitMQ (at least 2000).
|
||||
step: 10000 # Step for writing sql transactions.
|
||||
markets: btcusd # Markets for performing trading.
|
||||
#
|
||||
# Dummy injector specific config.
|
||||
min_volume: 0.1 # Order min volume (default 0.1).
|
||||
max_volume: 1.0 # Order max volume (default 1.0).
|
||||
min_price: 0.5 # Order min price (default 0.5).
|
||||
max_price: 2.0 # Order max price (default 2.0).
|
||||
|
||||
- currencies: btc,usd # List of fiat currencies for creating deposits.
|
||||
traders: 25 # Number of members who will trade.
|
||||
threads: 50 # Number of simultaneous threads which will publish messages to RabbitMQ.
|
||||
report_path: bench/reports # Path for saving benchmark report.
|
||||
log_path: bench/log # Path for logging benchmark status.
|
||||
orders:
|
||||
#
|
||||
# Generic config.
|
||||
injector: bitfinex # Order injector name.
|
||||
number: 20000 # Number of orders to be created and published to RabbitMQ (at least 4000).
|
||||
step: 10000 # Step for writing sql transactions.
|
||||
markets: btcusd # Markets for performing trading.
|
||||
#
|
||||
# Bitfinex injector specific config.
|
||||
# Path to bitfinex order history file.
|
||||
# TODO: Add example how to generate this file.
|
||||
data_load_path: config/bench/data/usd-eur.csv
|
||||
73
config/templates/management_api_v1.yml.erb
Normal file
73
config/templates/management_api_v1.yml.erb
Normal file
@@ -0,0 +1,73 @@
|
||||
<% if ENV['MANAGEMENT_API_V1_CONFIG'] %>
|
||||
<%= File.read(ENV['MANAGEMENT_API_V1_CONFIG']) %>
|
||||
<% else %>
|
||||
|
||||
# Be sure to restart your server when you modify this file.
|
||||
#
|
||||
# This file keeps all the security configuration variables for «Management API v1».
|
||||
#
|
||||
# Keeps all the public keys used to validate signatures.
|
||||
# All values must be presented in PEM format and be URL-safe Base64 encoded.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# keychain:
|
||||
# backend-1.mycompany.example:
|
||||
# algorithm: RS256
|
||||
# value: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF3UjNPT1RQbzZvZE8wM3hXVDRNawp6TXJuM2pQS2pVdW0rVkc5dUZWODZNejVnMm1ueXdSRDc4MEY4aXVaZm41SGtROFpTUlFHYlRHNnB1dlVWWDFCClA0MWIrUW52VHFtWFhHcE9aSklzV3V2cHA4dHpZenFOejUvcTRRdUZQWDlrczdtaVV2dkNzbmo5S21Wb08yMU4KUVgyOWZUNkRJYldkUnJvWU1IOHloVmRrSjRVQnhYeHlSWmZ4VnN4UFVwckNodEgxN1JwNnQvYVRTR0VZNndQNwpKbEVCZi9Gb0djQk15OU5BOWhqZFMyMWxGcmVYeXdaUzZYdmhrN3dydGJWT2didU5EajdVeWhjS0RCaHA4c2VjCkV4TlB6d2p4ckhGTzhZaitFejBCMmZKQ1FDWW9SVG1kTzVEQS9kRTFHQmtqeXRCZjhDdGVIdExXcmZIU2g5em0KNlFJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==
|
||||
# backend-2.mycompany.example:
|
||||
# algorithm: HS384
|
||||
# value: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFyZm53OXpGMDRCaFlZTk5mblVKawppK2YwWUE2RitDdlZtMGozOEV1c2E2ZHdkRnBaMEFhK0dzRjlEWGpuOXgzTjdpZzlxNnFmbTN5TzdJbmxqZmdZCmp4eU12MmdXcTNTZmhySmZpUWd3dmh2NHJiMzJiTmc3ckxPTVJmenVDeUQ2aFBQU2FueTM3ZnhSNmxKR3E5SUcKUTRJa3JPNmZIOGozUllQVDBGUVlJcXg1a2pNbU9wczFlV2xTR1RYbDZWSDNtVWxxTWVMSjJjL1NMZ3Y3dUxDagpmMVpDTXFELzB4VERWZ0ZxbzJSSlRucEcvUzlXRHdpZ3U0aTdyY1VkeDcrQUMvK2lNSGpNL1VZekRtWHJDQkpaCjBnSUVPV1ZwM2dMMzNocmRZci9uNU11SFRiMXpJUHdJQW1ySHpmWFpwOEQxNVVUdGtENktXU1FINWQ5SnAvVncKN3dJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==
|
||||
# backend-3.mycompany.example:
|
||||
# algorithm: RS512
|
||||
# value: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEzL2VIUUd1V2NFUHhwY2pxaVN5SQpLYmFlTFhnNHhrTFcwMU12eHlPVENMeHNrbVk5T0ViVTBQa2ptaFk1bWhiOXpmVjJqMVBmbXdXQmp5bXJ2alJJCmlWMDdxczA1OUx3UGhyL0JZc0lnYk13bWVEZUp5VHlxTmFvckNkVklhamxMVHhGSklNOGtXTUg1TUcrR2U0b2wKc1VWblEwRDNZdURvNCtPSzJiSDBOY3M5ZEFTWGx4T0lsenpZTlFkUTNCSUxZbFE3MW9CRDNmTWRyaXQwSktVYwphb25jTXJ0RlB2WlRuZjZROUhVM2VpR3NxTHhWczVZRTBGUlVsd0Z4TjZzbnZNQW9rNEpRT3A5cUExUi96WHMwCnRWdUVpeEJ1Sm5jSjZSYlp5UVp5YWg3YzAxd1NLcks1UTRudVh3VlhXUkhvd0gxOTZHMU9TODhoYmVZNHNneTkKdForZ3NsdlZIYWJmK1JqK0JtZmNOYmx2T1lQWlI4K3dVQ2pOWW43L1BWRjQ0NDRzUCtTZkEyejdvaU1OVStrVwpGVHM5dVdRNGxzQ0RIQnd6ZXNFMDc0dmZLMHF4c0NNN0hWeHhVc2gvNGx3aGppZTgrTFNqdzliWTlrcjJxWWFmClRMRnpoVWl2clJMaEpWdnZkQmRRYlBIUFVybnJ2TnFqblRYOWtFcWR4bktrbWluWmhtbU1pakpKa1dGREgwbmgKNmR4ZlZwZ2puYXUzWmoyZkNSNFV6aXNXK25MaExUc1Fadzd0b0NaVUo2aWV6N0psOEpJYWdBVWJ5OW8ycUN4ZgpWcTBwK3pwRlZKUFZzelVQNkZMTzh3Tjd5aThVT3l4T3VmdmEvOHgySmRJTzJ4emlPc2ZLVnhIZTFZRkZtWVdtCnZKaWZ1ZGUrdCtBbS9EM1FMSjlpK2JNQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo=
|
||||
#
|
||||
#
|
||||
keychain: {}
|
||||
|
||||
#
|
||||
# Keeps all the JWT verification options.
|
||||
# The documentation is available at https://github.com/jwt/ruby-jwt#support-for-reserved-claim-names.
|
||||
# Check lib/jwt/default_options.rb for the default options.
|
||||
#
|
||||
jwt: {}
|
||||
|
||||
#
|
||||
# Keep all the API security scopes.
|
||||
#
|
||||
# The API security scope consists of scope name, list of permitted and mandatory signers.
|
||||
# The scope name is associated with API actions. For example, write_deposits is associated with
|
||||
# ability to create deposits and accept them. The scopes which have «write» in the name are supposed
|
||||
# to be dangerous so they must require more signatures then read-only scopes
|
||||
#
|
||||
# Each scope must include list of permitted and mandatory signers.
|
||||
# Peatio validates JWT signatures against permitted keys and doesn't trust
|
||||
# JWTs which don't include signatures from all mandatory signers.
|
||||
#
|
||||
# Example:
|
||||
# scopes:
|
||||
# read_deposits:
|
||||
# permitted_signers: ['backend-1.mycompany.example', 'backend-2.mycompany.example']
|
||||
# mandatory_signers: ['backend-1.mycompany.example']
|
||||
# write_deposits:
|
||||
# permitted_signers: ['backend-1.mycompany.example', 'backend-2.mycompany.example']
|
||||
# mandatory_signers: ['backend-1.mycompany.example', 'backend-2.mycompany.example']
|
||||
#
|
||||
# The available scopes include:
|
||||
# – read_deposits
|
||||
# – write_deposits
|
||||
# – read_withdraws
|
||||
# – write_withdraws
|
||||
# – read_operations
|
||||
# – write_operations
|
||||
# – read_transfers
|
||||
# – write_transfers
|
||||
# – write_members
|
||||
# – read_currencies
|
||||
# – write_currencies
|
||||
# – read_markets
|
||||
# – write_markets
|
||||
# – tools
|
||||
#
|
||||
scopes: {}
|
||||
<% end %>
|
||||
73
config/templates/seed/accounts.yml.erb
Normal file
73
config/templates/seed/accounts.yml.erb
Normal file
@@ -0,0 +1,73 @@
|
||||
<% if ENV['ACCOUNTS_CONFIG'] %>
|
||||
<%= File.read(ENV['ACCOUNTS_CONFIG']) %>
|
||||
<% else %>
|
||||
- code: 101
|
||||
type: asset
|
||||
kind: main
|
||||
currency_type: fiat
|
||||
description: Main Fiat Assets Account
|
||||
scope: platform
|
||||
|
||||
- code: 102
|
||||
type: asset
|
||||
kind: main
|
||||
currency_type: coin
|
||||
description: Main Crypto Assets Account
|
||||
scope: platform
|
||||
|
||||
- code: 201
|
||||
type: liability
|
||||
kind: main
|
||||
currency_type: fiat
|
||||
description: Main Fiat Liabilities Account
|
||||
scope: member
|
||||
|
||||
- code: 202
|
||||
type: liability
|
||||
kind: main
|
||||
currency_type: coin
|
||||
description: Main Crypto Liabilities Account
|
||||
scope: member
|
||||
|
||||
- code: 211
|
||||
type: liability
|
||||
kind: locked
|
||||
currency_type: fiat
|
||||
description: Locked Fiat Liabilities Account
|
||||
scope: member
|
||||
|
||||
- code: 212
|
||||
type: liability
|
||||
kind: locked
|
||||
currency_type: coin
|
||||
description: Locked Crypto Liabilities Account
|
||||
scope: member
|
||||
|
||||
- code: 301
|
||||
type: revenue
|
||||
kind: main
|
||||
currency_type: fiat
|
||||
description: Main Fiat Revenues Account
|
||||
scope: platform
|
||||
|
||||
- code: 302
|
||||
type: revenue
|
||||
kind: main
|
||||
currency_type: coin
|
||||
description: Main Crypto Revenues Account
|
||||
scope: platform
|
||||
|
||||
- code: 401
|
||||
type: expense
|
||||
kind: main
|
||||
currency_type: fiat
|
||||
description: Main Fiat Expenses Account
|
||||
scope: platform
|
||||
|
||||
- code: 402
|
||||
type: expense
|
||||
kind: main
|
||||
currency_type: coin
|
||||
description: Main Crypto Expenses Account
|
||||
scope: platform
|
||||
<% end %>
|
||||
47
config/templates/seed/blockchains.yml.erb
Normal file
47
config/templates/seed/blockchains.yml.erb
Normal file
@@ -0,0 +1,47 @@
|
||||
<% if ENV['BLOCKCHAINS_CONFIG'] %>
|
||||
<%= File.read(ENV['BLOCKCHAINS_CONFIG']) %>
|
||||
<% else %>
|
||||
- key: prt-kovan
|
||||
name: Ethereum Kovan
|
||||
client: parity # API client name.
|
||||
server: http://127.0.0.1:8545 # Public Ethereum node endpoint. IMPORTANT: full syncmode.
|
||||
height: 2500000 # Initial block number from which sync will be started.
|
||||
min_confirmations: 6 # Minimal confirmations needed for withdraw and deposit confirmation.
|
||||
explorer:
|
||||
address: https://kovan.etherscan.io/address/#{address}
|
||||
transaction: https://kovan.etherscan.io/tx/#{txid}
|
||||
status: disabled
|
||||
|
||||
- key: eth-rinkeby
|
||||
name: Ethereum Rinkeby
|
||||
client: geth # API client name.
|
||||
server: http://127.0.0.1:8545 # Public Ethereum node endpoint. IMPORTANT: full syncmode.
|
||||
height: 4000000 # Initial block number from which sync will be started.
|
||||
min_confirmations: 6 # Minimal confirmations needed for withdraw and deposit confirmation.
|
||||
explorer:
|
||||
address: https://rinkeby.etherscan.io/address/#{address}
|
||||
transaction: https://rinkeby.etherscan.io/tx/#{txid}
|
||||
status: active
|
||||
|
||||
- key: eth-mainet
|
||||
name: Ethereum Mainet
|
||||
client: geth # API client name.
|
||||
server: http://127.0.0.1:8545 # Public Ethereum node endpoint. IMPORTANT: full syncmode.
|
||||
height: 7500000 # Initial block number from which sync will be started.
|
||||
min_confirmations: 6 # Minimal confirmations needed for withdraw and deposit confirmation.
|
||||
explorer:
|
||||
address: https://etherscan.io/address/#{address}
|
||||
transaction: https://etherscan.io/tx/#{txid}
|
||||
status: disabled
|
||||
|
||||
- key: btc-testnet
|
||||
name: Bitcoin Testnet
|
||||
client: bitcoin # API client name.
|
||||
server: http://user:password@127.0.0.1:18332 # Public Bitcoin node endpoint.
|
||||
height: 1500000 # Initial block number from which sync will be started.
|
||||
min_confirmations: 6 # Minimal confirmations needed for withdraw and deposit confirmation.
|
||||
explorer:
|
||||
address: https://testnet.blockchain.info/address/#{address}
|
||||
transaction: https://testnet.blockchain.info/tx/#{txid}
|
||||
status: active
|
||||
<% end %>
|
||||
99
config/templates/seed/currencies.yml.erb
Normal file
99
config/templates/seed/currencies.yml.erb
Normal file
@@ -0,0 +1,99 @@
|
||||
<% if ENV['CURRENCIES_CONFIG'] %>
|
||||
<%= File.read(ENV['CURRENCIES_CONFIG']) %>
|
||||
<% else %>
|
||||
- id: usd
|
||||
name: US Dollar
|
||||
type: fiat
|
||||
precision: 2
|
||||
base_factor: 1
|
||||
visible: true
|
||||
deposit_enabled: true
|
||||
withdrawal_enabled: true
|
||||
min_deposit_amount: 0
|
||||
min_collection_amount: 0
|
||||
withdraw_limit_24h: 100
|
||||
withdraw_limit_72h: 200
|
||||
deposit_fee: 0
|
||||
withdraw_fee: 0
|
||||
position: 1
|
||||
options: {}
|
||||
|
||||
- id: btc
|
||||
name: Bitcoin
|
||||
blockchain_key: btc-testnet
|
||||
type: coin
|
||||
precision: 8
|
||||
base_factor: 100_000_000
|
||||
visible: true
|
||||
deposit_enabled: true
|
||||
withdrawal_enabled: true
|
||||
# Deposits with less amount are skipped during blockchain synchronization.
|
||||
# We advise to set value 10 times bigger than the network fee to prevent losses.
|
||||
min_deposit_amount: 0.0000356
|
||||
min_collection_amount: 0.0000356
|
||||
withdraw_limit_24h: 0.1
|
||||
withdraw_limit_72h: 0.2
|
||||
deposit_fee: 0
|
||||
withdraw_fee: 0
|
||||
position: 2
|
||||
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: true
|
||||
withdrawal_enabled: true
|
||||
# Deposits with less amount are skipped during blockchain synchronization.
|
||||
# We advise to set value 10 times bigger than the network fee to prevent losses.
|
||||
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: 3
|
||||
options:
|
||||
# ETH tx fees configurations.
|
||||
#
|
||||
# Maximum amount of gas you're willing to spend on a particular transaction.
|
||||
gas_limit: 21_000
|
||||
# Internal price that is paid for running a transaction on the Ethereum network.
|
||||
gas_price: 1_000_000_000
|
||||
|
||||
- id: trst
|
||||
name: WeTrust
|
||||
blockchain_key: eth-rinkeby
|
||||
parent_id: eth
|
||||
type: coin
|
||||
precision: 8
|
||||
base_factor: 1_000_000 # 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: true
|
||||
withdrawal_enabled: true
|
||||
# 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: 2
|
||||
withdraw_limit_24h: 300
|
||||
withdraw_limit_72h: 600
|
||||
deposit_fee: 0
|
||||
withdraw_fee: 0
|
||||
position: 4
|
||||
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: '0x0000000000000000000000000000000000000000' # Always wrap this value in quotes!
|
||||
<% end %>
|
||||
4
config/templates/seed/deposit_limit.yml.erb
Normal file
4
config/templates/seed/deposit_limit.yml.erb
Normal file
@@ -0,0 +1,4 @@
|
||||
- id: 1
|
||||
kind: 'fiat'
|
||||
kyc_level: 1
|
||||
limit_24_hour: 500000000
|
||||
28
config/templates/seed/engines.yml.erb
Normal file
28
config/templates/seed/engines.yml.erb
Normal file
@@ -0,0 +1,28 @@
|
||||
<% if ENV['ENGINES_CONFIG'] %>
|
||||
<%= File.read(ENV['ENGINES_CONFIG']) %>
|
||||
<% else %>
|
||||
- name: peatio-default-engine
|
||||
driver: peatio
|
||||
state: online
|
||||
- name: local-finex-spot-engine
|
||||
driver: finex-spot
|
||||
state: online
|
||||
- name: opendax-finex-spote-engine
|
||||
driver: opendax
|
||||
uid: U123456789
|
||||
url: https://www.opendax.io/api/v2/finex
|
||||
key: ""
|
||||
secret: ""
|
||||
data: {}
|
||||
# The data field for store some special engines metadata
|
||||
# Can be used in upstream worker
|
||||
# Example for upstream:
|
||||
# {
|
||||
# "rest"=>"https://url",
|
||||
# "websocket"=>"wss://url",
|
||||
# "trade_proxy"=>true,
|
||||
# "orderbook_proxy"=>"true"
|
||||
# }
|
||||
# }
|
||||
state: online
|
||||
<% end %>
|
||||
81
config/templates/seed/markets.yml.erb
Normal file
81
config/templates/seed/markets.yml.erb
Normal file
@@ -0,0 +1,81 @@
|
||||
<% if ENV['MARKETS_CONFIG'] %>
|
||||
<%= File.read(ENV['MARKETS_CONFIG']) %>
|
||||
<% else %>
|
||||
- id: btcusd
|
||||
base_unit: btc
|
||||
quote_unit: usd
|
||||
engine_name: peatio-default-engine
|
||||
amount_precision: 4
|
||||
price_precision: 4
|
||||
min_price: 0.0001
|
||||
max_price: 0.0
|
||||
min_amount: 0.0001
|
||||
position: 100
|
||||
state: enabled
|
||||
data: {}
|
||||
|
||||
- id: ethusd
|
||||
base_unit: eth
|
||||
quote_unit: usd
|
||||
engine_name: peatio-default-engine
|
||||
amount_precision: 4
|
||||
price_precision: 4
|
||||
min_price: 0.0001
|
||||
max_price: 0.0
|
||||
min_amount: 0.0001
|
||||
position: 101
|
||||
state: enabled
|
||||
data: {}
|
||||
|
||||
- id: trstusd
|
||||
base_unit: trst
|
||||
quote_unit: usd
|
||||
engine_name: peatio-default-engine
|
||||
amount_precision: 4
|
||||
price_precision: 4
|
||||
min_price: 0.0001
|
||||
max_price: 0.0
|
||||
min_amount: 0.0001
|
||||
position: 102
|
||||
state: enabled
|
||||
data: {}
|
||||
|
||||
- id: ethbtc
|
||||
base_unit: eth
|
||||
quote_unit: btc
|
||||
engine_name: peatio-default-engine
|
||||
amount_precision: 4
|
||||
price_precision: 4
|
||||
min_price: 0.0001
|
||||
max_price: 0.0
|
||||
min_amount: 0.0001
|
||||
position: 103
|
||||
state: enabled
|
||||
data: {}
|
||||
|
||||
- id: trstbtc
|
||||
base_unit: trst
|
||||
quote_unit: btc
|
||||
engine_name: peatio-default-engine
|
||||
amount_precision: 4
|
||||
price_precision: 4
|
||||
min_price: 0.0001
|
||||
max_price: 0.0
|
||||
min_amount: 0.0001
|
||||
position: 104
|
||||
state: enabled
|
||||
data: {}
|
||||
|
||||
- id: trsteth
|
||||
base_unit: trst
|
||||
quote_unit: eth
|
||||
engine_name: peatio-default-engine
|
||||
amount_precision: 4
|
||||
price_precision: 4
|
||||
min_price: 0.0001
|
||||
max_price: 0.0
|
||||
min_amount: 0.0001
|
||||
position: 105
|
||||
state: enabled
|
||||
data: {}
|
||||
<% end %>
|
||||
28
config/templates/seed/members.yml.erb
Normal file
28
config/templates/seed/members.yml.erb
Normal file
@@ -0,0 +1,28 @@
|
||||
- id: 1
|
||||
uid: '1'
|
||||
email: 'test1@test.com'
|
||||
level: 2
|
||||
role: 'admin'
|
||||
group: 'vip-3'
|
||||
state: 'active'
|
||||
|
||||
- id: 2
|
||||
uid: '2'
|
||||
email: 'test2@test.com'
|
||||
level: 2
|
||||
role: 'admin'
|
||||
group: 'vip-3'
|
||||
state: 'active'
|
||||
|
||||
|
||||
|
||||
- id: 3
|
||||
uid: '3'
|
||||
email: 'test3@test.com'
|
||||
level: 2
|
||||
role: 'admin'
|
||||
group: 'vip-3'
|
||||
state: 'active'
|
||||
|
||||
|
||||
|
||||
29
config/templates/seed/trading_fees.yml.erb
Normal file
29
config/templates/seed/trading_fees.yml.erb
Normal file
@@ -0,0 +1,29 @@
|
||||
<% if ENV['TRADING_FEES_CONFIG'] %>
|
||||
<%= File.read(ENV['TRADING_FEES_CONFIG']) %>
|
||||
<% else %>
|
||||
- market_id: any
|
||||
group: any
|
||||
maker: 0.002
|
||||
taker: 0.002
|
||||
|
||||
- market_id: any
|
||||
group: vip-0
|
||||
maker: 0.001
|
||||
taker: 0.002
|
||||
|
||||
- market_id: any
|
||||
group: vip-1
|
||||
maker: 0.0008
|
||||
taker: 0.0018
|
||||
|
||||
- market_id: any
|
||||
group: vip-2
|
||||
maker: 0.0006
|
||||
taker: 0.0016
|
||||
|
||||
- market_id: any
|
||||
group: vip-3
|
||||
maker: 0.0
|
||||
taker: 0.0014
|
||||
|
||||
<% end %>
|
||||
108
config/templates/seed/wallets.yml.erb
Normal file
108
config/templates/seed/wallets.yml.erb
Normal file
@@ -0,0 +1,108 @@
|
||||
<% if ENV['WALLETS_CONFIG'] %>
|
||||
<%= File.read(ENV['WALLETS_CONFIG']) %>
|
||||
<% else %>
|
||||
- name: Ethereum Deposit Wallet
|
||||
blockchain_key: eth-rinkeby
|
||||
currency_ids: eth,trst
|
||||
# Address where deposits will be collected to.
|
||||
address: '0x2b9fBC10EbAeEc28a8Fc10069C0BC29E45eBEB9C' # IMPORTANT: Always wrap this value in quotes!
|
||||
kind: deposit # Wallet kind (deposit, hot, warm, cold or fee).
|
||||
max_balance: 0.0
|
||||
status: active
|
||||
gateway: geth # Gateway client name.
|
||||
settings:
|
||||
#
|
||||
# Geth gateway client settings.
|
||||
uri: http://127.0.0.1:8545
|
||||
secret: 'changeme'
|
||||
|
||||
- name: Ethereum Hot Wallet
|
||||
blockchain_key: eth-rinkeby
|
||||
currency_ids: eth,trst
|
||||
# Address where deposits will be collected to.
|
||||
address: '0x270704935783087a01c7a28d8f2d8f01670c8050' # IMPORTANT: Always wrap this value in quotes!
|
||||
kind: hot # Wallet kind (deposit, hot, warm, cold or fee).
|
||||
max_balance: 100.0
|
||||
status: active
|
||||
gateway: geth # Gateway client name.
|
||||
settings:
|
||||
#
|
||||
# Geth gateway client settings.
|
||||
uri: http://127.0.0.1:8545
|
||||
secret: 'test'
|
||||
|
||||
- name: Ethereum Warm Wallet
|
||||
blockchain_key: eth-rinkeby
|
||||
currency_ids: eth,trst
|
||||
# Address where deposits will be collected to.
|
||||
address: '0x2b9fBC10EbAeEc28a8Fc10069C0BC29E45eBEB9C' # IMPORTANT: Always wrap this value in quotes!
|
||||
kind: warm # Wallet kind (deposit, hot, warm, cold or fee).
|
||||
max_balance: 1000.0
|
||||
status: active
|
||||
gateway: geth # Gateway client name.
|
||||
settings:
|
||||
#
|
||||
# Geth gateway client settings.
|
||||
uri: http://127.0.0.1:8545
|
||||
secret: 'test'
|
||||
|
||||
- name: Ethereum Wallet for paying ERC20 fees
|
||||
blockchain_key: eth-rinkeby
|
||||
currency_ids: eth
|
||||
# Address where deposits will be collected to.
|
||||
address: '0x270704935783087a01c7a28d8f2d8f01670c8050' # IMPORTANT: Always wrap this value in quotes!
|
||||
kind: fee # Wallet kind (deposit, hot, warm, cold or fee).
|
||||
max_balance: 100.0
|
||||
status: active
|
||||
gateway: geth # Gateway client name.
|
||||
settings:
|
||||
#
|
||||
# Geth gateway client settings.
|
||||
uri: http://127.0.0.1:8545
|
||||
secret: 'test'
|
||||
|
||||
- name: Bitcoin Deposit Wallet
|
||||
blockchain_key: btc-testnet
|
||||
currency_ids: btc
|
||||
# Address where deposits will be collected to.
|
||||
address: '2N4qYjye5yENLEkz4UkLFxzPaxJatF3kRwf' # IMPORTANT: Always wrap this value in quotes!
|
||||
kind: deposit # Wallet kind (deposit, hot, warm, cold or fee).
|
||||
max_balance: 0.0
|
||||
status: active
|
||||
gateway: bitcoind # Gateway client name.
|
||||
settings:
|
||||
#
|
||||
# Bitcoind gateway client settings.
|
||||
uri: http://user:password@127.0.0.1:18332
|
||||
|
||||
- name: Bitcoin Hot Wallet
|
||||
blockchain_key: btc-testnet
|
||||
currency_ids: btc
|
||||
# Address where deposits will be collected to.
|
||||
address: '2N4qYjye5yENLEkz4UkLFxzPaxJatF3kRwf' # IMPORTANT: Always wrap this value in quotes!
|
||||
kind: hot # Wallet kind (deposit, hot, warm, cold or fee).
|
||||
max_balance: 0.0
|
||||
status: active
|
||||
gateway: bitcoind # Gateway client name.
|
||||
settings:
|
||||
#
|
||||
# Bitcoind gateway client settings.
|
||||
uri: http://user:password@127.0.0.1:18332
|
||||
# skip_deposit_collection - defines if deposit will be collected to
|
||||
# this wallet. Supported values: true | false. By default `false`.
|
||||
skip_deposit_collection: true
|
||||
|
||||
- name: Bitcoin Warm Wallet
|
||||
blockchain_key: btc-testnet
|
||||
currency_ids: btc
|
||||
# Address where deposits will be collected to.
|
||||
address: '2N4qYjye5yENLEkz4UkLFxzPaxJatF3kRwf' # IMPORTANT: Always wrap this value in quotes!
|
||||
kind: warm # Wallet kind (deposit, hot, warm, cold or fee).
|
||||
max_balance: 0.0
|
||||
status: active
|
||||
gateway: bitcoind # Gateway client name.
|
||||
settings:
|
||||
#
|
||||
# Bitcoind gateway client settings.
|
||||
uri: http://user:password@127.0.0.1:18332
|
||||
<% end %>
|
||||
21
config/templates/seed/whitelisted_smart_contracts.yml.erb
Normal file
21
config/templates/seed/whitelisted_smart_contracts.yml.erb
Normal file
@@ -0,0 +1,21 @@
|
||||
<% if ENV['WHITELISTED_CONTRACTS'] %>
|
||||
<%= File.read(ENV['WHITELISTED_CONTRACTS']) %>
|
||||
<% else %>
|
||||
|
||||
- blockchain_key: eth-mainet
|
||||
address: '0x6c0b51971650d28821ce30b15b02b9826a20b129'
|
||||
state: active
|
||||
|
||||
- blockchain_key: eth-mainet
|
||||
address: '0x1522900b6dafac587d499a862861c0869be6e428'
|
||||
state: active
|
||||
|
||||
- blockchain_key: eth-rinkeby
|
||||
address: '0xbbd602bb278edff65cbc967b9b62095ad5be23a3'
|
||||
state: active
|
||||
|
||||
- blockchain_key: eth-rinkeby
|
||||
address: '0xe3cb6897d83691a8eb8458140a1941ce1d6e6dac'
|
||||
state: active
|
||||
|
||||
<% end %>
|
||||
9
config/templates/seed/withdraw_limits.yml.erb
Normal file
9
config/templates/seed/withdraw_limits.yml.erb
Normal file
@@ -0,0 +1,9 @@
|
||||
<% if ENV['WITHDRAW_LIMITS_CONFIG'] %>
|
||||
<%= File.read(ENV['WITHDRAW_LIMITS_CONFIG']) %>
|
||||
<% else %>
|
||||
- kyc_level: any
|
||||
group: any
|
||||
# limits in USD
|
||||
limit_24_hour: 100
|
||||
limit_1_month: 1000
|
||||
<% end %>
|
||||
Reference in New Issue
Block a user