Format asset info.json + add test to check. Daily update.

This commit is contained in:
Mykola 2020-04-10 17:49:55 -07:00
parent 0d6b3ead85
commit ad04ceda88
39 changed files with 258 additions and 155 deletions

View File

@ -2,6 +2,8 @@
"name": "PieDAO BTC++",
"website": "https://piedao.org",
"short_description": "Diversified Bitcoin exposure on Ethereum",
"socials": ["https://twitter.com/PieDAO_DeFi"],
"socials": [
"https://twitter.com/PieDAO_DeFi"
],
"explorer": "https://etherscan.io/token/0x0327112423f3a68efdf1fcf402f6c5cb9f7c33fd"
}

View File

@ -1,6 +1,6 @@
{
"name": "Digital CHF",
"symbol": "DCHF",
"smart_contract": "0x0703Fb3CCF77D117Ecbb19774b5f97c5a4875c9D",
"explorer": "https://etherscan.io/token/0x0703Fb3CCF77D117Ecbb19774b5f97c5a4875c9D"
"name": "Digital CHF",
"website": "",
"short_description": "",
"explorer": "https://etherscan.io/token/0x0703Fb3CCF77D117Ecbb19774b5f97c5a4875c9D"
}

View File

@ -1,5 +1,4 @@
{
"name": "BitPhantom Pro",
"website": "https://pro.bitphantom.io",
"source_code": "https://github.com/bitphantom-ops",
@ -19,5 +18,4 @@
}
],
"explorer": "https://etherscan.io/token/0x0D24e4A32B174ff6777059D4fD6bF8CFE031014b"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -1,6 +1,6 @@
{
"name": "USDI",
"website": "https://otfund.io/",
"short_description": "USDI payment gateway.",
"explorer": "https://etherscan.io/token/0x211d6373313dAfa21789767E2A255e0C435E7F5d"
}
"name": "USDI",
"website": "https://otfund.io/",
"short_description": "USDI payment gateway.",
"explorer": "https://etherscan.io/token/0x211d6373313dAfa21789767E2A255e0C435E7F5d"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -18,4 +18,4 @@
"handle": "Polar berry"
}
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -4,6 +4,7 @@
"source_code": "https://github.com/blocksquare",
"short_description": "Increase value and liquidity of real estate properties in your portfolio.",
"description": "Increase value and liquidity of real estate properties in your portfolio.",
"explorer": "https://etherscan.io/address/0x509a38b7a1cc0dcd83aa9d06214663d9ec7c7f4a",
"socials": [
{
"name": "Twitter",

View File

@ -1,6 +1,6 @@
{
"name": "Ltconlinemarkets",
"website": "https://ltconlinemarkets.com/Token/",
"short_description": "LOM is a collaborative and decentralised solution for the globalsourcing and problems.I",
"explorer": "https://etherscan.io/address/0x64f64a26873ffbd11188679fb85fe00b6a2dde27"
{
"name": "Ltconlinemarkets",
"website": "https://ltconlinemarkets.com/Token/",
"short_description": "LOM is a collaborative and decentralised solution for the globalsourcing and problems.I",
"explorer": "https://etherscan.io/address/0x64f64a26873ffbd11188679fb85fe00b6a2dde27"
}

View File

@ -1,12 +1,6 @@
{
"name": "World Wide Web Coin (WWW)",
"website": "https://norisk.trade",
"short_description": "WWW is a Stable Coin which want to sell Internet throughout the world.Backed stablecoins are subject to the same volatility and risk associated with the backing asset. If the backed stablecoin is backed in a decentralized manner, then they are relatively safe from predation, but if there is a central vault, they may be robbed, of suffer loss of confidence.",
"explorers": [
{
"name": "Etherscan",
"url": "https://etherscan.io/address/0x6a0ae448da83d73b291a199b798d13bb2e7d664d"
}
],
"data_source": "crowd"
{
"name": "World Wide Web Coin (WWW)",
"website": "https://norisk.trade",
"short_description": "WWW is a Stable Coin which want to sell Internet throughout the world.Backed stablecoins are subject to the same volatility and risk associated with the backing asset. If the backed stablecoin is backed in a decentralized manner, then they are relatively safe from predation, but if there is a central vault, they may be robbed, of suffer loss of confidence.",
"explorer": "https://etherscan.io/address/0x6a0ae448da83d73b291a199b798d13bb2e7d664d"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -2,11 +2,5 @@
"name": "NaGa",
"website": "https://nagatrade.com",
"short_description": "Binary options trading platform",
"explorers": [
{
"name": "Etherscan",
"url": "https://etherscan.io/token/0x73145e8603c71fffdc4e37e6957a6c55db00ed23"
}
],
"data_source": "crowd"
}
"explorer": "https://etherscan.io/token/0x73145e8603c71fffdc4e37e6957a6c55db00ed23"
}

View File

@ -1,6 +1,6 @@
{
"name": "OTFund",
"website": "https://otfund.io/",
"short_description": "OTFUND is the first open-end fund plaform integrates BLOCKCHAIN on DAPP GAME, DIGITAL LOTTERY, DIGITAL TRADING, GAME ONLINE, BLOCKCHAIN ACADEMY, E-COMMERCE SHARING ECONOMY which is officially launched in October.",
"explorer": "https://etherscan.io/token/0x75A93C11dFF32A4312057714257758B113a0F512"
}
"name": "OTFund",
"website": "https://otfund.io/",
"short_description": "OTFUND is the first open-end fund plaform integrates BLOCKCHAIN on DAPP GAME, DIGITAL LOTTERY, DIGITAL TRADING, GAME ONLINE, BLOCKCHAIN ACADEMY, E-COMMERCE SHARING ECONOMY which is officially launched in October.",
"explorer": "https://etherscan.io/token/0x75A93C11dFF32A4312057714257758B113a0F512"
}

View File

@ -1,6 +1,6 @@
{
"Name": "REBITCOIN",
"Symbol": "RBTC",
"name": "REBITCOIN",
"website": "",
"short_description": "REBITCOIN",
"explorer": "https://etherscan.io/token/0x7f65BE7FAd0c22813e51746E7e8f13a20bAa9411"
}
}

View File

@ -1,12 +1,6 @@
{
"name": "Tether DeFi (USDD)",
"website": "https://tetherdefi.com",
"short_description": "Tether DeFi (USDD) is called a stablecoin because it was originally designed to always be worth $1.00, maintaining $1.00 in reserves for each tether issued. Nevertheless, Tether DeFi (USDD) Limited states that owners of tethers have no contractual right, other legal claims, or guarantee that tethers will be redeemed or exchanged for dollars.",
"explorers": [
{
"name": "Etherscan",
"url": "https://etherscan.io/token/0x861d899E74eC0e84fa8A15Ba58088Bb3BACcb6FA"
}
],
"data_source": "crowd"
{
"name": "Tether DeFi (USDD)",
"website": "https://tetherdefi.com",
"short_description": "Tether DeFi (USDD) is called a stablecoin because it was originally designed to always be worth $1.00, maintaining $1.00 in reserves for each tether issued. Nevertheless, Tether DeFi (USDD) Limited states that owners of tethers have no contractual right, other legal claims, or guarantee that tethers will be redeemed or exchanged for dollars.",
"explorer": "https://etherscan.io/token/0x861d899E74eC0e84fa8A15Ba58088Bb3BACcb6FA"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

View File

@ -3,4 +3,4 @@
"website": "https://www.mtpelerin.com",
"short_description": "Mt Pelerin company shares issued on blockchain and recognized as shares providing the same level of protection conferred by Swiss law",
"explorer": "https://etherscan.io/token/0x96c645d3d3706f793ef52c19bbace441900ed47d"
}
}

View File

@ -1,6 +1,6 @@
{
"name": "CryptoBRL",
"website": "https://cryptobrl.com",
"short_description": "The CryptoBRL is a stablecoin pegged one for one to the Brazilian Real. It's supported and adopted by a consortium with several companies from Brazilian cryptocurrency market. Every token is backed by traditional currency, the reserve holdings are published and subject to 'distributed audits', from the companies in the consortium and other important players from the crypto-market.",
"explorer": "https://etherscan.io/token/0xa6fa6531acdf1f9f96eddd66a0f9481e35c2e42a"
{
"name": "CryptoBRL",
"website": "https://cryptobrl.com",
"short_description": "The CryptoBRL is a stablecoin pegged one for one to the Brazilian Real. It's supported and adopted by a consortium with several companies from Brazilian cryptocurrency market. Every token is backed by traditional currency, the reserve holdings are published and subject to 'distributed audits', from the companies in the consortium and other important players from the crypto-market.",
"explorer": "https://etherscan.io/token/0xa6fa6531acdf1f9f96eddd66a0f9481e35c2e42a"
}

View File

@ -1,5 +1,6 @@
{
"name": "CRYPTOASH Token",
"short_description": "CRYPTOASH Token (CryptASH) is an ERC20 based token, it's an open source unlicesed token created by Telegram crypto community with love on Ethereum platform.",
"explorer": "https://etherscan.io/token/0xb2ee225350337d17f5a5ea037a0f0b6172df5a4a"
{
"name": "CRYPTOASH Token",
"website": "",
"short_description": "CRYPTOASH Token (CryptASH) is an ERC20 based token, it's an open source unlicesed token created by Telegram crypto community with love on Ethereum platform.",
"explorer": "https://etherscan.io/token/0xb2ee225350337d17f5a5ea037a0f0b6172df5a4a"
}

View File

@ -1,13 +1,13 @@
{
"name": "USDX",
"description": "A fast way to transfer money globally in secured digital transactions.",
"short_description": "A fast way to transfer money globally in secured digital transactions.",
"website": "",
"socials": [
{
"name": "Twitter",
"url": "https://twitter.com/coinusdx",
"handle": "coinusdx"
}
],
"explorer": "https://etherscan.io/token/0xbec4a69d6a5fbcb2303c13d24ea1a51a6f19bd12"
}

View File

@ -3,4 +3,4 @@
"website": "https://protonchain.com",
"short_description": "Proton is a new public blockchain and dApp platform designed for both consumer applications and P2P payments. It is built around a secure identity and financial settlements layer that allows users to directly link real identity and fiat accounts, pull funds and use crypto seamlessly.",
"explorer": "https://etherscan.io/token/0xD7EFB00d12C2c13131FD319336Fdf952525dA2af"
}
}

View File

@ -1,7 +1,7 @@
{
"name": "OxyCoin",
"symbol": "OXY",
"symbol": "OXY",
"website": "https://www.oxy-coin.com",
"short_description": "OxyCoin (OXY) is an ERC20 Token that supplied 244,140,625,000,000,000,000 coins",
"explorer": "https://etherscan.io/token/0xd83a162d4808c370a1445646e64cc4861eb60b92"
}
}

View File

@ -1,5 +1,6 @@
{
"name": "BRO",
"short_description": "BROCoin is a friend token.",
"website": "",
"explorer": "https://etherscan.io/token/0xF41804cf0720eca53c7297Eb3BF2B61465a9DBbe"
}
}

View File

@ -1,6 +1,6 @@
{
"Name": "REBITCOIN",
"Symbol": "RBTC",
"name": "REBITCOIN",
"website": "",
"short_description": "REBITCOIN token.",
"explorer": "https://etherscan.io/token/0xae690cf07c85bfb2de29ab32080c0ea182ae82b5"
}
}

View File

@ -1,20 +1,20 @@
{
"name": "Azuma coin",
"website": "https://azumacoin.io/",
"white_paper": "https://www.azumacoin.io/static/Azuma_WP_Sep17-2b944767e8ac9abe89bd3ae0fdf6cfa1.pdf",
"short_description": "Azuma Games is a crypto game development company striving to integrate AAA graphics, exciting game-play, and crypto rewards. Azuma Coin is our native token.",
"description": "Azuma Games is a crypto game development company striving to integrate AAA graphics, exciting game-play, and crypto rewards. Azuma Coin is our native token.",
"socials": [
{
"name": "Twitter",
"url": "https://twitter.com/gamesazuma",
"handle": "GamesAzuma"
},
{
"name": "Telegram",
"url": "https://t.me/azumagames",
"handle": "AzumaGames"
}
],
"explorer": "https://etherscan.io/token/0xd26a9c3437f7d121098c8c05c7413f5cc70bb070"
}
{
"name": "Azuma coin",
"website": "https://azumacoin.io/",
"white_paper": "https://www.azumacoin.io/static/Azuma_WP_Sep17-2b944767e8ac9abe89bd3ae0fdf6cfa1.pdf",
"short_description": "Azuma Games is a crypto game development company striving to integrate AAA graphics, exciting game-play, and crypto rewards. Azuma Coin is our native token.",
"description": "Azuma Games is a crypto game development company striving to integrate AAA graphics, exciting game-play, and crypto rewards. Azuma Coin is our native token.",
"socials": [
{
"name": "Twitter",
"url": "https://twitter.com/gamesazuma",
"handle": "GamesAzuma"
},
{
"name": "Telegram",
"url": "https://t.me/azumagames",
"handle": "AzumaGames"
}
],
"explorer": "https://etherscan.io/token/0xd26a9c3437f7d121098c8c05c7413f5cc70bb070"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -160,6 +160,7 @@
"0x0A149deE25eE0D8C9BbAF99620c4Cb94B606bcdE",
"0x0A2e35eEc795c1e758FbF885852CA4cC47B36002",
"0x0A2eA71d943BF917b410593194595e1f48d40e54",
"0x0a3349B9d99Fa76F08Ac664d5e98c3A2bC43Adc7",
"0x0a3e99cF6a1ff8bEBbCA072CD5F203bCC25F5da6",
"0x0A4F13087cc27f2A9A437a579AC48761946eac64",
"0x0A8F477588C7d6d91247B207b775d3Fce0013425",
@ -345,6 +346,7 @@
"0x1866c6907E70eB176109363492B95e3617b4A195",
"0x186963Cae27017959F012Aff82aaAf528C0C5f5a",
"0x18697CF1A26CfD939D68B58EDDc21284bb2f84BE",
"0x187C4B0e3819017a5cf07af81A4E2b16166aAbc6",
"0x1880744F57aa935f9155675730D17E43B9B624e4",
"0x188A7c473D94F5c5ed21Bc2E820CF51934b40388",
"0x18A753C76633351143b7F69CE8fF00Ec22BCdBBb",
@ -483,6 +485,7 @@
"0x211893cEf35F6650337CFe81A32B52F214BC5f83",
"0x212936750AeDd9715aE981dCb6C5c2a72B86773B",
"0x2135109f53d03CC782058eaDEe69C0B255D000F8",
"0x2144DF04A44086fCf28290cF050A3F038A87f049",
"0x21450F382a5C5C60869339aFb308154629A687De",
"0x2155d93d837B35D0e6ADDbEaf3e907e2B0cB65bB",
"0x218d9C723464CD066345e004B282476a1995924B",
@ -721,6 +724,7 @@
"0x332976B93405b3205A67cE9a889b03183B705B74",
"0x3347521c33BCb5F60A03bB8505A2aD7693342a77",
"0x338c8A4fF27F1d03165c037F762C598f08176c6C",
"0x339A1D6D186098B47ede6c67429aEC9D71EE4bBB",
"0x33C8A345830636556160C2ebc3AbB90be2e1252b",
"0x33EE42B6025f10A71c883fFb298655fB22C9C825",
"0x340716f8428e9A548b86ac9995621fD1e2e9d0A1",
@ -1643,6 +1647,7 @@
"0x72ad1D9c892d648B39Ad54A4F00ba4EaF1413620",
"0x72B4d10e40418a658684F34a58A983bEcb2e4A30",
"0x72cBAe31BC03D282BB26595fA9C0c2918A4C0CC7",
"0x72dD9Ec1326f5359e42f1F8e020bFc3F3de59940",
"0x72E42Cbed7b53A79bc528Ae4Ca37369182b6832b",
"0x72F18Fe8617504AeB54D9D55A39547F4f91dA2ea",
"0x730b306c75A1A0A50bF05b397Be377C2Af341608",
@ -1764,6 +1769,7 @@
"0x7a50cbe52ad327fF7B2692d5575260202EdcEa1E",
"0x7a5DaB48EC20725c226DF4A1Df7f151834E1D53e",
"0x7A8141390155a6Ed41E3437029268bDADf3852Df",
"0x7a87c17c7C9fEAf32db3d944Ec1c2353C082D3E6",
"0x7A8ffbEdAe7CE168819fAAdEE77333f96F88a763",
"0x7aA4b6272f22755Dfbc00Dc8342046cF5F90Bd0b",
"0x7AA90aCD5D6e86000d88AD9B180215FAeB480663",
@ -2045,6 +2051,7 @@
"0x8d604EC183903dcd52A3aF17dcc52bdF1CD5bc24",
"0x8D6B9ef7A8f7D7959Bf3eF50FbC7Be0766E4070a",
"0x8d7dd7B604b4e0A8Dd3Cc343522cAA2Aa426e6E7",
"0x8d8AbB4Dc065BBD45b7Ddb281DdF17e94d66b7dC",
"0x8D8b7FDf074AB27DBe6dB9a9028cEE5867CF39f6",
"0x8D9588C080e7BbF2c0aB00337844F252F851bF85",
"0x8dc3be37a1D83A174A4d417980BCB455e347BA65",
@ -2066,6 +2073,7 @@
"0x8f5f964F3B38282e6A3d16B5a14DA0fa1b1c4A3B",
"0x8F6a88E38B6Bb281BE548AcD5b6aD546C433C3D5",
"0x8F941cdDfbe9bb155F284E771270985a1fEa98f3",
"0x8F9bfe5b6A5C3fEa8c64ad41a5Cf6f60Ec4aa47c",
"0x8fA51B94d32D138aaa44EE43A6F9e5e2868aEe9f",
"0x8FAd0E0813D549f72db329e3b34649DdC76acDdA",
"0x8fae5fE2b7ADc264B1Fb55f77b553Af480AAD185",
@ -2234,6 +2242,7 @@
"0x99ef076804ce6076Dd98205A9417C50D728Bc1f6",
"0x9a1F116665C6625C3AE024ebfEcEDF4Aac061814",
"0x9A2B38227b28ddd7d683F1801DD43444C090867b",
"0x9a5CFE95919e86308737059076784dB1b1f8Fc28",
"0x9a88c80aa2F73F4B9687CaD5E076A225bc43EcDf",
"0x9A9dbffF8923d43d770566fAe1e39b34Ba9a1C35",
"0x9Aa004F140B8358B8593F9379CD323d1043b97e5",
@ -2523,6 +2532,7 @@
"0xAE564767D77D825d645148858FCcaACab4032f2a",
"0xAe611aC177dD1D253482D437E4cBb3ee6010251C",
"0xaE6E071De3B277952b56CB7fc1b5C7cB02D5B4a9",
"0xae79Cf9362b289036797828044fA2e541762b394",
"0xaE8bf6E600C6833182Ba2e1d90615d0eD6dB398f",
"0xAE8ca95A969f9738Dfbdb3957647c735e436Ff23",
"0xae90e0F7F3f2191B17b1816dFA8C5Ce8e049DC96",
@ -2548,6 +2558,7 @@
"0xaF7D37EFb8fE7198Ed55Cb5254EF0B357DB6049F",
"0xAfd614849563975b249e65551Cd2e8f53B410c80",
"0xaFE8BD57DEC343279Ec0f628813DAF2DF18e0A70",
"0xb00707bF77c74C3f1CE899B230b9f0ACDD7FE6e2",
"0xb0083C29f9Aa3a04cd60d61e5ffA1C7297015D31",
"0xB0114bbDCe17e0AF91b2Be32916a1e236cf6034F",
"0xb0192a32D80e9CfBe8b054664968A6B61de56E57",
@ -2810,6 +2821,7 @@
"0xC0eB2d33B7405F1337B18cdeA06E62AD6564D1d6",
"0xc0F2c2bC8C066cA7B218F781A6741ba6b50FF5D8",
"0xc1013ACD27091812F32b59E1D28F08Ad502dAC92",
"0xC11135Fbdd294b88Ba50bD7c34D072cbbA0B95f3",
"0xC141140E34Ebf78921FE4F721fB89A1f360dF83C",
"0xC152537E5AC59De776Ea2B50FfC53A61DeCe0e16",
"0xc161A7c391BE6f0B1fDc4192a11560bf8d3066f2",
@ -2876,6 +2888,7 @@
"0xc51c6f6A9692F12D6F611ACdd74eA9273C1e32fE",
"0xC54a73fe64Cebc165637381639e8578e7e7000bc",
"0xC552A1c458002b5C13f76aC08d06Fe0A6C56C022",
"0xc55aBAa80EC522c07b3df6F8Abb6438d3a23Aa45",
"0xc563b7d10c04C1E1FfccbFA31cB3D67b9698Aa8A",
"0xc569b368D2F6Ce6aE819CaDDEDFd95dCe3390d51",
"0xc5719917b5Dc935CdfC26FeC8F3a64b01f6DC220",
@ -2903,6 +2916,7 @@
"0xC6a6fc4BdB74E68AeC4E90bc344244a69b41BdeF",
"0xC6EebD4a45a8Ff06C7e26365ddE2C0DfC488da36",
"0xC6F2e513cf0930F890C4aBD265Fa444262958732",
"0xc6fA78cF7B830024DC2234b25a8C0c2079bdFCD3",
"0xc6ff88aeDBEbD082505C37e78d07967bE30FF8a5",
"0xc6ffD2c7A0ed8FD28b65bE58F4129D176E1a991D",
"0xc7016d35491e7639A86bBb5a9bdFdD052522E49c",
@ -2946,6 +2960,7 @@
"0xC9775Bcd7084a0892aC46eE81D6D8d8D1BadB39C",
"0xc9795e6f22F5e10Bbb68603929B8C93293f6a567",
"0xc99004e6a71E8f982A71adF54F456c9D1dbE755e",
"0xC9A1757A52F2E87A2144c8b8Ec9CB075C8b50B35",
"0xc9A954C5A302C45D87CC07efb1259Fb3DaD99ffC",
"0xC9aEf2B4F0Ca7cBb9a8BeB1b7618Ed33978060B0",
"0xC9b59D99Bc30B840C9F743f9233D45040342b5d0",
@ -3120,6 +3135,7 @@
"0xD58412DdB3A0A036aaB68DcfEd34B01C554FfC0d",
"0xD5Bb0bFE5fcE8434B4f56cf7cD4109305A52fbBB",
"0xD5bcD95f75cE7E1c567dea3b4BC45fA519713024",
"0xd5dad1DB7F112037c0c6Cf0792dc2a7866Bfd136",
"0xD5F80394F854571Af04B7c823fAfA8E804bA673f",
"0xd6076EFe1E577Deec21afab6eD383b47E9D8DEc6",
"0xd6122c4b53738Db5BB3b1f526d707836CE6C0699",
@ -3689,6 +3705,7 @@
"0xFC16EDB70ca7F8A0C2D0571BCf59dF8Ad3E49d82",
"0xfC310e8b76BB01d94fBBBC6c808cC5bCCEC4673c",
"0xFc364253C4485b5f5cB57E3B10CB051D5d37540b",
"0xFC3D514AC7ec6371A5c389c5A9D4a69A6736C0AE",
"0xFC513B192a0aB1abcF66E2844511f1BeA01ceB02",
"0xFC5ac566CAD80b5C117eE9b896c80476973c9F00",
"0xfC80960B59e9DFa70D192FD3689B5Fb8D80a7485",

View File

@ -469,7 +469,6 @@
"0x186a33d4dBcd700086A26188DcB74E69bE463665",
"0x1876c969027b4A4f95937e93E0Db2Ac2dE152009",
"0x187abED6d17529E921aed5Dda458389e3d1c594b",
"0x187C4B0e3819017a5cf07af81A4E2b16166aAbc6",
"0x187D1018E8ef879BE4194d6eD7590987463eAD85",
"0x18C525cce3ad9A48D82F91B874754be78E9d0F85",
"0x18d3Adac07900c2507461749BE70543116C73594",
@ -503,6 +502,7 @@
"0x1A14b6dEB14Ff8eA9c101262A200bA1CEE136297",
"0x1a2277C83930b7a64C3e3D5544Eaa8C4f946B1B7",
"0x1a2d7C2b22a0b6Ce314dCbC30aC236303303defA",
"0x1A3496C18d558bd9C6C8f609E1B129f67AB08163",
"0x1A4743Cf1af4C289351390A2B3fe7c13D2F7C235",
"0x1A4E76811D9C319A953EADa36f1DeF25156C8D93",
"0x1A5F9352Af8aF974bFC03399e3767DF6370d82e4",
@ -907,6 +907,7 @@
"0x2d3B86234A16a1D558945c6f9C5eb2443275A4f2",
"0x2D3E7D4870a51b918919E7B851FE19983E4c38d5",
"0x2D476A9126D2D4135fB310aCF029F9aAcD4f85a2",
"0x2d71983E810B9e95258966B9c164C4d61a829bA9",
"0x2D8c4F0a1074F9895581b7aa509Bc361fe01F01b",
"0x2d9765a94FF22e0CA3AfC3E3F4B116dE2b67582a",
"0x2Da95f7e0093CE7DC9D9BA5f47b655108754B342",
@ -929,6 +930,7 @@
"0x2ecB13A8c458c379c4d9a7259e202De03c8F3D19",
"0x2Ed07A2fCaEDe25871c4814e1361fc20353F40B3",
"0x2Ef27BF41236bD859a95209e17a43Fbd26851f92",
"0x2ef52Ed7De8c5ce03a4eF0efbe9B7450F2D7Edc9",
"0x2F141Ce366a2462f02cEA3D12CF93E4DCa49e4Fd",
"0x2f44A61c7d404CFc8eCb622bBBb130e56Ba786D9",
"0x2f5e2c9002C058c063d21A06B6cabb50950130c8",
@ -1021,6 +1023,7 @@
"0x33DCd369d697132dE252884336225DE31fB474b2",
"0x33f90Dee07c6E8B9682dD20F73E6C358B2ED0f03",
"0x340D2bdE5Eb28c1eed91B2f790723E3B160613B7",
"0x340eF83Ec8560892168D4062720F030460468656",
"0x341139ab9D4b7b1e6c76801aEB0da3e23E4C453e",
"0x3414BEC8aC9b323008b511De2E91d979183B46f5",
"0x34364BEe11607b1963d66BCA665FDE93fCA666a8",
@ -1148,6 +1151,7 @@
"0x3AFA1902b1f8a802aBC18e5aD982D1bCd34AfE22",
"0x3afe25a2739B5C2E08CFec439F9621D91Ff7FBFb",
"0x3aFe47A46289B8eE2597ef8d8Ce7BEbF0f64172E",
"0x3aFfCCa64c2A6f4e3B6Bd9c64CD2C969EFd1ECBe",
"0x3b16fB80Ab6Ac8562203F3913f58ee0c4DFc08B8",
"0x3b2f94C251c2CCcB7ad16a68F040A220CC2bDD72",
"0x3B3f859ab4CebB73c3043b99c33719052265E1E7",
@ -1481,6 +1485,7 @@
"0x4c4c62A08eb49404aB85f3b4A0d6560488f2E216",
"0x4c5601164e2048a4154DE91Fa5e0B07E626CaB7F",
"0x4C596Bd86789D5347319E15Aedaf740b3D34aB91",
"0x4C6584dDCdFaB7110c7b1bE47749Bde8edc9c0c9",
"0x4C791117248aBfE101b604F5269FFD9bE794467D",
"0x4C7Bc4D7c5e2eD2F14f8722b7Ded6c615d578C1e",
"0x4cA16BF196440310d6dBe693758210Ca1338e011",
@ -2074,6 +2079,7 @@
"0x6B2bAB5E4b9Bc9592636c16bC4e5e07eF076cD6d",
"0x6b414584f7DD3750a0D61b4b8692242A7dEBee06",
"0x6b4689E4514957699eDeB2Ee91C947F18E439806",
"0x6b74Dd5d01f8320081247F5CF1F7a48324700Db6",
"0x6b9F1F092E0B10015a4391A80cD3E6B6cefD1728",
"0x6Ba460AB75Cd2c56343b3517ffeBA60748654D26",
"0x6baf7FcEA90B0968dc5eD7B8dCB76C986637Ff55",
@ -2702,7 +2708,6 @@
"0x8f7b0B40E27E357540F90f187d90CE06366aC5A5",
"0x8f8221aFbB33998d8584A2B05749bA73c37a938a",
"0x8F8e787989BC652eeA01A6C88a19f0f379BDF4FD",
"0x8F9bfe5b6A5C3fEa8c64ad41a5Cf6f60Ec4aa47c",
"0x8fa1323590032461997eEb4E1b3F918C186b7843",
"0x8fa1a491f55D93bD40ff023956261f2fB5047297",
"0x8FAF0be1465B9bE70eE73d9123B2A1fDD9F2AAe4",
@ -3902,6 +3907,7 @@
"0xd30581895B8320c356aFc6f80B07dfB468a65b69",
"0xd30a2e9347Ad48Ea208ee563a9CdfD80E962a727",
"0xd31695a1d35E489252CE57b129FD4b1B05E6AcaC",
"0xd321Ca7Cd7A233483b8CD5a11a89E9337e70Df84",
"0xd340Bc93d2cf0df662347E6D72eaf6174C613A3C",
"0xd341d1680Eeee3255b8C4c75bCCE7EB57f144dAe",
"0xd3516ecB852037a33bAD2372D52b638D6D534516",
@ -3944,7 +3950,6 @@
"0xD581D38a7303b6DeA5828906acFDe416EE85dEE0",
"0xD59f53256AdDf282aa1D5e19f934738dDC06c5cF",
"0xd5Cfa997a1052464e4B9Af462f9D5facE9b1f730",
"0xd5dad1DB7F112037c0c6Cf0792dc2a7866Bfd136",
"0xD5DE9AAE27C94AE7c20bE926D193289B5f41EA8A",
"0xD5E38d2Ef4aD5e38942E6234e2CEC0dac38E124A",
"0xd5f788ca0de8f17cBDe1D1E35aA8F005A87fa00b",

View File

@ -41,4 +41,4 @@
"description": "Trusted and secured validator, KAVA Russian community manager",
"website": "https://stake.novy.pw"
}
]
]

View File

@ -408,6 +408,11 @@
"token_id": "0x4DF812F6064def1e5e029f1ca858777CC98D2D81",
"id": 895
},
{
"coin": 55,
"type": "coin",
"id": 911
},
{
"coin": 36,
"type": "coin",
@ -1857,7 +1862,7 @@
{
"coin": 60,
"type": "token",
"token_id": "0x48f775EFBE4F5EcE6e0DF2f7b5932dF56823B990",
"token_id": "0x2ef52Ed7De8c5ce03a4eF0efbe9B7450F2D7Edc9",
"id": 2135
},
{
@ -6480,7 +6485,7 @@
{
"coin": 60,
"type": "token",
"token_id": "0xd5dad1DB7F112037c0c6Cf0792dc2a7866Bfd136",
"token_id": "0x340eF83Ec8560892168D4062720F030460468656",
"id": 3589
},
{
@ -7633,7 +7638,7 @@
{
"coin": 60,
"type": "token",
"token_id": "0x187C4B0e3819017a5cf07af81A4E2b16166aAbc6",
"token_id": "0x2d71983E810B9e95258966B9c164C4d61a829bA9",
"id": 3886
},
{
@ -9388,7 +9393,7 @@
{
"coin": 60,
"type": "token",
"token_id": "0x8F9bfe5b6A5C3fEa8c64ad41a5Cf6f60Ec4aa47c",
"token_id": "0x810908B285f85Af668F6348cD8B26D76B3EC12e1",
"id": 4797
},
{
@ -9903,6 +9908,12 @@
"token_id": "0x6E5a43DB10b04701385A34afb670E404bC7Ea597",
"id": 5072
},
{
"coin": 60,
"type": "token",
"token_id": "0x6b74Dd5d01f8320081247F5CF1F7a48324700Db6",
"id": 5074
},
{
"coin": 60,
"type": "token",
@ -10371,6 +10382,12 @@
"token_id": "0x08Aa0ed0040736dd28d4c8B16Ab453b368248d19",
"id": 5363
},
{
"coin": 60,
"type": "token",
"token_id": "0x916885426255235DA7a0BD90447986c00675f9EC",
"id": 5366
},
{
"coin": 60,
"type": "token",
@ -10496,6 +10513,12 @@
"token_id": "0x24FB4C36a83cbDbCd670856406f622E09A643d4d",
"id": 5422
},
{
"coin": 60,
"type": "token",
"token_id": "0x3aFfCCa64c2A6f4e3B6Bd9c64CD2C969EFd1ECBe",
"id": 5423
},
{
"coin": 60,
"type": "token",
@ -10507,5 +10530,22 @@
"type": "token",
"token_id": "0x27201232579491Ce9b116Ac6F37D354Cc723A2f3",
"id": 5425
},
{
"coin": 501,
"type": "coin",
"id": 5426
},
{
"coin": 60,
"type": "token",
"token_id": "0xd321Ca7Cd7A233483b8CD5a11a89E9337e70Df84",
"id": 5428
},
{
"coin": 60,
"type": "token",
"token_id": "0x1A3496C18d558bd9C6C8f609E1B129f67AB08163",
"id": 5429
}
]

View File

@ -11,9 +11,9 @@ import {
getChainAssetsPath,
isPathExistsSync
} from "../src/test/helpers"
import { InfoList } from "../src/test/models";
import { CoinInfoList } from "../src/test/models";
const dafaultInfoTemplate: InfoList =
const dafaultInfoTemplate: CoinInfoList =
{
"name": "",
"website": "",
@ -80,6 +80,6 @@ export function getHandle(url: string): string {
return url.slice(url.lastIndexOf("/") + 1, url.length)
}
function writeToInfo(path: string, info: InfoList) {
function writeToInfo(path: string, info: CoinInfoList) {
writeFileSync(path, JSON.stringify(info, null, 4))
}

View File

@ -3,28 +3,30 @@ import { getOpenseaCollectionAddresses } from "./opesea_contrats"
import {
Ethereum, Terra, Tron,
getChainAssetsPath,
getChainAssetInfoPath,
getChainAssetsList,
ethSidechains,
readDirSync,
readFileSync,
isChainWhitelistExistSync,
isChainBlacklistExistSync,
getChainWhitelistPath,
getChainBlacklistPath,
getChainValidatorsListPath,
writeFileSync,
sortDesc,
getChainWhitelistPath,
getUnique,
isChainAssetInfoExistSync,
isChainBlacklistExistSync,
isChainWhitelistExistSync,
mapList,
stakingChains
readFileSync,
sortDesc,
stakingChains,
writeFileSync,
} from '../src/test/helpers'
formatWhiteBlackList()
formatValidators()
formatInfo()
function formatWhiteBlackList() {
ethSidechains.concat(Tron, Terra).forEach(async chain => {
const assets = readDirSync(getChainAssetsPath(chain))
const assets = getChainAssetsList(chain)
const whitelistPath = getChainWhitelistPath(chain)
const blacklistPath = getChainBlacklistPath(chain)
@ -70,6 +72,19 @@ function formatValidators() {
})
}
function formatInfo() {
ethSidechains.forEach(chain => {
const chainAssets = getChainAssetsList(chain)
chainAssets.forEach(address => {
if (isChainAssetInfoExistSync(chain, address)) {
const chainAssetInfoPath = getChainAssetInfoPath(chain, address)
const currentAssetInfo = JSON.parse(readFileSync(chainAssetInfoPath))
fs.writeFileSync(chainAssetInfoPath, JSON.stringify(currentAssetInfo, null, 4))
}
})
})
}
function getRemovedAddressesFromAssets(assets: string[], whiteList: string[]): string[] {
const mappedAssets = mapList(assets)
const removed = whiteList.filter(a => !mappedAssets.hasOwnProperty(a))

View File

@ -7,6 +7,7 @@ const web3 = new Web3('ws://localhost:8546');
import { CoinTypeUtils, CoinType } from "@trustwallet/types";
const sizeOf = require("image-size");
const { execSync } = require('child_process');
import { AssetInfo } from "../../src/test/models";
export const getChainName = (id: CoinType): string => CoinTypeUtils.id(id) // 60 => ethereum
export const Binance = getChainName(CoinType.binance)
@ -57,6 +58,7 @@ export const maxLogoHeight = 512
export const getChainAssetPath = (chain: string, address: string) => `${getChainAssetsPath(chain)}/${address}`
export const getChainAssetLogoPath = (chain: string, address: string) => `${getChainAssetsPath(chain)}/${address}/${logo}`
export const getChainAssetFilesList = (chain: string, address: string) => readDirSync(getChainAssetPath(chain, address))
export const getChainAssetsList = (chain: string): string[] => readDirSync(getChainAssetsPath(chain))
export const getChainValidatorsPath = (chain: string): string => `${chainsFolderPath}/${chain}/validators`
export const getChainValidatorsAssets = (chain: string): string[] => readDirSync(getChainValidatorsAssetsPath(chain))
export const getChainValidatorsListPath = (chain: string): string => `${(getChainValidatorsPath(chain))}/list.${jsonExtension}`
@ -83,6 +85,7 @@ export const isPathExistsSync = (path: string): boolean => fs.existsSync(path)
export const isChainWhitelistExistSync = (chain: string): boolean => isPathExistsSync(getChainWhitelistPath(chain))
export const isChainBlacklistExistSync = (chain: string): boolean => isPathExistsSync(getChainBlacklistPath(chain))
export const isChainInfoExistSync = (chain: string): boolean => isPathExistsSync(getChainInfoPath(chain))
export const isChainAssetInfoExistSync = (chain: string, address: string) => isPathExistsSync(getChainAssetInfoPath(chain, address))
export const readFileSync = (path: string) => fs.readFileSync(path, 'utf8')
export const writeFileSync = (path: string, str: string) => fs.writeFileSync(path, str)
@ -90,7 +93,7 @@ export const isLowerCase = (str: string): boolean => str.toLowerCase() === str
export const isUpperCase = (str: string): boolean => str.toUpperCase() === str
export const isChecksum = (address: string): boolean => web3.utils.checkAddressChecksum(address)
export const toChecksum = (address: string): string => web3.utils.toChecksumAddress(address)
export const getBinanceBEP2Symbols = async () => axios.get(`https://dex-atlantic.binance.org/api/v1/tokens?limit=1000`).then(res => res.data.map(({symbol}) => symbol))
export const getBinanceBEP2Symbols = async () => axios.get(`https://dex-atlantic.binance.org/api/v1/tokens?limit=1000`).then(res => res.data.map(({ symbol }) => symbol))
export const getFileName = (fileName: string): string => path.basename(fileName, path.extname(fileName))
export const getFileExt = (name: string): string => name.slice((Math.max(0, name.lastIndexOf(".")) || Infinity) + 1)
@ -204,6 +207,30 @@ export const isValidatorHasAllKeys = (val: ValidatorModel): boolean => {
&& typeof val.website === "string"
}
export function isAssetInfoOK(chain: string, address: string): boolean {
if (isChainAssetInfoExistSync(chain, address)) {
const assetInfoPath = getChainAssetInfoPath(chain, address)
const isInfoOK = isValidJSON(assetInfoPath)
if (isInfoOK && isAssetInfoHasAllKeys(assetInfoPath)) {
return true
}
return false
}
return true
}
export function isAssetInfoHasAllKeys(path: string): boolean {
const info: AssetInfo = JSON.parse(readFileSync(path))
const isKeysCorrentType = typeof info.explorer === "string" && info.explorer != ""
&& typeof info.name === "string" && info.name != ""
&& typeof info.website === "string"
&& typeof info.short_description === "string"
return isKeysCorrentType
}
export const rootDirAllowedFiles = [
".github",
"blockchains",

View File

@ -1,41 +1,43 @@
const eztz = require('eztz-lib')
import {
Binance, Cosmos, Tezos, Tron, IoTeX, Waves,
ethSidechains,
Binance, Cosmos, Tezos, Tron, IoTeX, Waves, Kava, Terra,
assetFolderAllowedFiles,
chainsFolderPath,
pricingFolderPath,
getChainLogoPath,
getChainAssetsPath,
ethSidechains,
findFiles,
getBinanceBEP2Symbols,
getChainAssetLogoPath,
getChainAssetPath,
getChainAssetsPath,
getChainBlacklistPath,
getChainLogoPath,
getChainValidatorAssetLogoPath,
getChainValidatorsAssets,
getChainValidatorsListPath,
getChainValidatorAssetLogoPath,
readDirSync,
isPathExistsSync,
readFileSync,
isLowerCase,
isChecksum,
isPathDir,
getBinanceBEP2Symbols,
isTRC10, isTRC20, isWavesAddress, isSolanaAddress,
isLogoOK,
getChainWhitelistPath,
getChainBlacklistPath,
mapList,
findFiles,
getChainAssetsList,
isChecksum,
isChainAssetInfoExistSync,
isLogoOK,
isLowerCase,
isPathDir,
isPathExistsSync,
isTRC10, isTRC20, isWavesAddress,
isValidJSON,
isAssetInfoOK,
isValidatorHasAllKeys,
getChainAssetPath,
mapList,
pricingFolderPath,
readDirSync,
readFileSync,
rootDirAllowedFiles,
assetFolderAllowedFiles,
stakingChains,
Kava,
Terra,
Solana
} from "./helpers"
import { ValidatorModel } from "./models";
import { getHandle } from "../../script/gen_info";
enum TickerType {
Token = "token",
Coin = "coin"
@ -88,24 +90,28 @@ describe(`Test "blockchains" folder`, () => {
describe("Check Ethereum side-chain folders", () => {
ethSidechains.forEach(chain => {
test(`Test chain ${chain} folder`, () => {
const assetsPath = getChainAssetsPath(chain)
readDirSync(assetsPath).forEach(addr => {
const assetPath = getChainAssetPath(chain, addr)
getChainAssetsList(chain).forEach(address => {
const assetPath = getChainAssetPath(chain, address)
expect(isPathDir(assetPath), `Expect directory at path: ${assetPath}`).toBe(true)
const checksum = isChecksum(addr)
const checksum = isChecksum(address)
expect(checksum, `Expect asset at path ${assetPath} in checksum`).toBe(true)
const lowercase = isLowerCase(addr)
const lowercase = isLowerCase(address)
if (lowercase) {
expect(checksum, `Lowercase address ${addr} on chain ${chain} should be in checksum`).toBe(true)
expect(checksum, `Lowercase address ${address} on chain ${chain} should be in checksum`).toBe(true)
}
const assetLogoPath = getChainAssetLogoPath(chain, addr)
const assetLogoPath = getChainAssetLogoPath(chain, address)
expect(isPathExistsSync(assetLogoPath), `Missing file at path "${assetLogoPath}"`).toBe(true)
const [isOk, msg] = isLogoOK(assetLogoPath)
expect(isOk, msg).toBe(true)
if (isChainAssetInfoExistSync(chain, address)) {
expect(isAssetInfoOK(chain, address), `Asset file info at path ${assetPath} is not OK`).toBe(true)
}
})
})
})
@ -232,13 +238,13 @@ function testWavesValidatorsAssets(assets: string[]) {
})
}
function testSolanaValidatorsAssets(assets: string[]) {
test("Solana assets must have correct format", () => {
assets.forEach(addr => {
expect(isSolanaAddress(addr), `Address ${addr} should be Solana formated`).toBe(true)
})
})
}
// function testSolanaValidatorsAssets(assets: string[]) {
// test("Solana assets must have correct format", () => {
// assets.forEach(addr => {
// expect(isSolanaAddress(addr), `Address ${addr} should be Solana formated`).toBe(true)
// })
// })
// }
function testCosmosValidatorsAddress(assets: string[]) {
test("Cosmos assets must have correct format", () => {

View File

@ -5,7 +5,15 @@ export interface ValidatorModel {
website: string,
}
export interface InfoList {
// Minimal property requirements for asset info file
export interface AssetInfo {
explorer: string;
name: string;
short_description: string;
website: string;
}
export interface CoinInfoList {
name: string;
website: string;
source_code: string;