diff --git a/blockchains/aeternity/info/info.json b/blockchains/aeternity/info/info.json index e0869ff25..a9246375a 100644 --- a/blockchains/aeternity/info/info.json +++ b/blockchains/aeternity/info/info.json @@ -21,5 +21,19 @@ "symbol": "AE", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/aeternity" + }, + { + "name": "twitter", + "url": "https://twitter.com/aeternity" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Aeternity" + } + ] } \ No newline at end of file diff --git a/blockchains/aion/info/info.json b/blockchains/aion/info/info.json index cdbf5d3f9..8b41ff5b1 100644 --- a/blockchains/aion/info/info.json +++ b/blockchains/aion/info/info.json @@ -21,5 +21,19 @@ "symbol": "AION", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/aionnetwork" + }, + { + "name": "twitter", + "url": "https://twitter.com/Aion_OAN" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/AionNetwork" + } + ] } \ No newline at end of file diff --git a/blockchains/algorand/info/info.json b/blockchains/algorand/info/info.json index 1bd9d1d2b..bfebf08c4 100644 --- a/blockchains/algorand/info/info.json +++ b/blockchains/algorand/info/info.json @@ -24,5 +24,19 @@ "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/algorand" + }, + { + "name": "twitter", + "url": "https://twitter.com/AlgoFoundation" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/AlgorandOfficial" + } ] } \ No newline at end of file diff --git a/blockchains/ark/info/info.json b/blockchains/ark/info/info.json index bea43077a..00e5cf95f 100644 --- a/blockchains/ark/info/info.json +++ b/blockchains/ark/info/info.json @@ -21,5 +21,19 @@ "symbol": "ARK", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/ArkEcosystem" + }, + { + "name": "twitter", + "url": "https://twitter.com/ArkEcosystem" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/ArkEcosystem" + } + ] } \ No newline at end of file diff --git a/blockchains/aryacoin/info/info.json b/blockchains/aryacoin/info/info.json index 3d53c7ff9..7a4cb17be 100644 --- a/blockchains/aryacoin/info/info.json +++ b/blockchains/aryacoin/info/info.json @@ -16,5 +16,15 @@ "symbol": "AYA", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/Aryacoin/Aryacoin" + }, + { + "name": "twitter", + "url": "https://twitter.com/AryacoinAYA" + } + ] } \ No newline at end of file diff --git a/blockchains/avalanche/info/info.json b/blockchains/avalanche/info/info.json index 0341a0b05..fb42e6fbb 100644 --- a/blockchains/avalanche/info/info.json +++ b/blockchains/avalanche/info/info.json @@ -7,10 +7,16 @@ "explorer": "https://explorer.avax.network", "research": "https://research.binance.com/en/projects/avalanche", "symbol": "AVAX", - "type": "coin", + "type": "COIN", "decimals": 9, "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/ava-labs" + } ] } \ No newline at end of file diff --git a/blockchains/avalanchec/info/info.json b/blockchains/avalanchec/info/info.json index 1c76067b9..72e1808d6 100644 --- a/blockchains/avalanchec/info/info.json +++ b/blockchains/avalanchec/info/info.json @@ -7,10 +7,16 @@ "explorer": "https://explorer.avax.network", "research": "https://research.binance.com/en/projects/avalanche", "symbol": "AVAX", - "type": "coin", + "type": "COIN", "decimals": 9, "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/ava-labs" + } ] } \ No newline at end of file diff --git a/blockchains/avalanchex/info/info.json b/blockchains/avalanchex/info/info.json index 2bbb45b17..97ec3a6fa 100644 --- a/blockchains/avalanchex/info/info.json +++ b/blockchains/avalanchex/info/info.json @@ -7,10 +7,16 @@ "explorer": "https://explorer.avax.network", "research": "https://research.binance.com/en/projects/avalanche", "symbol": "AVAX", - "type": "coin", + "type": "COIN", "decimals": 9, "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/ava-labs" + } ] } \ No newline at end of file diff --git a/blockchains/band/info/info.json b/blockchains/band/info/info.json index 232b2aad3..1a118a24a 100644 --- a/blockchains/band/info/info.json +++ b/blockchains/band/info/info.json @@ -21,5 +21,19 @@ "symbol": "BAND", "type": "COIN", "decimals": 6, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/bandprotocol/bandchain" + }, + { + "name": "twitter", + "url": "https://twitter.com/bandprotocol" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/bandprotocol/" + } + ] } \ No newline at end of file diff --git a/blockchains/binance/info/info.json b/blockchains/binance/info/info.json index 534fe0a8c..1a9caf140 100644 --- a/blockchains/binance/info/info.json +++ b/blockchains/binance/info/info.json @@ -24,5 +24,19 @@ "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/binance-chain/" + }, + { + "name": "twitter", + "url": "https://twitter.com/binance_dex" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/BinanceExchange" + } ] } \ No newline at end of file diff --git a/blockchains/bitcoin/info/info.json b/blockchains/bitcoin/info/info.json index 9876747b0..2a92b9592 100644 --- a/blockchains/bitcoin/info/info.json +++ b/blockchains/bitcoin/info/info.json @@ -21,5 +21,19 @@ "symbol": "BTC", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/bitcoin" + }, + { + "name": "twitter", + "url": "https://twitter.com/Bitcoin" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Bitcoin" + } + ] } \ No newline at end of file diff --git a/blockchains/bitcoincash/info/info.json b/blockchains/bitcoincash/info/info.json index d4454e8fe..a1ae6f4f3 100644 --- a/blockchains/bitcoincash/info/info.json +++ b/blockchains/bitcoincash/info/info.json @@ -21,5 +21,19 @@ "symbol": "BCH", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/bitcoincashorg/" + }, + { + "name": "twitter", + "url": "https://twitter.com/BITCOlNCASH" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Bitcoincash" + } + ] } \ No newline at end of file diff --git a/blockchains/bitcoingold/info/info.json b/blockchains/bitcoingold/info/info.json index 3407368d3..5eb518cbe 100644 --- a/blockchains/bitcoingold/info/info.json +++ b/blockchains/bitcoingold/info/info.json @@ -21,5 +21,19 @@ "symbol": "BTG", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/BTCGPU/BTCGPU" + }, + { + "name": "twitter", + "url": "https://twitter.com/bitcoingold" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/BitcoinGoldHQ" + } + ] } \ No newline at end of file diff --git a/blockchains/bluzelle/info/info.json b/blockchains/bluzelle/info/info.json index c50e466ce..fdd855d10 100644 --- a/blockchains/bluzelle/info/info.json +++ b/blockchains/bluzelle/info/info.json @@ -21,5 +21,19 @@ "symbol": "BLZ", "type": "COIN", "decimals": 6, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/bluzelle" + }, + { + "name": "twitter", + "url": "https://twitter.com/BluzelleHQ" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Bluzelle/" + } + ] } \ No newline at end of file diff --git a/blockchains/callisto/info/info.json b/blockchains/callisto/info/info.json index ad40fdeb4..a8b48a6fd 100644 --- a/blockchains/callisto/info/info.json +++ b/blockchains/callisto/info/info.json @@ -20,5 +20,19 @@ "symbol": "CLO", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/EthereumCommonwealth" + }, + { + "name": "twitter", + "url": "https://twitter.com/CallistoSupport" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/CallistoCrypto" + } + ] } \ No newline at end of file diff --git a/blockchains/cardano/info/info.json b/blockchains/cardano/info/info.json index 12b783269..853c92031 100644 --- a/blockchains/cardano/info/info.json +++ b/blockchains/cardano/info/info.json @@ -21,5 +21,19 @@ "symbol": "ADA", "type": "COIN", "decimals": 6, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/input-output-hk/cardano-sl/" + }, + { + "name": "twitter", + "url": "https://twitter.com/cardano" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/cardano" + } + ] } \ No newline at end of file diff --git a/blockchains/celo/info/info.json b/blockchains/celo/info/info.json index 83665a39a..fd2121434 100644 --- a/blockchains/celo/info/info.json +++ b/blockchains/celo/info/info.json @@ -21,5 +21,15 @@ "symbol": "CELO", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/celo-org/celo-blockchain" + }, + { + "name": "twitter", + "url": "https://twitter.com/CeloOrg" + } + ] } \ No newline at end of file diff --git a/blockchains/classic/info/info.json b/blockchains/classic/info/info.json index 365e34ea8..439e6f4df 100644 --- a/blockchains/classic/info/info.json +++ b/blockchains/classic/info/info.json @@ -21,5 +21,19 @@ "symbol": "ETC", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/ethereumclassic/" + }, + { + "name": "twitter", + "url": "https://twitter.com/eth_classic" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/EthereumClassic" + } + ] } \ No newline at end of file diff --git a/blockchains/cosmos/info/info.json b/blockchains/cosmos/info/info.json index 2860ee3dc..0e69ec293 100644 --- a/blockchains/cosmos/info/info.json +++ b/blockchains/cosmos/info/info.json @@ -24,5 +24,19 @@ "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/cosmos" + }, + { + "name": "twitter", + "url": "https://twitter.com/cosmos" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/cosmosnetwork" + } ] } \ No newline at end of file diff --git a/blockchains/cryptoorg/info/info.json b/blockchains/cryptoorg/info/info.json index 5c861bc04..a3170de83 100644 --- a/blockchains/cryptoorg/info/info.json +++ b/blockchains/cryptoorg/info/info.json @@ -23,5 +23,19 @@ "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/crypto-org-chain" + }, + { + "name": "twitter", + "url": "https://twitter.com/cryptocom" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Crypto_com/" + } ] } \ No newline at end of file diff --git a/blockchains/dash/info/info.json b/blockchains/dash/info/info.json index 3bf02fc17..259f5d396 100644 --- a/blockchains/dash/info/info.json +++ b/blockchains/dash/info/info.json @@ -21,5 +21,19 @@ "symbol": "DASH", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/dashpay/dash" + }, + { + "name": "twitter", + "url": "https://twitter.com/Dashpay" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/dashpay" + } + ] } \ No newline at end of file diff --git a/blockchains/decred/info/info.json b/blockchains/decred/info/info.json index 9aab11722..4a7f2b51e 100644 --- a/blockchains/decred/info/info.json +++ b/blockchains/decred/info/info.json @@ -21,5 +21,19 @@ "symbol": "DCR", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/decred" + }, + { + "name": "twitter", + "url": "https://twitter.com/decredproject" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/decred" + } + ] } \ No newline at end of file diff --git a/blockchains/digibyte/info/info.json b/blockchains/digibyte/info/info.json index 999954c43..906fb0999 100644 --- a/blockchains/digibyte/info/info.json +++ b/blockchains/digibyte/info/info.json @@ -21,5 +21,19 @@ "symbol": "DGB", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/DigiByte-Core" + }, + { + "name": "twitter", + "url": "https://twitter.com/DigiByteCoin" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Digibyte" + } + ] } \ No newline at end of file diff --git a/blockchains/doge/info/info.json b/blockchains/doge/info/info.json index 591f59a2b..0f7deb042 100644 --- a/blockchains/doge/info/info.json +++ b/blockchains/doge/info/info.json @@ -21,5 +21,19 @@ "symbol": "DOGE", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/dogecoin/dogecoin" + }, + { + "name": "twitter", + "url": "https://twitter.com/dogecoin" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/dogecoin" + } + ] } \ No newline at end of file diff --git a/blockchains/ellaism/info/info.json b/blockchains/ellaism/info/info.json index 0cdb2b0fb..5e31e6970 100644 --- a/blockchains/ellaism/info/info.json +++ b/blockchains/ellaism/info/info.json @@ -20,5 +20,19 @@ "symbol": "ELLA", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/ellaism" + }, + { + "name": "twitter", + "url": "https://twitter.com/ellaismproject" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/ellaism" + } + ] } \ No newline at end of file diff --git a/blockchains/eos/info/info.json b/blockchains/eos/info/info.json index cd1dec4f3..1832c3f48 100644 --- a/blockchains/eos/info/info.json +++ b/blockchains/eos/info/info.json @@ -21,5 +21,19 @@ "symbol": "EOS", "type": "COIN", "decimals": 4, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/eosio" + }, + { + "name": "twitter", + "url": "https://twitter.com/block_one_" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/EOS" + } + ] } \ No newline at end of file diff --git a/blockchains/ether-1/info/info.json b/blockchains/ether-1/info/info.json index 9cfa716e3..b0ba454f5 100644 --- a/blockchains/ether-1/info/info.json +++ b/blockchains/ether-1/info/info.json @@ -20,5 +20,19 @@ "symbol": "ETHO", "type": "COIN", "decimals": 18, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/Ether1Project" + }, + { + "name": "twitter", + "url": "https://twitter.com/Ether1Official" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/etho1/" + } + ] } \ No newline at end of file diff --git a/blockchains/ethereum/info/info.json b/blockchains/ethereum/info/info.json index 819e06889..b0d49fa0a 100644 --- a/blockchains/ethereum/info/info.json +++ b/blockchains/ethereum/info/info.json @@ -21,5 +21,19 @@ "symbol": "ETH", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/ethereum" + }, + { + "name": "twitter", + "url": "https://twitter.com/ethereum" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/ethereum" + } + ] } \ No newline at end of file diff --git a/blockchains/firo/info/info.json b/blockchains/firo/info/info.json index 68bfdc0b2..e17105d7a 100644 --- a/blockchains/firo/info/info.json +++ b/blockchains/firo/info/info.json @@ -21,5 +21,19 @@ "symbol": "FIRO", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/firoorg/firo" + }, + { + "name": "twitter", + "url": "https://twitter.com/firoorg" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/FiroProject/" + } + ] } \ No newline at end of file diff --git a/blockchains/gochain/info/info.json b/blockchains/gochain/info/info.json index 4fdbcfae7..f829eedd2 100644 --- a/blockchains/gochain/info/info.json +++ b/blockchains/gochain/info/info.json @@ -21,5 +21,19 @@ "symbol": "GO", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/gochain" + }, + { + "name": "twitter", + "url": "https://twitter.com/go_chain" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/OfficialGoChain" + } + ] } \ No newline at end of file diff --git a/blockchains/groestlcoin/info/info.json b/blockchains/groestlcoin/info/info.json index fe14d26be..bed0ec2c3 100644 --- a/blockchains/groestlcoin/info/info.json +++ b/blockchains/groestlcoin/info/info.json @@ -21,5 +21,19 @@ "symbol": "GRS", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/Groestlcoin" + }, + { + "name": "twitter", + "url": "https://twitter.com/GroestlcoinTeam" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/groestlcoin" + } + ] } \ No newline at end of file diff --git a/blockchains/harmony/info/info.json b/blockchains/harmony/info/info.json index 2ec4b7878..d1daa0333 100644 --- a/blockchains/harmony/info/info.json +++ b/blockchains/harmony/info/info.json @@ -21,5 +21,19 @@ "symbol": "ONE", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/harmony-one" + }, + { + "name": "twitter", + "url": "https://twitter.com/harmonyprotocol" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/harmony_one" + } + ] } \ No newline at end of file diff --git a/blockchains/icon/info/info.json b/blockchains/icon/info/info.json index 4769a2c6a..23f91a5e2 100644 --- a/blockchains/icon/info/info.json +++ b/blockchains/icon/info/info.json @@ -21,5 +21,19 @@ "symbol": "ICX", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/icon-project" + }, + { + "name": "twitter", + "url": "https://twitter.com/helloiconworld" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/helloicon" + } + ] } \ No newline at end of file diff --git a/blockchains/iost/info/info.json b/blockchains/iost/info/info.json index 42e104f23..ac9b2e9ea 100644 --- a/blockchains/iost/info/info.json +++ b/blockchains/iost/info/info.json @@ -21,5 +21,19 @@ "symbol": "IOST", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/iost-official/go-iost" + }, + { + "name": "twitter", + "url": "https://twitter.com/iostoken" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/IOStoken" + } + ] } \ No newline at end of file diff --git a/blockchains/iotex/info/info.json b/blockchains/iotex/info/info.json index c6a5f158d..b3932d3ed 100644 --- a/blockchains/iotex/info/info.json +++ b/blockchains/iotex/info/info.json @@ -21,5 +21,19 @@ "symbol": "IOTX", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/iotexproject" + }, + { + "name": "twitter", + "url": "https://twitter.com/iotex_io" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/IoTex" + } + ] } \ No newline at end of file diff --git a/blockchains/kava/info/info.json b/blockchains/kava/info/info.json index cc1ff4b17..d7c23dfbc 100644 --- a/blockchains/kava/info/info.json +++ b/blockchains/kava/info/info.json @@ -24,5 +24,15 @@ "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/kava-labs" + }, + { + "name": "twitter", + "url": "https://twitter.com/kava_labs" + } ] } \ No newline at end of file diff --git a/blockchains/kin/info/info.json b/blockchains/kin/info/info.json index 7c4a17565..182c3a4da 100644 --- a/blockchains/kin/info/info.json +++ b/blockchains/kin/info/info.json @@ -20,5 +20,19 @@ "symbol": "KIN", "type": "COIN", "decimals": 5, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/kinecosystem" + }, + { + "name": "twitter", + "url": "https://twitter.com/kin_foundation" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/KinFoundation" + } + ] } \ No newline at end of file diff --git a/blockchains/kusama/info/info.json b/blockchains/kusama/info/info.json index b23fe37e4..7cd7fec17 100644 --- a/blockchains/kusama/info/info.json +++ b/blockchains/kusama/info/info.json @@ -20,5 +20,19 @@ "symbol": "KSM", "type": "COIN", "decimals": 12, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/kusamanetwork" + }, + { + "name": "twitter", + "url": "https://twitter.com/kusamanetwork" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Kusama" + } + ] } \ No newline at end of file diff --git a/blockchains/litecoin/info/info.json b/blockchains/litecoin/info/info.json index 0bc67ae1a..ebfe2d1f4 100644 --- a/blockchains/litecoin/info/info.json +++ b/blockchains/litecoin/info/info.json @@ -21,5 +21,19 @@ "symbol": "LTC", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/litecoin-project/litecoin" + }, + { + "name": "twitter", + "url": "https://twitter.com/LitecoinProject" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/litecoin" + } + ] } \ No newline at end of file diff --git a/blockchains/loom/info/info.json b/blockchains/loom/info/info.json index d5a9a063d..fa6216948 100644 --- a/blockchains/loom/info/info.json +++ b/blockchains/loom/info/info.json @@ -20,5 +20,19 @@ "symbol": "LOOM", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/loomnetwork" + }, + { + "name": "twitter", + "url": "https://twitter.com/loomnetwork" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/loomnetwork" + } + ] } \ No newline at end of file diff --git a/blockchains/nano/info/info.json b/blockchains/nano/info/info.json index 9336b1e57..6a5e17316 100644 --- a/blockchains/nano/info/info.json +++ b/blockchains/nano/info/info.json @@ -21,5 +21,19 @@ "symbol": "NANO", "type": "COIN", "decimals": 30, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/nanocurrency" + }, + { + "name": "twitter", + "url": "https://twitter.com/nano" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/nanocurrency" + } + ] } \ No newline at end of file diff --git a/blockchains/near/info/info.json b/blockchains/near/info/info.json index 7568855f5..56c8fd138 100644 --- a/blockchains/near/info/info.json +++ b/blockchains/near/info/info.json @@ -21,5 +21,19 @@ "symbol": "NEAR", "type": "COIN", "decimals": 24, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/nearprotocol/nearcore" + }, + { + "name": "twitter", + "url": "https://twitter.com/nearprotocol" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/nearprotocol/" + } + ] } \ No newline at end of file diff --git a/blockchains/nebulas/info/info.json b/blockchains/nebulas/info/info.json index 8bc54ef9e..12bd985e3 100644 --- a/blockchains/nebulas/info/info.json +++ b/blockchains/nebulas/info/info.json @@ -21,5 +21,19 @@ "symbol": "NAS", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/nebulasio" + }, + { + "name": "twitter", + "url": "https://twitter.com/nebulasio" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/nebulas" + } + ] } \ No newline at end of file diff --git a/blockchains/neo/info/info.json b/blockchains/neo/info/info.json index 5ae82f463..ae6acde47 100644 --- a/blockchains/neo/info/info.json +++ b/blockchains/neo/info/info.json @@ -21,5 +21,19 @@ "symbol": "NEO", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/neo-project" + }, + { + "name": "twitter", + "url": "https://twitter.com/neo_blockchain" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/NEO" + } + ] } \ No newline at end of file diff --git a/blockchains/nervos/info/info.json b/blockchains/nervos/info/info.json index b619618e1..b4a1932b9 100644 --- a/blockchains/nervos/info/info.json +++ b/blockchains/nervos/info/info.json @@ -20,5 +20,19 @@ "symbol": "CKB", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/nervosnetwork" + }, + { + "name": "twitter", + "url": "https://twitter.com/nervosnetwork" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/NervosNetwork" + } + ] } \ No newline at end of file diff --git a/blockchains/nimiq/info/info.json b/blockchains/nimiq/info/info.json index ed343a422..82f67413f 100644 --- a/blockchains/nimiq/info/info.json +++ b/blockchains/nimiq/info/info.json @@ -20,5 +20,19 @@ "symbol": "NIM", "type": "COIN", "decimals": 5, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/nimiq" + }, + { + "name": "twitter", + "url": "https://twitter.com/nimiq" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Nimiq" + } + ] } \ No newline at end of file diff --git a/blockchains/nuls/info/info.json b/blockchains/nuls/info/info.json index 4bd8971fc..3235015e1 100644 --- a/blockchains/nuls/info/info.json +++ b/blockchains/nuls/info/info.json @@ -21,5 +21,19 @@ "symbol": "NULS", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/nuls-io/nuls" + }, + { + "name": "twitter", + "url": "https://twitter.com/nuls" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/nulsservice" + } + ] } \ No newline at end of file diff --git a/blockchains/oasis/info/info.json b/blockchains/oasis/info/info.json index 6e21a3275..e3738525e 100644 --- a/blockchains/oasis/info/info.json +++ b/blockchains/oasis/info/info.json @@ -26,5 +26,23 @@ "symbol": "ROSE", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/oasisprotocol/" + }, + { + "name": "twitter", + "url": "https://twitter.com/oasisprotocol" + }, + { + "name": "telegram", + "url": "https://t.me/oasisprotocolcommunity" + }, + { + "name": "medium", + "url": "https://medium.com/oasis-protocol-project" + } + ] } \ No newline at end of file diff --git a/blockchains/ontology/info/info.json b/blockchains/ontology/info/info.json index 76822bf6d..ec10827bb 100644 --- a/blockchains/ontology/info/info.json +++ b/blockchains/ontology/info/info.json @@ -21,5 +21,19 @@ "symbol": "ONT", "type": "COIN", "decimals": 0, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/ontio" + }, + { + "name": "twitter", + "url": "https://twitter.com/OntologyNetwork" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/OntologyNetwork" + } + ] } \ No newline at end of file diff --git a/blockchains/poa/info/info.json b/blockchains/poa/info/info.json index 132d5000d..d752312b6 100644 --- a/blockchains/poa/info/info.json +++ b/blockchains/poa/info/info.json @@ -21,5 +21,19 @@ "symbol": "POA", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/poanetwork" + }, + { + "name": "twitter", + "url": "https://twitter.com/poanetwork" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/POA" + } + ] } \ No newline at end of file diff --git a/blockchains/polkadot/info/info.json b/blockchains/polkadot/info/info.json index 17b3dfb44..8ac07ec49 100644 --- a/blockchains/polkadot/info/info.json +++ b/blockchains/polkadot/info/info.json @@ -21,5 +21,19 @@ "symbol": "DOT", "type": "COIN", "decimals": 10, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/w3f" + }, + { + "name": "twitter", + "url": "https://twitter.com/polkadotnetwork" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/dot" + } + ] } \ No newline at end of file diff --git a/blockchains/polygon/info/info.json b/blockchains/polygon/info/info.json index 5c0fd6021..2be54c9e9 100644 --- a/blockchains/polygon/info/info.json +++ b/blockchains/polygon/info/info.json @@ -18,5 +18,23 @@ } ], "explorer": "https://explorer.matic.network/", - "research": "https://docs.matic.network/" + "research": "https://docs.matic.network/", + "type": "COIN", + "symbol": "MATIC", + "decimals": 18, + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/celo-org/celo-blockchain" + }, + { + "name": "twitter", + "url": "https://twitter.com/0xPolygon" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/maticnetwork/" + } + ] } \ No newline at end of file diff --git a/blockchains/qtum/info/info.json b/blockchains/qtum/info/info.json index e96aededc..eed582fba 100644 --- a/blockchains/qtum/info/info.json +++ b/blockchains/qtum/info/info.json @@ -21,5 +21,19 @@ "symbol": "QTUM", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/qtumproject/qtum" + }, + { + "name": "twitter", + "url": "https://twitter.com/qtumOfficial" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Qtum" + } + ] } \ No newline at end of file diff --git a/blockchains/ravencoin/info/info.json b/blockchains/ravencoin/info/info.json index 9cb285233..195d83430 100644 --- a/blockchains/ravencoin/info/info.json +++ b/blockchains/ravencoin/info/info.json @@ -21,5 +21,19 @@ "symbol": "RVN", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/RavenProject/Ravencoin" + }, + { + "name": "twitter", + "url": "https://twitter.com/ravencoin" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Ravencoin" + } + ] } \ No newline at end of file diff --git a/blockchains/ripple/info/info.json b/blockchains/ripple/info/info.json index c96749ad2..b7d6d6914 100644 --- a/blockchains/ripple/info/info.json +++ b/blockchains/ripple/info/info.json @@ -21,5 +21,19 @@ "symbol": "XRP", "type": "COIN", "decimals": 6, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/ripple" + }, + { + "name": "twitter", + "url": "https://twitter.com/Ripple" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Ripple" + } + ] } \ No newline at end of file diff --git a/blockchains/smartbch/info/info.json b/blockchains/smartbch/info/info.json index f0bd77c13..c412df133 100644 --- a/blockchains/smartbch/info/info.json +++ b/blockchains/smartbch/info/info.json @@ -21,5 +21,20 @@ "research": "https://docs.smartbch.org/smartbch/", "symbol": "BCH", "type": "COIN", - "decimals": 18 + "decimals": 18, + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/smartbch/smartbch" + }, + { + "name": "twitter", + "url": "https://twitter.com/SmartBCH" + }, + { + "name": "reddit", + "url": "https://reddit.com/user/SmartBCH" + } + ] } \ No newline at end of file diff --git a/blockchains/solana/info/info.json b/blockchains/solana/info/info.json index 81c371673..49aa4b26b 100644 --- a/blockchains/solana/info/info.json +++ b/blockchains/solana/info/info.json @@ -21,5 +21,19 @@ "symbol": "SOL", "type": "COIN", "decimals": 9, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/solana-labs" + }, + { + "name": "twitter", + "url": "https://twitter.com/solana" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/solana" + } + ] } \ No newline at end of file diff --git a/blockchains/steem/info/info.json b/blockchains/steem/info/info.json index 647553702..63ba03ce8 100644 --- a/blockchains/steem/info/info.json +++ b/blockchains/steem/info/info.json @@ -21,5 +21,19 @@ "symbol": "STEEM", "type": "COIN", "decimals": 8, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/steemit/steem" + }, + { + "name": "twitter", + "url": "https://twitter.com/Steemit" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/steemit" + } + ] } \ No newline at end of file diff --git a/blockchains/stellar/info/info.json b/blockchains/stellar/info/info.json index 8d32c22b4..cc00f08d8 100644 --- a/blockchains/stellar/info/info.json +++ b/blockchains/stellar/info/info.json @@ -21,5 +21,19 @@ "symbol": "XLM", "type": "COIN", "decimals": 7, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/stellar" + }, + { + "name": "twitter", + "url": "https://twitter.com/StellarOrg" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/stellar" + } + ] } \ No newline at end of file diff --git a/blockchains/terra/info/info.json b/blockchains/terra/info/info.json index 55931c788..88eea4c9b 100644 --- a/blockchains/terra/info/info.json +++ b/blockchains/terra/info/info.json @@ -21,5 +21,15 @@ "symbol": "LUNA", "type": "COIN", "decimals": 6, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/terra-project" + }, + { + "name": "twitter", + "url": "https://twitter.com/terra_money" + } + ] } \ No newline at end of file diff --git a/blockchains/tezos/info/info.json b/blockchains/tezos/info/info.json index a8bf40bd2..a101006a3 100644 --- a/blockchains/tezos/info/info.json +++ b/blockchains/tezos/info/info.json @@ -24,5 +24,19 @@ "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "source_code", + "url": "https://gitlab.com/tezos/tezos" + }, + { + "name": "twitter", + "url": "https://twitter.com/tezos" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/tezos" + } ] } \ No newline at end of file diff --git a/blockchains/theta/info/info.json b/blockchains/theta/info/info.json index 169919a45..aaee8bd96 100644 --- a/blockchains/theta/info/info.json +++ b/blockchains/theta/info/info.json @@ -21,5 +21,19 @@ "symbol": "THETA", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/thetatoken" + }, + { + "name": "twitter", + "url": "https://twitter.com/Theta_Network" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/theta_network" + } + ] } \ No newline at end of file diff --git a/blockchains/thundertoken/info/info.json b/blockchains/thundertoken/info/info.json index 77e46240c..5f7b7f54b 100644 --- a/blockchains/thundertoken/info/info.json +++ b/blockchains/thundertoken/info/info.json @@ -21,5 +21,19 @@ "symbol": "TT", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/thundertoken" + }, + { + "name": "twitter", + "url": "https://twitter.com/ThunderProtocol" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/thundertoken" + } + ] } \ No newline at end of file diff --git a/blockchains/tomochain/info/info.json b/blockchains/tomochain/info/info.json index 21aa174cf..1181943e4 100644 --- a/blockchains/tomochain/info/info.json +++ b/blockchains/tomochain/info/info.json @@ -21,5 +21,19 @@ "symbol": "TOMO", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/tomochain" + }, + { + "name": "twitter", + "url": "https://twitter.com/TomoChainANN" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Tomochain" + } + ] } \ No newline at end of file diff --git a/blockchains/ton/info/info.json b/blockchains/ton/info/info.json index 9ccfa4d7f..40034095e 100644 --- a/blockchains/ton/info/info.json +++ b/blockchains/ton/info/info.json @@ -20,5 +20,11 @@ "symbol": "GRAM", "type": "COIN", "decimals": 9, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/ton-blockchain/ton" + } + ] } \ No newline at end of file diff --git a/blockchains/tron/info/info.json b/blockchains/tron/info/info.json index fa3d8f1a0..e8c1b439a 100644 --- a/blockchains/tron/info/info.json +++ b/blockchains/tron/info/info.json @@ -24,5 +24,19 @@ "status": "active", "tags": [ "staking-native" + ], + "links": [ + { + "name": "github", + "url": "https://github.com/tronprotocol" + }, + { + "name": "twitter", + "url": "https://twitter.com/Tronfoundation" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Tronix" + } ] } \ No newline at end of file diff --git a/blockchains/vechain/info/info.json b/blockchains/vechain/info/info.json index fff20e3ed..4d541aba8 100644 --- a/blockchains/vechain/info/info.json +++ b/blockchains/vechain/info/info.json @@ -21,5 +21,19 @@ "symbol": "VET", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/vechain" + }, + { + "name": "twitter", + "url": "https://twitter.com/vechainofficial" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/vechain" + } + ] } \ No newline at end of file diff --git a/blockchains/viacoin/info/info.json b/blockchains/viacoin/info/info.json index b707c8527..3647c1c49 100644 --- a/blockchains/viacoin/info/info.json +++ b/blockchains/viacoin/info/info.json @@ -21,5 +21,19 @@ "symbol": "VIA", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/viacoin/viacoin" + }, + { + "name": "twitter", + "url": "https://twitter.com/viacoin" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/viacoin" + } + ] } \ No newline at end of file diff --git a/blockchains/wanchain/info/info.json b/blockchains/wanchain/info/info.json index 879f63325..1cca91010 100644 --- a/blockchains/wanchain/info/info.json +++ b/blockchains/wanchain/info/info.json @@ -21,5 +21,19 @@ "symbol": "WAN", "type": "COIN", "decimals": 18, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/wanchain" + }, + { + "name": "twitter", + "url": "https://twitter.com/wanchain_org" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/wanchain" + } + ] } \ No newline at end of file diff --git a/blockchains/waves/info/info.json b/blockchains/waves/info/info.json index 6ccfa4b20..63afba2ad 100644 --- a/blockchains/waves/info/info.json +++ b/blockchains/waves/info/info.json @@ -21,5 +21,19 @@ "symbol": "WAVES", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/wavesplatform" + }, + { + "name": "twitter", + "url": "https://twitter.com/wavesplatform" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/Wavesplatform" + } + ] } \ No newline at end of file diff --git a/blockchains/xdai/info/info.json b/blockchains/xdai/info/info.json index 2402a9fb2..8e5fcbab3 100644 --- a/blockchains/xdai/info/info.json +++ b/blockchains/xdai/info/info.json @@ -19,7 +19,21 @@ "explorer": "https://blockscout.com/poa/xdai", "research": "https://research.binance.com/en/projects/poa-network", "symbol": "xDAI", - "type": "ERC20", + "type": "COIN", "decimals": 18, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/xdaichain" + }, + { + "name": "twitter", + "url": "https://twitter.com/xdaichain" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/POA" + } + ] } \ No newline at end of file diff --git a/blockchains/xdc/info/info.json b/blockchains/xdc/info/info.json index a374604e1..8b9a5d17f 100644 --- a/blockchains/xdc/info/info.json +++ b/blockchains/xdc/info/info.json @@ -20,5 +20,19 @@ "symbol": "XDC", "type": "COIN", "decimals": 10, - "status": "abandoned" + "status": "abandoned", + "links": [ + { + "name": "github", + "url": "https://github.com/XinFinORG" + }, + { + "name": "twitter", + "url": "https://twitter.com/XinFin_Official" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/xinfin" + } + ] } \ No newline at end of file diff --git a/blockchains/zcash/info/info.json b/blockchains/zcash/info/info.json index 3e6c1e45f..1c0ab2de3 100644 --- a/blockchains/zcash/info/info.json +++ b/blockchains/zcash/info/info.json @@ -21,5 +21,19 @@ "symbol": "ZEC", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/zcash/zcash" + }, + { + "name": "twitter", + "url": "https://twitter.com/electriccoinco" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/zec/" + } + ] } \ No newline at end of file diff --git a/blockchains/zelcash/info/info.json b/blockchains/zelcash/info/info.json index b6cf5a200..58ef021a7 100644 --- a/blockchains/zelcash/info/info.json +++ b/blockchains/zelcash/info/info.json @@ -20,5 +20,19 @@ "symbol": "FLUX", "type": "COIN", "decimals": 8, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/zelcash/zelcash" + }, + { + "name": "twitter", + "url": "https://twitter.com/flux" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/RunOnFlux" + } + ] } \ No newline at end of file diff --git a/blockchains/zilliqa/info/info.json b/blockchains/zilliqa/info/info.json index 23f448dd8..fca7dd6b1 100644 --- a/blockchains/zilliqa/info/info.json +++ b/blockchains/zilliqa/info/info.json @@ -21,5 +21,19 @@ "symbol": "ZIL", "type": "COIN", "decimals": 12, - "status": "active" + "status": "active", + "links": [ + { + "name": "github", + "url": "https://github.com/Zilliqa/Zilliqa" + }, + { + "name": "twitter", + "url": "https://twitter.com/zilliqa" + }, + { + "name": "reddit", + "url": "https://reddit.com/r/zilliqa" + } + ] } \ No newline at end of file diff --git a/script/generic/asset-infos.ts b/script/generic/asset-infos.ts index da1f0e4ce..80f42fa69 100644 --- a/script/generic/asset-infos.ts +++ b/script/generic/asset-infos.ts @@ -2,7 +2,9 @@ import { allChains, getChainAssetsList, getChainAssetsPath, - getChainAssetInfoPath + getChainAssetInfoPath, + getChainInfoPath, + getChainCoinInfoPath } from "./repo-structure"; import { isPathExistsSync } from "./filesystem"; import { arrayDiff } from "./types"; @@ -13,7 +15,8 @@ import { isValidStatusValue } from "../generic/status-values"; import { isValidTagValues } from "../generic/tag-values"; import * as bluebird from "bluebird"; -const requiredKeys = ["name", "type", "symbol", "decimals", "description", "website", "explorer", "status", "id"]; +const requiredKeysCoin = ["name", "type", "symbol", "decimals", "description", "website", "explorer", "status"]; +const requiredKeysToken = [...requiredKeysCoin, "id"]; // Supported keys in links, and their mandatory prefix const linksKeys = { @@ -38,8 +41,9 @@ const linksKeys = { const linksKeysString = Object.keys(linksKeys).reduce(function (agg, item) { return agg + item + ","; }, ''); const linksMediumContains = 'medium.com'; -function isAssetInfoHasAllKeys(info: unknown, path: string): [boolean, string] { +function isAssetInfoHasAllKeys(info: unknown, path: string, isCoin: boolean): [boolean, string] { const infoKeys = Object.keys(info); + const requiredKeys = isCoin ? requiredKeysCoin : requiredKeysToken; const hasAllKeys = requiredKeys.every(k => Object.prototype.hasOwnProperty.call(info, k)); @@ -47,23 +51,34 @@ function isAssetInfoHasAllKeys(info: unknown, path: string): [boolean, string] { } // return error, warning, and fixed into if applicable -function isAssetInfoValid(info: unknown, path: string, address: string, chain: string, checkOnly: boolean): [string, string, unknown?] { +function isAssetInfoValid(info: unknown, path: string, address: string, chain: string, isCoin: boolean, checkOnly: boolean): [string, string, unknown?] { let fixedInfo: unknown|null = null; const isKeys1CorrectType = typeof info['name'] === "string" && info['name'] !== "" && typeof info['type'] === "string" && info['type'] !== "" && typeof info['symbol'] === "string" && info['symbol'] !== "" && typeof info['decimals'] === "number" && //(info['description'] === "-" || info['decimals'] !== 0) && - typeof info['status'] === "string" && info['status'] !== "" && - typeof info['id'] === "string" && info['id'] !== "" + typeof info['status'] === "string" && info['status'] !== "" ; if (!isKeys1CorrectType) { - return [`Field missing or invalid; name '${info['name']}' type '${info['type']}' symbol '${info['symbol']}' decimals '${info['decimals']}' id '${info['id']}' ${path}`, "", fixedInfo]; + return [`Field missing or invalid; name '${info['name']}' type '${info['type']}' symbol '${info['symbol']}' decimals '${info['decimals']}' ${path}`, "", fixedInfo]; + } + if (!isCoin) { + const isIdKeyCorrectType = typeof info['id'] === "string" && info['id'] !== ""; + if (!isIdKeyCorrectType) { + return [`Field 'id' missing or invalid, '${info['id']}' ${path}`, "", fixedInfo]; + } } // type - if (chainFromAssetType(info['type'].toUpperCase()) !== chain ) { - return [`Incorrect value for type '${info['type']}' '${chain}' ${path}`, "", fixedInfo]; + if (isCoin) { + if (info['type'] !== 'COIN' ) { + return [`Incorrect value for type '${info['type']}', should be 'COIN' ${path}`, "", fixedInfo]; + } + } else { + if (chainFromAssetType(info['type'].toUpperCase()) !== chain ) { + return [`Incorrect value for type '${info['type']}' '${chain}' ${path}`, "", fixedInfo]; + } } if (info['type'] !== info['type'].toUpperCase()) { // type is correct value, but casing is wrong, fix @@ -75,18 +90,20 @@ function isAssetInfoValid(info: unknown, path: string, address: string, chain: s fixedInfo['type'] = info['type'].toUpperCase(); } - // id, should match address - if (info['id'] != address) { - if (checkOnly) { - if (info['id'].toUpperCase() != address.toUpperCase()) { - return [`Incorrect value for id '${info['id']}' '${chain}' ${path}`, "", fixedInfo]; + if (!isCoin) { + // id, should match address + if (info['id'] != address) { + if (checkOnly) { + if (info['id'].toUpperCase() != address.toUpperCase()) { + return [`Incorrect value for id '${info['id']}' '${chain}' ${path}`, "", fixedInfo]; + } + // is is correct value, but casing is wrong + return [`Wrong casing for id '${info['id']}' '${chain}' ${path}`, "", fixedInfo]; } - // is is correct value, but casing is wrong - return [`Wrong casing for id '${info['id']}' '${chain}' ${path}`, "", fixedInfo]; + // fix + if (!fixedInfo) { fixedInfo = info; } + fixedInfo['id'] = address; } - // fix - if (!fixedInfo) { fixedInfo = info; } - fixedInfo['id'] = address; } // status @@ -276,8 +293,9 @@ function explorerUrlAlternatives(chain: string, contract: string, name: string): } // Check the an assets's info.json; for errors/warning. Also does fixes in certain cases -function isAssetInfoOK(chain: string, address: string, errors: string[], warnings: string[], checkOnly: boolean): void { - const assetInfoPath = getChainAssetInfoPath(chain, address); +function isAssetInfoOK(chain: string, isCoin: boolean, address: string, errors: string[], warnings: string[], checkOnly: boolean): void { + const assetInfoPath = isCoin ? getChainCoinInfoPath(chain) : getChainAssetInfoPath(chain, address); + if (!isPathExistsSync(assetInfoPath)) { // Info file doesn't exist, no need to check return; @@ -292,13 +310,13 @@ function isAssetInfoOK(chain: string, address: string, errors: string[], warning let info: unknown = readJsonFile(assetInfoPath); let fixedInfo: unknown|null = null; - const [hasAllKeys, msg1] = isAssetInfoHasAllKeys(info, assetInfoPath); + const [hasAllKeys, msg1] = isAssetInfoHasAllKeys(info, assetInfoPath, isCoin); if (!hasAllKeys) { console.log(msg1); errors.push(msg1); } - const [err2, warn2, fixedInfo2] = isAssetInfoValid(info, assetInfoPath, address, chain, checkOnly); + const [err2, warn2, fixedInfo2] = isAssetInfoValid(info, assetInfoPath, address, chain, isCoin, checkOnly); if (err2) { errors.push(err2); } @@ -325,37 +343,39 @@ function isAssetInfoOK(chain: string, address: string, errors: string[], warning } } - const explorerExpected = explorerUrl(chain, address); - const hasExplorer = Object.prototype.hasOwnProperty.call(info, 'explorer'); - const explorerActual = info['explorer'] || ''; - const explorerActualLower = explorerActual.toLowerCase(); - const explorerExpectedLower = explorerExpected.toLowerCase(); - if (checkOnly) { - if (!hasExplorer) { - errors.push(`Missing explorer key`); - } else { - if (explorerActualLower !== explorerExpectedLower && explorerExpected) { - // doesn't match, check for alternatives - const explorersAlt = explorerUrlAlternatives(chain, address, info['name']); - if (explorersAlt && explorersAlt.length > 0) { - let matchCount = 0; - explorersAlt.forEach(exp => { if (exp.toLowerCase() == explorerActualLower) { ++matchCount; }}); - if (matchCount == 0) { - // none matches, this is warning/error - if (chain.toLowerCase() == CoinType.name(CoinType.ethereum) || chain.toLowerCase() == CoinType.name(CoinType.smartchain)) { - errors.push(`Incorrect explorer, ${explorerActual} instead of ${explorerExpected} (${explorersAlt.join(', ')})`); - } else { - warnings.push(`Unexpected explorer, ${explorerActual} instead of ${explorerExpected} (${explorersAlt.join(', ')})`); + if (!isCoin) { + const explorerExpected = explorerUrl(chain, address); + const hasExplorer = Object.prototype.hasOwnProperty.call(info, 'explorer'); + const explorerActual = info['explorer'] || ''; + const explorerActualLower = explorerActual.toLowerCase(); + const explorerExpectedLower = explorerExpected.toLowerCase(); + if (checkOnly) { + if (!hasExplorer) { + errors.push(`Missing explorer key`); + } else { + if (explorerActualLower !== explorerExpectedLower && explorerExpected) { + // doesn't match, check for alternatives + const explorersAlt = explorerUrlAlternatives(chain, address, info['name']); + if (explorersAlt && explorersAlt.length > 0) { + let matchCount = 0; + explorersAlt.forEach(exp => { if (exp.toLowerCase() == explorerActualLower) { ++matchCount; }}); + if (matchCount == 0) { + // none matches, this is warning/error + if (chain.toLowerCase() == CoinType.name(CoinType.ethereum) || chain.toLowerCase() == CoinType.name(CoinType.smartchain)) { + errors.push(`Incorrect explorer, ${explorerActual} instead of ${explorerExpected} (${explorersAlt.join(', ')})`); + } else { + warnings.push(`Unexpected explorer, ${explorerActual} instead of ${explorerExpected} (${explorersAlt.join(', ')})`); + } } } } } - } - } else { - // fix: simply replace with expected (case-only deviation is accepted) - if (explorerActualLower !== explorerExpectedLower) { - if (!fixedInfo) { fixedInfo = info; } - fixedInfo['explorer'] = explorerExpected; + } else { + // fix: simply replace with expected (case-only deviation is accepted) + if (explorerActualLower !== explorerExpectedLower) { + if (!fixedInfo) { fixedInfo = info; } + fixedInfo['explorer'] = explorerExpected; + } } } @@ -370,19 +390,19 @@ export class AssetInfos implements ActionInterface { getSanityChecks(): CheckStepInterface[] { const steps: CheckStepInterface[] = []; + // tokens info.json's allChains.forEach(chain => { - // only if there is no assets subfolder if (isPathExistsSync(getChainAssetsPath(chain))) { steps.push( { - getName: () => { return `Info.json's for chain ${chain}`;}, + getName: () => { return `Token info.json's for chain ${chain}`;}, check: async () => { const errors: string[] = []; const warnings: string[] = []; const assetsList = getChainAssetsList(chain); //console.log(` Found ${assetsList.length} assets for chain ${chain}`); await bluebird.each(assetsList, async (address) => { - isAssetInfoOK(chain, address, errors, warnings, true); + isAssetInfoOK(chain, false, address, errors, warnings, true); }); return [errors, warnings]; } @@ -390,6 +410,22 @@ export class AssetInfos implements ActionInterface { ); } }); + // coin info.json + steps.push( + { + getName: () => { return `Coin info.json's`;}, + check: async () => { + const errors: string[] = []; + const warnings: string[] = []; + allChains.forEach(chain => { + if (isPathExistsSync(getChainInfoPath(chain))) { + isAssetInfoOK(chain, true, '../info', errors, warnings, true); + } + }); + return [errors, warnings]; + } + } + ); return steps; } @@ -401,9 +437,14 @@ export class AssetInfos implements ActionInterface { const warnings: string[] = []; const assetsList = getChainAssetsList(chain); await bluebird.each(assetsList, async (address) => { - isAssetInfoOK(chain, address, errors, warnings, false); + isAssetInfoOK(chain, false, address, errors, warnings, false); }); } + if (isPathExistsSync(getChainInfoPath(chain))) { + const errors: string[] = []; + const warnings: string[] = []; + isAssetInfoOK(chain, true, '[COIN]', errors, warnings, false); + } }); } } diff --git a/script/generic/repo-structure.ts b/script/generic/repo-structure.ts index 52b4497e0..2d2aa786e 100644 --- a/script/generic/repo-structure.ts +++ b/script/generic/repo-structure.ts @@ -29,7 +29,9 @@ export const chainFolderAllowedFiles = [ export const chainsPath: string = path.join(process.cwd(), '/blockchains'); export const getChainPath = (chain: string): string => `${chainsPath}/${chain}`; export const allChains = readDirSync(chainsPath); -export const getChainLogoPath = (chain: string): string => `${getChainPath(chain)}/info/${logoFullName}`; +export const getChainInfoPath = (chain: string): string => `${getChainPath(chain)}/info`; +export const getChainLogoPath = (chain: string): string => `${getChainInfoPath(chain)}/${logoFullName}`; +export const getChainCoinInfoPath = (chain: string): string => `${getChainInfoPath(chain)}/${infoFullName}`; export const getChainAssetsPath = (chain: string): string => `${getChainPath(chain)}/assets`; export const getChainAssetPath = (chain: string, asset: string): string => `${getChainAssetsPath(chain)}/${asset}`; export const getChainAssetLogoPath = (chain: string, asset: string): string => `${getChainAssetPath(chain, asset)}/${logoFullName}`;