Arquivo de inicialização
Um arquivo .sh, também conhecido como shell script, é um arquivo de texto que contém uma série de comandos que são executados em sequência quando o arquivo é chamado. No contexto do Docker, um arquivo .sh pode ser usado como um script de inicialização para executar comandos personalizados após a inicialização de um contêiner.
Depois que um contêiner é iniciado, é possível executar comandos adicionais para configurar o ambiente, definir variáveis de ambiente, iniciar aplicativos, entre outras tarefas. O arquivo .sh é uma maneira fácil e comum de automatizar essas tarefas. O arquivo .sh é executado dentro do contêiner, assim como qualquer outro comando que possa ser executado em um terminal.
Por exemplo, se o contêiner precisa iniciar um aplicativo específico assim que for iniciado, um arquivo .sh pode ser criado para executar esse comando. Esse arquivo pode ser incluído na definição do contêiner como parte de seu sistema de arquivos ou montado como um volume no contêiner.
Em resumo, um arquivo .sh é um script que pode ser executado após a inicialização de um contêiner para executar tarefas personalizadas de configuração e inicialização. É uma maneira útil de automatizar tarefas e personalizar o comportamento do contêiner de acordo com as necessidades específicas de cada aplicativo.
Abaixo está o script que é executado após subir o container workspace
Details
# COMANDS PHP ARTISAN TASKS
runAllCommands(){
#link storage
echo -e "\033[33mRUN Link Storage\033[0m "
php artisan 'storage:link'
#Staking Rewards Calculation
echo -e "\033[33mRUN staking:rewards-calculate\033[0m "
php artisan 'staking:rewards-calculate'
#Staking Status
echo -e "\033[33mRUN staking:status\033[0m "
php artisan 'staking:status'
# Launchpad
echo -e "\033[33mRUN launchpad:state-monitor\033[0m "
php artisan 'launchpad:state-monitor'
#Referral
echo -e "\033[33mRUN transaction:referral-credits\033[0m "
php artisan 'transaction:referral-credits'
# Wallets
echo -e "\033[33mRUN wallets:coinpayments-wallet-balance\033[0m "
php artisan 'wallets:coinpayments-wallet-balance'
echo -e "\033[33mRUN wallets:ethereum-wallet-balance\033[0m "
php artisan 'wallets:ethereum-wallet-balance'
echo -e "\033[33mRUN wallets:doric-wallet-balance\033[0m "
php artisan 'wallets:doric-wallet-balance'
echo -e "\033[33mRUN wallets:bnb-wallet-balance\033[0m "
php artisan 'wallets:bnb-wallet-balance'
echo -e "\033[33mRUN wallets:trx-wallet-balance\033[0m "
php artisan 'wallets:trx-wallet-balance'
# Market
echo -e "\033[33mRUN market-monitor:stats\033[0m "
php artisan 'market-monitor:stats'
# Bnb
echo -e "\033[33mRUN bnb:monitor-bep-deposits\033[0m "
php artisan 'bnb:monitor-bep-deposits'
echo -e "\033[33mRUN bnb:monitor-bnb-deposits\033[0m "
php artisan 'bnb:monitor-bnb-deposits'
echo -e "\033[33mRUN bnb:bep-transfer-pending\033[0m "
php artisan 'bnb:bep-transfer-pending'
echo -e "\033[33mRUN bnb:bnb-transfer-pending\033[0m "
php artisan 'bnb:bnb-transfer-pending'
echo -e "\033[33mRUN bnb:bnb-withdrawals-pending\033[0m "
php artisan 'bnb:bnb-withdrawals-pending'
# Ethereum
echo -e "\033[33mRUN ethereum:monitor-erc-deposits\033[0m "
php artisan 'ethereum:monitor-erc-deposits'
echo -e "\033[33mRUN ethereum:monitor-ethereum-deposits\033[0m "
php artisan 'ethereum:monitor-ethereum-deposits'
echo -e "\033[33mRUN ethereum:erc-transfer-pending\033[0m "
php artisan 'ethereum:erc-transfer-pending'
echo -e "\033[33mRUN ethereum:eth-transfer-pending\033[0m "
php artisan 'ethereum:eth-transfer-pending'
echo -e "\033[33mRUN ethereum:eth-withdrawals-pending\033[0m "
php artisan 'ethereum:eth-withdrawals-pending'
# Doric
echo -e "\033[33mRUN doric:monitor-drc20-deposits\033[0m "
php artisan 'doric:monitor-drc20-deposits'
echo -e "\033[33mRUN doric:monitor-doric-deposits\033[0m "
php artisan 'doric:monitor-doric-deposits'
echo -e "\033[33mRUN doric:drc20-transfer-pending\033[0m "
php artisan 'doric:drc20-transfer-pending'
echo -e "\033[33mRUN doric:drc-transfer-pending\033[0m "
php artisan 'doric:drc-transfer-pending'
echo -e "\033[33mRUN doric:drc-withdrawals-pending\033[0m "
php artisan 'doric:drc-withdrawals-pending'
# Tron
echo -e "\033[33mRUN tron:monitor-trx-deposits\033[0m "
php artisan 'tron:monitor-trx-deposits'
echo -e "\033[33mRUN tron:monitor-trc-deposits\033[0m "
php artisan 'tron:monitor-trc-deposits'
echo -e "\033[33mRUN tron:trx-withdrawals-pending\033[0m "
php artisan 'tron:trx-withdrawals-pending'
}
# CONFIG ENVIRONMENT
runInstallConfig() {
#install composer packages
echo -e "\033[33mDELETING VENDOR\033[0m"
rm -rf vendor
echo -e "\n\n"
echo -e "\033[33mINSTALL COMPOSE\033[0m"
composer install
echo -e "\n\n"
#install migrations and seeds
echo -e "\033[33mRUN MIGRATE AND SEED\033[0m"
php artisan migrate
php artisan db:seed
echo -e "\n\n"
#Install Ziggy
echo -e "\033[33mINSTALL ZIGGY\033[0m"
php artisan ziggy:generate
echo -e "\n\n"
#Install Pm2
echo -e "\033[33mINSTALL PM2\033[0m "
npm install pm2 -g
echo -e "\n\n"
#Install NPM
echo -e "\033[33mINSTALL NPM\033[0m "
npm install
echo -e "\n\n"
echo -e "\033[33mNPM RUN DEV\033[0m "
npm run dev
echo -e "\n\n"
echo -e "\033[33mINSTALL PACKAGES BRIDGE\033[0m "
cd bridges/doric/
npm install
cd ../ethereum/
npm install
cd ../bnb/
npm install
echo -e "\n\n"
#Start PM2
echo -e "\033[33mSTART PM2\033[0m "
cd ../../
pm2 start ./bridges.config.js
echo -e "\n\n"
}
## DECLARE FUNTIONS DATA
timestamp=''
getTimestamp() {
timestamp=$(date +%s)
}
hourActual=''
minActual=''
getHourMinActual() {
dayHour=$(date +%F_%T)
splitdayHour=(${dayHour//_/ })
splitHour=(${splitdayHour[1]//:/ })
hourActual=${splitHour[0]}
minActual=${splitHour[1]}
}
## RUN SCHEDULE
runInstallConfig
runAllCommands
getTimestamp
getHourMinActual
## DEFINE CONSTANT TIME COUNT IN SECONDS
daily=86400 # seconds # 1 day
everyFifteenMinutes=900 # seconds # 15 minutes
everyFiveMinutes=300 # seconds # 5 minutes
everyThreeMinutes=180 # seconds # 3 minutes
everyMinute=60 # seconds # 1 minutes
everyThirtySeconds=30 # seconds
## DEFINE VARIABLE OF THE TIME
lastRunStakingRewardsCalculate=$timestamp
lastRunStakingStatus=$timestamp
lastRunLaunchpadStateMonitor=$timestamp
lastRunTransactionReferralCredits=$timestamp
lastRunWalletsCoinpaymentsWalletBalance=$timestamp
lastRunWalletsEthereumWalletBalance=$timestamp
lastRunWalletsDoricwalletBalance=$timestamp
lastRunWalletsBnbwalletBalance=$timestamp
lastRunWalletsTrxwalletBalance=$timestamp
lastRunMarketMonitorStats=$timestamp
lastRunBnbMonitorBepDeposits=$timestamp
lastRunBnbMonitorBnbDeposits=$timestamp
lastRunBnbBepTransferPending=$timestamp
lastRunBnbTransferPending=$timestamp
lastRunBnbWithdrawalsPending=$timestamp
lastRunEthereumMonitorErcDeposits=$timestamp
lastRunEthereumMonitorEthereumDeposits=$timestamp
lastRunEthereumErcTransferPending=$timestamp
lastRunEthereumEthTransferPending=$timestamp
lastRunEthereumEthWithdrawalsPending=$timestamp
lastRunDoricMonitorDrc20Deposits=$timestamp
lastRunDoricMonitorDoricDeposits=$timestamp
lastRunDoricDrc20TransferPending=$timestamp
lastRunDoricDrcTransferPending=$timestamp
lastRunDoricDrcWithdrawalsPending=$timestamp
lastRunTronMonitorTrxDeposits=$timestamp
lastRunTronMonitorTrcDeposits=$timestamp
lastRunTronTrxWithdrawalsPending=$timestamp
lastRunSaveTradesByBinance=$timestamp
echo -e "\n"
echo -e "\033[32mRUN COMMANDS WITH TIMER\033[0m "
echo -e "\n"
#Staking Rewards Calculation
execStakingRewardsCalculate(){
secParam=$1
hourParam=$2
minParam=$3
nextExec=$(expr ${secParam} + ${lastRunStakingRewardsCalculate})
if [[ $(($hourParam)) -eq $(($hourActual)) ]] && [[ $(($minActual)) -ge $(($minParam)) ]] && [[ $(($timestamp)) -ge $(($nextExec)) ]];
then
echo -e "\033[33mRUN staking:rewards-calculate\033[0m "
php artisan 'staking:rewards-calculate'
lastRunStakingRewardsCalculate=$nextExec
fi
}
#Staking Status
execStakingStatus(){
secParam=$1
hourParam=$2
minParam=$3
nextExec=$(expr ${secParam} + ${lastRunStakingStatus})
if [[ $(($hourParam)) -eq $(($hourActual)) ]] && [[ $(($minActual)) -ge $(($minParam)) ]] && [[ $(($timestamp)) -ge $(($nextExec)) ]];
then
echo -e "\033[33mRUN staking:status\033[0m "
php artisan 'staking:status'
lastRunStakingStatus=$nextExec
fi
}
# Launchpad
execLaunchpadStateMonitor(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunLaunchpadStateMonitor})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN launchpad:state-monitor\033[0m "
php artisan 'launchpad:state-monitor'
lastRunLaunchpadStateMonitor=$nextExec
fi
}
#Referral
execTransactionReferralCredits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunTransactionReferralCredits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN transaction:referral-credits\033[0m "
php artisan 'transaction:referral-credits'
lastRunTransactionReferralCredits=$nextExec
fi
}
# Market
execMarketMonitorStats(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunMarketMonitorStats})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN market-monitor:stats\033[0m "
php artisan 'market-monitor:stats'
lastRunMarketMonitorStats=$nextExec
fi
}
# Wallets
execWalletsCoinpaymentsWalletBalance(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunWalletsCoinpaymentsWalletBalance})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN wallets:coinpayments-wallet-balance\033[0m "
php artisan 'wallets:coinpayments-wallet-balance'
lastRunWalletsCoinpaymentsWalletBalance=$nextExec
fi
}
execWalletsEthereumWalletBalance(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunWalletsEthereumWalletBalance})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN wallets:ethereum-wallet-balance\033[0m "
php artisan 'wallets:ethereum-wallet-balance'
lastRunWalletsEthereumWalletBalance=$nextExec
fi
}
execWalletsDoricwalletBalance(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunWalletsDoricwalletBalance})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN wallets:doric-wallet-balance\033[0m "
php artisan 'wallets:doric-wallet-balance'
lastRunWalletsDoricwalletBalance=$nextExec
fi
}
execWalletsBnbwalletBalance(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunWalletsBnbwalletBalance})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN wallets:bnb-wallet-balance\033[0m "
php artisan 'wallets:bnb-wallet-balance'
lastRunWalletsBnbwalletBalance=$nextExec
fi
}
execWalletsTrxwalletBalance(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunWalletsTrxwalletBalance})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN wallets:trx-wallet-balance\033[0m "
php artisan 'wallets:trx-wallet-balance'
lastRunWalletsTrxwalletBalance=$nextExec
fi
}
# Bnb
execBnbMonitorBepDeposits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunBnbMonitorBepDeposits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN bnb:monitor-bep-deposits\033[0m "
php artisan 'bnb:monitor-bep-deposits'
lastRunBnbMonitorBepDeposits=$nextExec
fi
}
execBnbMonitorBnbDeposits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunBnbMonitorBnbDeposits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN bnb:monitor-bnb-deposits\033[0m "
php artisan 'bnb:monitor-bnb-deposits'
lastRunBnbMonitorBnbDeposits=$nextExec
fi
}
execBnbBepTransferPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunBnbBepTransferPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN bnb:bep-transfer-pending\033[0m "
php artisan 'bnb:bep-transfer-pending'
lastRunBnbBepTransferPending=$nextExec
fi
}
execBnbTransferPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunBnbTransferPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN bnb:bnb-transfer-pending\033[0m "
php artisan 'bnb:bnb-transfer-pending'
lastRunBnbTransferPending=$nextExec
fi
}
execBnbWithdrawalsPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunBnbWithdrawalsPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN bnb:bnb-withdrawals-pending\033[0m "
php artisan 'bnb:bnb-withdrawals-pending'
lastRunBnbWithdrawalsPending=$nextExec
fi
}
# Ethereum
execEthereumMonitorErcDeposits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunEthereumMonitorErcDeposits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN ethereum:monitor-erc-deposits\033[0m "
php artisan 'ethereum:monitor-erc-deposits'
lastRunEthereumMonitorErcDeposits=$nextExec
fi
}
execEthereumMonitorEthereumDeposits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunEthereumMonitorEthereumDeposits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN ethereum:monitor-ethereum-deposits\033[0m "
php artisan 'ethereum:monitor-ethereum-deposits'
lastRunEthereumMonitorEthereumDeposits=$nextExec
fi
}
execEthereumErcTransferPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunEthereumErcTransferPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN ethereum:erc-transfer-pending\033[0m "
php artisan 'ethereum:erc-transfer-pending'
lastRunEthereumErcTransferPending=$nextExec
fi
}
execEthereumEthTransferPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunEthereumEthTransferPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN ethereum:eth-transfer-pending\033[0m "
php artisan 'ethereum:eth-transfer-pending'
lastRunEthereumEthTransferPending=$nextExec
fi
}
execEthereumEthWithdrawalsPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunEthereumEthWithdrawalsPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN ethereum:eth-withdrawals-pending\033[0m "
php artisan 'ethereum:eth-withdrawals-pending'
lastRunEthereumEthWithdrawalsPending=$nextExec
fi
}
# Doric
execDoricMonitorDrc20Deposits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunDoricMonitorDrc20Deposits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN doric:monitor-drc20-deposits\033[0m "
php artisan 'doric:monitor-drc20-deposits'
lastRunDoricMonitorDrc20Deposits=$nextExec
fi
}
execDoricMonitorDoricDeposits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunDoricMonitorDoricDeposits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN doric:monitor-doric-deposits\033[0m "
php artisan 'doric:monitor-doric-deposits'
lastRunDoricMonitorDoricDeposits=$nextExec
fi
}
execDoricDrc20TransferPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunDoricDrc20TransferPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN doric:drc20-transfer-pending\033[0m "
php artisan 'doric:drc20-transfer-pending'
lastRunDoricDrc20TransferPending=$nextExec
fi
}
execDoricDrcTransferPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunDoricDrcTransferPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN doric:drc-transfer-pending\033[0m "
php artisan 'doric:drc-transfer-pending'
lastRunDoricDrcTransferPending=$nextExec
fi
}
execDoricDrcWithdrawalsPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunDoricDrcWithdrawalsPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN doric:drc-withdrawals-pending\033[0m "
php artisan 'doric:drc-withdrawals-pending'
lastRunDoricDrcWithdrawalsPending=$nextExec
fi
}
# Tron
execTronMonitorTrxDeposits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunTronMonitorTrxDeposits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN tron:monitor-trx-deposits\033[0m "
php artisan 'tron:monitor-trx-deposits'
lastRunTronMonitorTrxDeposits=$nextExec
fi
}
execTronMonitorTrcDeposits(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunTronMonitorTrcDeposits})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN tron:monitor-trc-deposits\033[0m "
php artisan 'tron:monitor-trc-deposits'
lastRunTronMonitorTrcDeposits=$nextExec
fi
}
execTronTrxWithdrawalsPending(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunTronTrxWithdrawalsPending})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN tron:trx-withdrawals-pending\033[0m "
php artisan 'tron:trx-withdrawals-pending'
lastRunTronTrxWithdrawalsPending=$nextExec
fi
}
execSaveTradesByBinance(){
secParam=$1
nextExec=$(expr ${secParam} + ${lastRunSaveTradesByBinance})
if [[ $(($timestamp)) -ge $(($nextExec)) ]]
then
echo -e "\033[33mRUN binance:save-trades\033[0m "
php artisan 'binance:save-trades'
lastRunSaveTradesByBinance=$nextExec
fi
}
## RUN SCHEDULE WITH TIMER
while true
do
#Staking Rewards Calculation
stakingRewardsHour=0
stakingRewardsMin=0
execStakingRewardsCalculate $daily $stakingRewardsHour $stakingRewardsMin
#Staking Status
stakingStatusHour=23
stakingStatusMin=30
execStakingStatus $daily $stakingRewardsHour $stakingRewardsMin
# Launchpad
execLaunchpadStateMonitor $everyMinute
#Referral
execTransactionReferralCredits $everyFiveMinutes
# Market
execMarketMonitorStats $daily
# Wallets
execWalletsCoinpaymentsWalletBalance $everyFifteenMinutes
execWalletsEthereumWalletBalance $everyFifteenMinutes
execWalletsDoricwalletBalance $everyFifteenMinutes
execWalletsBnbwalletBalance $everyFifteenMinutes
execWalletsTrxwalletBalance $everyFifteenMinutes
# Bnb
execBnbMonitorBepDeposits $everyThreeMinutes
execBnbMonitorBnbDeposits $everyThreeMinutes
execBnbBepTransferPending $everyThreeMinutes
execBnbTransferPending $everyThreeMinutes
execBnbWithdrawalsPending $everyThreeMinutes
# Ethereum
execEthereumMonitorErcDeposits $everyThreeMinutes
execEthereumMonitorEthereumDeposits $everyThreeMinutes
execEthereumErcTransferPending $everyThreeMinutes
execEthereumEthTransferPending $everyThreeMinutes
execEthereumEthWithdrawalsPending $everyThreeMinutes
# Doric
execDoricMonitorDrc20Deposits $everyThreeMinutes
execDoricMonitorDoricDeposits $everyThreeMinutes
execDoricDrc20TransferPending $everyThreeMinutes
execDoricDrcTransferPending $everyThreeMinutes
execDoricDrcWithdrawalsPending $everyThreeMinutes
# Tron
execTronMonitorTrxDeposits $everyThreeMinutes
execTronMonitorTrcDeposits $everyThreeMinutes
execTronTrxWithdrawalsPending $everyThreeMinutes
execSaveTradesByBinance $everyThirtySeconds
sleep 30;
getTimestamp
getHourMinActual
done
Explicando o arquivo
O arquivo é organizado em duas partes distintas: a primeira seção contém funções responsáveis pela instalação e configuração de dependências do projeto, enquanto a segunda seção apresenta rotinas agendadas que executam tarefas de forma automática em períodos determinados. Essa separação torna o código mais modular e de fácil manutenção, permitindo que cada parte possa ser alterada ou atualizada de forma independente.
runInstallConfig()
A função em questão pode ser separada em várias etapas para facilitar a compreensão e execução.
rm -rf vendor
- Limpa a pasta vendor para garantir uma instalação limpa das dependências do projeto;
composer install
- Executa o comando composer install para reinstalar todas as dependências do projeto, garantindo que estejam atualizadas e em conformidade com as especificações do arquivo composer.json;
php artisan migrate
php artisan db:seed
- Executa as migrações e seeders necessárias;
php artisan ziggy:generate
- Gera um arquivo JS com todas as rotas nomeadas definidas no Laravel usando o pacote ziggy;
npm install pm2 -g
- Instala a extensão PM2 usando o NPM;
npm install
- Instala todos os pacotes necessários usando o NPM;
npm run dev
- Compila os arquivos de frontend;
cd bridges/doric/
npm install
- Instala as extensões da bridge do Doric;
cd ../ethereum/
npm install
- Instala as extensões da bridge do Ethereum;
cd ../bnb/
npm install
- Instala as extensões da bridge da BNB;
cd ../../
pm2 start ./bridges.config.js
- Usa o arquivo
./bridges.config.jspara subir todos os serviços de bridge especificados usando o PM2.
Arquivo bridges.config.js
module.exports = {
apps: [
{
name: "doric-bridge",
script: "./bridges/doric/app.js",
watch: false,
},
{
name: "eth-bridge",
script: "./bridges/ethereum/app.js",
watch: false,
},
{
name: "bnb-bridge",
script: "./bridges/bnb/app.js",
watch: false
}
]
}
runAllCommands()
O objetivo dessa função é executar todos os comandos necessários para o projeto funcionar corretamente. Abaixo estão listados todos os comandos e cada um deles será explicado em detalhes.
php artisan 'storage:link'
O comando php artisan storage:link cria um link simbólico entre a pasta de armazenamento de arquivos do Laravel (localizada em storage/app/public) e a pasta pública do projeto (geralmente chamada de public).
Isso permite que os arquivos armazenados em storage/app/public sejam acessados e baixados pelo navegador, já que os arquivos na pasta public são acessíveis publicamente. O link simbólico é criado na pasta pública e aponta para a pasta de armazenamento de arquivos do Laravel.
Dessa forma, quando um usuário acessa um arquivo armazenado em storage/app/public pelo navegador, o Laravel redireciona a solicitação para a pasta pública através do link simbólico criado, permitindo que o arquivo seja baixado ou visualizado.
É importante notar que este comando só precisa ser executado uma vez, ou sempre que a pasta pública do projeto for movida ou alterada.
php artisan 'staking:rewards-calculate'
O comando filtra os usuários que possuem stakes ativos e, em seguida, aplica a recompensa correspondente.
php artisan 'staking:status'
O comando executa duas etapas: a primeira é filtrar as stakes ativas dos usuários; em seguida, verifica se a data de resgate já expirou. Caso afirmativo, atualiza o status para completed, indicando que a stake foi resgatada com sucesso.
php artisan 'launchpad:state-monitor'
O script tem como função atualizar o status dos launchpads que estão marcados como "true". Caso um launchpad tenha sido iniciado e esteja em andamento com status "pending", o script atualiza o campo "progress" para "open" e o campo "purchasable" para "true". Por outro lado, se o launchpad já foi finalizado, o campo "progress" é atualizado para "closed" e o campo "purchasable" é atualizado para "false". Em resumo, o script realiza ajustes nos campos dos launchpads de acordo com a sua situação atual.
php artisan 'transaction:referral-credits'
O objetivo do script é filtrar as transações pendentes e, em seguida, utilizar o saldo dessas transações para atualizar a carteira correspondente. Em outras palavras, o script identifica as transações em que o processamento ainda não foi concluído e, após a conclusão, atualiza o saldo na carteira correspondente.
php artisan 'wallets:ethereum-wallet-balance'
Atualiza o saldo das carteiras no banco de dados com a API da Etherscan.
php artisan 'wallets:doric-wallet-balance'
Atualiza o saldo das carteiras no banco de dados com a API da Doric.
php artisan 'wallets:bnb-wallet-balance'
Atualiza o saldo das carteiras no banco de dados com a API da BNB.
php artisan 'wallets:trx-wallet-balance'
Atualiza o saldo das carteiras no banco de dados com a API da TRX.
php artisan 'market-monitor:stats'
Busca todos os markets cadastrados e atualiza os campos: bid, ask, last, high, low, capitalization de acordo com os valores salvos em cache.
php artisan 'bnb:monitor-bep-deposits'
Busca transações na api https://integrations.doric.network/api/explorer e cria registros de depositos no banco de dados para o BEP.
php artisan 'bnb:monitor-bnb-deposits'
Busca transações na api https://integrations.doric.network/api/explorer e cria registros de depositos no banco de dados para o BEP.
php artisan 'bnb:bep-transfer-pending'
Busca transações na api https://integrations.doric.network/api/explorer e cria registros de depositos no banco de dados para o BEP.
php artisan 'bnb:bnb-transfer-pending'
Busca os depositos pendentes e os processa com sistema da bridge da BNB.
php artisan 'bnb:bnb-withdrawals-pending'
Busca os saques pendentes e os processa com o sistema da bridge da BNB.
php artisan 'ethereum:monitor-erc-deposits'
Busca transações na api https://integrations.doric.network/api/explorer e cria registros de depositos no banco de dados para o ERC.
php artisan 'ethereum:monitor-ethereum-deposits'
Busca transações na api https://integrations.doric.network/api/explorer e cria registros de depositos no banco de dados para o ERC.
php artisan 'ethereum:erc-transfer-pending'
Busca os depositos pendentes e os processa com sistema da bridge da Ethereum.
php artisan 'ethereum:eth-transfer-pending'
Busca os depositos pendentes e os processa com sistema da bridge da Ethereum.
php artisan 'ethereum:eth-withdrawals-pending'
Busca os saques pendentes e os processa com o sistema da bridge da Ethereum.
php artisan 'ethereum:eth-withdrawals-pending'
Busca os saques pendentes e os processa com o sistema da bridge da Ethereum.
php artisan 'doric:monitor-drc20-deposits'
Busca os saques pendentes e os processa com o sistema da bridge da Doric.
php artisan 'doric:monitor-doric-deposits'
Busca os saques pendentes e os processa com o sistema da bridge da Doric.
php artisan 'doric:drc20-transfer-pending'
Busca os depositos pendentes e os processa com sistema da bridge da Doric.
php artisan 'doric:drc-transfer-pending'
Busca os depositos pendentes e os processa com sistema da bridge da Doric.
php artisan 'doric:drc-withdrawals-pending'
Busca os saques pendentes e os processa com sistema da bridge da Doric.
php artisan 'tron:monitor-trx-deposits'
Busca transações na api https://apilist.tronscan.org e cria registros de depositos no banco de dados para o TRX.
php artisan 'tron:monitor-trc-deposits'
Busca transações na api https://apilist.tronscan.org e cria registros de depositos no banco de dados para o TRC.
php artisan 'tron:trx-withdrawals-pending'
Busca os saques pendentes e os processa com sistema da bridge da TRX.