[Internal] Coin info's: Include in checks; perform socials->links migration (#10707)

* Include coin info.json's in checks as well

* Put all chain coin cheks into one check step

* Socials->links adaptation in coin info.json's

Co-authored-by: Catenocrypt <catenocrypt@users.noreply.github.com>
This commit is contained in:
Adam R 2021-06-25 11:12:11 +02:00 committed by GitHub
parent d1d2523f9d
commit e3d5d8ed79
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
77 changed files with 1178 additions and 124 deletions

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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/"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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/"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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/"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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/"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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/"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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/"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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/"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -20,5 +20,11 @@
"symbol": "GRAM",
"type": "COIN",
"decimals": 9,
"status": "abandoned"
"status": "abandoned",
"links": [
{
"name": "github",
"url": "https://github.com/ton-blockchain/ton"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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/"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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"
}
]
}

View File

@ -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);
}
});
}
}

View File

@ -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}`;