Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba743e2085 | ||
|
|
a695db9320 | ||
|
|
9c900bcd54 | ||
|
|
4b13fb7291 | ||
|
|
f27bbec54c | ||
|
|
1f9645dc35 | ||
|
|
ca2d2314d8 | ||
|
|
a6419a0a11 | ||
|
|
43681f3251 | ||
|
|
f11c119f43 | ||
|
|
f03ee64cfa | ||
|
|
cb7a3321d6 | ||
|
|
427d6bb241 | ||
|
|
fb9959b7b5 | ||
|
|
0bdfb30705 | ||
|
|
f309b899fc | ||
|
|
676e19ed1d | ||
|
|
b684059eb0 | ||
|
|
c4cf50b4ca | ||
|
|
af061b553d | ||
|
|
057f842544 | ||
|
|
e8006eb966 | ||
|
|
d469b394b4 | ||
|
|
6988f2e1db | ||
|
|
70a29ce9f7 | ||
|
|
644f0fd946 | ||
|
|
10e58ea7d4 | ||
|
|
44be3478fa | ||
|
|
937ef1c880 | ||
|
|
c5eba544c8 | ||
|
|
629a29c235 | ||
|
|
1e106152e6 | ||
|
|
b42621023e | ||
|
|
d5a5f8cdea | ||
|
|
b1c8cf1396 | ||
|
|
d6871295d0 | ||
|
|
06782b31e2 | ||
|
|
8dabf724f2 | ||
|
|
eadf0ae2a2 | ||
|
|
b10e2a6ffc | ||
|
|
a6d3762cc0 | ||
|
|
9779585eeb | ||
|
|
0618336741 | ||
|
|
92f7fd9275 | ||
|
|
7e5d2b64f0 | ||
|
|
7c5aa6b727 | ||
|
|
7f48c4a40f | ||
|
|
c7c2394d10 | ||
|
|
9e250d747f | ||
|
|
119c7a8a32 | ||
|
|
6aa24beff1 | ||
|
|
e166acc803 | ||
|
|
bf07689f6c | ||
|
|
4788510f6c | ||
|
|
3f09205957 | ||
|
|
f81291dbc5 | ||
|
|
bc82cc9577 | ||
|
|
2557a50cc4 | ||
|
|
55e6b00d9a | ||
|
|
7a7b4a0ffe | ||
|
|
6ac8646d06 | ||
|
|
1a2eb87fb7 | ||
|
|
fc38fd0f0a | ||
|
|
27add6de3c | ||
|
|
5daf2e0ec5 | ||
|
|
25c2e8eb3d | ||
|
|
047c7b1500 | ||
|
|
6d0d2f1ee9 | ||
|
|
e0a008b466 | ||
|
|
5ce328c6b2 | ||
|
|
43e403c061 | ||
|
|
efbf2731e0 | ||
|
|
81e039d05d | ||
|
|
825545b6bf | ||
|
|
82f5248861 | ||
|
|
171f25f372 | ||
|
|
68d6420256 | ||
|
|
8298226c16 | ||
|
|
1461d77bb8 | ||
|
|
82a9e53393 | ||
|
|
b37c74aeb4 | ||
|
|
289d4df50b | ||
|
|
1d0e30c846 | ||
|
|
20ecc14ab8 | ||
|
|
7f26e31422 | ||
|
|
3982286c2b | ||
|
|
0e5466d898 | ||
|
|
f0cefc17db | ||
|
|
d0ab40da1b | ||
|
|
e15789e095 | ||
|
|
26330fec28 | ||
|
|
83c799e5ce | ||
|
|
bd94dd60ad | ||
|
|
830a03b02b | ||
|
|
657ba8aa85 | ||
|
|
63c94982fc | ||
|
|
b88cce7b5a | ||
|
|
6225c1b66f | ||
|
|
99cb79e0cd | ||
|
|
0d36329a0d | ||
|
|
2d2733a15d | ||
|
|
5eef53e294 | ||
|
|
fa83df53de | ||
|
|
5f42df584a | ||
|
|
2fca7644bf | ||
|
|
9fc2328ab6 | ||
|
|
12fde18e75 |
@@ -0,0 +1,18 @@
|
||||
|
||||
name: Deploy to ping.pub
|
||||
|
||||
on:
|
||||
# push:
|
||||
# branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: Check Blockchain Config
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Git Checkout Latest
|
||||
uses: actions/checkout@v3
|
||||
- name: Check Chain Configs
|
||||
uses: ping-pub/ping-dashboard-config-checker@v1.0
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
- name: print
|
||||
run: echo ${GITHUB_REF#refs/heads/}
|
||||
- name: Git Checkout Latest
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install
|
||||
run: yarn install
|
||||
|
||||
@@ -27,3 +27,8 @@ yarn-error.log*
|
||||
|
||||
# Docs
|
||||
/docs/.temp
|
||||
|
||||
# Yarn
|
||||
.yarn/
|
||||
.yarnrc.yml
|
||||
package-lock.json
|
||||
|
||||
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 168 KiB |
@@ -0,0 +1,14 @@
|
||||
<svg
|
||||
width="52"
|
||||
height="52"
|
||||
viewBox="0 0 52 52"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M7.494 18.6773L0 26.4139L7.73637 33.9078L7.90782 44.6775L18.677 44.506L26.4138 52L33.9073 44.2636L44.6778 44.0922L44.5065 33.3227L52 25.5864L44.2632 18.0922L44.0919 7.32266L33.323 7.49404L25.5862 0L18.0927 7.73639L7.32271 7.90778L7.494 18.6773Z"
|
||||
fill="#5BABCD"
|
||||
/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 447 B |
@@ -0,0 +1,14 @@
|
||||
<svg
|
||||
width="34"
|
||||
height="34"
|
||||
viewBox="0 0 34 34"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M16.9999 0C21.6942 0 25.9445 1.90288 29.0208 4.97915C32.0607 8.01904 33.9545 12.2051 33.9989 16.8328V16.8425L33.9995 16.9056L34 16.9992L33.9989 17.1558V17.1661C33.9545 21.7938 32.0607 25.9793 29.0208 29.0192C25.9445 32.0955 21.6947 33.9983 16.9999 33.9983C12.3058 33.9983 8.05556 32.0955 4.97923 29.0192C1.90291 25.9429 0 21.6927 0 16.9986C0 12.3046 1.90291 8.05488 4.97923 4.97862C8.05556 1.90235 12.3058 0 16.9999 0ZM26.7707 9.77002C27.4152 9.77002 28.0404 9.85509 28.6357 10.0129C26.8825 8.31159 24.4918 7.26389 21.8557 7.26389C19.1671 7.26389 16.7331 8.35331 14.9719 10.115C13.2102 11.8766 12.1208 14.3107 12.1208 16.9992C12.1208 19.6877 13.2102 22.1217 14.9719 23.8828C16.7337 25.6445 19.1676 26.7339 21.8557 26.7339C24.4918 26.7339 26.883 25.6862 28.6357 23.9849C28.041 24.1432 27.4158 24.2278 26.7712 24.2278C24.7753 24.2278 22.9676 23.4186 21.6599 22.1104C20.3517 20.8022 19.5426 18.9946 19.5426 16.9986C19.5426 15.0027 20.3517 13.195 21.6599 11.8869C22.9671 10.5797 24.7742 9.77002 26.7707 9.77002ZM30.1786 13.5913C29.3063 12.7195 28.1014 12.1799 26.7702 12.1799C25.439 12.1799 24.2341 12.7195 23.3618 13.5913C22.4895 14.4636 21.9503 15.6685 21.9503 16.9997C21.9503 18.3309 22.49 19.5358 23.3618 20.4081C24.2341 21.2799 25.439 21.8194 26.7702 21.8194C28.1014 21.8194 29.3063 21.2799 30.1786 20.4081C31.0504 19.5358 31.5901 18.3309 31.5901 16.9997L31.5895 16.9377C31.5735 15.6305 31.037 14.4497 30.1786 13.5913ZM21.8552 4.85454C23.3692 4.85454 24.8181 5.13157 26.1551 5.63805C23.6516 3.61858 20.4668 2.40935 16.9999 2.40935C12.9712 2.40935 9.32307 4.04269 6.68266 6.68254C4.04275 9.3224 2.40939 12.9704 2.40939 16.9992C2.40939 21.0285 4.04221 24.6759 6.68266 27.3163C9.32307 29.9562 12.9706 31.5896 16.9999 31.5896C20.4673 31.5896 23.6516 30.3803 26.1551 28.3603C24.8181 28.8668 23.3692 29.1438 21.8552 29.1438C18.5017 29.1438 15.465 27.7843 13.2679 25.5867C11.0704 23.3891 9.71085 20.353 9.71085 16.9997C9.71085 13.6464 11.0704 10.6097 13.2679 8.41214C15.465 6.21405 18.5017 4.85454 21.8552 4.85454Z"
|
||||
fill="#04D484"
|
||||
/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="uuid-7c4dac6b-fee9-4a31-84a7-3dedb7527f8e" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 313.61 231.9"><polygon points="114.88 231.9 0 115.49 116.11 .92 143.14 28.26 127.78 43.31 116.11 31.33 30.41 115.8 114.88 201.5 125.93 190.74 140.99 206.1 114.88 231.9" style="fill:#181c49;"/><polygon points="199.35 160.64 184.29 145.29 212.86 117.03 183.37 86.93 198.42 71.87 243.27 117.33 199.35 160.64" style="fill:#cecece;"/><path d="M197.5,230.68L82.93,114.57,170.17,28.57h0L199.04,0l114.57,116.41-116.11,114.26ZM113.34,114.88l84.47,85.7,85.39-84.47L198.73,30.41,113.34,114.88h0Z" style="fill:#181c49;"/></svg>
|
||||
|
After Width: | Height: | Size: 654 B |
|
After Width: | Height: | Size: 47 KiB |
@@ -0,0 +1,104 @@
|
||||
<svg width="3000" height="3000" viewBox="0 0 3000 3000" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="3000" height="3000" fill="black"/>
|
||||
<g clip-path="url(#clip0_3924_32027)">
|
||||
<g opacity="0.25">
|
||||
<path d="M1186.87 2309.97C1178.08 2302.2 1172.57 2291.37 1171.47 2279.69L1084.03 1349.45H1395.22V2391.61C1395.22 2431.35 1348.32 2452.51 1318.53 2426.2L1186.87 2309.97Z" fill="black"/>
|
||||
<path d="M1395.22 1330.99V1201.14L1067.43 1172.82L1082.3 1330.99H1395.22Z" fill="black"/>
|
||||
<path d="M1395.22 1182.61L1065.67 1154.14L1014.16 606.169C1011.62 579.095 1032.92 555.702 1060.11 555.702H1349.07C1374.56 555.702 1395.22 576.363 1395.22 601.85V1182.61Z" fill="black"/>
|
||||
<path d="M2003.44 1330.99H2240.65C2253.39 1330.99 2263.72 1320.66 2263.72 1307.92V1171.84C2263.72 1158.21 2251.97 1147.55 2238.41 1148.87L2018.13 1170.38L2003.44 1330.99Z" fill="black"/>
|
||||
<path d="M1999.43 1172.21L1671.18 1204.26V1330.99H1984.9L1999.43 1172.21Z" fill="black"/>
|
||||
<path d="M1652.72 1206.06V1330.99H778.683C765.939 1330.99 755.609 1320.66 755.609 1307.92V1171.53C755.609 1158.01 767.179 1147.39 780.649 1148.54L1557.45 1214.98C1558.85 1215.1 1560.26 1215.09 1561.66 1214.95L1652.72 1206.06Z" fill="black"/>
|
||||
<path d="M1750.18 2423.07C1721.21 2452.44 1671.18 2431.92 1671.18 2390.66V959.041H2019.37L1898.25 2258.12C1897.26 2268.73 1892.63 2278.67 1885.15 2286.25L1750.18 2423.07Z" fill="black"/>
|
||||
<path d="M2021.09 940.582H1671.18V741.615L2041.8 718.495L2021.09 940.582Z" fill="black"/>
|
||||
<path d="M1671.18 601.856V723.12L2043.54 699.892L2052.28 606.14C2054.8 579.079 2033.51 555.708 2006.33 555.708H1717.33C1691.84 555.708 1671.18 576.369 1671.18 601.856Z" fill="black"/>
|
||||
<path d="M1395.22 940.583V742.195L1025.06 723.978L1045.31 940.583H1395.22Z" fill="black"/>
|
||||
<path d="M1413.68 940.583H2346.79C2356.98 940.583 2365.25 932.318 2365.25 922.124V717.052C2365.25 706.397 2356.25 697.955 2345.62 698.63L1544.28 749.53L1413.68 743.103V940.583Z" fill="black"/>
|
||||
<path d="M1004.91 722.986L1027.02 940.583H653.16C642.966 940.583 634.701 932.318 634.701 922.124V724.157C634.701 713.606 643.529 705.201 654.068 705.72L1004.91 722.986Z" fill="black"/>
|
||||
</g>
|
||||
<path d="M1183.17 2306.26C1174.38 2298.5 1168.87 2287.67 1167.77 2275.99L1080.33 1345.75H1391.52V2387.91C1391.52 2427.65 1344.62 2448.81 1314.82 2422.5L1183.17 2306.26Z" fill="url(#paint0_linear_3924_32027)"/>
|
||||
<path d="M1391.52 1327.29V1197.44L1063.73 1169.11L1078.59 1327.29H1391.52Z" fill="url(#paint1_linear_3924_32027)"/>
|
||||
<path d="M1391.52 1178.91L1061.97 1150.43L1010.46 602.467C1007.92 575.393 1029.22 552 1056.41 552H1345.37C1370.85 552 1391.52 572.661 1391.52 598.148V1178.91Z" fill="url(#paint2_linear_3924_32027)"/>
|
||||
<path d="M1999.73 1327.29H2236.95C2249.69 1327.29 2260.02 1316.96 2260.02 1304.22V1168.13C2260.02 1154.5 2248.27 1143.84 2234.71 1145.17L2014.43 1166.68L1999.73 1327.29Z" fill="url(#paint3_linear_3924_32027)"/>
|
||||
<path d="M1995.73 1168.51L1667.48 1200.56V1327.29H1981.2L1995.73 1168.51Z" fill="url(#paint4_linear_3924_32027)"/>
|
||||
<path d="M1649.02 1202.36V1327.29H774.981C762.238 1327.29 751.908 1316.96 751.908 1304.22V1167.83C751.908 1154.31 763.478 1143.69 776.948 1144.84L1553.75 1211.28C1555.15 1211.4 1556.56 1211.39 1557.95 1211.25L1649.02 1202.36Z" fill="url(#paint5_linear_3924_32027)"/>
|
||||
<path d="M1746.48 2419.36C1717.5 2448.74 1667.48 2428.22 1667.48 2386.96V955.339H2015.67L1894.55 2254.42C1893.56 2265.03 1888.93 2274.96 1881.45 2282.55L1746.48 2419.36Z" fill="url(#paint6_linear_3924_32027)"/>
|
||||
<path d="M2017.39 936.88H1667.48V737.913L2038.1 714.793L2017.39 936.88Z" fill="url(#paint7_linear_3924_32027)"/>
|
||||
<path d="M1667.48 598.155V719.418L2039.84 696.19L2048.58 602.439C2051.1 575.377 2029.81 552.007 2002.63 552.007H1713.63C1688.14 552.007 1667.48 572.668 1667.48 598.155Z" fill="url(#paint8_linear_3924_32027)"/>
|
||||
<path d="M1391.52 936.881V738.493L1021.36 720.276L1041.61 936.881H1391.52Z" fill="url(#paint9_linear_3924_32027)"/>
|
||||
<path d="M1409.98 936.881H2343.09C2353.28 936.881 2361.55 928.617 2361.55 918.422V713.35C2361.55 702.695 2352.55 694.253 2341.92 694.928L1540.58 745.829L1409.98 739.401V936.881Z" fill="url(#paint10_linear_3924_32027)"/>
|
||||
<path d="M1001.21 719.285L1023.32 936.881H649.459C639.264 936.881 631 928.617 631 918.422V720.455C631 709.904 639.828 701.5 650.367 702.018L1001.21 719.285Z" fill="url(#paint11_linear_3924_32027)"/>
|
||||
<path d="M1078.88 1151.9L1061.97 1150.43L1041.9 936.881H1041.61L1021.36 720.276L1021.54 720.285L1010.46 602.467C1007.92 575.393 1029.22 552 1056.41 552H1345.37C1362.87 552 1378.09 561.74 1385.92 576.095C1379.37 572.529 1371.86 570.502 1363.88 570.502H1074.92C1047.72 570.502 1026.43 593.895 1028.97 620.969L1040.04 738.787L1039.87 738.778L1060.12 955.383H1060.4L1078.88 1151.9Z" fill="white"/>
|
||||
<path d="M1410.02 936.881H1428.48V757.903L1559.08 764.33L2360.43 713.43C2360.8 713.406 2361.18 713.394 2361.55 713.392V713.35C2361.55 702.695 2352.55 694.253 2341.92 694.928L2058.51 712.93L2058.34 714.692L1685.99 737.92V736.592L1540.58 745.829L1410.02 739.404L1410.02 936.881Z" fill="white"/>
|
||||
<path d="M2043.17 576.094C2036.64 572.538 2029.14 570.508 2021.14 570.508H1732.14C1706.65 570.508 1685.99 591.17 1685.99 616.656V718.264L1667.48 719.418V598.155C1667.48 572.668 1688.14 552.007 1713.63 552.007H2002.63C2020.24 552.007 2035.38 561.821 2043.17 576.094Z" fill="white"/>
|
||||
<path d="M1667.48 955.383H2015.67L2013.95 973.841H1685.99V2405.46C1685.99 2413.67 1687.97 2421.05 1691.37 2427.39C1677.6 2419.87 1667.48 2405.51 1667.48 2386.96V1345.79H1667.53V1220.86L1667.48 1220.87V955.383Z" fill="white"/>
|
||||
<path d="M1649.02 1222.67V1202.36L1557.95 1211.25C1556.56 1211.39 1555.15 1211.4 1553.75 1211.28L1063.73 1169.11L1063.75 1169.37L776.948 1144.84C763.478 1143.69 751.908 1154.31 751.908 1167.83V1304.22C751.908 1315.53 760.05 1324.94 770.795 1326.91C770.545 1325.55 770.415 1324.15 770.415 1322.72V1186.33C770.415 1172.81 781.985 1162.19 795.455 1163.34L1082.26 1187.87L1082.23 1187.62L1572.25 1229.78C1573.65 1229.9 1575.06 1229.89 1576.46 1229.75L1649.02 1222.67Z" fill="white"/>
|
||||
<path d="M1080.33 1345.79L1167.77 2275.99C1168.87 2287.67 1174.38 2298.5 1183.17 2306.26L1193.66 2315.53C1189.55 2309.28 1186.99 2302.06 1186.28 2294.49L1098.84 1364.25H1391.52V1345.79L1080.33 1345.79Z" fill="white"/>
|
||||
<path d="M2001.4 1327.29H2019.93L2032.94 1185.18L2253.21 1163.67C2255.42 1163.46 2257.58 1163.56 2259.64 1163.94C2257.53 1152.39 2246.84 1143.98 2234.71 1145.17L2016.22 1166.5L2010.54 1227.39L2001.4 1327.29Z" fill="white"/>
|
||||
<path d="M1003.01 736.964L1001.21 719.285L650.367 702.018C639.828 701.5 631 709.904 631 720.455V918.422C631 928.617 639.264 936.881 649.459 936.881H649.507V738.957C649.507 728.406 658.335 720.001 668.874 720.52L1003.01 736.964Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint4_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint5_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint6_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint7_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint8_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint9_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint10_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint11_linear_3924_32027" x1="631" y1="1493.07" x2="2361.55" y2="1493.07" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5433FF"/>
|
||||
<stop offset="0.5" stop-color="#20BDFF"/>
|
||||
<stop offset="1" stop-color="#A5FECB"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0_3924_32027">
|
||||
<rect width="1738.15" height="1895.14" fill="white" transform="translate(631 552)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.7 KiB |
@@ -51,11 +51,14 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return [{
|
||||
header: `${selected.chain_name} Dashboard`,
|
||||
const current = {
|
||||
title: selected.chain_name,
|
||||
icon: selected.logo,
|
||||
}].concat(children).concat(this.items)
|
||||
route: { name: selected.chain_name, params: { chain: selected.chain_name } },
|
||||
}
|
||||
current.children = children
|
||||
// this.items.unshift(current)
|
||||
return [{ header: 'dashboard' }, current].concat(this.items)
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"chain_name": "akash",
|
||||
"alias": "akash-network",
|
||||
"api": ["https://akash.c29r3.xyz:443/api", "https://akash.api.ping.pub"],
|
||||
"rpc": ["http://rpc.akash.forbole.com:80", "http://akashsentry01.skynetvalidators.com:26657"],
|
||||
"api": ["https://api-akash-ia.cosmosia.notional.ventures/", "https://akash-api.polkachu.com", "https://akash.c29r3.xyz:443/api", "https://akash.api.ping.pub"],
|
||||
"rpc": ["https://rpc-akash-ia.cosmosia.notional.ventures/", "https://akash-rpc.polkachu.com/", "http://rpc.akash.forbole.com:80", "http://akashsentry01.skynetvalidators.com:26657"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.41.3",
|
||||
"sdk_version": "0.45.4",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"assets": [{
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"chain_name": "aura",
|
||||
"coingecko": "aura-network",
|
||||
"api": ["https://lcd.euphoria.aura.network"],
|
||||
"rpc": ["https://snapshot-1.euphoria.aura.network:443","https://snapshot-2.euphoria.aura.network:443"],
|
||||
"snapshot_provider": "705e3c2b2b554586976ed88bb27f68e4c4176a33@13.250.223.114:26656,b9243524f659f2ff56691a4b2919c3060b2bb824@13.214.5.1:26656",
|
||||
"sdk_version": "0.45.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "eaura",
|
||||
"logo": "/logos/aura.png",
|
||||
"assets": [{
|
||||
"base": "ueaura",
|
||||
"symbol": "AURA",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "aura-network",
|
||||
"logo": "/logos/aura.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"chain_name": "axelar",
|
||||
"api": ["https://lcd-axelar.imperator.co", "https://axelar-lcd.quickapi.com", "https://axelar-api.polkachu.com", "https://axelar-lcd.qubelabs.io", "https://axelar-rest.chainode.tech", "https://axelar-lcd.quantnode.tech", "https://api-1.axelar.nodes.guru:443"],
|
||||
"rpc": ["https://rpc-axelar.imperator.co:443", "https://axelar-rpc.quickapi.com:443", "https://axelar-rpc.pops.one:443", "https://axelar-rpc.chainode.tech:443", "https://axelar-rpc.polkachu.com:443"],
|
||||
"api": ["https://api-axelar-ia.cosmosia.notional.ventures", "https://lcd-axelar.imperator.co", "https://axelar-lcd.quickapi.com", "https://axelar-api.polkachu.com", "https://axelar-lcd.qubelabs.io", "https://axelar-rest.chainode.tech", "https://axelar-lcd.quantnode.tech", "https://api-1.axelar.nodes.guru:443"],
|
||||
"rpc": ["https://rpc-axelar-ia.cosmosia.notional.ventures:443", "https://rpc-axelar.imperator.co:443", "https://axelar-rpc.quickapi.com:443", "https://axelar-rpc.pops.one:443", "https://axelar-rpc.chainode.tech:443", "https://axelar-rpc.polkachu.com:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.6",
|
||||
"coin_type": "118",
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
"logo": "/logos/band-protocol.svg"
|
||||
}],
|
||||
"logo": "/logos/band-protocol.svg",
|
||||
"sdk_version": "0.45.0"
|
||||
"sdk_version": "0.45.8"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"chain_name": "beezee",
|
||||
"coingecko": "bzedge",
|
||||
"api": ["https://rest.getbze.com"],
|
||||
"rpc": ["https://rpc-1.getbze.com:443","https://rpc-2.getbze.com:443"],
|
||||
"snapshot_provider": ["a9fac0534bd6853f5810fdc692564967bd01b1fe@rpc-1.getbze.com:26656"],
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "370",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "bze",
|
||||
"logo": "/logos/beezee.png",
|
||||
"assets": [{
|
||||
"base": "ubze",
|
||||
"symbol": "BZE",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "bzedge",
|
||||
"logo": "/logos/beezee.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
{
|
||||
"chain_name": "bitcanna",
|
||||
"coingecko": "bitcanna",
|
||||
"api": ["https://lcd.bitcanna.io"],
|
||||
"rpc": ["https://rpc.bitcanna.io:443", "https://rpc.bitcanna.ezstaking.io:443"],
|
||||
"sdk_version": "0.45.1",
|
||||
"api": ["https://api-bitcanna-ia.cosmosia.notional.ventures", "https://bitcanna-api.polkachu.com", "https://lcd.bitcanna.io"],
|
||||
"rpc": ["https://rpc-bitcanna-ia.cosmosia.notional.ventures:443", "https://bitcanna-rpc.polkachu.com:443", "http://bitcanna.rpc.ping.pub:26657", "https://rpc.bitcanna.io:443","https://rpc.bitcanna.ezstaking.io:443"],
|
||||
"snapshot_provider": "29edc55748bc341224f711a05cb0a9f6d73b4da3@bitcanna.rpc.ping.pub:26656",
|
||||
"sdk_version": "0.45.8",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"assets": [{
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"chain_name": "bitsong",
|
||||
"coingecko": "bitsong",
|
||||
"api": "https://lcd.explorebitsong.com",
|
||||
"rpc": ["https://rpc-bitsong.itastakers.com:443","https://rpc-bitsong.itastakers.com:443"],
|
||||
"api": ["https://api-bitsong-ia.cosmosia.notional.ventures", "https://lcd.explorebitsong.com"],
|
||||
"rpc": ["https://rpc-bitsong-ia.cosmosia.notional.ventures:443", "https://rpc-bitsong.itastakers.com:443","https://rpc-bitsong.itastakers.com:443"],
|
||||
"addr_prefix": "bitsong",
|
||||
"coin_type": "639",
|
||||
"min_tx_fee": "5000",
|
||||
"logo": "/logos/bitsong.svg",
|
||||
"sdk_version": "0.45.0",
|
||||
"sdk_version": "0.45.6",
|
||||
"assets": [{
|
||||
"base": "ubtsg",
|
||||
"symbol": "BTSG",
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"chain_name": "cerberus",
|
||||
"coingecko": "cerberus",
|
||||
"api": ["https://api.cerberus.zone:1317"],
|
||||
"rpc": ["https://rpc.cerberus.zone:26657", "https://rpc-cerberus.ecostake.com:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.5",
|
||||
"coingecko": "cerberus-2",
|
||||
"api": ["https://cerberus-api.polkachu.com","https://api-cerberus-ia.cosmosia.notional.ventures", "https://api.cerberus.zone:1317"],
|
||||
"rpc": ["https://cerberus-rpc.polkachu.com:443", "https://rpc-cerberus-ia.cosmosia.notional.ventures:443", "https://rpc-cerberus.ecostake.com:443"],
|
||||
"snapshot_provider": "21cca2db122c48a11f426799131ef08235d46671@cerberus-rpc.polkachu.com:10656",
|
||||
"sdk_version": "0.45.8",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "cerberus",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"api": ["https://api.cheqd.net","https://api.cheqd.nodestake.top"],
|
||||
"rpc": ["https://rpc.cheqd.net:443", "https://rpc.cheqd.net:443","https://rpc.cheqd.nodestake.top"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.3",
|
||||
"sdk_version": "0.45.5",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "cheqd",
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
"chain_name": "chihuahua",
|
||||
"api": ["https://api.chihuahua.wtf", "https://chihuahua-api.mercury-nodes.net"],
|
||||
"rpc": ["https://rpc.chihuahua.wtf:443", "https://rpc.chihuahua.wtf:443"],
|
||||
"sdk_version": "0.44.3",
|
||||
"coingecko": "chihuahua-token",
|
||||
"api": ["https://chihuahua-api.polkachu.com", "https://api.chihuahua.wtf", "https://chihuahua-api.mercury-nodes.net"],
|
||||
"rpc": ["https://chihuahua-rpc.polkachu.com:443", "https://rpc.chihuahua.wtf:443"],
|
||||
"snapshot_provider": "12611137be6f64f9a7fb8977614a5a6f257c1394@65.21.200.224:29656",
|
||||
"sdk_version": "0.45.8",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"min_tx_fee": "250000",
|
||||
"addr_prefix": "chihuahua",
|
||||
"logo": "/logos/chihuahua.png",
|
||||
"assets": [{
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"chain_name": "comdex",
|
||||
"api":"https://rest.comdex.one/",
|
||||
"rpc": ["https://api.comdex.audit.one:443/rpc", "https://rpc.comdex.one:443"],
|
||||
"api": ["https://api-comdex-ia.cosmosia.notional.ventures", "https://comdex-api.polkachu.com", "https://rest.comdex.one/"],
|
||||
"rpc": ["https://rpc-comdex-ia.cosmosia.notional.ventures:443", "https://comdex-rpc.polkachu.com:443", "https://api.comdex.audit.one:443/rpc", "https://rpc.comdex.one:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.3",
|
||||
"sdk_version": "0.45.8",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "comdex",
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"chain_name": "commercio.network",
|
||||
"coingecko": "",
|
||||
"api": ["https://lcd-mainnet.commercio.network"],
|
||||
"rpc": ["https://rpc-mainnet.commercio.network:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.9",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "10000",
|
||||
"addr_prefix": "did:com:",
|
||||
"logo": "/logos/commercionetwork.png",
|
||||
"assets": [{
|
||||
"base": "ucommercio",
|
||||
"symbol": "COM",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "/logos/com.png"
|
||||
},{
|
||||
"base": "uccc",
|
||||
"symbol": "CCC",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "/logos/ccc.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,9 +1,12 @@
|
||||
{
|
||||
"chain_name": "cosmos",
|
||||
"coingecko": "cosmos",
|
||||
"api": ["https://cosmos.api.ping.pub", "https://cosmos.api.s16.ventures", "https://lcd-cosmoshub.whispernode.com", "https://api-cosmoshub-ia.cosmosia.notional.ventures", "https://cosmos-api.polkachu.com"],
|
||||
"rpc": ["https://cosmos.rpc.s16.ventures", "https://rpc-cosmoshub-ia.cosmosia.notional.ventures"],
|
||||
"sdk_version": "0.44.3",
|
||||
"api": [
|
||||
"https://cosmos.api.ping.pub",
|
||||
"https://lcd-cosmoshub.blockapsis.com:443",
|
||||
"https://api-cosmoshub-ia.cosmosia.notional.ventures"
|
||||
],
|
||||
"rpc": ["https://rpc.cosmos.network:443", "https://cosmos-rpc.icycro.org", "https://rpc.cosmos.dragonstake.io"],
|
||||
"sdk_version": "0.45.1",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "cosmos",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"api": ["https://crescent-api.polkachu.com", "https://mainnet.crescent.network:1317", "https://api.crescent.pupmos.network"],
|
||||
"rpc": ["https://mainnet.crescent.network:26657", "https://crescent-rpc.polkachu.com"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.5",
|
||||
"sdk_version": "0.45.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "cre",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"api": "https://mainnet.crypto.org:1317",
|
||||
"rpc": ["https://mainnet.crypto.org:443", "https://rpc-crypto-org.keplr.app:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.39.2",
|
||||
"sdk_version": "0.46.1",
|
||||
"coin_type": "394",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "cro",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"api": ["https://rest.mainnet.decentr.xyz","https://api.decentr.nodestake.top"],
|
||||
"rpc": ["https://ares.mainnet.decentr.xyz:443", "https://poseidon.mainnet.decentr.xyz:443","https://rpc.decentr.nodestake.top"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.0",
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "decentr",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"coingecko": "desmos",
|
||||
"api": ["https://api.mainnet.desmos.network"],
|
||||
"rpc": ["https://rpc.mainnet.desmos.network:443"],
|
||||
"sdk_version": "0.44.4",
|
||||
"sdk_version": "0.45.8",
|
||||
"coin_type": "852",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "desmos",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"api": "https://api-1-dig.notional.ventures",
|
||||
"rpc": ["https://rpc-1-dig.notional.ventures:443", "https://rpc-1-dig.notional.ventures:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.5",
|
||||
"sdk_version": "0.46.1",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "dig",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"chain_name": "echelon",
|
||||
"coingecko": "echelon",
|
||||
"api": ["https://api.ech.network", "https://lcd-echelon.whispernode.com", "https://api.echelon.nodestake.top", "https://echelon-api.polkachu.com"],
|
||||
"rpc": ["https://tendermint.ech.network", "https://rpc-echelon.whispernode.com" , "https://rpc.echelon.nodestake.top", "https://echelon-rpc.polkachu.com"],
|
||||
"api": ["https://api.ech.network", "https://lcd-echelon.whispernode.com", "https://api.echelon.nodestake.top", "https://echelon-api.polkachu.com", "https://api.eu.ech.world", "https://api.us.ech.world"],
|
||||
"rpc": ["https://tendermint.ech.network", "https://rpc-echelon.whispernode.com" , "https://rpc.echelon.nodestake.top", "https://echelon-rpc.polkachu.com", "https://rpc.eu.ech.world", "https://rpc.us.ech.world"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.1",
|
||||
"coin_type": "60",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"chain_name": "evmos",
|
||||
"api": ["https://evmos-api.polkachu.com", "https://rest.bd.evmos.org:1317", "https://evmos-api.skynetvalidators.com","https://api.evmos.nodestake.top"],
|
||||
"rpc": ["https://evmos-rpc.polkachu.com:443", "https://tendermint.bd.evmos.org:26657", "https://tendermint.bd.evmos.org:26657","https://rpc.evmos.nodestake.top"],
|
||||
"api": ["https://evmos-api.polkachu.com", "https://api-evmos-ia.cosmosia.notional.ventures", "https://rest.bd.evmos.org:1317", "https://evmos-api.skynetvalidators.com","https://api.evmos.nodestake.top"],
|
||||
"rpc": ["https://evmos-rpc.polkachu.com:443", "https://rpc-evmos-ia.cosmosia.notional.ventures:443", "https://tendermint.bd.evmos.org:26657", "https://tendermint.bd.evmos.org:26657","https://rpc.evmos.nodestake.top"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.1",
|
||||
"sdk_version": "0.46.2",
|
||||
"coin_type": "60",
|
||||
"min_tx_fee": "5000000000000000",
|
||||
"addr_prefix": "evmos",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"api": ["https://rest-fetchhub.fetch.ai"],
|
||||
"rpc": ["https://rpc-fetchhub.fetch.ai:443", "https://rpc-fetchhub.fetch.ai:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.1",
|
||||
"sdk_version": "0.45.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000000000000000",
|
||||
"addr_prefix": "fetch",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"api": "https://lcd.injective.network",
|
||||
"rpc": ["https://injective-rpc.api.chainlayer.network:443", "https://injective-rpc.api.chainlayer.network:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "v0.44.5",
|
||||
"sdk_version": "v0.45.5",
|
||||
"coin_type": "60",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "inj",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"api": "https://iris.api.ping.pub",
|
||||
"rpc": ["http://34.82.96.8:26657","http://34.77.68.145:26657"],
|
||||
"snapshot_provider": "fcc1d9bc43163b20ce5163cf41a302b33f25375f@34.82.96.8:26656",
|
||||
"sdk_version": "0.45.4",
|
||||
"sdk_version": "0.46.1",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "40000",
|
||||
"addr_prefix": "iaa",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"api": ["https://impacthub.ixo.world/rest", "https://proxies.sifchain.finance/api/impacthub-3/rest"],
|
||||
"rpc": [],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.42.6",
|
||||
"sdk_version": "0.45.4",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "ixo",
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"chain_name": "jackal",
|
||||
"coingecko": "",
|
||||
"api": ["https://api.jackalprotocol.com", "https://jackal-api.polkachu.com","https://api.jackal.nodestake.top"],
|
||||
"rpc": ["https://rpc.jackalprotocol.com", "https://jackal-rpc.polkachu.com","https://rpc.jackal.nodestake.top"],
|
||||
"snapshot_provider": "",
|
||||
"coin_type": "118",
|
||||
"sdk_version": "0.45.9",
|
||||
"addr_prefix": "jkl",
|
||||
"logo": "/logos/jackal.png",
|
||||
"assets": [{
|
||||
"base": "ujkl",
|
||||
"symbol": "JKL",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "jackal",
|
||||
"logo": "/logos/jackal.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"chain_name": "juno",
|
||||
"coingecko": "juno-network",
|
||||
"api": ["https://juno-api.polkachu.com", "https://lcd-juno.itastakers.com", "https://api-juno.nodes.guru"],
|
||||
"rpc": ["https://rpc-juno.itastakers.com:443", "https://rpc-juno.itastakers.com:443"],
|
||||
"api": ["https://api-juno-ia.cosmosia.notional.ventures", "https://juno-api.polkachu.com", "https://lcd-juno.itastakers.com"],
|
||||
"rpc": ["https://rpc-juno-ia.cosmosia.notional.ventures:443", "https://juno-rpc.polkachu.com:443", "https://rpc-juno.itastakers.com:443", "https://rpc-juno.itastakers.com:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.5",
|
||||
"sdk_version": "0.45.8",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "juno",
|
||||
"logo": "/logos/juno.png",
|
||||
"assets": [{
|
||||
@@ -14,6 +14,6 @@
|
||||
"symbol": "JUNO",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "juno-network",
|
||||
"logo": "/logos/juno.jpg"
|
||||
"logo": "/logos/juno.png"
|
||||
}]
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"api": "https://api.data.kava.io",
|
||||
"rpc": ["https://rpc.kava.io:443", "https://rpc.kava.io:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.5",
|
||||
"sdk_version": "0.45.4",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "kava",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"api": ["https://api-mainnet.blockchain.ki", "https://ki.api.ping.pub","https://api.ki.nodestake.top"],
|
||||
"rpc": ["https://rpc-mainnet.blockchain.ki:443", "https://rpc-mainnet.blockchain.ki:443","https://rpc.ki.nodestake.top"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.42.10",
|
||||
"sdk_version": "0.45.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "ki",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"chain_name": "lum-network",
|
||||
"coingecko": "",
|
||||
"api": "https://node0.mainnet.lum.network/rest",
|
||||
"rpc": ["https://node0.mainnet.lum.network:443/rpc", "https://node0.mainnet.lum.network:443/rpc"],
|
||||
"coingecko": "lum-network",
|
||||
"api": ["https://api-lum.degeno.de", "https://node0.mainnet.lum.network/rest"],
|
||||
"rpc": ["https://rpc-lum.degeno.de:443", "https://node0.mainnet.lum.network:443/rpc"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "880",
|
||||
@@ -13,7 +13,7 @@
|
||||
"base": "ulum",
|
||||
"symbol": "LUM",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"coingecko_id": "lum-network",
|
||||
"logo": "/logos/lum-network.png"
|
||||
}]
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"api": ["https://api.omniflix.nodestake.top","https://omniflixhub-api.skynetvalidators.com"],
|
||||
"rpc": ["https://rpc.omniflix.nodestake.top"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.1",
|
||||
"sdk_version": "0.46.1",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "omniflix",
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"chain_name": "osmosis",
|
||||
"coingecko": "osmosis",
|
||||
"api": ["https://osmosis-api.polkachu.com", "https://osmo.api.ping.pub", "https://lcd-osmosis.blockapsis.com", "https://api-osmosis-ia.cosmosia.notional.ventures"],
|
||||
"rpc": ["https://osmosis-rpc.lavenderfive.com:443", "https://rpc-osmosis.blockapsis.com:443", "https://rpc-osmosis-ia.cosmosia.notional.ventures"],
|
||||
"api": ["https://api-osmosis-ia.cosmosia.notional.ventures", "https://osmosis-api.polkachu.com", "https://osmo.api.ping.pub", "https://lcd-osmosis.blockapsis.com"],
|
||||
"rpc": ["https://rpc-osmosis-ia.cosmosia.notional.ventures:443", "https://osmosis-rpc.polkachu.com:443", "https://osmosis.validator.network:443", "https://rpc-osmosis.blockapsis.com:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.5",
|
||||
"sdk_version": "0.46.1",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "osmo",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"api": "https://rest.core.persistence.one",
|
||||
"rpc": ["https://rpc.core.persistence.one:443", "https://rpc.core.persistence.one:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.2",
|
||||
"sdk_version": "0.45.6",
|
||||
"coin_type": "750",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "persistence",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"api": "https://api.provenance.io",
|
||||
"rpc": ["https://rpc.provenance.io:443", "https://rpc.provenance.io:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.3",
|
||||
"sdk_version": "0.46.1",
|
||||
"coin_type": "505",
|
||||
"min_tx_fee": "800000000",
|
||||
"addr_prefix": "pb",
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"chain_name": "rebus",
|
||||
"api": ["https://api.mainnet.rebus.money:1317"],
|
||||
"rpc": ["https://api.mainnet.rebus.money:26657"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "rebus",
|
||||
"logo": "/logos/rebus.png",
|
||||
"assets": [
|
||||
{
|
||||
"base": "arebus",
|
||||
"symbol": "REBUS",
|
||||
"exponent": "18",
|
||||
"coingecko_id": "rebus",
|
||||
"logo": "/logos/rebus.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"api": "https://regen.api.ping.pub",
|
||||
"rpc": ["http://public-rpc.regen.vitwit.com:26657", "https://regen.stakesystems.io:2053"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.3",
|
||||
"sdk_version": "0.46.2",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "regen",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"chain_name": "rizon",
|
||||
"api": ["https://api.rizon.chaintools.tech", "https://restapi.rizon.world"],
|
||||
"rpc": ["http://seed-1.mainnet.rizon.world:26657"],
|
||||
"sdk_version": "v0.45.0",
|
||||
"sdk_version": "v0.45.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"assets": [{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"chain_name": "secret",
|
||||
"coingecko": "secret",
|
||||
"api": ["https://api.scrt.network", "https://secret-4.api.trivium.network:1317"],
|
||||
"rpc": ["https://rpc.scrt.network", "https://secret-4.api.trivium.network:26657"],
|
||||
"api": ["https://api.roninventures.io","https://api.scrt.network"],
|
||||
"rpc": ["http://beta-api.scrt.network:26657", "https://api.scrt.network:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.4",
|
||||
"coin_type": "529",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"chain_name": "sentinel",
|
||||
"api": "https://lcd.sentinel.co",
|
||||
"rpc": ["https://rpc-sentinel.keplr.app:443", "https://rpc-sentinel.keplr.app:443"],
|
||||
"api": ["https://api-sentinel-ia.cosmosia.notional.ventures", "https://lcd.sentinel.co"],
|
||||
"rpc": ["https://api-sentinel-ia.cosmosia.notional.ventures:443", "https://rpc-sentinel.keplr.app:443", "https://rpc-sentinel.keplr.app:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.6",
|
||||
"sdk_version": "0.45.8",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "sent",
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
{
|
||||
"chain_name": "shentu",
|
||||
"coingecko": "certik",
|
||||
"api": ["https://chainfull.noopsbycertik.com"],
|
||||
"rpc": "",
|
||||
"api": ["https://certik-api.polkachu.com/", "https://shentu-api.panthea.eu", "https://chainfull.noopsbycertik.com"],
|
||||
"rpc": ["https://certik-rpc.polkachu.com:443", "https://shentu-rpc.panthea.eu:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.3",
|
||||
"sdk_version": "0.45.4",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "certik",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"chain_name": "sifchain",
|
||||
"api": "https://api.sifchain.finance",
|
||||
"rpc": ["https://rpc.sifchain.finance:443", "https://rpc-archive.sifchain.finance:443"],
|
||||
"api": ["https://api-sifchain-ia.cosmosia.notional.ventures", "https://sifchain-api.polkachu.com", "https://api.sifchain.finance"],
|
||||
"rpc": ["https://rpc-sifchain-ia.cosmosia.notional.ventures/", "https://sifchain-rpc.polkachu.com:443", "https://rpc.sifchain.finance:443", "https://rpc-archive.sifchain.finance:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.0",
|
||||
"coin_type": "118",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"chain_name": "stargaze",
|
||||
"api": ["https://rest.stargaze-apis.com", "https://rest.stargaze.publicawesome.dev","https://api.stargaze.nodestake.top"],
|
||||
"rpc": ["https://rpc.stargaze-apis.com:443", "https://rpc.stargaze.ezstaking.io:443","https://rpc.stargaze.nodestake.top"],
|
||||
"api": ["https://stargaze-api.polkachu.com/","https://api-stargaze-ia.cosmosia.notional.ventures/", "https://rest.stargaze-apis.com", "https://rest.stargaze.publicawesome.dev"],
|
||||
"rpc": ["https://stargaze-rpc.polkachu.com/", "https://rpc-stargaze-ia.cosmosia.notional.ventures/","https://rpc.stargaze-apis.com:443", "https://rpc.stargaze.ezstaking.io:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.3",
|
||||
"sdk_version": "0.45.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "stars",
|
||||
@@ -15,4 +15,4 @@
|
||||
"coingecko_id": "stargaze",
|
||||
"logo": "/logos/stargaze.png"
|
||||
}]
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
"api": "https://api.iov-mainnet-ibc.iov.one",
|
||||
"rpc": ["https://rpc-iov.keplr.app:443", "https://rpc-iov.keplr.app:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.42.6",
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "234",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "star",
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"chain_name": "teritori",
|
||||
"api": ["https://rest.mainnet.teritori.com"],
|
||||
"rpc": ["https://rpc.mainnet.teritori.com"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.4",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "tori",
|
||||
"logo": "/logos/teritori.svg",
|
||||
"assets": [
|
||||
{
|
||||
"base": "utori",
|
||||
"symbol": "TORI",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "teritori",
|
||||
"logo": "/logos/teritori.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"chain_name": "umee",
|
||||
"api": ["https://api.blue.main.network.umee.cc", "https://api.bottlenose.main.network.umee.cc", "https://api.apollo.main.network.umee.cc", "https://api.aphrodite.main.network.umee.cc", "https://api.artemis.main.network.umee.cc", "https://api.athena.main.network.umee.cc", "https://api.beaked.main.network.umee.cc"],
|
||||
"rpc": ["https://rpc.aphrodite.main.network.umee.cc:443", "https://rpc.apollo.main.network.umee.cc:443"],
|
||||
"snapshot_provider": "d97750eddfe88fcd0be61694c396d4491217549b@94.250.203.6:26696,c12ac110e0249f0cef55599b335892444e4a21ac@142.132.198.227:26656",
|
||||
"sdk_version": "0.45.1",
|
||||
"api": ["https://api.barnacle.mainnet.network.umee.cc:443"],
|
||||
"rpc": ["https://rpc.barnacle.mainnet.network.umee.cc:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.46.2",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "umee",
|
||||
@@ -12,7 +12,7 @@
|
||||
"base": "uumee",
|
||||
"symbol": "UMEE",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "umee",
|
||||
"coingecko_id": "umee",
|
||||
"logo": "/logos/umee.png"
|
||||
}]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"chain_name": "vidulum",
|
||||
"coingecko": "vidulum",
|
||||
"api": "https://mainnet-lcd.vidulum.app",
|
||||
"rpc": ["https://mainnet-rpc.vidulum.app:443", "https://mainnet-rpc.vidulum.app:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.0",
|
||||
"api": ["https://mainnet-lcd.vidulum.app", "https://api-vidulum-ia.cosmosia.notional.ventures", "https://rest.rpc.erialos.me"],
|
||||
"rpc": ["https://trpc.rpc.erialos.me:443","https://rpc-vidulum-ia.cosmosia.notional.ventures:443", "https://mainnet-rpc.vidulum.app:443"],
|
||||
"snapshot_provider": "c32903505e9ab811ac46306d2913c98ccf4883ce@rpc.erialos.me:26656",
|
||||
"sdk_version": "0.45.9",
|
||||
"coin_type": "370",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "vdl",
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"chain_name": "beezee",
|
||||
"coingecko": "bzedge",
|
||||
"api": ["https://testnet.getbze.com"],
|
||||
"rpc": ["https://testnet-rpc.getbze.com:443","https://testnet-rpc.getbze.com:443"],
|
||||
"snapshot_provider": [""],
|
||||
"sdk_version": "0.44.0",
|
||||
"coin_type": "370",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "bze",
|
||||
"logo": "https://assets.coingecko.com/coins/images/7814/large/BZEdge_Color_icon.png",
|
||||
"assets": [{
|
||||
"base": "ubze",
|
||||
"symbol": "BZE",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "bzedge",
|
||||
"logo": "https://assets.coingecko.com/coins/images/7814/large/BZEdge_Color_icon.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"chain_name": "cerberus",
|
||||
"coingecko": "",
|
||||
"api": ["https://api.cerberus.zone:1317"],
|
||||
"rpc": ["https://rpc.cerberus.zone:26657", "https://rpc-cerberus.ecostake.com:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "cerberus",
|
||||
"logo": "/logos/cerberus.png",
|
||||
"assets": [
|
||||
{
|
||||
"base": "ucrbrus",
|
||||
"symbol": "CRBRUS",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "/logos/cerberus.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"chain_name": "commercio.network",
|
||||
"coingecko": "",
|
||||
"api": ["https://lcd-testnet.commercio.network"],
|
||||
"rpc": ["https://rpc-testnet.commercio.network:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.9",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "10000",
|
||||
"addr_prefix": "did:com:",
|
||||
"logo": "/logos/commercionetwork.png",
|
||||
"assets": [{
|
||||
"base": "ucommercio",
|
||||
"symbol": "COM",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "/logos/com.png"
|
||||
},{
|
||||
"base": "uccc",
|
||||
"symbol": "CCC",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "/logos/ccc.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"chain_name": "haqq",
|
||||
"coingecko": "",
|
||||
"api": ["https://rest.cosmos.testedge.haqq.network/"],
|
||||
"rpc": ["https://rpc.tm.testedge.haqq.network/"],
|
||||
"api": ["https://rest.cosmos.testedge2.haqq.network/"],
|
||||
"rpc": ["https://rpc.tm.testedge2.haqq.network/"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.45.3",
|
||||
"coin_type": "60",
|
||||
"min_tx_fee": "3000000000000000",
|
||||
"addr_prefix": "haqq",
|
||||
"logo": "/logos/haqq.png",
|
||||
"logo": "/logos/haqq.svg",
|
||||
"assets": [{
|
||||
"base": "aISLM",
|
||||
"symbol": "ISLM",
|
||||
"exponent": "18",
|
||||
"coingecko_id": "",
|
||||
"logo": "/logos/islm.png"
|
||||
"logo": "/logos/islm.svg"
|
||||
}]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "jackal",
|
||||
"coingecko": "jackal",
|
||||
"api": "https://testnet-api.jackalprotocol.com",
|
||||
"rpc": "https://testnet-rpc.jackalprotocol.com",
|
||||
"coin_type": "118",
|
||||
"sdk_version": "0.45.9",
|
||||
"addr_prefix": "jkl",
|
||||
"logo": "/logos/jackal.png",
|
||||
"assets": [{
|
||||
"base": "ujkl",
|
||||
"symbol": "JKL",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "jackal",
|
||||
"logo": "/logos/jackal.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"chain_name": "OKP4 testnet",
|
||||
"api": ["https://api.testnet.okp4.network"],
|
||||
"rpc": ["https://api.testnet.okp4.network:443/rpc"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.46.2",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "okp4",
|
||||
"logo": "/logos/okp4.png",
|
||||
"assets": [
|
||||
{
|
||||
"base": "uknow",
|
||||
"symbol": "KNOW",
|
||||
"exponent": "6",
|
||||
"logo": "/logos/okp4.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"chain_name": "sifchain",
|
||||
"api": "https://api.sifchain.finance",
|
||||
"rpc": ["https://rpc.sifchain.finance:443", "https://rpc-archive.sifchain.finance:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.42.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "sif",
|
||||
"logo": "/logos/sifchain.jpeg",
|
||||
"assets": [{
|
||||
"base": "rowan",
|
||||
"symbol": "ROWAN",
|
||||
"exponent": "18",
|
||||
"coingecko_id": "sifchain",
|
||||
"logo": "/logos/sifchain.jpeg"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"chain_name": "stargaze",
|
||||
"api": ["https://rest.stargaze-apis.com", "https://rest.stargaze.publicawesome.dev"],
|
||||
"rpc": ["https://rpc.stargaze-apis.com:443", "https://rpc.stargaze.ezstaking.io:443"],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "stars",
|
||||
"logo": "/logos/stargaze.png",
|
||||
"assets": [{
|
||||
"base": "ustars",
|
||||
"symbol": "STARS",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "stargaze",
|
||||
"logo": "/logos/stargaze.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"chain_name": "vidulum",
|
||||
"coingecko": "vidulum",
|
||||
"api": ["https://testnet-lcd.vidulum.app"],
|
||||
"rpc": [],
|
||||
"snapshot_provider": "",
|
||||
"sdk_version": "0.44.0",
|
||||
"coin_type": "370",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "vdl",
|
||||
"logo": "/logos/VDL.png",
|
||||
"assets": [{
|
||||
"base": "uvdl",
|
||||
"symbol": "VDL",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "vidulum",
|
||||
"logo": "/logos/VDL.png"
|
||||
}]
|
||||
}
|
||||
@@ -23,10 +23,6 @@ export default class Proposal {
|
||||
|
||||
this.id = element.proposal_id || element.id
|
||||
this.status = element.status
|
||||
this.type = element.content.type
|
||||
if (element.content['@type']) {
|
||||
this.type = element.content['@type']
|
||||
}
|
||||
this.tally = new ProposalTally().init(element.final_tally_result, total)
|
||||
this.submit_time = element.submit_time
|
||||
this.voting_end_time = element.voting_end_time
|
||||
@@ -37,6 +33,10 @@ export default class Proposal {
|
||||
if (this.contents) {
|
||||
this.title = this.contents.title
|
||||
this.description = this.contents.description
|
||||
this.type = element.content.type
|
||||
if (element.content['@type']) {
|
||||
this.type = element.content['@type']
|
||||
}
|
||||
}
|
||||
return this
|
||||
}
|
||||
@@ -50,8 +50,11 @@ export default class Proposal {
|
||||
}
|
||||
|
||||
versionFixed(ver) {
|
||||
if (compareVersions(ver, '0.40') >= 0) {
|
||||
// do nothing
|
||||
if (compareVersions(ver, '0.46') >= 0) {
|
||||
if (this.element.metadata) {
|
||||
this.title = this.element.metadata.title || this.element.metadata
|
||||
this.description = this.element.metadata.description || this.element.metadata
|
||||
}
|
||||
} else if (compareVersions(ver, '0.30') >= 0) {
|
||||
switch (this.element.proposal_status) {
|
||||
case 'Passed':
|
||||
@@ -64,7 +67,7 @@ export default class Proposal {
|
||||
this.status = 4
|
||||
break
|
||||
default:
|
||||
this.status = 1
|
||||
// this.status = 1
|
||||
}
|
||||
}
|
||||
if (String(this.status).indexOf('PASSED') > -1) {
|
||||
|
||||
@@ -3,7 +3,7 @@ import fetch from 'node-fetch'
|
||||
import store from '@/store'
|
||||
import compareVersions from 'compare-versions'
|
||||
import { TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx'
|
||||
import { toBase64 } from '@cosmjs/encoding'
|
||||
import { fromHex, toBase64 } from '@cosmjs/encoding'
|
||||
import {
|
||||
Proposal, ProposalTally, Proposer, StakingPool, Votes, Deposit,
|
||||
Validator, StakingParameters, Block, ValidatorDistribution, StakingDelegation, WrapStdTx, getUserCurrency,
|
||||
@@ -60,18 +60,34 @@ export default class ChainFetch {
|
||||
}
|
||||
|
||||
async getLatestBlock(config = null) {
|
||||
// const conf = config || this.getSelectedConfig()
|
||||
// if (conf.chain_name === 'injective') {
|
||||
// return ChainFetch.fetch('https://tm.injective.network', '/cosmos/base/tendermint/v1beta1/block').then(data => Block.create(commonProcess(data)))
|
||||
// }
|
||||
const conf = config || this.getSelectedConfig()
|
||||
const ver = conf.sdk_version || '0.41'
|
||||
if (ver && compareVersions(ver, '0.45') < 1) {
|
||||
return this.get('/blocks/latest', config).then(data => Block.create(data)).then(block => {
|
||||
block.block.last_commit.signatures.map(s1 => {
|
||||
const s = s1
|
||||
s.validator_address = toBase64(fromHex(s.validator_address))
|
||||
return s
|
||||
})
|
||||
return block
|
||||
})
|
||||
}
|
||||
return this.get('/cosmos/base/tendermint/v1beta1/blocks/latest', config).then(data => Block.create(data))
|
||||
}
|
||||
|
||||
async getBlockByHeight(height, config = null) {
|
||||
// const conf = config || this.getSelectedConfig()
|
||||
// if (conf.chain_name === 'injective') {
|
||||
// return ChainFetch.fetch('https://tm.injective.network', `/cosmos/base/tendermint/v1beta1/block?height=${height}`).then(data => Block.create(commonProcess(data)))
|
||||
// }
|
||||
const conf = config || this.getSelectedConfig()
|
||||
const ver = conf.sdk_version || '0.41'
|
||||
if (ver && compareVersions(ver, '0.45') < 1) {
|
||||
return this.get('/blocks/latest', config).then(data => Block.create(data)).then(block => {
|
||||
block.block.last_commit.signatures.map(s1 => {
|
||||
const s = s1
|
||||
s.validator_address = toBase64(fromHex(s.validator_address))
|
||||
return s
|
||||
})
|
||||
return block
|
||||
})
|
||||
}
|
||||
return this.get(`/cosmos/base/tendermint/v1beta1/blocks/${height}`, config).then(data => Block.create(data))
|
||||
}
|
||||
|
||||
@@ -169,7 +185,19 @@ export default class ChainFetch {
|
||||
async getValidatorList(config = null) {
|
||||
return this.get('/cosmos/staking/v1beta1/validators?pagination.limit=200&status=BOND_STATUS_BONDED', config).then(data => {
|
||||
const vals = commonProcess(data.validators).map(i => new Validator().init(i))
|
||||
localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals))
|
||||
try {
|
||||
localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals))
|
||||
} catch (err) {
|
||||
// clear cache
|
||||
for (let i = 0; i < localStorage.length; i += 1) {
|
||||
const key = localStorage.key(i)
|
||||
if (key.startsWith('validators')) {
|
||||
localStorage.removeItem(key)
|
||||
}
|
||||
}
|
||||
// set again
|
||||
localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals))
|
||||
}
|
||||
return vals
|
||||
})
|
||||
}
|
||||
@@ -392,6 +420,10 @@ export default class ChainFetch {
|
||||
return this.get(`/cosmos/distribution/v1beta1/delegators/${address}/rewards`, config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
async getValidatorSlashs(address, config = null) {
|
||||
return this.get(`/cosmos/distribution/v1beta1/validators//${address}/slashes`, config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
async getStakingValidators(address) {
|
||||
return this.get(`/cosmos/distribution/v1beta1/delegators/${address}/validators?pagination.size=200`).then(data => commonProcess(data.validators))
|
||||
}
|
||||
|
||||
@@ -491,19 +491,21 @@ export function getCachedValidators(chainName) {
|
||||
}
|
||||
|
||||
export function isHexAddress(v) {
|
||||
const re = /^[A-Z\d]{40}$/
|
||||
return re.test(v)
|
||||
// const re = /^[A-Z\d]{40}$/
|
||||
// return re.test(v)
|
||||
return v.length === 28
|
||||
}
|
||||
|
||||
export function getStakingValidatorByHex(chainName, hex) {
|
||||
export function getStakingValidatorByHex(chainName, textBase64) {
|
||||
const locals = localStorage.getItem(`validators-${chainName}`)
|
||||
if (locals) {
|
||||
const val = JSON.parse(locals).find(x => consensusPubkeyToHexAddress(x.consensus_pubkey) === hex)
|
||||
const val = JSON.parse(locals)
|
||||
.find(x => toBase64(fromHex(consensusPubkeyToHexAddress(x.consensus_pubkey))) === textBase64)
|
||||
if (val) {
|
||||
return val.description.moniker
|
||||
}
|
||||
}
|
||||
return abbr(hex)
|
||||
return abbr(textBase64)
|
||||
}
|
||||
|
||||
export function getStakingValidatorByAccount(chainName, addr) {
|
||||
|
||||
@@ -36,25 +36,20 @@ function processMenu() {
|
||||
icon: 'LifeBuoyIcon',
|
||||
})
|
||||
}
|
||||
chainMenus.push({
|
||||
title: 'Github',
|
||||
href: 'https://github.com/ping-pub/explorer',
|
||||
icon: 'GithubIcon',
|
||||
})
|
||||
chainMenus.push({
|
||||
title: 'Discord',
|
||||
href: 'https://discord.gg/CmjYVSr6GW',
|
||||
icon: 'EyeIcon',
|
||||
})
|
||||
chainMenus.push({
|
||||
title: 'Twitter',
|
||||
href: 'https://twitter.com/ping_pub',
|
||||
icon: 'TwitterIcon',
|
||||
})
|
||||
chainMenus.push({
|
||||
title: 'Telegram',
|
||||
href: 'https://t.me/pingpub',
|
||||
icon: 'SendIcon',
|
||||
title: 'FAQ',
|
||||
href: 'https://github.com/ping-pub/explorer/discussions',
|
||||
icon: 'MessageSquareIcon',
|
||||
})
|
||||
chainMenus.push({
|
||||
title: 'Github',
|
||||
href: 'https://github.com/ping-pub/explorer',
|
||||
icon: 'GithubIcon',
|
||||
})
|
||||
|
||||
return chainMenus
|
||||
|
||||
@@ -10,7 +10,7 @@ import { sha256 } from '@cosmjs/crypto'
|
||||
import { toHex } from '@cosmjs/encoding'
|
||||
|
||||
let chains = {}
|
||||
|
||||
const coingecko = {}
|
||||
let configs = require.context('../../chains/mainnet', false, /\.json$/)
|
||||
if (isTestnet()) {
|
||||
configs = require.context('../../chains/testnet', false, /\.json$/)
|
||||
@@ -21,6 +21,9 @@ configs.keys().forEach(k => {
|
||||
const c = configs(k)
|
||||
c.chain_name = String(c.chain_name).toLowerCase()
|
||||
update[c.chain_name] = c
|
||||
c.assets.forEach(x => {
|
||||
if (x.coingecko_id && x.coingecko_id !== '') coingecko[x.coingecko_id] = String(x.symbol).toUpperCase()
|
||||
})
|
||||
})
|
||||
|
||||
chains = update
|
||||
@@ -83,9 +86,21 @@ export default {
|
||||
},
|
||||
actions: {
|
||||
async getQuotes(context) {
|
||||
fetch('https://price.ping.pub/quotes').then(data => data.json()).then(data => {
|
||||
context.commit('setQuotes', data)
|
||||
})
|
||||
// fetch('https://price.ping.pub/quotes').then(data => data.json()).then(data => {
|
||||
// context.commit('setQuotes', data)
|
||||
// })
|
||||
const keys = Object.keys(coingecko)
|
||||
if (keys.length > 0) {
|
||||
const currencies = 'usd,cny,eur,jpy,krw,sgd,hkd'
|
||||
fetch(`https://api.coingecko.com/api/v3/simple/price?vs_currencies=${currencies}&ids=${keys.join(',')}`).then(data => data.json()).then(data => {
|
||||
// use symbol as key instead of coingecko id
|
||||
const quotes = {}
|
||||
Object.keys(data).forEach(k => {
|
||||
quotes[coingecko[k]] = data[k]
|
||||
})
|
||||
context.commit('setQuotes', quotes)
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
async getAllIBCDenoms(context, _this) {
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
<template>
|
||||
<div>
|
||||
<b-card title="Block Id">
|
||||
<b-card>
|
||||
<b-card-title class="d-flex justify-content-between">
|
||||
<span>#{{ height }}</span>
|
||||
<span><b-button
|
||||
size="sm"
|
||||
@click="goblock(height-1)"
|
||||
> < </b-button> <b-button
|
||||
size="sm"
|
||||
@click="goblock(Number(height)+1)"
|
||||
> > </b-button></span>
|
||||
</b-card-title>
|
||||
<object-field-component :tablefield="block.block_id" />
|
||||
</b-card>
|
||||
|
||||
@@ -42,7 +52,9 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { BCard, BTable } from 'bootstrap-vue'
|
||||
import {
|
||||
BCard, BTable, BCardTitle, BButton,
|
||||
} from 'bootstrap-vue'
|
||||
import { fromBase64 } from '@cosmjs/encoding'
|
||||
import { decodeTxRaw } from '@cosmjs/proto-signing'
|
||||
import Tx from '@/libs/data/tx'
|
||||
@@ -52,8 +64,10 @@ import ArrayFieldComponent from './components/ArrayFieldComponent.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
BButton,
|
||||
BCard,
|
||||
BTable,
|
||||
BCardTitle,
|
||||
ObjectFieldComponent,
|
||||
ArrayFieldComponent,
|
||||
},
|
||||
@@ -68,6 +82,7 @@ export default {
|
||||
return {
|
||||
block: { block: { header: {}, data: {}, evidence: {} } },
|
||||
txs: null,
|
||||
height: 0,
|
||||
fields: [
|
||||
{ key: 'hash' },
|
||||
{ key: 'fee', formatter: v => tokenFormatter(v) },
|
||||
@@ -82,6 +97,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
initData(height) {
|
||||
this.height = height
|
||||
this.$http.getBlockByHeight(height).then(res => {
|
||||
this.block = res
|
||||
const { txs } = res.block.data
|
||||
@@ -101,6 +117,9 @@ export default {
|
||||
if (array.length > 0) this.txs = array
|
||||
})
|
||||
},
|
||||
goblock(height) {
|
||||
this.$router.push({ name: 'block', params: { height } })
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
variant="outline-primary"
|
||||
@click="onchange()"
|
||||
>
|
||||
Moniter
|
||||
Monitor
|
||||
</b-button>
|
||||
</b-input-group-append>
|
||||
</b-input-group>
|
||||
|
||||
@@ -198,49 +198,61 @@
|
||||
</b-row>
|
||||
<b-row v-if="stakingList && stakingList.length > 0">
|
||||
<b-col>
|
||||
<b-table
|
||||
:items="stakingList"
|
||||
:fields="fields"
|
||||
striped
|
||||
hover
|
||||
responsive="sm"
|
||||
stacked="sm"
|
||||
>
|
||||
<template #cell(action)="data">
|
||||
<!-- size -->
|
||||
<b-button-group
|
||||
size="sm"
|
||||
<b-card no-body>
|
||||
<b-table
|
||||
:items="stakingList"
|
||||
:fields="fields"
|
||||
striped
|
||||
hover
|
||||
responsive="sm"
|
||||
stacked="sm"
|
||||
>
|
||||
<template #cell(action)="data">
|
||||
<!-- size -->
|
||||
<b-button-group
|
||||
size="sm"
|
||||
>
|
||||
<b-button
|
||||
v-b-modal.operation-modal
|
||||
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
|
||||
v-b-tooltip.hover.top="'Delegate'"
|
||||
variant="outline-primary"
|
||||
@click="selectDelegation(data,'Delegate')"
|
||||
>
|
||||
<feather-icon icon="LogInIcon" />
|
||||
</b-button>
|
||||
<b-button
|
||||
v-b-modal.operation-modal
|
||||
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
|
||||
v-b-tooltip.hover.top="'Redelegate'"
|
||||
variant="outline-primary"
|
||||
@click="selectDelegation(data,'Redelegate')"
|
||||
>
|
||||
<feather-icon icon="ShuffleIcon" />
|
||||
</b-button>
|
||||
<b-button
|
||||
v-b-modal.operation-modal
|
||||
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
|
||||
v-b-tooltip.hover.top="'Unbond'"
|
||||
variant="outline-primary"
|
||||
@click="selectDelegation(data,'Unbond')"
|
||||
>
|
||||
<feather-icon icon="LogOutIcon" />
|
||||
</b-button>
|
||||
</b-button-group>
|
||||
</template>
|
||||
</b-table>
|
||||
<b-card-footer class="text-right">
|
||||
<b-button
|
||||
v-b-modal.operation-modal
|
||||
variant="outline-primary"
|
||||
@click="selectWithdraw()"
|
||||
>
|
||||
<b-button
|
||||
v-b-modal.operation-modal
|
||||
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
|
||||
v-b-tooltip.hover.top="'Delegate'"
|
||||
variant="outline-primary"
|
||||
@click="selectDelegation(data,'Delegate')"
|
||||
>
|
||||
<feather-icon icon="LogInIcon" />
|
||||
</b-button>
|
||||
<b-button
|
||||
v-b-modal.operation-modal
|
||||
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
|
||||
v-b-tooltip.hover.top="'Redelegate'"
|
||||
variant="outline-primary"
|
||||
@click="selectDelegation(data,'Redelegate')"
|
||||
>
|
||||
<feather-icon icon="ShuffleIcon" />
|
||||
</b-button>
|
||||
<b-button
|
||||
v-b-modal.operation-modal
|
||||
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
|
||||
v-b-tooltip.hover.top="'Unbond'"
|
||||
variant="outline-primary"
|
||||
@click="selectDelegation(data,'Unbond')"
|
||||
>
|
||||
<feather-icon icon="LogOutIcon" />
|
||||
</b-button>
|
||||
</b-button-group>
|
||||
</template>
|
||||
</b-table>
|
||||
<feather-icon icon="AwardIcon" />
|
||||
Widthdraw Rewards
|
||||
</b-button>
|
||||
</b-card-footer>
|
||||
</b-card>
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
@@ -307,7 +319,7 @@
|
||||
<feather-icon
|
||||
icon="PlusCircleIcon"
|
||||
/>
|
||||
receive
|
||||
Receive
|
||||
</b-button>
|
||||
</b-col>
|
||||
</b-row>
|
||||
@@ -331,7 +343,7 @@
|
||||
<script>
|
||||
import {
|
||||
BRow, BCol, BAlert, BCard, BTable, BFormCheckbox, BCardHeader, BCardTitle, BMedia, BMediaAside, BMediaBody, BAvatar,
|
||||
BCardBody, BLink, BButtonGroup, BButton, BTooltip, VBModal, VBTooltip,
|
||||
BCardBody, BLink, BButtonGroup, BButton, BTooltip, VBModal, VBTooltip, BCardFooter,
|
||||
} from 'bootstrap-vue'
|
||||
import {
|
||||
formatNumber, formatTokenAmount, isToken, percent, timeIn, toDay, toDuration, tokenFormatter, getLocalAccounts,
|
||||
@@ -365,6 +377,7 @@ export default {
|
||||
BMedia,
|
||||
BCardBody,
|
||||
BLink,
|
||||
BCardFooter,
|
||||
|
||||
OperationModal,
|
||||
ParametersModuleComponent,
|
||||
@@ -499,6 +512,9 @@ export default {
|
||||
selectSend() {
|
||||
this.operationModalType = 'Transfer'
|
||||
},
|
||||
selectWithdraw() {
|
||||
this.operationModalType = 'Withdraw'
|
||||
},
|
||||
formatToken(tokens) {
|
||||
if (Array.isArray(tokens)) {
|
||||
let nativeToken = tokens.filter(x => x.denom.length < 11)
|
||||
|
||||
@@ -49,14 +49,7 @@
|
||||
>
|
||||
<tbody>
|
||||
<b-tr>
|
||||
<b-td
|
||||
style="text-transform: capitalize; vertical-align: top; width:200px"
|
||||
>
|
||||
{{ $t('proposal_id') }}
|
||||
</b-td><b-td>{{ proposal.id }}</b-td>
|
||||
</b-tr>
|
||||
<b-tr>
|
||||
<b-td>
|
||||
<b-td style="text-transform: capitalize; vertical-align: top; width:200px">
|
||||
{{ $t('proposal_proposer') }}
|
||||
</b-td><b-td><router-link :to="`../account/${proposer.proposer}`">
|
||||
{{ formatAddress(proposer.proposer) }}
|
||||
|
||||
@@ -1,107 +1,193 @@
|
||||
<template>
|
||||
<div class="px-0">
|
||||
<b-card>
|
||||
<b-alert
|
||||
variant="danger"
|
||||
:show="syncing"
|
||||
>
|
||||
<div class="alert-body">
|
||||
<span>No new blocks have been produced since <strong>{{ latestTime }}</strong> </span>
|
||||
</div>
|
||||
</b-alert>
|
||||
<b-card
|
||||
no-body
|
||||
class="mb-1"
|
||||
>
|
||||
<b-button
|
||||
to="./uptime/my"
|
||||
variant="primary"
|
||||
>
|
||||
Browse favorite only
|
||||
</b-button>
|
||||
<b-input-group>
|
||||
<b-input-group-prepend is-text>
|
||||
<b-form-checkbox
|
||||
v-model="missedFilter"
|
||||
v-b-tooltip.hover
|
||||
title="Only missed blocks"
|
||||
name="viewMissed"
|
||||
/>
|
||||
</b-input-group-prepend>
|
||||
<b-form-input
|
||||
v-model="query"
|
||||
placeholder="Keywords to filter validators"
|
||||
/>
|
||||
</b-input-group>
|
||||
</b-card>
|
||||
<b-row>
|
||||
<b-col
|
||||
v-for="(x,index) in uptime"
|
||||
:key="index"
|
||||
sm="12"
|
||||
md="4"
|
||||
xl="3"
|
||||
class="text-truncate"
|
||||
>
|
||||
<div class="d-flex justify-content-between">
|
||||
<b-form-checkbox
|
||||
v-model="pinned"
|
||||
:value="`${chain}#${x.address}`"
|
||||
class="custom-control-warning text-truncate"
|
||||
@change="pinValidator(`${chain}#${x.address}`)"
|
||||
><span class="d-inline-block text-truncate font-weight-bold align-bottom">{{ index+1 }} {{ x.validator.moniker }}</span>
|
||||
</b-form-checkbox>
|
||||
<span v-if="missing[x.address]">
|
||||
<b-badge
|
||||
v-if="missing[x.address].missed_blocks_counter > 0"
|
||||
v-b-tooltip.hover.v-danger
|
||||
variant="light-danger"
|
||||
:title="`${missing[x.address].missed_blocks_counter} missed blocks`"
|
||||
class="text-danger text-bolder"
|
||||
>
|
||||
{{ missing[x.address].missed_blocks_counter }}
|
||||
</b-badge>
|
||||
<b-badge
|
||||
v-else
|
||||
v-b-tooltip.hover.v-success
|
||||
variant="light-success"
|
||||
title="Perfect! No missed blocks"
|
||||
>
|
||||
0
|
||||
</b-badge>
|
||||
</span>
|
||||
</div>
|
||||
<b-skeleton-wrapper :loading="loading">
|
||||
<template #loading>
|
||||
<b-skeleton width="100%" />
|
||||
</template>
|
||||
<template #default>
|
||||
<div class="d-flex justify-content-between align-self-stretch flex-wrap">
|
||||
<div
|
||||
v-for="(b,i) in blocks"
|
||||
:key="i"
|
||||
style="width:1.5%;"
|
||||
><router-link :to="`./blocks/${b.height}`">
|
||||
<div
|
||||
v-b-tooltip.hover.v-second
|
||||
:title="b.height"
|
||||
:class="b.sigs && b.sigs[x.address] ? b.sigs[x.address] : 'bg-light-success'"
|
||||
class="m-auto"
|
||||
> </div>
|
||||
</router-link>
|
||||
</div>
|
||||
<b-tabs>
|
||||
<b-tab title="Group By Validator">
|
||||
<b-card>
|
||||
<b-alert
|
||||
variant="danger"
|
||||
:show="syncing"
|
||||
>
|
||||
<div class="alert-body">
|
||||
<span>No new blocks have been produced since <strong>{{ latestTime }}</strong> </span>
|
||||
</div>
|
||||
</b-alert>
|
||||
<b-card
|
||||
no-body
|
||||
class="mb-1"
|
||||
>
|
||||
<b-row>
|
||||
<b-col md="3">
|
||||
<h4>#{{ height }}</h4>
|
||||
</b-col>
|
||||
<b-col md="9">
|
||||
<b-input-group>
|
||||
<b-input-group-prepend is-text>
|
||||
<b-form-checkbox
|
||||
v-model="missedFilter"
|
||||
v-b-tooltip.hover
|
||||
title="Only missed blocks"
|
||||
name="viewMissed"
|
||||
/>
|
||||
</b-input-group-prepend>
|
||||
<b-form-input
|
||||
v-model="query"
|
||||
placeholder="Keywords to filter validators"
|
||||
/>
|
||||
<b-input-group-append>
|
||||
<b-button
|
||||
to="./uptime/my"
|
||||
variant="primary"
|
||||
>
|
||||
Favorite
|
||||
</b-button>
|
||||
</b-input-group-append>
|
||||
</b-input-group>
|
||||
</b-col>
|
||||
</b-row>
|
||||
</b-card>
|
||||
<b-row>
|
||||
<b-col
|
||||
v-for="(x,index) in uptime"
|
||||
:key="index"
|
||||
sm="12"
|
||||
md="4"
|
||||
xl="3"
|
||||
class="text-truncate"
|
||||
>
|
||||
<div class="d-flex justify-content-between">
|
||||
<b-form-checkbox
|
||||
v-model="pinned"
|
||||
:value="`${chain}#${x.address}`"
|
||||
class="custom-control-warning text-truncate"
|
||||
@change="pinValidator(`${chain}#${x.address}`)"
|
||||
><span class="d-inline-block text-truncate font-weight-bold align-bottom">{{ index+1 }} {{ x.validator.moniker }}</span>
|
||||
</b-form-checkbox>
|
||||
<span v-if="missing[x.address]">
|
||||
<b-badge
|
||||
v-if="missing[x.address].missed_blocks_counter > 0"
|
||||
v-b-tooltip.hover.v-danger
|
||||
variant="light-danger"
|
||||
:title="`${missing[x.address].missed_blocks_counter} missed blocks`"
|
||||
class="text-danger text-bolder"
|
||||
>
|
||||
{{ missing[x.address].missed_blocks_counter }}
|
||||
</b-badge>
|
||||
<b-badge
|
||||
v-else
|
||||
v-b-tooltip.hover.v-success
|
||||
variant="light-success"
|
||||
title="Perfect! No missed blocks"
|
||||
>
|
||||
0
|
||||
</b-badge>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</b-skeleton-wrapper>
|
||||
</b-col>
|
||||
</b-row>
|
||||
</b-card>
|
||||
<b-skeleton-wrapper :loading="loading">
|
||||
<template #loading>
|
||||
<b-skeleton width="100%" />
|
||||
</template>
|
||||
<template #default>
|
||||
<div class="d-flex justify-content-between align-self-stretch flex-wrap">
|
||||
<div
|
||||
v-for="(b,i) in blocks"
|
||||
:key="i"
|
||||
style="width:1.5%;"
|
||||
><router-link :to="`./blocks/${b.height}`">
|
||||
<div
|
||||
v-b-tooltip.hover.v-second
|
||||
:title="b.height"
|
||||
:class="b.sigs && b.sigs[x.address] ? b.sigs[x.address] : 'bg-light-success'"
|
||||
class="m-auto"
|
||||
> </div>
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</b-skeleton-wrapper>
|
||||
</b-col>
|
||||
</b-row>
|
||||
</b-card>
|
||||
</b-tab>
|
||||
<b-tab title="Group By Proposer">
|
||||
<b-card>
|
||||
<b-row>
|
||||
<b-col
|
||||
md="3"
|
||||
sm="12"
|
||||
>
|
||||
<h4>#{{ height }}</h4>
|
||||
</b-col>
|
||||
<b-col
|
||||
md="3"
|
||||
sm="12"
|
||||
>
|
||||
<b-input-group
|
||||
prepend="Fetch Frequency"
|
||||
>
|
||||
<b-form-select
|
||||
id="frequency"
|
||||
v-model="frequency"
|
||||
placeholder="Frequency to fetch data"
|
||||
@change="onFrequencyChange()"
|
||||
>
|
||||
<b-form-select-option value="6000">
|
||||
6s
|
||||
</b-form-select-option>
|
||||
<b-form-select-option value="2000">
|
||||
2s
|
||||
</b-form-select-option>
|
||||
<b-form-select-option value="1000">
|
||||
1s
|
||||
</b-form-select-option>
|
||||
</b-form-select>
|
||||
</b-input-group>
|
||||
</b-col>
|
||||
<b-col
|
||||
sm="12"
|
||||
md="6"
|
||||
>
|
||||
<b-input-group
|
||||
prepend="Qty of absent validators"
|
||||
>
|
||||
<b-form-input
|
||||
id="threshold"
|
||||
v-model="threshold"
|
||||
placeholder="Absent validator number in blocks"
|
||||
/>
|
||||
</b-input-group>
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
</b-card>
|
||||
|
||||
<b-row>
|
||||
<b-col
|
||||
v-for="(x, i) in proposerViewData"
|
||||
:key="i"
|
||||
md="4"
|
||||
sm="12"
|
||||
class="text-truncate"
|
||||
>
|
||||
{{ x.name }}
|
||||
<b-badge
|
||||
v-if="x.proposed > 0"
|
||||
v-b-tooltip.hover.v-second
|
||||
:title="x.proposed > 0?`${ Number(x.counter / x.proposed * 100).toFixed(2) } %`:''"
|
||||
:variant="x.counter > 0 ? 'light-danger': 'light-success'"
|
||||
>
|
||||
{{ x.counter }} / {{ x.proposed }}
|
||||
</b-badge>
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
BSkeleton, BSkeletonWrapper,
|
||||
BSkeleton, BSkeletonWrapper, BInputGroupAppend, BTabs, BTab, BFormGroup, BFormSelect, BFormSelectOption,
|
||||
BRow, BCol, VBTooltip, BFormInput, BCard, BAlert, BFormCheckbox, BButton, BBadge, BInputGroup, BInputGroupPrepend,
|
||||
} from 'bootstrap-vue'
|
||||
|
||||
@@ -115,15 +201,21 @@ export default {
|
||||
BRow,
|
||||
BCol,
|
||||
BFormInput,
|
||||
BFormGroup,
|
||||
BCard,
|
||||
BAlert,
|
||||
BButton,
|
||||
BBadge,
|
||||
BFormCheckbox,
|
||||
BFormSelect,
|
||||
BFormSelectOption,
|
||||
BInputGroup,
|
||||
BSkeleton,
|
||||
BSkeletonWrapper,
|
||||
BInputGroupPrepend,
|
||||
BInputGroupAppend,
|
||||
BTabs,
|
||||
BTab,
|
||||
},
|
||||
directives: {
|
||||
'b-tooltip': VBTooltip,
|
||||
@@ -132,6 +224,7 @@ export default {
|
||||
const { chain } = this.$route.params
|
||||
const pinned = localStorage.getItem('pinned') ? localStorage.getItem('pinned').split(',') : ''
|
||||
return {
|
||||
height: 0,
|
||||
loading: true,
|
||||
missedFilter: false,
|
||||
pinned,
|
||||
@@ -142,6 +235,12 @@ export default {
|
||||
blocks: Array.from('0'.repeat(50)).map(x => ({ sigs: {}, height: Number(x) })),
|
||||
syncing: false,
|
||||
latestTime: '',
|
||||
threshold: 10,
|
||||
proposers: {},
|
||||
absentValsInBlock: {},
|
||||
numOfBlock: 1000,
|
||||
temp: 0,
|
||||
frequency: 6000,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -157,10 +256,30 @@ export default {
|
||||
}
|
||||
return rets
|
||||
},
|
||||
// Compose data for group by proposer
|
||||
proposerViewData() {
|
||||
const valCounter = {}
|
||||
this.validators.forEach(x => {
|
||||
valCounter[this.hex2base64(consensusPubkeyToHexAddress(x.consensus_pubkey))] = {
|
||||
name: x.description.moniker,
|
||||
counter: 0,
|
||||
proposed: 0,
|
||||
}
|
||||
})
|
||||
Object.keys(this.proposers).forEach(height => {
|
||||
const num = this.absentValsInBlock[height] || 0
|
||||
if (valCounter[this.proposers[height]]) {
|
||||
if (num > this.threshold) {
|
||||
valCounter[this.proposers[height]].counter += 1 // (num >= Number(this.threshold) ? 1 : 0)
|
||||
}
|
||||
valCounter[this.proposers[height]].proposed += 1
|
||||
}
|
||||
})
|
||||
return Object.values(valCounter).sort((a, b) => b.counter - a.counter)
|
||||
},
|
||||
},
|
||||
created() {
|
||||
const cached = JSON.parse(getCachedValidators(this.$route.params.chain))
|
||||
|
||||
if (cached) {
|
||||
this.validators = cached
|
||||
}
|
||||
@@ -216,7 +335,7 @@ export default {
|
||||
blocks.push({ sigs, height })
|
||||
this.blocks = blocks
|
||||
|
||||
this.timer = setInterval(this.fetch_latest, 6000)
|
||||
this.timer = setInterval(this.fetch_latest, this.frequency)
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
@@ -227,20 +346,38 @@ export default {
|
||||
})
|
||||
return sigs
|
||||
},
|
||||
onFrequencyChange() {
|
||||
clearInterval(this.timer)
|
||||
this.timer = setInterval(this.fetch_latest, this.frequency)
|
||||
},
|
||||
hex2base64(v) {
|
||||
return toBase64(fromHex(v))
|
||||
},
|
||||
fetch_status(height, resolve) {
|
||||
const block = this.blocks.find(b => b.height === height)
|
||||
if (block) {
|
||||
this.$http.getBlockByHeight(height).then(res => {
|
||||
resolve()
|
||||
this.$http.getBlockByHeight(height).then(res => {
|
||||
resolve()
|
||||
const block = this.blocks.find(b => b.height === height)
|
||||
// update valiators states
|
||||
if (block) {
|
||||
const sigs = this.initColor()
|
||||
res.block.last_commit.signatures.forEach(x => {
|
||||
if (x.validator_address) sigs[x.validator_address] = 'bg-success'
|
||||
})
|
||||
this.$set(block, 'sigs', sigs)
|
||||
})
|
||||
}
|
||||
|
||||
// update proposer states
|
||||
this.count(res.block)
|
||||
})
|
||||
},
|
||||
/// count how many absent valiators in a block
|
||||
count(block) {
|
||||
const count = block.last_commit.signatures.reduce((p, c) => (c.block_id_flag !== 'BLOCK_ID_FLAG_COMMIT' ? p + 1 : p), 0)
|
||||
// Notes: block.header.height == last_commint.height + 1
|
||||
this.$set(this.proposers, block.header.height, block.header.proposer_address)
|
||||
this.$set(this.absentValsInBlock, block.last_commit.height, count)
|
||||
if (count >= this.threshold) {
|
||||
this.temp += 1
|
||||
}
|
||||
},
|
||||
fetch_latest() {
|
||||
@@ -249,12 +386,14 @@ export default {
|
||||
res.block.last_commit.signatures.forEach(x => {
|
||||
if (x.validator_address) sigs[x.validator_address] = 'bg-success'
|
||||
})
|
||||
this.height = res.block.header.height
|
||||
const block = this.blocks.find(b => b.height === res.block.last_commit.height)
|
||||
if (typeof block === 'undefined') { // mei
|
||||
// this.$set(block, 0, typeof sigs !== 'undefined')
|
||||
if (this.blocks.length >= 50) this.blocks.shift()
|
||||
this.blocks.push({ sigs, height: res.block.last_commit.height })
|
||||
}
|
||||
this.count(res.block)
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
@@ -673,14 +673,6 @@ export default {
|
||||
initial() {
|
||||
this.$http.getBankAccountBalance(this.address).then(bal => {
|
||||
this.assets = bal
|
||||
bal.forEach(x => {
|
||||
const symbol = formatTokenDenom(x.denom)
|
||||
if (!this.quotes[symbol] && symbol.indexOf('/') === -1) {
|
||||
chainAPI.fetchTokenQuote(symbol).then(quote => {
|
||||
this.$set(this.quotes, symbol, quote)
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
this.$http.getStakingReward(this.address).then(res => {
|
||||
this.reward = res
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<b-td
|
||||
style="text-transform: capitalize; vertical-align: top;"
|
||||
>
|
||||
{{ name }}
|
||||
{{ formatTitle(name) }}
|
||||
</b-td>
|
||||
<b-td v-if="isTokenField(value)">
|
||||
{{ formatTokens( value ) }}
|
||||
@@ -41,10 +41,9 @@
|
||||
<b-tab
|
||||
v-for="key in Object.keys(value)"
|
||||
:key="key"
|
||||
:title="key"
|
||||
class="pl-0 pr-0"
|
||||
:title="formatTitle(key)"
|
||||
class="p-0 text-capitalize"
|
||||
title-item-class="bg-light-primary"
|
||||
style="padding: 0px;"
|
||||
>
|
||||
<array-field-component
|
||||
v-if="Array.isArray(value[key])"
|
||||
@@ -58,7 +57,10 @@
|
||||
v-else-if="isObjectText(value[key])"
|
||||
:tablefield="toObject(value[key])"
|
||||
/>
|
||||
<span v-else>{{ value[key] }}</span>
|
||||
<div
|
||||
v-else
|
||||
style="max-width: 800px; max-height: 300px; overflow: auto;"
|
||||
>{{ value[key] }}</div>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-td>
|
||||
@@ -66,7 +68,10 @@
|
||||
<VueMarkdown v-if="name==='description'">
|
||||
{{ addNewLine(value) }}
|
||||
</VueMarkdown>
|
||||
<span v-else>{{ value }}</span>
|
||||
<div
|
||||
v-else
|
||||
style="max-width: 800px; max-height: 300px; overflow: auto;"
|
||||
>{{ value }}</div>
|
||||
</b-td>
|
||||
</b-tr>
|
||||
</b-tbody>
|
||||
@@ -129,6 +134,7 @@ export default {
|
||||
// }
|
||||
return value
|
||||
},
|
||||
formatTitle: v => v.replaceAll('_', ' '),
|
||||
isObjectText(v) {
|
||||
return String(v).startsWith('{') && String(v).endsWith('}')
|
||||
},
|
||||
@@ -140,16 +146,16 @@ export default {
|
||||
return Array.from(value)
|
||||
},
|
||||
isTokenField(value) {
|
||||
return isToken(value)
|
||||
return value ? isToken(value) : false
|
||||
},
|
||||
isHex(value) {
|
||||
return isHexAddress(value)
|
||||
return value ? isHexAddress(value) : false
|
||||
},
|
||||
formatHexAddress(v) {
|
||||
return getStakingValidatorByHex(this.$http.config.chain_name, v)
|
||||
},
|
||||
isArrayText(value) {
|
||||
return isStringArray(value)
|
||||
return value ? isStringArray(value) : false
|
||||
},
|
||||
formatTokens(value) {
|
||||
return tokenFormatter(value)
|
||||
@@ -159,7 +165,7 @@ export default {
|
||||
if (percentage.test(value)) {
|
||||
return `${percent(value)}%`
|
||||
}
|
||||
return value.replace(/(?:\\[rn])+/g, '\n')
|
||||
return value ? value.replace(/(?:\\[rn])+/g, '\n') : '-'
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -176,6 +176,14 @@
|
||||
>
|
||||
<feather-icon icon="GithubIcon" /> Github
|
||||
</b-button>
|
||||
<b-button
|
||||
:href="discord"
|
||||
class="mr-1"
|
||||
variant="outline-secondary"
|
||||
size="sm"
|
||||
>
|
||||
<feather-icon icon="MessageSquareIcon" /> Discord
|
||||
</b-button>
|
||||
<b-button
|
||||
:href="telegram"
|
||||
class="mr-1"
|
||||
@@ -362,6 +370,15 @@ export default {
|
||||
}
|
||||
return '#'
|
||||
},
|
||||
discord() {
|
||||
if (this.coinInfo.links) {
|
||||
const discordLink = this.coinInfo.links.chat_url.filter(x => x.includes('discord'))
|
||||
if (discordLink) {
|
||||
return discordLink ? `${discordLink}` : '#'
|
||||
}
|
||||
}
|
||||
return '#'
|
||||
},
|
||||
telegram() {
|
||||
if (this.coinInfo.links) {
|
||||
return this.coinInfo.links.telegram_channel_identifier ? `https://t.me/${this.coinInfo.links.telegram_channel_identifier}` : '#'
|
||||
|
||||