From 50730b8d805304180cd2c165ea5e5bedc6bdfb3d Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 7 May 2020 12:55:16 -0500 Subject: [PATCH] Fabo/remove pm2 (#669) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * release (#573) * enable account creation for some networks (#252) * network update time metric added (#256) * network update time metric added * added missing dep Co-authored-by: Fabian * Fix proposal deposit (#261) * Remove denom handling from getDeposit() * Revert undesired change * delete package-lock.json * localtestnet config change (#265) * Ana/handle "address not from this network" error (#263) * add check address function for all queries * apply suggestions * Ana/add fiatvalue to balances query (e-Money) (#262) * preparation * more preparation * add fiatvalue field to balances query * fix get account info * apply suggestions * apply one last suggestion * suggestions+ Co-authored-by: Fabian * Ana/emoney fix expected returns with inflation and totalbacked (#243) * fix expected returns with inflation and supply * minor fixes. dictionary * query exchange rates from emoney api * fix infinite expected returns * convert api url to const * add eur value to totalbackedvalue. totalngm gains * add important comment * finish calculation * lint * catch errors with sentry Co-authored-by: Fabian * readd coin conversion (#268) * delete amount field (#274) * Fabo/increase gas again (#271) * icrease gas again * fixed test * Fabo/load all txs (even if more then first page in response) (#270) * load all txs (even if more then first page in response) * improved handling of txs * missing renaming * fixed paginated load * add pagination fix also to cosmosV0-source Co-authored-by: iambeone Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> * fixing issue with multiple senders in one event (#273) * fixing issue with multiple senders in one event * Update lib/source/cosmosV2-source.js Co-authored-by: Fabian * Fabo/allow signing for terra + emoney (#267) * allow signing for terra * readd coin conversion * enable actions for terra * fix correct terra testnet url * comments and guards * enabled more txs for emoney and fixed broadcasting * added a catch for wrongly formatted broadcast urls * recover default field. change some network titles (#277) * Fabo/add network data to API (#278) * non desctructive introduction of better address prefix wording * added address creator to API * adjusted test * added ledger app to networks config * add icon property to schema (#281) * add icon property to schema * fix network schema validation Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> * filter out validator specific txs (#279) * Ana/balances coinreducer good fix (#269) * balances coinreducer good fix * refactored fiat value logic Co-authored-by: Fabian * Create network_integration.md * Update network_integration.md * Update network_integration.md * Fabo/avoid 500 errors (#288) * avoid using the latest query * cleanup * Ana/filter validator tx cross network and add txvalue reducer (#285) * filter validators cross network * add value reducer. necessary for multi claim txs * add validator txs filter also for cosmosv0 source * filter and make array only claim rewards msg value * filter txs by whitelist * change length in multi claim reward reducer * add withdrawvalidators * replace dictionary for set * refactor transaction snippet. avoid repetition * Ana/emoney upgrade (mergeable) (#282) * update emoney api_url * fix denom. add default fiat currency * fix rpc endpoint * fix value (my bad) (#293) * fix value (my bad) * trigger another ci flow * erase space * set correct new chain id (#294) * restart API * restart API * fix pr alert (#297) * Fabo/298 tendermint reconnect (#300) * reconnect on tendermint disconnect * cleanup * comments * Update cosmos-node-subscription.js * Fabo/299 trigger a chain hangup error (#301) * trigger a chain hangup error * increase chain hangup time * Apply suggestions from code review * Fabo/store validator addresses (#296) * add validator addresses to db * linted * ignore in local dev * revert * fixed fetch * comment * refactored db into constructor * cleanup * add clearTimeout to avoid reconnection hell (#306) * add clearTimeout to avoid reconnection hell * removed console.log * Aleksei/luniedb replaced (#303) * add validator addresses to db * linted * ignore in local dev * revert * fixed fetch * comment * refactored db into constructor * cleanup * replaced luniedb * linted Co-authored-by: Fabian * disable reconnection logic * clear polling interval for tendermint connection * simple api fixes (#310) * Fabo/remove tendermint (#311) * remove tendermint * fixed empty blockHeight issue * small refactoring * catch on fetches to get logging * delay block updates * add retry logic * refactored getBlockByHeight * remove pm2 dep * validator profiles were returned as array (#312) * remove pr github action (#316) * fixing caching issue and more (#315) * fixing caching issue and more * clear chain hangup timeout * timeout fixed * Update lib/block-listeners/cosmos-node-subscription.js Co-authored-by: Jordan Bibla * added terra_mainnet to networks (#309) * added terra_mainnet to networks * errors fix reverted * Ana/add multidenom rewards. necessary for emoney (#308) * add multidenom rewards. necessary for emoney * add rewards to overview. improve code location * lint * add filter rewards for multidenom * important fix * another important fix * fix cannot read propery constructor of undefined (#318) * change terra mainnet title * pushing something to trigger new build and to restart the node * trying out nylira's node * WIP: Ana/More Terra fixes (#323) * fixing my mess * move all rewards logic to terra * clearly signal single denom rewards * Revert "WIP: Ana/More Terra fixes (#323)" (#325) This reverts commit 408186a3ef743ca51d513eb91c937f49960e7492. * catch inside block polling function (#327) * Fabo/disable writing validator addresses for now (#329) * disable writing validator addresses for now * linted * flushing http cache (#332) * Transaction abstraction schema (#333) * tx abstraction proposal using union * Use Coin type * Cleanup, TransactionV2 * Cleanup, not multisend tx * Unsupported tx (like multisend) don't have details * Fabo/switch to docker swarm mode (#330) * swtich to docker swarm mode * typo * Update .github/workflows/development.yml * Ana/more terra fixes (***THE COMEBACK***) (#324) * fixing my mess * move all rewards logic to terra * clearly signal single denom rewards * error structure has changed. need to look into it * also return denom for single denom rewards * manage errors properly * delete comments * Update lib/reducers/terraV3-reducers.js * loop through transaction messages * doing crazy stuff * rewrite the crazy bit Co-authored-by: Fabian * cosmosv0 was missing the retry logic (#334) * add back validator to db logic (#335) * path_prefix added to network data (#338) * path_prefix added to network data * path_prefix replaced to slug * tests fixed * remove regen (#337) Co-authored-by: Jordan Bibla * Fabo+Mario/transaction abstraction (#336) * draft for transaction abstraction * use lunie message types * Add supported tx types * WIP * Draft new reducers * Fix msg types * Need to resolve type for TransactionDetails union * debug resolver * lint * Fix * Cleanup * fix some union issues * Almost done * Small fixes * Add userTransactionAddedV2 * Add userTransactionAddedV2 to resolvers Co-authored-by: Mario Pino * emoney fixes for fiatvalue (#345) * emoney fixes for fiatvalue * refactor with coinreducer * speaking functions are your friends * refactor ugly nested code * lint * add denoms lookups for terra and emoney (#346) * Ana/add only tokens gas prices 2nd attempt (#344) * add terra and emoney gas price. terra reducer * delete fiatvalue from get balances in cosmos * add emoney reducer * hyper important emoney fixes * fix for emoney denoms * change gas price to micro units * add emoney denoms to denomlookup * transform to microunit also for terra tokens * return null for emoney gas prices * add harcoded gas prices * correct emoney hardcoded values * hardcoded terra gas prices. not working * update hardcoded values to working ones * delete unrelated changes to gas prices * apply suggestions except coinreducer * they call me mr coinreducer * change amount for price. add gas price reducer * change naming in gas price reducer * add error message Co-authored-by: Fabian * fix rewards denoms (#351) * updating image on deploy (#352) * fix my mess once more (#353) * Ana/add gas prices to other networks (#350) * add gasprices to cosmos * format gas prices to three decimals * Apply suggestions from code review * Update lib/reducers/cosmosV0-reducers.js Co-authored-by: Fabian Co-authored-by: Jordan Bibla * added a tx success push, fallback (#354) * fix cosmos gas price (#355) * fix terra for new tmbalance (#358) * Fabo/new emoney rewards (#357) * intent to fix the emoney rewards * intent to fix emoney rewards * simplified code * comments * hack to fix reduce function * eligable -> eligible * correct reducer fix Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> Co-authored-by: Jordan Bibla * Aleksei/prevent constant db calls (#304) * add validator addresses to db * linted * ignore in local dev * revert * fixed fetch * comment * refactored db into constructor * cleanup * prevent constant db interaction * stored object structure changed * remove nesting in validators * filter validators list Co-authored-by: Fabian * limit txs pages load by two pages per request (#314) * limit txs pages load by two pages per request * delete block from loadpaginatedtxs * small fixes * Update lib/source/cosmosV2-source.js * linted Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> Co-authored-by: Fabian * linted * linted * Fabo/Use figment nodes (#362) * use api keys * add env variables for nodes * hard code api keys (#365) * fix ngm fiatvalue (#361) * hardcoded urls fix (#366) * WIP: Improve TransactionV2 implementation (#349) * Add from field to SendTx type * add amount to claim rewards transactions * convert to units in string coin reducer * fix typo * add multidenom string coinreducer for claim amount * Add UnknownTx to schema * Add BlockV2 type which returns TransactionV2 txs * Add blockV2 query that returns TransactionV2 txs * kill handling claim rewards amount * Update lib/reducers/cosmosV0-reducers.js Co-Authored-By: Fabian * Update lib/reducers/cosmosV0-reducers.js Co-Authored-By: Fabian * Cleanup * lint * Support claim rewards from multiple validators * Fix, cleanup Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> Co-authored-by: Fabian * Aleksei/fix db insert (#367) * fixed insert function to allow empty schema * Aleksei/statistics in the api (#364) * collecting statistics in the API * small fixes * fixes * changing address to key in clearOverviewedAddresses Co-authored-by: Aleksey Rudometov * add pageNumber to schema (#370) * add pageNumber to schema * file wasn't saved * trigger ci * added pagination to tx v2 api (#372) * Together with 3584: Ana/change fiatvalue to object (#360) * change fiatvalue to object * handle when selected currency is eur * include ngm fiatvalue fix * Ana/amount in claim rewards in transactions v2 (#373) * bring amount in claim rewards back to life * change to regex * simplify * make the regex understandable * Ana/add powered to networks (#377) * add powered by * more logical powered * add provider address for avatar * fix powere validation * Fabo/add network-type for selecting addrss and signing (#378) * add network-type for selecting addrss and signing * adjust according to new network_type param * add network type to network schema Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> * fix staking denom (#379) * fix terra balances and overview (#380) * Fabo/allow to query experimental networks (#382) * all to query experimental networks * fix old small typo Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> * First steps to integrate Polkadot (#376) * Add polkadot-testnet in networks.js * Install polkadot-api, polkadot-node-sub. draft * lint * lint * lint * add polkadotV0 source * add address creator * Update data/networks.js Co-Authored-By: Jordan Bibla * Update data/networks.js Co-Authored-By: Jordan Bibla * blocks, events * Cleanup * polling instead subscription * husky * updateDBValidatorProfiles * no wait for block data fetching, kind of stable * Add reducers file * block subscription works! * Cleanup, fix memory leak * lint, node * comment * Handle polkadot chain reorgs * Cleanup * Optimization, cleanup * Optimization * fixes, validators query working, cleanup * comment * lint * fix block time * handle polkadot chain hangups * cleanup * validator reducer * lint * wip * calculate and include a bunch of validator fields * add bech32_prefix address_prefix to networks.js * add 1 space so we dont break tests * remove chain reorg handling, more stable Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> Co-authored-by: Fabian Co-authored-by: Jordan Bibla * transactions loading time reduced (#383) * transactions loading time reduced * increased page number * add loki to docker-compose (#385) * add network type (#386) * removed livepeer from running in API (#390) * set polkadot to disabled (#392) * Ana/add totalstake-fiatvalue to Overview (#384) * add totalstake fiat value to overview * fix amount in totalstake fiatvalue * make new code more readable * Update lib/reducers/cosmosV0-reducers.js * refactor unit conversion Co-authored-by: Mario Pino * disable polkadot (#395) Co-authored-by: Fabian * Fabo/terra returns (#389) * better error logging * add result selector to query * split emoney getAllValidators from Terra * add expected returns querying to terra * filter out empty returns * remove not used code * missing return * limit decimals * fix not found in terra testnet * temporary hacks * Revert "temporary hacks" This reverts commit 88d0918af70489422d6d5d84909df1186a23fa1c. * Revert "fix not found in terra testnet" This reverts commit 19a4eca6eb4a9eb2050b368b270d4a39847e016a. * add terra testnet api * switch to show all decimals Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> * fix all fiat values to 2 decimals (#399) * Ana/correct terra denoms (#398) * correct terra denoms * variable renaming Co-authored-by: Fabian * Ana/add fiatvalue in rewards (#396) * add fiatvalue to rewards * add fiatcurrency to rewards query * handle unsupported fiat currencies * apply suggestions * delete never used delegations parameter (#404) * fix terra getrewards and gas prices (#409) * reactivate kusama (#411) * Ana/fix repeated claim rewards transactions in transaction abstraction (#400) * fix terra repeated claim rewards transactions * much better fix * add claim rewards messages aggregator * try to apply suggestion * also not working * working 🎉 * change name and add comment * improved implementation by aggregating the claim messags correctly Co-authored-by: Fabian Weber * disable polkadot once more for release (#412) * readd memory limit (#413) * Use polling instead subscription in Kusama (#406) * uncomment polkadot * bug fixes * pollForNewBlock * mod getBlockHeight * add again commented api disconnect to not forget * enqueueAndPublishBlockAdded * re-subscribe on error * stringify error * stringify errors * api.isReady * Add delay to newBlockHandler * Ana/add balances to kusama (#405) * rudimentary balance * add some comment * Ana/switch polkadot to rest calls (#408) * add rewards and overview functions. not working * poll instead of subscribe to blocks * switch over to http provider * fix lint errors * use httpprovider * getting last block hash * get blockhash and header. but no height * back to normal. use mario node subscription * successfully get block height polling with http * get block hash from http. use polling * uncomment all other networks * pass the store to source classes * create the api only once * comment api.disconnect() * added polling fix and quick querying * fixed block height query * clean up * comment * cleanup and optimization Co-authored-by: Fabian Weber Co-authored-by: mariopino * remove unused dependency Co-authored-by: Bitcoinera Co-authored-by: Ana G <40721795+Bitcoinera@users.noreply.github.com> Co-authored-by: Fabian Weber * deactivate polkadot * trigger deploy * trigger CI * swtich to newer caddy version * activate polkadot again * deactivate again * Proposal to enable Kusama network (#424) * working state * cleanup * getBlockHeight() * update polkadot-api (#423) * fixing node_exporter call in Caddyfile (#418) * fixing send amount in statistics (#419) * fixing send amount in statistics * denom fixed * fix validator as selected fiat bug (#415) * Ana/correct terra denoms in activity (#425) * correct fix terra denoms in activity * delete correct terra denom as not needed * Ana/fix amount null in claim rewards (#416) * fix amount null in claim rewards * small refactor * apply suggestion * add release script to api (#426) * Add self stake to validators query (#433) * add self stake * Update lib/reducers/polkadotV0-reducers.js Co-Authored-By: Ana G. <40721795+Bitcoinera@users.noreply.github.com> * lint Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> Co-authored-by: Bitcoinera * fix emoney balances denoms (#436) * [Polkadot] Add delegations query (#435) * first step, simplified query is working * lint * Get validator info from val dictionary * cleanup, fix comission * fix * faster solution * remove types we dont need in store * @Aleksei suggestions * fix * fix * simplify as @imbeone suggested * simplify, thanks @bitcoinera! * re adding array check * delegationReducer * fix * Ana/update polkadot balances (#441) * update polkadot balances * structs are strange * change comment * disable kusama * disable kusama * Ana/427 polkadot single validator query (#440) * save validators with operatoraddress as key * add check to wait to fetch validators * Update lib/resolvers.js Co-Authored-By: Fabian * Update lib/resolvers.js Co-Authored-By: Fabian * lint * fix delegations Co-authored-by: Fabian * Add denom decimal places to networks.js (#434) * lint * add decimals places, refactor POLKADOT_CONVERSION * add to schema * add to tests * refactor with @faboweb suggestions * fix * fix * fix * cleanup * apply suggestions * fix balances * add factor properly to network Co-authored-by: Bitcoinera * fix totalstake fiatvalue only returning euro (#442) * Fix commission for validators in Polkadot network (#447) * fix commission * comment * Fix expectedReturns for validators in Polkadot network (#446) * fix expectedReturns * change -- for null in getrewards and returns Co-authored-by: Bitcoinera * Ana/emoney validators load optimization (#430) * just for testing. hang up on validatorssets latest * fix emoney validators load * resolve conflict * remove experimental line * linted * Fabo/polkadot overview (#450) * add first steps towards overview * correct total * fixed total * fix getaccountinfo is not a funciton * delete hardcoded node rpc url * endpoint back to normal Co-authored-by: Bitcoinera * change polkadot node back to paritys one (#453) * Bump acorn from 5.7.3 to 5.7.4 (#454) Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4. - [Release notes](https://github.com/acornjs/acorn/releases) - [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fabo/improve delegations (#455) * improve delegations * removed timer * add hack for accounts with no nominations Co-authored-by: Bitcoinera * update polkadot api to latest (#456) * updated minimist (#457) * add empty getundelegations for polkadot (#458) * Update polkadot api to v1.7.1 (#465) * Ana/fix calculatefiatvalue when fiatcurrency not set (#462) * fix calculatefiatvalue when fiatcurrency not set * improve fix and comment * linted * Upgrade @polkadot/api to v1.8.0-beta.1 (#471) * Add intention validators in Polkadot network (#468) * Add timer to getAllValidators() * Fetch intention addresses for current session * wip * Add validators * working! getAllValidators exec time less than 10s * fix status * Cleanup * fix free balance (#474) * Fix delegations query in Polkadot network (#475) * fetch delegations from stored valid. staking info * Simplify * Cleanup * tx type in v2 subscriptions changed to TransactionV2 (#476) * Ana/add new release script copying fe (#479) * add new release script copying fe * add node executor to circleci * add aliases for circleci * missed one alias * change uluna gas price to recommended one (#481) * fixing claim rewards pubsub publishing (#480) * fixing claim rewards pubsub publishing * only get stakingDenom once Co-authored-by: Fabian Weber * Fabo/fix failed txs parsing (#486) * publish v2 txs and fix failed txs parsing * linted * Fabo/add logs to txs v2 (#487) * add logs to txs v2 * better logic * michiel/move yarn test to separate step for circleci (#482) * migrate test.yml github workflow to circleci config.yml fix executor from web to node * remove test.yml workflow file * refactor address extraction into reducers (#488) * add polkadot prefix (#489) * add polkadot prefix * change address prefix to be a number * Fabo/broadcast polkadot txs (#461) * first steps to broadcast polkadot txs * remove package-lock * fixed api init * remove debugger * working broadcasting * working * ignore polkadot in tests * Update lib/controller/transaction/index.js Co-Authored-By: Jordan Bibla Co-authored-by: Jordan Bibla * Fabo/wait for data ready (#497) * allow to wait for data to be ready (cherry picked from commit 744d9b3b445286a9637fdadbeb5c473165cec58e) * wait for data to be ready (cherry picked from commit b6d665fd88ae22e5e3753249f27730eb12faebcb) * keep store in cosmos source (cherry picked from commit a6bb9f023eb56fb57d9a0f3a3ae12c997f6d04e3) * Update lib/resolvers.js * adds key to identify and sort txs (#492) * improve blockHandler logic (#498) (cherry picked from commit b67fab47adbf5a19caf99e17a9395e62419e8dad) * Fabo/enable terra governance (#501) * enable terra governance * also enable proposals in terra testnet * Ana/send all claimed rewards to fe (#493) * send all claimed rewards to fe * refactor reward coin reducer * Fabo/allow single network run (#495) * allow running a single network * readme * apply fix in networks * Update lib/apollo.js Co-authored-by: Bitcoinera * Ana/refactor network capabilities (#502) * refactor network capabilities * refactor to have just a dictionary * fix terra testnet. deleted accidentally testnet Co-authored-by: Fabian * Fabo/fix emoney reward precision (#504) * fix emoney rewards precision * comment * remove polkadot log spamming * add logging for failing tx parsing * more kusama log removal * Fabo/improve emoney loading (#494) * allow to wait for data to be ready * wait for data to be ready * improve blockHandler logic * keep store in cosmos source * centralize emoney exchange queries * fixed balances nto available * precalculate all exchange rates * remove mock values * add sentry to nested block handler * linted * keep old emoney tokens for now Co-authored-by: Bitcoinera * fix transaction log parsing * better debugging * prevent transactionReducerV2 from returning undefined (#508) * prevent transactionReducerV2 from returning undefined * Update lib/reducers/cosmosV0-reducers.js Co-Authored-By: Ana G. <40721795+Bitcoinera@users.noreply.github.com> * linting fix Co-authored-by: Ana G. <40721795+Bitcoinera@users.noreply.github.com> * fix one more log parsing issue * WIP Ana/make estimate a query (#509) * first attempt for estimate * fix estimate schema * lint * Polkadot send transaction extraction (#500) * tx logic draft * fix lint * wip * lint * working for send tx type * should work publishing send tx! * correct data is being passed to publishers * cleanup * working with extrinsics * implement coin reducer * Update lib/reducers/polkadotV0-reducers.js Co-Authored-By: Fabian * Update lib/reducers/polkadotV0-reducers.js Co-Authored-By: Fabian Co-authored-by: Fabian * Ana/add emoney mainnet (#511) * first preparations * Update data/networks.js Co-Authored-By: Fabian * Update data/networks.js Co-Authored-By: Fabian * add correct chainid * add validators poller for release * check emoney mainnet validators recursively Co-authored-by: Fabian * fix no iterable for claimrewards amounts (#515) * emoney mainnet is mainnet (#517) * remove emoney release hack (#520) * fix emoney mainnet expected returns (#522) * useless console.log removed (#519) * update emoney ngm gasprice (#525) * Michiel/make clear separation between v0 and v2 reducers (#530) * Replace transactionReducer with v2 for pollTransactionSuccess * Replace transactionReducer with v2 for pollTransactionSuccess * Fix structure * Make clear seperation between v0 and v2 reducers * Fix problem publishing transaction * Fix pollTransactionSuccess * Fix pollTransactionSuccess * Ana/fix claim rewards denom for terra and emoney (#534) * fix claim rewards denom for terra and emoney * fix again * Ana/fix expected returns cosmos and emoney (#536) * fix expected returns for cosmos and emoney * add missing property in type validator * delete delegatorshares from type validator * Ana/add gas estimates query (#503) * add network fees query * fix schema * refactor using networkid with hyphens * return only estimate for a transaction type * add gas estimates to network object * remove network fees from queries * revert last two commits manually * add default to network gas estimates * apply suggestion * michiel/remove reducer v0 (#535) * Remove reducer v0 * Update cosmosV0-source.js * linted Co-authored-by: Fabian * comment instructions on github templates (#539) * Ana/fix gasestimate query and raise terra default gas estimate (#538) * fix networkfees query * raise terra default gas estimate * Michiel/add akash portfolio (#541) * first steps * Integrate validators feature for akashv0 * Simplify extending Cosmos logic * Remove unused imports * Uncomment networks * Enable portfolio for Akash * Commnet livepeer mainnet network * Commnet livepeer mainnet network * fix validators expected returns * apply code review * use proper reducers * add gas prices * fix totalstake and delegation in general * fix api_url * correct staking denom to cosmossdk default for now * add also default stake gas price Co-authored-by: Bitcoinera * Michiel/add Akash validators (#540) * first steps * Integrate validators feature for akashv0 * Simplify extending Cosmos logic * Remove unused imports * Uncomment networks * Commnet livepeer mainnet network * fix validators expected returns * apply code review * Fix version transactionsByHeight Co-authored-by: michielmulders * switch to the used getBlockByHeightV2 function in polkadot (#545) * Ana&Mario/add missing coinlookups (#546) * add missing coinlookups * fix chaintoview conversion type * fix claimrewardsamount reducer. get all (#548) * fix polkadot error (#552) * Split rewards from other queries (#543) * moving rewards to resolved in overview * lint * working * Add totalRewards resolver in Overview * fix * cleanup * cleanup * cleanup * getViewDenom() is not async * add rewardsV2 query * add coinLookup property to all networks * Update lib/source/cosmosV0-source.js Co-Authored-By: Fabian * Update data/networks.js Co-Authored-By: Fabian * Update data/networks.js Co-Authored-By: Fabian * Update data/networks.js Co-Authored-By: Fabian * Update data/networks.js Co-Authored-By: Fabian * Update data/networks.js Co-Authored-By: Fabian * Update data/networks.js Co-Authored-By: Fabian * suggestions, cleanup * Remove rewardsV2 * revert schema changes Co-authored-by: Fabian Co-authored-by: Bitcoinera * raise terra gas estimate for claiming (#553) * Add tests checkAddress and getRewards (#555) * disable akash for now (#559) * [WIP] Show rewards in Polkadot (#513) * initial working state * working, this time is true ;-) * fix validator, comments * fix, cleanup * fix validator * update comment * Use coinReducer * cleanup * cleanup unused vars * cleanup * Flatten era rewards and then aggregate per valid * refactored * typo * uüdated polkadot Co-authored-by: Fabian Weber * Fabo/add polkadot fees (#557) * add polkadot fees * refactored * Ana/fix get transaction success from logs (#554) * fix get transaction success from logs * fix typo and simplify istxsucceeded logic * check if claimed message has failed and replace * move check if claim message failed and replace * fix everything. all good * MERGE!! :D Ana/feature not present in network (#510) * set emoney governance features as null/not present * change network capabilities to enum * fix enum. enable gov actions in terra mainnet * Ana/fix coinlookup for multidenom (#565) * add multidenom coinlookups * move coinlookups to separate file for readability * Ana/3804 real fix polkadot balances also empty when none (#566) * real fix for 3804 polkadot balance validation * fix extra 0 decimals in balance * fix deposit transactions (#570) * enable terra testnet governance (#569) * Fabo/rewards per era (#563) * initial working state * working, this time is true ;-) * fix validator, comments * fix, cleanup * fix validator * update comment * Use coinReducer * cleanup * cleanup unused vars * cleanup * Flatten era rewards and then aggregate per valid * refactored * typo * uüdated polkadot * load rewards * steps towards storing the rewards * fix era format * fix validator in row needs to be address * fix gql query * format bug * some refactoring * fix missing await * correctly get api * push validator getter inside sources * added address to lunie reward internaly * add address correctly * fix variable naming * filter empty rewards * add height from rewards * fixed tests * also fixed terra getRewards here * Update lib/block-listeners/polkadot-node-subscription.js Co-Authored-By: Fabian * remove dead code * fix stuff * fix operatorAddress of undefined * readded vanished code * don't store validatorAddress Co-authored-by: mariopino Co-authored-by: Bitcoinera Co-authored-by: Ana G <40721795+Bitcoinera@users.noreply.github.com> * Fabo/query past rewards script (#564) * initial working state * working, this time is true ;-) * fix validator, comments * fix, cleanup * fix validator * update comment * Use coinReducer * cleanup * cleanup unused vars * cleanup * Flatten era rewards and then aggregate per valid * refactored * typo * uüdated polkadot * load rewards * steps towards storing the rewards * fix era format * fix validator in row needs to be address * fix gql query * format bug * some refactoring * fix missing await * correctly get api * push validator getter inside sources * added address to lunie reward internaly * add address correctly * fix variable naming * filter empty rewards * add height from rewards * added query past rewards script * calling main * missing imports * upsert to prevent conflicts * flatten rewards * fix too many labels issue * typo * write for each validator * await finishing * add validators correctly to the store * remove timing for rewards * correctly write validator and filter 0 * add check and filter out undefined validators * fix amount decimals to 9. allow validator unknown * added address better * refactor * fix tests * only add needed columns to rows * missing refactor * fix getoldpolkadot rewards eras script * possible fix to lastreward of undefined * delete forgotten only * typo Co-authored-by: mariopino Co-authored-by: Bitcoinera * Fabo/make db available from store (#567) * make db available from store * bad fix * good fix * fix delegations, validators, undelegations queries Co-authored-by: Bitcoinera Co-authored-by: iambeone Co-authored-by: Mario Pino Co-authored-by: Ana G <40721795+Bitcoinera@users.noreply.github.com> Co-authored-by: Jordan Bibla Co-authored-by: Bitcoinera Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Michiel Mulders * trigger CI * linted * linted * restart * changelog * remove pm2 * remove changes that are out of scope * changelog * delete unrelated change * Update .github/workflows/development.yml Co-authored-by: Fabian Co-authored-by: Bitcoinera Co-authored-by: iambeone Co-authored-by: Mario Pino Co-authored-by: Ana G <40721795+Bitcoinera@users.noreply.github.com> Co-authored-by: Jordan Bibla Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Michiel Mulders --- .github/workflows/development.yml | 4 +- .github/workflows/production.yml | 4 +- Dockerfile | 6 +-- changes/fabo_remove-pm2 | 1 + docker-compose.prod.yml | 89 ------------------------------- package.json | 2 +- pm2.json | 9 ---- pm2metrics.pl | 61 --------------------- 8 files changed, 6 insertions(+), 170 deletions(-) create mode 100644 changes/fabo_remove-pm2 delete mode 100644 docker-compose.prod.yml delete mode 100644 pm2.json delete mode 100644 pm2metrics.pl diff --git a/.github/workflows/development.yml b/.github/workflows/development.yml index 4eb92d1b84..5503f5dc04 100644 --- a/.github/workflows/development.yml +++ b/.github/workflows/development.yml @@ -21,10 +21,8 @@ jobs: - name: prepare to push to Digital Ocean run: mkdir -p ~/.ssh && echo "${{ secrets.DO_PRIVATE_KEY }}" | tr -d '\r' > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa && eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa && ssh-keyscan -H 157.245.121.175 >> ~/.ssh/known_hosts - name: push to Digital Ocean - run: rsync -4 lunieapi.tgz root@157.245.121.175:~/ && rsync -4 pm2metrics.pl root@157.245.121.175:~/ && rsync -4 docker-compose.yml root@157.245.121.175:~/ && rsync -4 Caddyfile root@157.245.121.175:~/ + run: rsync -4 lunieapi.tgz root@157.245.121.175:~/ && rsync -4 docker-compose.yml root@157.245.121.175:~/ && rsync -4 Caddyfile root@157.245.121.175:~/ - name: Installing Docker Compose run: ssh root@157.245.121.175 "sudo curl -L \"https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose; sudo chmod +x /usr/local/bin/docker-compose" - name: Run on Digital Ocean run: ssh root@157.245.121.175 "docker image prune -a -f; docker load < lunieapi.tgz;export HASURA_URL="https://staging-db.lunie.io/v1/graphql"; export HASURA_ADMIN_KEY="${{ secrets.LUNIE_STAGING_DB_KEY }}"; export SENTRY_DSN="${{ secrets.SENTRY_DSN }}"; docker stack deploy -c docker-compose.yml lunieapi; docker service update --image lunieapi:latest --force lunieapi_lunieapi" - - name: Setting up cron job for pm2 metrics export - run: ssh root@157.245.121.175 "mkdir /logs -p; touch /logs/show; line='*/1 * * * * docker exec lunieapi pm2 show 0 > /logs/show; perl /root/pm2metrics.pl'; crontab -l | grep -q 'lunieapi pm2' && true || (crontab -l; echo "$line" ) | crontab -" diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml index 9f63240190..cffe91eb6d 100644 --- a/.github/workflows/production.yml +++ b/.github/workflows/production.yml @@ -21,10 +21,8 @@ jobs: - name: prepare to push to Digital Ocean run: mkdir -p ~/.ssh && echo "${{ secrets.DO_PRIVATE_KEY }}" | tr -d '\r' > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa && eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa && ssh-keyscan -H 167.71.107.214 >> ~/.ssh/known_hosts - name: push to Digital Ocean - run: rsync -4 lunieapi.tgz root@167.71.107.214:~/ && rsync -4 pm2metrics.pl root@167.71.107.214:~/ && rsync -4 docker-compose.prod.yml root@167.71.107.214:~/docker-compose.yml && rsync -4 Caddyfile.prod root@167.71.107.214:~/Caddyfile + run: rsync -4 lunieapi.tgz root@167.71.107.214:~/ && && rsync -4 docker-compose.yml root@167.71.107.214:~/docker-compose.yml && rsync -4 Caddyfile.prod root@167.71.107.214:~/Caddyfile - name: Installing Docker Compose run: ssh root@167.71.107.214 "sudo curl -L \"https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose; sudo chmod +x /usr/local/bin/docker-compose" - name: Run on Digital Ocean run: ssh root@167.71.107.214 "docker image prune -a -f; docker load < lunieapi.tgz;export HASURA_URL="https://production-db.lunie.io/v1/graphql"; export HASURA_ADMIN_KEY="${{ secrets.LUNIE_PRODUCTION_DB_KEY }}"; export SENTRY_DSN="${{ secrets.SENTRY_DSN_PRODUCTION }}"; export FIGMENT_COSMOS_HUB_API_KEY="${{ secrets.FIGMENT_COSMOS_HUB_API_KEY }}"; export FIGMENT_GAIA_13007_API_KEY="${{ secrets.FIGMENT_GAIA_13007_API_KEY }}"; docker stack deploy -c docker-compose.yml lunieapi; docker service update --image lunieapi:latest --force lunieapi_lunieapi" - - name: Setting up cron job for pm2 metrics export - run: ssh root@167.71.107.214 "mkdir /logs -p; touch /logs/show; line='*/1 * * * * docker exec lunieapi pm2 show 0 > /logs/show; perl /root/pm2metrics.pl'; crontab -l | grep -q 'lunieapi pm2' && true || (crontab -l; echo "$line" ) | crontab -" diff --git a/Dockerfile b/Dockerfile index fbbab8a23f..97a692665b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM keymetrics/pm2:latest-alpine +FROM node:lts-alpine3.11 WORKDIR /var/www/server @@ -18,12 +18,10 @@ COPY config.js . COPY secrets.js . -COPY pm2.json . - COPY index.js . RUN npm install -CMD [ "pm2-runtime", "start", "pm2.json", "--format"] +CMD npm run start EXPOSE 4200 \ No newline at end of file diff --git a/changes/fabo_remove-pm2 b/changes/fabo_remove-pm2 new file mode 100644 index 0000000000..0ab6bbbaa8 --- /dev/null +++ b/changes/fabo_remove-pm2 @@ -0,0 +1 @@ +[Changed] [#669](https://github.com/cosmos/lunie/pull/669) Remove pm2 @faboweb \ No newline at end of file diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml deleted file mode 100644 index 8a598f3fdb..0000000000 --- a/docker-compose.prod.yml +++ /dev/null @@ -1,89 +0,0 @@ -version: '3.6' - -secrets: - PORT: - external: true - -services: - lunieapi: - image: lunieapi:latest - container_name: lunieapi - restart: on-failure - secrets: - - PORT - volumes: - - /logs:/var/www/server/logs - - ./pushCredentials.json:/var/www/server/pushCredentials.json - networks: - - general - logging: - driver: loki - options: - loki-url: "http://admin:${LOKI_PASSWORD}@monitoring.lunie.io:3100/loki/api/v1/push" - deploy: - replicas: 1 - environment: - - HASURA_URL=$HASURA_URL - - HASURA_ADMIN_KEY=$HASURA_ADMIN_KEY - - SENTRY_DSN=$SENTRY_DSN - - NODE_ENV=production - - ENABLE_CACHE=true - - REDIS_URL=http://redis:6379 - - PUBLIC_VAPID_KEY=BJwy1mP8njRNKyo2uPfjnB73tq6_HHXYnozMPaafCSBpdmoxe9RLYjC2DvRpDfUWoxY3c0-7R3ki9exKJ6cfe5k - - PRIVATE_VAPID_KEY=$PRIVATE_VAPID_KEY - - PUSH_NOTIFICATIONS_DATABASE_URL=https://lunie-push-notifications.firebaseio.com - - PUSH_NOTIFICATIONS_FRONTEND_URL=https://app.lunie.io - - EMONEY_EXCHANGE_API_RATES_ENDPOINT=https://api.exchangeratesapi.io/latest? - - EMONEY_API_MAINNET=https://api.e-money.com/v1/ - - EMONEY_API_TESTNET=https://beta-api.e-money.com/v1/ - node-exporter: - image: prom/node-exporter - container_name: node_exporter - volumes: - - /proc:/host/proc:ro - - /sys:/host/sys:ro - - /root/textfile_collector:/var/www - - /:/rootfs:ro - command: - - --path.procfs=/host/proc - - --path.sysfs=/host/sys - - --collector.textfile.directory=/var/www - - --collector.filesystem.ignored-mount-points - - ^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/) - restart: always - networks: - - general - deploy: - mode: global - caddy: - image: abiosoft/caddy:0.11.0 - depends_on: - - "lunieapi" - restart: on-failure - container_name: caddy - networks: - - general - deploy: - replicas: 1 - ports: - - "80:80" - - "443:443" - - "9100:9100" - volumes: - - ./Caddyfile:/etc/Caddyfile - - ./caddy_certs:/root/.caddy - redis: - image: redis - container_name: redis - command: ["redis-server", "--appendonly", "yes"] - hostname: redis - networks: - - general - volumes: - - ./redis_data:/data -volumes: - caddy_certs: - redis_data: -networks: - general: - diff --git a/package.json b/package.json index 72338d0b85..3ae8b10dd9 100644 --- a/package.json +++ b/package.json @@ -66,4 +66,4 @@ "resolutions": { "minimist": "1.2.2" } -} +} \ No newline at end of file diff --git a/pm2.json b/pm2.json deleted file mode 100644 index 4169b9c3ea..0000000000 --- a/pm2.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "lunietest", - "script": "npm", - "instances": "1", - "args": ["run", "start"], - "error_file": "/var/www/server/logs/error.log", - "combine_logs": true, - "time": true -} diff --git a/pm2metrics.pl b/pm2metrics.pl deleted file mode 100644 index faa1982f8f..0000000000 --- a/pm2metrics.pl +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/perl -my $filename = "/root/textfile_collector/pm2errors.prom"; -my $logfile = "/logs/show"; -my $parameters = 0; -sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s }; - -open(my $fh, '<', $logfile); -open(my $fw, '>', $filename); -# fetching log file -while (my $row = <$fh>) { - chomp $row; - if($parameters && index($row, '─────') == -1){ - my @params = split("│", $row); - my $pname = lc trim(@params[1]); - $pname =~ s/ /_/ig; - my $pvalue = trim(@params[2]); - # special parsing for uptime and status - if($pname eq 'uptime'){ - my $pvalue_digit = $pvalue; - $pvalue_digit =~ s/[^0-9]//g; - #print($pvalue); - if(index($pvalue, 'h') != -1){ - $pvalue = $pvalue_digit * 60; - } - if(index($pvalue, 'd') != -1){ - $pvalue = $pvalue_digit * 60 * 24; - } - if(index($pvalue, 'm') != -1){ - $pvalue = $pvalue_digit; - } - if(index($pvalue, 's') != -1){ - $pvalue = $pvalue_digit / 60; - } - } - if($pname eq 'status'){ - if($pvalue eq 'online'){ - $pvalue = 1; - }else{ - $pvalue = 0; - } - } - #print($pvalue =~ qr/^[0-9\.]+$/); - my $dotscount = () = $pvalue =~ /\./g; - # only numerical values goes to metrics - if($pname && $pvalue =~ qr/^[0-9\.]+$/ && $dotscount < 2){ - print $fw 'pm2_'.$pname . ' ' . $pvalue ."\n"; - } - - } - if(index($row, '────') != -1){ - if($paremeters){ - $parameters = 0; - }else{ - $parameters = 1; - } - } - -} -close $fw; -close $fh; -exit 0;