Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
622e2ba449 | ||
|
|
d075f04b8a | ||
|
|
82eeaff601 | ||
|
|
1300ec3c3f | ||
|
|
65039e46bf | ||
|
|
80bd18d8ed | ||
|
|
d0ca90efca | ||
|
|
2253023459 | ||
|
|
1e07bf6d4b | ||
|
|
944b02dce1 | ||
|
|
976ebef410 | ||
|
|
24d1f92bae | ||
|
|
e77a890798 | ||
|
|
9340191314 | ||
|
|
149b42fa39 | ||
|
|
e6459023e1 | ||
|
|
0df70f5701 | ||
|
|
86b4ee0eaa | ||
|
|
4bb76ada1d | ||
|
|
3264300a2b | ||
|
|
88a6215a94 | ||
|
|
b4d82c225b | ||
|
|
c0b15ccc14 | ||
|
|
f004b4af4a | ||
|
|
cb1159ddf3 | ||
|
|
6bd333a41c | ||
|
|
b2d7640240 | ||
|
|
24f39e3bce | ||
|
|
3832b5bf1a | ||
|
|
0b6e1ebd1d | ||
|
|
3f0dcdf276 | ||
|
|
10ad6fef38 | ||
|
|
1a348f6d3e | ||
|
|
85ca2e3989 | ||
|
|
32b9b9aa64 | ||
|
|
883ca9b699 | ||
|
|
ed76d659ff | ||
|
|
837e2e1f44 | ||
|
|
529bf57274 | ||
|
|
b4b2833298 | ||
|
|
b07b11e0eb | ||
|
|
42814c6377 | ||
|
|
5d0ee95d7b | ||
|
|
7661d705b6 | ||
|
|
6468e42d44 | ||
|
|
f8e4d342d6 | ||
|
|
5c37b7b709 | ||
|
|
eec49e8391 | ||
|
|
b67d6ad7dd | ||
|
|
5a4af7c659 | ||
|
|
13b1dbe9fd | ||
|
|
661dd1ff5e | ||
|
|
f97acc8e03 | ||
|
|
4e24af68bc | ||
|
|
ac375f40c8 | ||
|
|
2a73ec8f8a | ||
|
|
ea6d5b25fc | ||
|
|
e21a06a0a7 | ||
|
|
aa1d0161c3 | ||
|
|
6dea16c207 | ||
|
|
f928b8fa73 | ||
|
|
18e4cc609c | ||
|
|
96931d905b | ||
|
|
984dd8ae3a | ||
|
|
3cf3caab79 | ||
|
|
7aa7339639 | ||
|
|
ace266a25b | ||
|
|
81531e36e2 | ||
|
|
1574ec063f | ||
|
|
bca324367e | ||
|
|
da125a2b67 | ||
|
|
f7b72e57fd | ||
|
|
a95dcff4bc | ||
|
|
41a9eb20a3 | ||
|
|
a974b9929b | ||
|
|
871db0d371 | ||
|
|
4f398739fe | ||
|
|
feea9009cb | ||
|
|
044064dcc6 | ||
|
|
b129a3a6a5 | ||
|
|
76aabaf3d6 | ||
|
|
62af7ccc27 | ||
|
|
15ce00fda5 | ||
|
|
221574c923 | ||
|
|
e70a05fa74 | ||
|
|
7cf0259eba | ||
|
|
f9f4de071f | ||
|
|
b7de3bcb34 | ||
|
|
9917b2c534 | ||
|
|
bab7192206 | ||
|
|
037b4e18a2 | ||
|
|
445ce5c805 | ||
|
|
9c51ad6be3 | ||
|
|
8a22b0bd3e | ||
|
|
eb0c5cc9c4 | ||
|
|
f5fde99f63 | ||
|
|
5c259870b9 | ||
|
|
f805dfdea6 | ||
|
|
29af1c8cce | ||
|
|
ec6db195ff | ||
|
|
ac5b4521bb | ||
|
|
611a9a3913 | ||
|
|
e29bf5a678 | ||
|
|
70130dbfe3 | ||
|
|
30eb43ce74 | ||
|
|
c20be0acb2 | ||
|
|
74ae5975f5 | ||
|
|
678417898c | ||
|
|
4206de4541 | ||
|
|
13c78855a7 | ||
|
|
7aa3992eb0 | ||
|
|
4b2602a768 | ||
|
|
610da743bd | ||
|
|
09aedf5011 | ||
|
|
eb749dc7df | ||
|
|
1b7426f627 | ||
|
|
31c7289d01 | ||
|
|
739970114e | ||
|
|
7d9618653c | ||
|
|
4ea72891e5 | ||
|
|
cdeafd9f0a | ||
|
|
8916cc094d | ||
|
|
8d5cdbf0f4 | ||
|
|
af9f1cac45 | ||
|
|
c06364ebb3 | ||
|
|
193ba1987c | ||
|
|
cb74f9ab26 | ||
|
|
1687d6606a | ||
|
|
e96bba810b | ||
|
|
bb804b9939 | ||
|
|
9bae5ec302 | ||
|
|
f8167e546a | ||
|
|
53bc4dbdf9 | ||
|
|
08499947de | ||
|
|
b7f7bed42e | ||
|
|
84e59d0349 | ||
|
|
594db214b2 | ||
|
|
e8d55984eb | ||
|
|
ba3e53e971 | ||
|
|
04619780c4 | ||
|
|
b4f93790fa | ||
|
|
173a4d8bd2 | ||
|
|
df914d1f25 | ||
|
|
6f5f0a0064 | ||
|
|
cf64147d05 | ||
|
|
e2f7f38d47 | ||
|
|
b1e02b81b9 | ||
|
|
38bbe7be5f | ||
|
|
04e152c1fb | ||
|
|
efc7ed5429 | ||
|
|
06fff024d7 | ||
|
|
878e92ec92 | ||
|
|
9c26bcd220 | ||
|
|
42d5a75ed6 | ||
|
|
513fba1115 | ||
|
|
0093928c16 | ||
|
|
4c8694a43e | ||
|
|
255601932c | ||
|
|
d2d3ecaf27 | ||
|
|
e9db729843 | ||
|
|
1176a727e9 | ||
|
|
87a24f8d21 | ||
|
|
c651b7971c | ||
|
|
97083b40df | ||
|
|
8cf7375ce1 | ||
|
|
dcd26824f9 | ||
|
|
543118ba92 | ||
|
|
838971bbbe | ||
|
|
00c0d1147c | ||
|
|
872e997889 | ||
|
|
4b7c72cac0 | ||
|
|
a43a842637 | ||
|
|
1780c2a360 | ||
|
|
3c78a1e01b | ||
|
|
82bdb42a61 | ||
|
|
d62b2368c0 | ||
|
|
bcf4a16996 | ||
|
|
6bcdd61e56 |
@@ -1,11 +1,11 @@
|
||||
|
||||
name: Ping Deploy
|
||||
name: Deploy to ping.pub
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
# pull_request:
|
||||
# branches: [ master ]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# test directories
|
||||
__tests__
|
||||
test
|
||||
tests
|
||||
powered-test
|
||||
|
||||
# asset directories
|
||||
docs
|
||||
doc
|
||||
website
|
||||
images
|
||||
assets
|
||||
|
||||
# examples
|
||||
example
|
||||
examples
|
||||
|
||||
# code coverage directories
|
||||
coverage
|
||||
.nyc_output
|
||||
|
||||
# build scripts
|
||||
Makefile
|
||||
Gulpfile.js
|
||||
Gruntfile.js
|
||||
|
||||
# configs
|
||||
appveyor.yml
|
||||
circle.yml
|
||||
codeship-services.yml
|
||||
codeship-steps.yml
|
||||
wercker.yml
|
||||
.tern-project
|
||||
.gitattributes
|
||||
.editorconfig
|
||||
.*ignore
|
||||
.eslintrc
|
||||
.jshintrc
|
||||
.flowconfig
|
||||
.documentup.json
|
||||
.yarn-metadata.json
|
||||
.travis.yml
|
||||
|
||||
# misc
|
||||
*.md
|
||||
@@ -1,71 +1,92 @@
|
||||
# Ping Explorer
|
||||
<div align="center">
|
||||
|
||||
Look is a light explorer for Cosmos-based Blockchains. https://ping.pub .
|
||||

|
||||
|
||||
## What is the difference between Look and other explorers?
|
||||
<h1>Ping Explorer</h1>
|
||||
|
||||
Look is designed to explore blockchain data as real as possible, therefore there is no cache, no analysis. Look does not cache/save blockchain data on its server. Look only fetch data from Cosmos full node via LCD/RPC endpoints. We call it "Light Explorer".
|
||||
**Ping explorer is not only an explorer but also a wallet and more ... 🛠**
|
||||
|
||||
## Do you want Look to explore your blockchain?
|
||||
[](https://github.com/ping-pub/explorer/releases/latest)
|
||||
[](https://github.com/ping-pub/explorer/blob/master/LICENSE)
|
||||
[](https://github.com/ping-pub/explorer/actions/workflows/mainnet-deploy.yaml)
|
||||
[](https://twitter.com/ping_pub)
|
||||
[](https://discord.gg/CmjYVSr6GW)
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
Ping Explorer is a light explorer for Cosmos-based Blockchains. https://ping.pub .
|
||||
|
||||
## What is the difference between Ping explorer and other explorers?
|
||||
|
||||
Ping Explorer is designed to explore blockchain data as real as possible, therefore there is no cache, no pre-processing. Ping Explorer does not cache/save blockchain data on its server. Ping Explorer only fetch data from Cosmos full node via LCD/RPC endpoints. We call it "Light Explorer".
|
||||
|
||||
## Do you want to list your blockchain on ping.pub?
|
||||
|
||||
Pull your request [here](./src/chains), We will add your chains as soon as possible. It is **FREE** (You must have 10+ independent validators on your chain).
|
||||
|
||||
## Why Ping explorer use official/trusted third party public LCD/rpc server?
|
||||
|
||||
We have two considerations: 1, Trust, In decentralize system, everything controlled by one single team/organization could be risks. So we decided to co-build with the community. 2. We will list hundreds cosmos-based blockchains in the future, it's impossible for our team to run validators or fullnodes for all of those chains.
|
||||
|
||||
# Installation:
|
||||
|
||||
1. Running with yarn
|
||||
```
|
||||
yarn && yarn serve
|
||||
```
|
||||
|
||||
2. Building for web servers, like nginx, apache
|
||||
```
|
||||
yarn && yarn build
|
||||
cp -r ./dist/* <ROOT_OF_WEB_SERVER>
|
||||
```
|
||||
|
||||
# Enable LCD for Ping.pub
|
||||
|
||||
1. Set `enable = true` in `./config/app.toml`
|
||||
```
|
||||
###############################################################################
|
||||
### API Configuration ###
|
||||
###############################################################################
|
||||
|
||||
[api]
|
||||
|
||||
# Enable defines if the API server should be enabled.
|
||||
enable = true
|
||||
|
||||
# Swagger defines if swagger documentation should automatically be registered.
|
||||
swagger = false
|
||||
|
||||
# Address defines the API server to listen on.
|
||||
address = "tcp://0.0.0.0:1317"
|
||||
|
||||
# MaxOpenConnections defines the number of maximum open connections.
|
||||
max-open-connections = 1000
|
||||
```
|
||||
|
||||
2. add proxy server and enable CORS. NOTE: You must enable https as well.
|
||||
|
||||
```
|
||||
server {
|
||||
server_name juno.api.ping.pub;
|
||||
listen 443;
|
||||
location / {
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
add_header Access-Control-Max-Age 3600;
|
||||
add_header Access-Control-Expose-Headers Content-Length;
|
||||
|
||||
proxy_pass http://<HOST>:1317;
|
||||
|
||||
}
|
||||
}
|
||||
```
|
||||
3. config your blockchain in [./src/chains]()
|
||||
|
||||
If you want Look to explore your blockchain, pull a request [here](https://github.com/liangping/look/issues), We will explore your chains as soon as possibe. And the most important thing is that Look is free for all public cosmos-based blockchains.
|
||||
|
||||
## Why LOOK explorer use official/trusted third party public LCD/rpc server?
|
||||
|
||||
We have two considerations: 1, Trust, In decentralize system, everything controled by one single team/orgnization could be risks. So we decided to co-build LOOK explorer with the community. 2. Look explorer will explose handreds and thousands cosmos-based blockchains in the future, it's impossible for our team to run validators or fullnodes for all of those chains.
|
||||
|
||||
## Contributors
|
||||
|
||||
Developers: @liangping @dingyiming
|
||||
|
||||
Data providers: [full list](https://github.com/ping-pub/look/blob/master/hosts.json)
|
||||
|
||||
* irisnet.org,
|
||||
* nylira.net,
|
||||
* kava.io
|
||||
|
||||
*If you don't want to provide data services for LOOK exporer, let us know.*
|
||||
|
||||
## Blockchains on LOOK explorer:
|
||||
* https://ping.pub/cosmos
|
||||
* https://ping.pub/iris
|
||||
* https://ping.pub/akash
|
||||
* https://ping.pub/kava
|
||||
|
||||
# LOOK 浏览器
|
||||
|
||||
Look是一个轻浏览器,免费为所有的基于Cosmos-SDK开发的区块链提供浏览服务
|
||||
|
||||
## Look 和其他区块链浏览器有什么不同?
|
||||
|
||||
Look的设计理念是尽可能的保持数据的真实性,所以,他不会在服务器端缓存或者保存任何数据,也不会增加任何分析处理。它仅仅通过LCD/RPC来获取他所需要的所有数据。因此我们叫它“轻浏览器”。
|
||||
|
||||
## 你希望Look来浏览你的区块链吗?
|
||||
|
||||
如果你需要Look来浏览你的区块链,请在[这里](https://github.com/liangping/look/issues) 提交申请,我们会尽快开通。而且是免费的。
|
||||
|
||||
## 为什么LOOK要使用官方或者可信赖的第三方的LCD/RPC服务器?
|
||||
|
||||
我们主要是基于以下两个考虑:1,可信,在去中心化的系统里,任何有一个由单个团队或者实体控制的事情都是有风险的,所以我们选择和社区一起来共建LOOK浏览器。2,LOOK浏览器计划在未来支持成百上千条区块链,因此对我们团队来说,不可能为所有这些链去提供一个验证人节点或者全节点。
|
||||
|
||||
## 项目贡献者
|
||||
|
||||
开发者: @liangping @dingyiming
|
||||
|
||||
数据服务方: [列表](https://github.com/ping-pub/look/blob/master/hosts.json)
|
||||
|
||||
* irisnet.org,
|
||||
* nylira.net,
|
||||
* 01node.com,
|
||||
* kava.io
|
||||
|
||||
*如果你觉得我们滥用了你的服务器资源,请告知我们。*
|
||||
|
||||
## LOOK explorer 上的区块链:
|
||||
* https://ping.pub/cosmos
|
||||
* https://ping.pub/iris
|
||||
* https://ping.pub/akash
|
||||
* https://ping.pub/kava
|
||||
|
||||
# Contact Us
|
||||
Email:18786721#qq.com
|
||||
@@ -23,10 +23,11 @@
|
||||
"@ledgerhq/hw-app-cosmos": "^6.3.0",
|
||||
"@ledgerhq/hw-transport-web-ble": "^6.3.0",
|
||||
"@ledgerhq/hw-transport-webusb": "^6.3.0",
|
||||
"@vue/composition-api": "^1.4.0",
|
||||
"@vueuse/core": "4.0.0",
|
||||
"animate.css": "4.1.1",
|
||||
"apexcharts": "3.24.0",
|
||||
"axios": "0.21.1",
|
||||
"axios": "0.21.2",
|
||||
"axios-mock-adapter": "1.19.0",
|
||||
"bootstrap": "4.6.0",
|
||||
"bootstrap-vue": "2.21.1",
|
||||
@@ -38,13 +39,15 @@
|
||||
"echarts": "4.8.0",
|
||||
"leaflet": "1.6.0",
|
||||
"ledger-cosmos-js": "2.1.8",
|
||||
"node-fetch": "^2.6.1",
|
||||
"long": "^5.2.0",
|
||||
"node-fetch": "^3.1.1",
|
||||
"pako": "^1.0.11",
|
||||
"portal-vue": "2.1.7",
|
||||
"postcss-rtl": "1.7.3",
|
||||
"prismjs": "1.24.0",
|
||||
"prismjs": "1.25.0",
|
||||
"protobufjs-cli-dbx": "^7.0.7",
|
||||
"protobufjs-dbx": "^7.0.0",
|
||||
"ripemd160": "^2.0.2",
|
||||
"swiper": "6.5.1",
|
||||
"trading-vue-js": "^1.0.2",
|
||||
"uuid": "8.3.2",
|
||||
@@ -75,6 +78,7 @@
|
||||
"vue-toastification": "1.7.8",
|
||||
"vue-tour": "1.5.0",
|
||||
"vue-tree-halower": "1.8.3",
|
||||
"vue2-flip-countdown": "^0.12.1",
|
||||
"vue2-leaflet": "2.5.2",
|
||||
"vuedraggable": "2.24.3",
|
||||
"vuex": "3.6.0"
|
||||
@@ -1863,7 +1867,7 @@
|
||||
"@cosmjs/encoding": "0.26.5",
|
||||
"@cosmjs/math": "0.26.5",
|
||||
"@cosmjs/utils": "0.26.5",
|
||||
"axios": "^0.21.2",
|
||||
"axios": "0.21.2",
|
||||
"fast-deep-equal": "^3.1.3"
|
||||
}
|
||||
},
|
||||
@@ -1935,6 +1939,11 @@
|
||||
"protobufjs": "~6.10.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@cosmjs/proto-signing/node_modules/long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"node_modules/@cosmjs/socket": {
|
||||
"version": "0.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.26.5.tgz",
|
||||
@@ -1985,6 +1994,11 @@
|
||||
"xstream": "^11.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@cosmjs/stargate/node_modules/long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"node_modules/@cosmjs/stream": {
|
||||
"version": "0.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.26.5.tgz",
|
||||
@@ -2004,7 +2018,7 @@
|
||||
"@cosmjs/math": "0.26.5",
|
||||
"@cosmjs/socket": "0.26.5",
|
||||
"@cosmjs/stream": "0.26.5",
|
||||
"axios": "^0.21.2",
|
||||
"axios": "0.21.2",
|
||||
"readonly-date": "^1.0.0",
|
||||
"xstream": "^11.14.0"
|
||||
}
|
||||
@@ -2063,6 +2077,25 @@
|
||||
"unorm": "^1.3.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@cosmostation/cosmosjs/node_modules/node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@hapi/address": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
|
||||
@@ -2461,6 +2494,25 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@nuxt/opencollective/node_modules/node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@nuxt/opencollective/node_modules/supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
@@ -4500,11 +4552,11 @@
|
||||
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "0.21.1",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
|
||||
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
|
||||
"version": "0.21.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz",
|
||||
"integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.10.0"
|
||||
"follow-redirects": "^1.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/axios-mock-adapter": {
|
||||
@@ -6167,9 +6219,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001245",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz",
|
||||
"integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==",
|
||||
"version": "1.0.30001303",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz",
|
||||
"integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
@@ -7134,6 +7186,11 @@
|
||||
"protobufjs": "~6.11.2"
|
||||
}
|
||||
},
|
||||
"node_modules/cosmjs-types/node_modules/long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"node_modules/cosmjs-types/node_modules/protobufjs": {
|
||||
"version": "6.11.2",
|
||||
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
|
||||
@@ -7586,6 +7643,14 @@
|
||||
"node": ">=0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/data-uri-to-buffer": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
|
||||
"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
|
||||
"engines": {
|
||||
"node": ">= 12"
|
||||
}
|
||||
},
|
||||
"node_modules/dayjs": {
|
||||
"version": "1.10.6",
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz",
|
||||
@@ -9576,6 +9641,28 @@
|
||||
"pend": "~1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fetch-blob": {
|
||||
"version": "3.1.4",
|
||||
"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz",
|
||||
"integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/jimmywarting"
|
||||
},
|
||||
{
|
||||
"type": "paypal",
|
||||
"url": "https://paypal.me/jimmywarting"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"node-domexception": "^1.0.0",
|
||||
"web-streams-polyfill": "^3.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.20 || >= 14.13"
|
||||
}
|
||||
},
|
||||
"node_modules/figgy-pudding": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
|
||||
@@ -9912,6 +9999,17 @@
|
||||
"node": ">= 0.12"
|
||||
}
|
||||
},
|
||||
"node_modules/formdata-polyfill": {
|
||||
"version": "4.0.10",
|
||||
"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
|
||||
"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
|
||||
"dependencies": {
|
||||
"fetch-blob": "^3.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/forwarded": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||
@@ -12702,9 +12800,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz",
|
||||
"integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w=="
|
||||
},
|
||||
"node_modules/longest": {
|
||||
"version": "1.0.1",
|
||||
@@ -13533,12 +13631,39 @@
|
||||
"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
|
||||
"node_modules/node-domexception": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
|
||||
"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/jimmywarting"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://paypal.me/jimmywarting"
|
||||
}
|
||||
],
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
"node": ">=10.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/node-fetch": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz",
|
||||
"integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==",
|
||||
"dependencies": {
|
||||
"data-uri-to-buffer": "^4.0.0",
|
||||
"fetch-blob": "^3.1.3",
|
||||
"formdata-polyfill": "^4.0.10"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/node-fetch"
|
||||
}
|
||||
},
|
||||
"node_modules/node-forge": {
|
||||
@@ -15473,9 +15598,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismjs": {
|
||||
"version": "1.24.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.0.tgz",
|
||||
"integrity": "sha512-SqV5GRsNqnzCL8k5dfAjCNhUrF3pR0A9lTDSCUZeh/LIshheXJEaP0hwLz2t4XHivd2J/v2HR+gRnigzeKe3cQ=="
|
||||
"version": "1.25.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz",
|
||||
"integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg=="
|
||||
},
|
||||
"node_modules/process": {
|
||||
"version": "0.11.10",
|
||||
@@ -15645,11 +15770,21 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
|
||||
"integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw=="
|
||||
},
|
||||
"node_modules/protobufjs-dbx/node_modules/long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"node_modules/protobufjs/node_modules/@types/node": {
|
||||
"version": "13.13.52",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
|
||||
"integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
|
||||
},
|
||||
"node_modules/protobufjs/node_modules/long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"node_modules/proxy-addr": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
|
||||
@@ -18718,6 +18853,11 @@
|
||||
"node": ">=0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
||||
},
|
||||
"node_modules/trading-vue-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/trading-vue-js/-/trading-vue-js-1.0.2.tgz",
|
||||
@@ -20011,6 +20151,23 @@
|
||||
"vue": "^2.4.4"
|
||||
}
|
||||
},
|
||||
"node_modules/vue2-flip-countdown": {
|
||||
"version": "0.12.1",
|
||||
"resolved": "https://registry.npmjs.org/vue2-flip-countdown/-/vue2-flip-countdown-0.12.1.tgz",
|
||||
"integrity": "sha512-kS3A86VMUjsG2FGnqv/AO4UTLKAAwutqh1dOTPfjSRiUfsgLO+9gmhLSeo+qSBoQYpCxccq44G/IsoRef8kywQ==",
|
||||
"dependencies": {
|
||||
"uuid": "^3.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/vue2-flip-countdown/node_modules/uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
|
||||
"bin": {
|
||||
"uuid": "bin/uuid"
|
||||
}
|
||||
},
|
||||
"node_modules/vue2-leaflet": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/vue2-leaflet/-/vue2-leaflet-2.5.2.tgz",
|
||||
@@ -20201,6 +20358,19 @@
|
||||
"defaults": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/web-streams-polyfill": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz",
|
||||
"integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==",
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||
},
|
||||
"node_modules/webpack": {
|
||||
"version": "4.46.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
|
||||
@@ -20522,6 +20692,15 @@
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
||||
"dependencies": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
@@ -22224,13 +22403,12 @@
|
||||
"@cosmjs/encoding": "0.26.5",
|
||||
"@cosmjs/math": "0.26.5",
|
||||
"@cosmjs/utils": "0.26.5",
|
||||
"axios": "^0.21.2",
|
||||
"axios": "0.21.2",
|
||||
"fast-deep-equal": "^3.1.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": {
|
||||
"version": "0.21.4",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
|
||||
"version": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
|
||||
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.14.0"
|
||||
@@ -22289,6 +22467,13 @@
|
||||
"cosmjs-types": "^0.2.0",
|
||||
"long": "^4.0.0",
|
||||
"protobufjs": "~6.10.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@cosmjs/socket": {
|
||||
@@ -22327,6 +22512,13 @@
|
||||
"long": "^4.0.0",
|
||||
"protobufjs": "~6.10.2",
|
||||
"xstream": "^11.14.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@cosmjs/stream": {
|
||||
@@ -22348,14 +22540,13 @@
|
||||
"@cosmjs/math": "0.26.5",
|
||||
"@cosmjs/socket": "0.26.5",
|
||||
"@cosmjs/stream": "0.26.5",
|
||||
"axios": "^0.21.2",
|
||||
"axios": "0.21.2",
|
||||
"readonly-date": "^1.0.0",
|
||||
"xstream": "^11.14.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": {
|
||||
"version": "0.21.4",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
|
||||
"version": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
|
||||
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.14.0"
|
||||
@@ -22402,6 +22593,14 @@
|
||||
"safe-buffer": "^5.0.1",
|
||||
"unorm": "^1.3.3"
|
||||
}
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"requires": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -22717,6 +22916,14 @@
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"requires": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
@@ -24379,11 +24586,11 @@
|
||||
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.21.1",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
|
||||
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
|
||||
"version": "0.21.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz",
|
||||
"integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.10.0"
|
||||
"follow-redirects": "^1.14.0"
|
||||
}
|
||||
},
|
||||
"axios-mock-adapter": {
|
||||
@@ -25729,9 +25936,9 @@
|
||||
}
|
||||
},
|
||||
"caniuse-lite": {
|
||||
"version": "1.0.30001245",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz",
|
||||
"integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==",
|
||||
"version": "1.0.30001303",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz",
|
||||
"integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==",
|
||||
"dev": true
|
||||
},
|
||||
"case-sensitive-paths-webpack-plugin": {
|
||||
@@ -26530,6 +26737,11 @@
|
||||
"protobufjs": "~6.11.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"protobufjs": {
|
||||
"version": "6.11.2",
|
||||
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
|
||||
@@ -26881,6 +27093,11 @@
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"data-uri-to-buffer": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
|
||||
"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
|
||||
},
|
||||
"dayjs": {
|
||||
"version": "1.10.6",
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz",
|
||||
@@ -28470,6 +28687,15 @@
|
||||
"pend": "~1.2.0"
|
||||
}
|
||||
},
|
||||
"fetch-blob": {
|
||||
"version": "3.1.4",
|
||||
"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz",
|
||||
"integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==",
|
||||
"requires": {
|
||||
"node-domexception": "^1.0.0",
|
||||
"web-streams-polyfill": "^3.0.3"
|
||||
}
|
||||
},
|
||||
"figgy-pudding": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
|
||||
@@ -28715,6 +28941,14 @@
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"formdata-polyfill": {
|
||||
"version": "4.0.10",
|
||||
"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
|
||||
"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
|
||||
"requires": {
|
||||
"fetch-blob": "^3.1.2"
|
||||
}
|
||||
},
|
||||
"forwarded": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||
@@ -30879,9 +31113,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz",
|
||||
"integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w=="
|
||||
},
|
||||
"longest": {
|
||||
"version": "1.0.1",
|
||||
@@ -31554,10 +31788,20 @@
|
||||
"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
|
||||
"dev": true
|
||||
},
|
||||
"node-domexception": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
|
||||
"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz",
|
||||
"integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==",
|
||||
"requires": {
|
||||
"data-uri-to-buffer": "^4.0.0",
|
||||
"fetch-blob": "^3.1.3",
|
||||
"formdata-polyfill": "^4.0.10"
|
||||
}
|
||||
},
|
||||
"node-forge": {
|
||||
"version": "0.10.0",
|
||||
@@ -33070,9 +33314,9 @@
|
||||
}
|
||||
},
|
||||
"prismjs": {
|
||||
"version": "1.24.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.0.tgz",
|
||||
"integrity": "sha512-SqV5GRsNqnzCL8k5dfAjCNhUrF3pR0A9lTDSCUZeh/LIshheXJEaP0hwLz2t4XHivd2J/v2HR+gRnigzeKe3cQ=="
|
||||
"version": "1.25.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz",
|
||||
"integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg=="
|
||||
},
|
||||
"process": {
|
||||
"version": "0.11.10",
|
||||
@@ -33124,6 +33368,11 @@
|
||||
"version": "13.13.52",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
|
||||
"integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
|
||||
},
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -33212,6 +33461,11 @@
|
||||
"version": "10.17.60",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
|
||||
"integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw=="
|
||||
},
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -35636,6 +35890,11 @@
|
||||
"punycode": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
||||
},
|
||||
"trading-vue-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/trading-vue-js/-/trading-vue-js-1.0.2.tgz",
|
||||
@@ -36642,6 +36901,21 @@
|
||||
"vue": "^2.4.4"
|
||||
}
|
||||
},
|
||||
"vue2-flip-countdown": {
|
||||
"version": "0.12.1",
|
||||
"resolved": "https://registry.npmjs.org/vue2-flip-countdown/-/vue2-flip-countdown-0.12.1.tgz",
|
||||
"integrity": "sha512-kS3A86VMUjsG2FGnqv/AO4UTLKAAwutqh1dOTPfjSRiUfsgLO+9gmhLSeo+qSBoQYpCxccq44G/IsoRef8kywQ==",
|
||||
"requires": {
|
||||
"uuid": "^3.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"vue2-leaflet": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/vue2-leaflet/-/vue2-leaflet-2.5.2.tgz",
|
||||
@@ -36790,6 +37064,16 @@
|
||||
"defaults": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"web-streams-polyfill": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz",
|
||||
"integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA=="
|
||||
},
|
||||
"webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||
},
|
||||
"webpack": {
|
||||
"version": "4.46.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
|
||||
@@ -37030,6 +37314,15 @@
|
||||
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
|
||||
"dev": true
|
||||
},
|
||||
"whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
||||
"requires": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint",
|
||||
"tauri:build": "vue-cli-service tauri:build",
|
||||
"tauri:serve": "vue-cli-service tauri:serve"
|
||||
"lint": "vue-cli-service lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@casl/ability": "4.1.6",
|
||||
@@ -25,11 +23,11 @@
|
||||
"@ledgerhq/hw-app-cosmos": "^6.3.0",
|
||||
"@ledgerhq/hw-transport-web-ble": "^6.3.0",
|
||||
"@ledgerhq/hw-transport-webusb": "^6.3.0",
|
||||
"@vue/composition-api": "^1.4.0",
|
||||
"@vue/composition-api": "^1.4.9",
|
||||
"@vueuse/core": "4.0.0",
|
||||
"animate.css": "4.1.1",
|
||||
"apexcharts": "3.24.0",
|
||||
"axios": "0.21.1",
|
||||
"axios": "0.21.2",
|
||||
"axios-mock-adapter": "1.19.0",
|
||||
"bootstrap": "4.6.0",
|
||||
"bootstrap-vue": "2.21.1",
|
||||
@@ -38,16 +36,18 @@
|
||||
"core-js": "3.8.1",
|
||||
"cosmjs-types": "^0.2.0",
|
||||
"dayjs": "^1.10.6",
|
||||
"echarts": "4.8.0",
|
||||
"echarts": "5.3.0",
|
||||
"leaflet": "1.6.0",
|
||||
"ledger-cosmos-js": "2.1.8",
|
||||
"node-fetch": "^2.6.1",
|
||||
"long": "^5.2.0",
|
||||
"node-fetch": "^2.6.5",
|
||||
"pako": "^1.0.11",
|
||||
"portal-vue": "2.1.7",
|
||||
"postcss-rtl": "1.7.3",
|
||||
"prismjs": "1.24.0",
|
||||
"prismjs": "1.25.0",
|
||||
"protobufjs-cli-dbx": "^7.0.7",
|
||||
"protobufjs-dbx": "^7.0.0",
|
||||
"ripemd160": "^2.0.2",
|
||||
"swiper": "6.5.1",
|
||||
"trading-vue-js": "^1.0.2",
|
||||
"uuid": "8.3.2",
|
||||
@@ -60,7 +60,7 @@
|
||||
"vue-cleave-component": "2.1.3",
|
||||
"vue-clipboard2": "0.3.1",
|
||||
"vue-context": "6.0.0",
|
||||
"vue-echarts": "5.0.0-beta.0",
|
||||
"vue-echarts": "^6.0.2",
|
||||
"vue-feather-icons": "5.1.0",
|
||||
"vue-flatpickr-component": "8.1.6",
|
||||
"vue-flex-waterfall": "^1.0.7",
|
||||
@@ -78,6 +78,7 @@
|
||||
"vue-toastification": "1.7.8",
|
||||
"vue-tour": "1.5.0",
|
||||
"vue-tree-halower": "1.8.3",
|
||||
"vue2-flip-countdown": "^0.12.1",
|
||||
"vue2-leaflet": "2.5.2",
|
||||
"vuedraggable": "2.24.3",
|
||||
"vuex": "3.6.0"
|
||||
@@ -96,7 +97,6 @@
|
||||
"eslint-plugin-vue": "6.2.2",
|
||||
"sass": "1.32.*",
|
||||
"sass-loader": "^10.1.0",
|
||||
"vue-cli-plugin-tauri": "~1.0.0-beta.6",
|
||||
"vue-template-compiler": "2.x"
|
||||
}
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="레이어_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||
y="0px" viewBox="0 0 110 110" style="enable-background:new 0 0 110 110;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:url(#SVGID_1_);}
|
||||
.st1{fill:url(#SVGID_2_);}
|
||||
.st2{fill:url(#SVGID_3_);}
|
||||
.st3{fill:url(#SVGID_4_);}
|
||||
</style>
|
||||
<g>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="18.3748" y1="90.1982" x2="85.5006" y2="25.6877">
|
||||
<stop offset="1.568510e-02" style="stop-color:#2E0E5B"/>
|
||||
<stop offset="1" style="stop-color:#2E205B"/>
|
||||
</linearGradient>
|
||||
<path class="st0" d="M55,110L55,110C24.6,110,0,85.4,0,55v0C0,24.6,24.6,0,55,0l0,0c30.4,0,55,24.6,55,55v0
|
||||
C110,85.4,85.4,110,55,110z"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="93.4247" y1="20.8568" x2="44.9131" y2="92.076">
|
||||
<stop offset="4.034390e-02" style="stop-color:#6AF2A6"/>
|
||||
<stop offset="0.197" style="stop-color:#64EFAB"/>
|
||||
<stop offset="0.4077" style="stop-color:#53E8B9"/>
|
||||
<stop offset="0.6492" style="stop-color:#37DCD1"/>
|
||||
<stop offset="0.9118" style="stop-color:#10CBF1"/>
|
||||
<stop offset="1" style="stop-color:#01C5FD"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M84.2,71.9L84.2,71.9c-0.1,0.2-0.2,0.4-0.3,0.5l-0.2,0.3c-0.7,1-1.5,1.8-2.5,2.4L59.9,87.4
|
||||
c-1.5,0.9-3.2,1.3-4.8,1.3c-1.7,0-3.3-0.4-4.8-1.3L31.6,76.7c-0.2-0.2-0.4-0.3-0.6-0.4l0,0c-0.2-0.3-0.3-0.5-0.3-0.8
|
||||
c0.2-0.7,1.8-1,1.9-1.1c0.4-0.1,0.8-0.1,1.2-0.2l0.3,0c0.7-0.1,1.4-0.2,2-0.3c0.7-0.1,1.3-0.2,2-0.3c2.7-0.4,5.3-0.7,7.9-1
|
||||
c2.5-0.3,5-0.6,7.6-0.8c2.7-0.3,5.2-0.5,7.4-0.6c2.4-0.1,4.8-0.3,7.1-0.4c2.3-0.1,4.6-0.1,6.9-0.2c0.2,0,0.5,0,0.7,0h0.7
|
||||
c1.7,0,3.5,0,5.3,0.1c0.2,0,0.4,0,0.7,0l0.4,0c0.7,0.1,1.1,0.3,1.3,0.6C84.3,71.5,84.3,71.7,84.2,71.9z"/>
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="82.447" y1="13.3793" x2="33.9352" y2="84.5987">
|
||||
<stop offset="4.034390e-02" style="stop-color:#6AF2A6"/>
|
||||
<stop offset="0.197" style="stop-color:#64EFAB"/>
|
||||
<stop offset="0.4077" style="stop-color:#53E8B9"/>
|
||||
<stop offset="0.6492" style="stop-color:#37DCD1"/>
|
||||
<stop offset="0.9118" style="stop-color:#10CBF1"/>
|
||||
<stop offset="1" style="stop-color:#01C5FD"/>
|
||||
</linearGradient>
|
||||
<path class="st2" d="M85.5,53.1v7c0,2.6,0,2.7-5.4,3.3l-3.5,0.3c-0.5,0-0.9,0.1-1.4,0.1L74.1,64c-8.9,0.9-17.9,1.7-26.8,2.2
|
||||
c-4,0.2-7.9,0.4-11.9,0.6c-1.8,0.1-3.7,0.1-5.5,0.2c-0.9,0-1.8,0-2.7,0c-0.7,0-1.8,0.2-2.4-0.3c-0.5-0.5-0.4-1.5-0.4-2.2V46.9
|
||||
c0-2.5,0.8-3,5.9-3.3c0.9,0,1.7,0,2.9,0c15,0,30.9,2.2,50.1,7c0,0,0.1,0,0.1,0c0,0,0,0,0,0c0.2,0,0.3,0.1,0.5,0.1l0,0
|
||||
C84.7,51,85.5,50.8,85.5,53.1z"/>
|
||||
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="76.1836" y1="9.113" x2="27.6719" y2="80.3324">
|
||||
<stop offset="4.034390e-02" style="stop-color:#6AF2A6"/>
|
||||
<stop offset="0.197" style="stop-color:#64EFAB"/>
|
||||
<stop offset="0.4077" style="stop-color:#53E8B9"/>
|
||||
<stop offset="0.6492" style="stop-color:#37DCD1"/>
|
||||
<stop offset="0.9118" style="stop-color:#10CBF1"/>
|
||||
<stop offset="1" style="stop-color:#01C5FD"/>
|
||||
</linearGradient>
|
||||
<path class="st3" d="M84.2,41.5c-0.1,0.1-0.2,0.1-0.3,0.2c-0.6,0.2-1.3,0.1-1.9,0c-0.7,0-1.4-0.1-2.1-0.1c-1.3-0.1-2.7-0.2-4-0.4
|
||||
c-1.8-0.2-3.6-0.4-5.3-0.6c-2.7-0.3-5.4-0.6-8-0.9c-3.1-0.3-6.3-0.7-9.4-1c-3.1-0.3-6.2-0.7-9.3-1c-2.7-0.3-5.3-0.6-8-0.8
|
||||
c-1.7-0.2-3.5-0.4-5.2-0.6c-0.4,0-0.9-0.1-1.3-0.1c-0.1,0-0.2,0-0.3,0c-0.3-0.1-0.6-0.1-0.8-0.3c-0.1-0.1-0.1-0.3,0.1-0.6l0.1-0.1
|
||||
c0.1-0.1,0.3-0.2,0.4-0.3c0.2-0.1,0.3-0.2,0.5-0.3l20.8-12c1.5-0.8,3.2-1.3,4.9-1.3c1.7,0,3.4,0.4,4.8,1.3c0,0,20.5,11.8,20.8,12
|
||||
c1.7,1,3.1,2.7,3.5,4.7C84.3,39.8,84.6,41,84.2,41.5z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 72 KiB |
@@ -1,4 +0,0 @@
|
||||
# Generated by Cargo
|
||||
# will have compiled files and executables
|
||||
/target/
|
||||
WixTools
|
||||
@@ -1,25 +0,0 @@
|
||||
[package]
|
||||
name = "app"
|
||||
version = "0.1.0"
|
||||
description = "A Tauri App"
|
||||
authors = ["you"]
|
||||
license = ""
|
||||
repository = ""
|
||||
default-run = "app"
|
||||
edition = "2018"
|
||||
build = "src/build.rs"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[build-dependencies]
|
||||
tauri-build = { version = "1.0.0-beta.1" }
|
||||
# miner = { git="https://github.com/olsf/libra", version="0.1.0" }
|
||||
|
||||
[dependencies]
|
||||
serde_json = "1.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
tauri = { version = "1.0.0-beta.2", features = ["api-all", "menu", "system-tray"] }
|
||||
|
||||
[features]
|
||||
default = [ "custom-protocol" ]
|
||||
custom-protocol = [ "tauri/custom-protocol" ]
|
||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 88 KiB |
@@ -1,14 +0,0 @@
|
||||
max_width = 100
|
||||
hard_tabs = false
|
||||
tab_spaces = 2
|
||||
newline_style = "Auto"
|
||||
use_small_heuristics = "Default"
|
||||
reorder_imports = true
|
||||
reorder_modules = true
|
||||
remove_nested_parens = true
|
||||
edition = "2018"
|
||||
merge_derives = true
|
||||
use_try_shorthand = false
|
||||
use_field_init_shorthand = false
|
||||
force_explicit_abi = true
|
||||
imports_granularity = "Crate"
|
||||
@@ -1,3 +0,0 @@
|
||||
fn main() {
|
||||
tauri_build::build()
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
#![cfg_attr(
|
||||
all(not(debug_assertions), target_os = "windows"),
|
||||
windows_subsystem = "windows"
|
||||
)]
|
||||
use tauri::{CustomMenuItem, SystemTray, SystemTrayMenu, SystemTrayMenuItem, MenuItem};
|
||||
|
||||
#[tauri::command]
|
||||
fn my_custom_command(msg: String) -> String {
|
||||
println!("I was invoked from JS! {}", msg);
|
||||
return "Hello from Rust".into()
|
||||
}
|
||||
|
||||
fn main() {
|
||||
// here `"quit".to_string()` defines the menu item id, and the second parameter is the menu item label.
|
||||
let quit = CustomMenuItem::new("quit".to_string(), "Quit");
|
||||
let hide = CustomMenuItem::new("hide".to_string(), "Hide");
|
||||
let tray_menu = SystemTrayMenu::new()
|
||||
.add_item(quit)
|
||||
.add_native_item(SystemTrayMenuItem::Separator)
|
||||
.add_item(hide);
|
||||
let tray = SystemTray::new().with_menu(tray_menu);
|
||||
|
||||
tauri::Builder::default()
|
||||
.system_tray(tray)
|
||||
// This is where you pass in your commands
|
||||
.invoke_handler(tauri::generate_handler![my_custom_command])
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
"package": {
|
||||
"productName": "Ping-Wallet",
|
||||
"version": "0.1.0"
|
||||
},
|
||||
"build": {
|
||||
"distDir": "Set automatically by Vue CLI plugin",
|
||||
"devPath": "Set automatically by Vue CLI plugin",
|
||||
"beforeDevCommand": "",
|
||||
"beforeBuildCommand": "",
|
||||
"withGlobalTauri": true
|
||||
},
|
||||
"tauri": {
|
||||
"bundle": {
|
||||
"active": true,
|
||||
"targets": "all",
|
||||
"identifier": "com.tauri.dev",
|
||||
"icon": [
|
||||
"icons/32x32.png",
|
||||
"icons/128x128.png",
|
||||
"icons/128x128@2x.png",
|
||||
"icons/icon.icns",
|
||||
"icons/icon.ico"
|
||||
],
|
||||
"resources": [],
|
||||
"externalBin": [],
|
||||
"copyright": "",
|
||||
"category": "DeveloperTool",
|
||||
"shortDescription": "",
|
||||
"longDescription": "",
|
||||
"deb": {
|
||||
"depends": [],
|
||||
"useBootstrapper": false
|
||||
},
|
||||
"macOS": {
|
||||
"frameworks": [],
|
||||
"minimumSystemVersion": "",
|
||||
"useBootstrapper": false,
|
||||
"exceptionDomain": "",
|
||||
"signingIdentity": null,
|
||||
"entitlements": null
|
||||
},
|
||||
"windows": {
|
||||
"certificateThumbprint": null,
|
||||
"digestAlgorithm": "sha256",
|
||||
"timestampUrl": ""
|
||||
}
|
||||
},
|
||||
"updater": {
|
||||
"active": false
|
||||
},
|
||||
"allowlist": {
|
||||
"all": true
|
||||
},
|
||||
"windows": [
|
||||
{
|
||||
"title": "Ping Wallet",
|
||||
"width": 1024,
|
||||
"height": 768,
|
||||
"resizable": true
|
||||
}
|
||||
],
|
||||
"systemTray": {
|
||||
"iconPath": "icons/icon.png"
|
||||
},
|
||||
"security": {
|
||||
"csp": "default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,13 +8,13 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ECharts from 'vue-echarts'
|
||||
import * as ECharts from 'echarts'
|
||||
import 'echarts/lib/component/tooltip'
|
||||
import 'echarts/lib/component/legend'
|
||||
import 'echarts/lib/chart/scatter'
|
||||
import theme from './theme.json'
|
||||
// import theme from './theme.json'
|
||||
|
||||
ECharts.registerTheme('theme-color', theme)
|
||||
// ECharts.registerTheme('theme-color', theme)
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<p class="clearfix mb-0">
|
||||
<span class="float-md-left d-block d-md-inline-block mt-25">
|
||||
<span class="float-md-left d-none d-md-block d-md-inline-block mt-25">
|
||||
Powered By
|
||||
<b-link
|
||||
class="ml-25 font-weight-bolder"
|
||||
@@ -9,11 +9,13 @@
|
||||
>Ping.pub</b-link>
|
||||
</span>
|
||||
|
||||
<span class="float-md-right d-none d-md-block">Buy me a cup of coffee.
|
||||
<router-link
|
||||
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
|
||||
class="float-md-right"
|
||||
to="/coffee"
|
||||
>Buy me a cup of coffee.
|
||||
<span
|
||||
v-b-popover.hover.topleft="'Atom: cosmos1ev0vtddkl7jlwfawlk06yzncapw2x9quyxx75u'"
|
||||
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
|
||||
title="Thanks for your donation!"
|
||||
variant="outline-primary"
|
||||
>
|
||||
<feather-icon
|
||||
@@ -22,7 +24,7 @@
|
||||
class="text-danger stroke-current"
|
||||
/>
|
||||
</span>
|
||||
</span>
|
||||
</router-link>
|
||||
</p>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<div>
|
||||
<b-row>
|
||||
<b-col
|
||||
v-for="(item, i) in chains"
|
||||
:key="`coffee-${item.addr}-${i}`"
|
||||
md="4"
|
||||
>
|
||||
<b-input-group
|
||||
size="sm"
|
||||
class="input-group-merge mb-10"
|
||||
>
|
||||
<b-input-group-prepend is-text>
|
||||
<b-avatar
|
||||
:src="item.icon"
|
||||
variant="light-primary"
|
||||
size="16"
|
||||
/>
|
||||
</b-input-group-prepend>
|
||||
<b-form-input :value="item.addr" />
|
||||
</b-input-group>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<operation-transfer-component
|
||||
:recipient-address.sync="selectedAddress"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
BRow, BCol,
|
||||
BAvatar, BFormInput, BInputGroupPrepend, BInputGroup,
|
||||
} from 'bootstrap-vue'
|
||||
import Ripple from 'vue-ripple-directive'
|
||||
import {
|
||||
addressEnCode, addressDecode,
|
||||
} from '@/libs/utils'
|
||||
import OperationTransferComponent from '@/views/OperationTransferComponent.vue'
|
||||
|
||||
export default {
|
||||
name: 'AppFooter',
|
||||
components: {
|
||||
BCol,
|
||||
BRow,
|
||||
BAvatar,
|
||||
BFormInput,
|
||||
BInputGroupPrepend,
|
||||
BInputGroup,
|
||||
OperationTransferComponent,
|
||||
},
|
||||
directives: {
|
||||
Ripple,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
selectedAddress: 'cosmos1ev0vtddkl7jlwfawlk06yzncapw2x9quyxx75u',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
chains() {
|
||||
const { data } = addressDecode('cosmos1ev0vtddkl7jlwfawlk06yzncapw2x9quyxx75u')
|
||||
const config = Object.values(JSON.parse(localStorage.getItem('chains')))
|
||||
.map(x => ({
|
||||
addr: addressEnCode(x.addr_prefix, data),
|
||||
icon: x.logo,
|
||||
}))
|
||||
return config
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
transfer(addr) {
|
||||
this.selectedAddress = addr
|
||||
this.$bvModal.show('transfer-window')
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -72,7 +72,7 @@
|
||||
@ps-scroll-y="evt => { shallShadowBottom = evt.srcElement.scrollTop > 0 }"
|
||||
>
|
||||
<vertical-nav-menu-items
|
||||
:items="navMenuItems"
|
||||
:items.sync="leftMenu"
|
||||
class="navigation navigation-main"
|
||||
/>
|
||||
</vue-perfect-scrollbar>
|
||||
@@ -154,6 +154,16 @@ export default {
|
||||
appLogoImage,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
leftMenu() {
|
||||
const preload = []
|
||||
const { selected } = this.$store.state.chains
|
||||
const current = navMenuItems.find(x => (x.title === selected.chain_name))
|
||||
preload.push({ header: 'current' })
|
||||
preload.push(current)
|
||||
return preload.concat(navMenuItems.filter(x => x.title !== selected.chain_name))
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
class="mr-1"
|
||||
/>
|
||||
|
||||
<span class="menu-title text-truncate">{{ t(item.title) }}</span>
|
||||
<span class="menu-title text-truncate text-uppercase">{{ item.title }}</span>
|
||||
<b-badge
|
||||
v-if="item.tag"
|
||||
pill
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useUtils as useI18nUtils } from '@core/libs/i18n'
|
||||
// import { useUtils as useI18nUtils } from '@core/libs/i18n'
|
||||
import { useUtils as useAclUtils } from '@core/libs/acl'
|
||||
|
||||
const { t } = useI18nUtils()
|
||||
// const { t } = useI18nUtils()
|
||||
const { canViewVerticalNavMenuHeader } = useAclUtils()
|
||||
|
||||
export default {
|
||||
@@ -12,7 +12,7 @@ export default {
|
||||
},
|
||||
},
|
||||
render(h) {
|
||||
const span = h('span', {}, t(this.item.header))
|
||||
const span = h('span', {}, this.item.header)
|
||||
const icon = h('feather-icon', { props: { icon: 'MoreHorizontalIcon', size: '18' } })
|
||||
if (canViewVerticalNavMenuHeader(this.item)) {
|
||||
return h('li', { class: 'navigation-header text-truncate' }, [span, icon])
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# Directory Layout
|
||||
|
||||
**We accept all blockchains which have 10+ independent validators.**
|
||||
|
||||
- Submit configs for mainnet, go to https://github.com/ping-pub/explorer/tree/master/src/chains/mainnet
|
||||
|
||||
- Submit configs for testnet, go to https://github.com/ping-pub/explorer/tree/testnet/src/chains/testnet
|
||||
|
||||
# Sample of Config
|
||||
|
||||
```json
|
||||
{
|
||||
"chain_name": "cosmos",
|
||||
"api": ["https://cosmos.api.ping.pub"],
|
||||
"sdk_version": "0.42.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"assets": [{
|
||||
"base": "uatom",
|
||||
"symbol": "ATOM",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "cosmos",
|
||||
"logo": "https://dl.airtable.com/.attachments/e54f814bba8c0f9af8a3056020210de0/2d1155fb/cosmos-hub.svg"
|
||||
}],
|
||||
"addr_prefix": "cosmos",
|
||||
"logo": "https://dl.airtable.com/.attachments/e54f814bba8c0f9af8a3056020210de0/2d1155fb/cosmos-hub.svg"
|
||||
}
|
||||
```
|
||||
- **chain_name** the name to identify the chain on ping.pub
|
||||
- **api** the rest api endpoint.(make sure that CORS is enabled: `Allow-Control-Allow-Origin: *`)
|
||||
- **assets** Native Assets on blockchain.
|
||||
# Test
|
||||
|
||||
please add these check points in comments with your PR, and adding your test result by clicking the checkbox of each line
|
||||
```
|
||||
Test Result:
|
||||
- [ ] Connect wallet, check if address is correct?
|
||||
- [ ] Transfer
|
||||
- [ ] Delegate
|
||||
- [ ] Redelegate
|
||||
- [ ] Unbond
|
||||
- [ ] withdraw Validator's Commission
|
||||
- [ ] withdraw Rewards
|
||||
```
|
||||
Test is very important for us and our users.
|
||||
@@ -1,8 +1,16 @@
|
||||
{
|
||||
"chain_name": "akash-network",
|
||||
"coingecko": "akash-network",
|
||||
"api": "https://akash.api.ping.pub",
|
||||
"api": ["https://akash.api.ping.pub"],
|
||||
"sdk_version": "0.41.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"assets": [{
|
||||
"base": "uakt",
|
||||
"symbol": "AKT",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "akash-network",
|
||||
"logo": "https://dl.airtable.com/.attachments/52586702dd8352d97834fce5c2d83614/969b4d53/akash-network.png"
|
||||
}],
|
||||
"addr_prefix": "akash",
|
||||
"logo": "https://dl.airtable.com/.attachments/52586702dd8352d97834fce5c2d83614/969b4d53/akash-network.png"
|
||||
}
|
||||
@@ -1,8 +1,16 @@
|
||||
{
|
||||
"chain_name": "band-protocol",
|
||||
"coingecko": "band-protocol",
|
||||
"api": "https://laozi1.bandchain.org/api",
|
||||
"addr_prefix": "band",
|
||||
"coin_type": "494",
|
||||
"min_tx_fee": "8000",
|
||||
"assets": [{
|
||||
"base": "uband",
|
||||
"symbol": "BAND",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "band-protocol",
|
||||
"logo": "https://dl.airtable.com/.attachments/472ae99a508e32b4439b416beddd4eb9/c5166f62/band-symbol-blue-bg.75a3ad91.svg"
|
||||
}],
|
||||
"logo": "https://dl.airtable.com/.attachments/472ae99a508e32b4439b416beddd4eb9/c5166f62/band-symbol-blue-bg.75a3ad91.svg",
|
||||
"sdk_version": "0.44.0"
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "bitcanna",
|
||||
"coingecko": "bitcanna",
|
||||
"api":"https://lcd.bitcanna.io",
|
||||
"sdk_version": "0.44.2",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"assets": [{
|
||||
"base": "ubcna",
|
||||
"symbol": "BCNA",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "bitcanna",
|
||||
"logo": "https://raw.githubusercontent.com/osmosis-labs/assetlists/main/images/bcna.svg"
|
||||
}],
|
||||
"addr_prefix": "bcna",
|
||||
"logo": "https://raw.githubusercontent.com/osmosis-labs/assetlists/main/images/bcna.svg"
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "bitsong",
|
||||
"api": "https://lcd.explorebitsong.com",
|
||||
"addr_prefix": "bitsong",
|
||||
"coin_type": "639",
|
||||
"min_tx_fee": "3500",
|
||||
"logo": "https://dl.airtable.com/.attachments/8016b71b69fb108f0ff33eb9af1c943f/f5fe4ef4/bitsong.svg",
|
||||
"sdk_version": "0.42.0"
|
||||
"sdk_version": "0.42.0",
|
||||
"assets": [{
|
||||
"base": "ubtsg",
|
||||
"symbol": "BTSG",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "bitsong",
|
||||
"logo": "https://dl.airtable.com/.attachments/8016b71b69fb108f0ff33eb9af1c943f/f5fe4ef4/bitsong.svg"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "bostrom",
|
||||
"coingecko": "",
|
||||
"api": "https://lcd.bostrom.cybernode.ai",
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "bostrom",
|
||||
"logo": "https://ipfs.infura.io/ipfs/QmSVz41kA5aXttxT1rAXnuJecfazij3wh95X8ewd7Kdc2F",
|
||||
"assets": [{
|
||||
"base": "boot",
|
||||
"symbol": "BOOT",
|
||||
"exponent": "0",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://ipfs.infura.io/ipfs/QmSVz41kA5aXttxT1rAXnuJecfazij3wh95X8ewd7Kdc2F"
|
||||
}]
|
||||
}
|
||||
@@ -1,9 +1,17 @@
|
||||
|
||||
{
|
||||
"chain_name": "certik",
|
||||
"coingecko": "certik",
|
||||
"api":"https://azuredragon.noopsbycertik.com",
|
||||
"sdk_version": "0.42.9",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "certik",
|
||||
"logo": "https://dl.airtable.com/.attachments/78bc9a7352de8ecd09e167d406d68582/2dcea633/dED92akm_400x400.jpg"
|
||||
"logo": "https://dl.airtable.com/.attachments/78bc9a7352de8ecd09e167d406d68582/2dcea633/dED92akm_400x400.jpg",
|
||||
"assets": [{
|
||||
"base": "uctk",
|
||||
"symbol": "CTK",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "certik",
|
||||
"logo": "https://dl.airtable.com/.attachments/78bc9a7352de8ecd09e167d406d68582/2dcea633/dED92akm_400x400.jpg"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"chain_name": "cheqd",
|
||||
"api": "https://api.cheqd.net",
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "cheqd",
|
||||
"logo": "https://raw.githubusercontent.com/osmosis-labs/assetlists/main/images/cheq.png",
|
||||
"assets": [{
|
||||
"base": "ncheq",
|
||||
"symbol": "CHEQ",
|
||||
"exponent": "9",
|
||||
"coingecko_id": "cheqd-network",
|
||||
"logo": "https://raw.githubusercontent.com/osmosis-labs/assetlists/main/images/cheq.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "chihuahua",
|
||||
"coingecko": "",
|
||||
"api": ["https://api.chihuahua.wtf", "https://chihuahua-api.mercury-nodes.net"],
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "chihuahua",
|
||||
"logo": "https://github.com/ChihuahuaChain/resources/raw/main/logo/logo_transparent_notext.png",
|
||||
"assets": [{
|
||||
"base": "uhuahua",
|
||||
"symbol": "HUAHUA",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://github.com/ChihuahuaChain/resources/raw/main/logo/logo_transparent_notext.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"chain_name": "comdex",
|
||||
"api":"https://rest.comdex.one/",
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "comdex",
|
||||
"logo": "https://raw.githubusercontent.com/comdex-official/logos/main/cmdx-logo-1.png",
|
||||
"assets": [{
|
||||
"base": "ucmdx",
|
||||
"symbol": "CMDX",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "comdex",
|
||||
"logo": "https://raw.githubusercontent.com/comdex-official/logos/main/cmdx-logo-1.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,8 +1,17 @@
|
||||
{
|
||||
"chain_name": "cosmos",
|
||||
"coingecko": "cosmos",
|
||||
"api":"https://cosmos.api.ping.pub",
|
||||
"sdk_version": "0.42.6",
|
||||
"api": ["https://lcd-cosmoshub.blockapsis.com", "https://cosmos.api.ping.pub", "https://cosmoshub.stakesystems.io"],
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "cosmos",
|
||||
"logo": "https://dl.airtable.com/.attachments/e54f814bba8c0f9af8a3056020210de0/2d1155fb/cosmos-hub.svg"
|
||||
"logo": "https://dl.airtable.com/.attachments/e54f814bba8c0f9af8a3056020210de0/2d1155fb/cosmos-hub.svg",
|
||||
"assets": [{
|
||||
"base": "uatom",
|
||||
"symbol": "ATOM",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "cosmos",
|
||||
"logo": "https://dl.airtable.com/.attachments/e54f814bba8c0f9af8a3056020210de0/2d1155fb/cosmos-hub.svg"
|
||||
}]
|
||||
}
|
||||
@@ -4,6 +4,15 @@
|
||||
"coingecko": "crypto-com-chain",
|
||||
"api": "https://mainnet.crypto.org:1317",
|
||||
"sdk_version": "0.39.2",
|
||||
"coin_type": "394",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "cro",
|
||||
"logo": "https://dl.airtable.com/.attachments/b2e638424ea09dccd4f11b04dc53872a/844d11dc/LOGO.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/b2e638424ea09dccd4f11b04dc53872a/844d11dc/LOGO.png",
|
||||
"assets": [{
|
||||
"base": "basecro",
|
||||
"symbol": "CRO",
|
||||
"exponent": "8",
|
||||
"coingecko_id": "crypto-com-chain",
|
||||
"logo": "https://dl.airtable.com/.attachments/b2e638424ea09dccd4f11b04dc53872a/844d11dc/LOGO.png"
|
||||
}]
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "",
|
||||
"api": "https://api.mainnet.desmos.network",
|
||||
"sdk_version": "0.42.0",
|
||||
"coin_type": "852",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "desmos",
|
||||
"logo": "https://dl.airtable.com/.attachments/e8232a86dd06af4e0591ed300376f9b2/3aab415f/logo1.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/e8232a86dd06af4e0591ed300376f9b2/3aab415f/logo1.png",
|
||||
"assets": [{
|
||||
"base": "udsm",
|
||||
"symbol": "DSM",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://dl.airtable.com/.attachments/e8232a86dd06af4e0591ed300376f9b2/3aab415f/logo1.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "dig",
|
||||
"coingecko": "",
|
||||
"api": "https://api-1-dig.notional.ventures",
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "dig",
|
||||
"logo": "https://digchain.org/wp-content/uploads/2021/08/dig_lockup_800x800-cropped.png",
|
||||
"assets": [{
|
||||
"base": "udig",
|
||||
"symbol": "DIG",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "dig-chain",
|
||||
"logo": "https://digchain.org/wp-content/uploads/2021/08/dig_lockup_800x800-cropped.png"
|
||||
}]
|
||||
}
|
||||
@@ -3,7 +3,22 @@
|
||||
"coingecko": "e-money",
|
||||
"api": "https://emoney.validator.network/api",
|
||||
"addr_prefix": "emoney",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"logo": "https://dl.airtable.com/.attachments/276e4d6de567b073a5e400240d7d83e9/9bb49806/yoR2r25W_400x400.jpg",
|
||||
"sdk_version": "0.42.10",
|
||||
"excludes": "mint governance"
|
||||
"excludes": "mint governance",
|
||||
"assets": [{
|
||||
"base": "ungm",
|
||||
"symbol": "NGM",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "emoney",
|
||||
"logo": "https://dl.airtable.com/.attachments/276e4d6de567b073a5e400240d7d83e9/9bb49806/yoR2r25W_400x400.jpg"
|
||||
},{
|
||||
"base": "eeur",
|
||||
"symbol": "EEUR",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "e-money-eur",
|
||||
"logo": "https://dl.airtable.com/.attachments/276e4d6de567b073a5e400240d7d83e9/9bb49806/yoR2r25W_400x400.jpg"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "evmos",
|
||||
"coingecko": "",
|
||||
"api": ["https://rest.bd.evmos.org:1317", "https://evmos-api.skynetvalidators.com"],
|
||||
"sdk_version": "0.45.1",
|
||||
"coin_type": "60",
|
||||
"min_tx_fee": "3000000000000000",
|
||||
"addr_prefix": "evmos",
|
||||
"logo": "https://ping.pub/logos/evmos.jpeg",
|
||||
"assets": [{
|
||||
"base": "aevmos",
|
||||
"symbol": "evmos",
|
||||
"exponent": "18",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://ping.pub/logos/evmos.jpeg"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "genesisL1",
|
||||
"coingecko": "",
|
||||
"api": "https://api.genesisl1.org",
|
||||
"sdk_version": "0.42.4",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000000000000000",
|
||||
"addr_prefix": "genesis",
|
||||
"logo": "/logos/genesisl1.png",
|
||||
"assets": [{
|
||||
"base": "aphoton",
|
||||
"symbol": "PHOTON",
|
||||
"exponent": "18",
|
||||
"coingecko_id": "",
|
||||
"logo": "/logos/genesisl1.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "gravity-bridge",
|
||||
"api": "https://gravitychain.io:1317",
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "60",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "gravity",
|
||||
"excludes": "",
|
||||
"logo": "https://dl.airtable.com/.attachments/1c18fd6110acea04da61c8f900ea0053/3241283d/gravitybridge.png",
|
||||
"assets": [{
|
||||
"base": "ugraviton",
|
||||
"symbol": "GRAVITON",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://dl.airtable.com/.attachments/1c18fd6110acea04da61c8f900ea0053/3241283d/gravitybridge.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,9 +1,17 @@
|
||||
{
|
||||
"chain_name": "injective",
|
||||
"coingecko": "injective-protocol",
|
||||
"api": "https://lcd.injective.network",
|
||||
"sdk_version": "0.42.4",
|
||||
"sdk_version": "v0.44.5",
|
||||
"coin_type": "60",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "inj",
|
||||
"excludes": "",
|
||||
"logo": "https://dl.airtable.com/.attachments/e024faae112ae873d301f9e1e17a921c/3f3671f7/9pOKAlQ5_400x400.jpg"
|
||||
"logo": "https://dl.airtable.com/.attachments/e024faae112ae873d301f9e1e17a921c/3f3671f7/9pOKAlQ5_400x400.jpg",
|
||||
"assets": [{
|
||||
"base": "inj",
|
||||
"symbol": "INJ",
|
||||
"exponent": "18",
|
||||
"coingecko_id": "injective-protocol",
|
||||
"logo": "https://dl.airtable.com/.attachments/e024faae112ae873d301f9e1e17a921c/3f3671f7/9pOKAlQ5_400x400.jpg"
|
||||
}]
|
||||
}
|
||||
@@ -1,9 +1,17 @@
|
||||
{
|
||||
"chain_name": "iris-network",
|
||||
"coingecko": "iris-network",
|
||||
"api": "https://iris.api.ping.pub",
|
||||
"sdk_version": "0.42.4",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "40000",
|
||||
"addr_prefix": "iaa",
|
||||
"excludes": "mint",
|
||||
"logo": "https://dl.airtable.com/.attachments/2d6d51b1b262db00ecc51616ffc3bdf5/90ff00d0/IRISnet.svg"
|
||||
"logo": "https://dl.airtable.com/.attachments/2d6d51b1b262db00ecc51616ffc3bdf5/90ff00d0/IRISnet.svg",
|
||||
"assets": [{
|
||||
"base": "uiris",
|
||||
"symbol": "IRIS",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "iris-network",
|
||||
"logo": "https://dl.airtable.com/.attachments/2d6d51b1b262db00ecc51616ffc3bdf5/90ff00d0/IRISnet.svg"
|
||||
}]
|
||||
}
|
||||
@@ -1,8 +1,17 @@
|
||||
{
|
||||
"chain_name": "juno",
|
||||
"coingecko": "juno-network",
|
||||
"api": "https://juno.api.ping.pub",
|
||||
"sdk_version": "0.42.4",
|
||||
"api": "https://lcd-juno.itastakers.com",
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "juno",
|
||||
"logo": "https://dl.airtable.com/.attachments/0f66137c6fb2868000d5a1e214c9ae3d/75a9c5bc/S3c2V3Xd_400x400.jpg"
|
||||
"logo": "https://dl.airtable.com/.attachments/0f66137c6fb2868000d5a1e214c9ae3d/75a9c5bc/S3c2V3Xd_400x400.jpg",
|
||||
"assets": [{
|
||||
"base": "ujuno",
|
||||
"symbol": "JUNO",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "juno-network",
|
||||
"logo": "https://dl.airtable.com/.attachments/0f66137c6fb2868000d5a1e214c9ae3d/75a9c5bc/S3c2V3Xd_400x400.jpg"
|
||||
}]
|
||||
}
|
||||
@@ -2,7 +2,16 @@
|
||||
"chain_name": "kava",
|
||||
"coingecko": "kava",
|
||||
"api": "https://api.data.kava.io",
|
||||
"sdk_version": "0.39.2",
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "kava",
|
||||
"logo": "https://dl.airtable.com/.attachments/f25737491bd0034240093a7b4e039b15/afec77ff/logo.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/f25737491bd0034240093a7b4e039b15/afec77ff/logo.png",
|
||||
"assets": [{
|
||||
"base": "ukava",
|
||||
"symbol": "KAVA",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "kava",
|
||||
"logo": "https://dl.airtable.com/.attachments/f25737491bd0034240093a7b4e039b15/afec77ff/logo.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,8 +1,16 @@
|
||||
{
|
||||
"chain_name": "kichain",
|
||||
"coingecko": "ki",
|
||||
"api": "https://ki.api.ping.pub",
|
||||
"api": ["https://api-mainnet.blockchain.ki", "https://ki.api.ping.pub"],
|
||||
"sdk_version": "0.42.10",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "ki",
|
||||
"logo": "https://dl.airtable.com/.attachments/b1f670d31bf69d7ca9906df8437d91a7/b2667ad1/ki.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/b1f670d31bf69d7ca9906df8437d91a7/b2667ad1/ki.png",
|
||||
"assets": [{
|
||||
"base": "uxki",
|
||||
"symbol": "XKI",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "ki",
|
||||
"logo": "https://dl.airtable.com/.attachments/b1f670d31bf69d7ca9906df8437d91a7/b2667ad1/ki.png"
|
||||
}]
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "likecoin",
|
||||
"api": "https://mainnet-node.like.co",
|
||||
"sdk_version": "0.42.0",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "cosmos",
|
||||
"logo": "https://dl.airtable.com/.attachments/d51ad30b75593517d7d79f08b9e4dad0/5603273b/likecoin.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/d51ad30b75593517d7d79f08b9e4dad0/5603273b/likecoin.png",
|
||||
"assets": [{
|
||||
"base": "nanolike",
|
||||
"symbol": "LIKE",
|
||||
"exponent": "9",
|
||||
"coingecko_id": "likecoin",
|
||||
"logo": "https://dl.airtable.com/.attachments/d51ad30b75593517d7d79f08b9e4dad0/5603273b/likecoin.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "lum-network",
|
||||
"coingecko": "",
|
||||
"api": "https://node0.mainnet.lum.network/rest",
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "880",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "lum",
|
||||
"logo": "https://ipfs.infura.io/ipfs/QmWwKRnkHantvhoFx9serWaWKBUG6gfhSYN3SHdAv1jmKY",
|
||||
"assets": [{
|
||||
"base": "ulum",
|
||||
"symbol": "LUM",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://ipfs.infura.io/ipfs/QmWwKRnkHantvhoFx9serWaWKBUG6gfhSYN3SHdAv1jmKY"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"chain_name": "microtick",
|
||||
"api": "https://lcd.microtick.zone",
|
||||
"sdk_version": "0.42.9",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "micro",
|
||||
"logo": "https://dl.airtable.com/.attachments/229a8d771fccc46b6730a7bc75d46e15/a3cf3543/microtick.png",
|
||||
"assets": [{
|
||||
"base": "utick",
|
||||
"symbol": "TICK",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://dl.airtable.com/.attachments/229a8d771fccc46b6730a7bc75d46e15/a3cf3543/microtick.png"
|
||||
}]
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"chain_name": "neuron",
|
||||
"api": "https://neuron-1.api.ping.pub",
|
||||
"sdk_version": "0.42.0",
|
||||
"addr_prefix": "game",
|
||||
"logo": "https://dl.airtable.com/.attachments/47116e2e2234b2dd979d7ed9f9df22c9/0c507d61/cosmos-game.png"
|
||||
}
|
||||
@@ -3,7 +3,16 @@
|
||||
"coingecko": "okexchain",
|
||||
"api": "https://exchainrpc.okex.org/okexchain/v1",
|
||||
"sdk_version": "0.39.2",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "ex",
|
||||
"logo": "https://dl.airtable.com/.attachments/4620a173477efece7f459a3d6fc770c0/9f6618ad/OKexchain.svg",
|
||||
"unload_module": ["minting", "slashing"]
|
||||
"unload_module": ["minting", "slashing"],
|
||||
"assets": [{
|
||||
"base": "okt",
|
||||
"symbol": "okt",
|
||||
"exponent": "0",
|
||||
"coingecko_id": "okexchain",
|
||||
"logo": "https://dl.airtable.com/.attachments/4620a173477efece7f459a3d6fc770c0/9f6618ad/OKexchain.svg"
|
||||
}]
|
||||
}
|
||||
@@ -1,8 +1,23 @@
|
||||
{
|
||||
"chain_name": "osmosis",
|
||||
"coingecko": "osmosis",
|
||||
"api": "https://lcd-osmosis.keplr.app",
|
||||
"sdk_version": "0.42.5",
|
||||
"api": ["https://lcd-osmosis.blockapsis.com", "https://osmo.api.ping.pub"],
|
||||
"sdk_version": "0.44.5",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "osmo",
|
||||
"logo": "https://dl.airtable.com/.attachments/4ef30ec4008bc86cc3c0f74a6bb84050/0eeb4d64/aQ5W3zaT_400x400.jpg"
|
||||
"logo": "https://dl.airtable.com/.attachments/4ef30ec4008bc86cc3c0f74a6bb84050/0eeb4d64/aQ5W3zaT_400x400.jpg",
|
||||
"assets": [{
|
||||
"base": "uosmo",
|
||||
"symbol": "OSMO",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "osmosis",
|
||||
"logo": "https://dl.airtable.com/.attachments/4ef30ec4008bc86cc3c0f74a6bb84050/0eeb4d64/aQ5W3zaT_400x400.jpg"
|
||||
},{
|
||||
"base": "uion",
|
||||
"symbol": "ION",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "ion",
|
||||
"logo": "https://dl.airtable.com/.attachments/4ef30ec4008bc86cc3c0f74a6bb84050/0eeb4d64/aQ5W3zaT_400x400.jpg"
|
||||
}]
|
||||
}
|
||||
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "persistence",
|
||||
"api": "https://rest.core.persistence.one",
|
||||
"sdk_version": "0.42.4",
|
||||
"coin_type": "750",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "persistence",
|
||||
"logo": "https://dl.airtable.com/.attachments/23178be773dc4de133ca4c07056aba1c/6e855850/persistence.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/23178be773dc4de133ca4c07056aba1c/6e855850/persistence.png",
|
||||
"assets": [{
|
||||
"base": "uxprt",
|
||||
"symbol": "XPRT",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "persistence",
|
||||
"logo": "https://dl.airtable.com/.attachments/23178be773dc4de133ca4c07056aba1c/6e855850/persistence.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"chain_name": "provenance",
|
||||
"coingecko": "",
|
||||
"api": "https://api.provenance.io",
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "505",
|
||||
"min_tx_fee": "400000000",
|
||||
"addr_prefix": "pb",
|
||||
"logo": "https://raw.githubusercontent.com/provenance-io/provenance/main/docs/pio.svg",
|
||||
"assets": [{
|
||||
"base": "nhash",
|
||||
"symbol": "HASH",
|
||||
"exponent": "9",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://raw.githubusercontent.com/provenance-io/provenance/main/docs/pio.svg"
|
||||
}]
|
||||
}
|
||||
@@ -2,7 +2,16 @@
|
||||
"chain_name": "regen",
|
||||
"coingecko": "regen",
|
||||
"api": "https://regen.api.ping.pub",
|
||||
"sdk_version": "0.42.4",
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "3000",
|
||||
"addr_prefix": "regen",
|
||||
"logo": "https://dl.airtable.com/.attachments/0c988f2cd6a7d4fec95f0a3bc87b45da/c7a9f8ba/regen-brandmark-48.svg"
|
||||
"logo": "https://dl.airtable.com/.attachments/0c988f2cd6a7d4fec95f0a3bc87b45da/c7a9f8ba/regen-brandmark-48.svg",
|
||||
"assets": [{
|
||||
"base": "uregen",
|
||||
"symbol": "REGEN",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "regen",
|
||||
"logo": "https://dl.airtable.com/.attachments/0c988f2cd6a7d4fec95f0a3bc87b45da/c7a9f8ba/regen-brandmark-48.svg"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"chain_name": "rizon",
|
||||
"api": ["https://rizon.api.ping.pub"],
|
||||
"sdk_version": "v0.42.9",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"assets": [{
|
||||
"base": "uatolo",
|
||||
"symbol": "ATOLO",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "rizon",
|
||||
"logo": "https://ping.pub/logos/rizon.svg"
|
||||
}],
|
||||
"addr_prefix": "rizon",
|
||||
"logo": "https://ping.pub/logos/rizon.svg"
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "secret",
|
||||
"api": "https://api.scrt.network",
|
||||
"sdk_version": "0.33.8",
|
||||
"coin_type": "529",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "secret",
|
||||
"logo": "https://dl.airtable.com/.attachments/b95ce1905e5327924ffdcb6d57c55b66/7e2ad353/logo.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/b95ce1905e5327924ffdcb6d57c55b66/7e2ad353/logo.png",
|
||||
"assets": [{
|
||||
"base": "uscrt",
|
||||
"symbol": "SCRT",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "secret",
|
||||
"logo": "https://dl.airtable.com/.attachments/b95ce1905e5327924ffdcb6d57c55b66/7e2ad353/logo.png"
|
||||
}]
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "sentinel",
|
||||
"api": "https://lcd.sentinel.co",
|
||||
"sdk_version": "0.42.6",
|
||||
"coin_type": "750",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "sent",
|
||||
"logo": "https://dl.airtable.com/.attachments/321491a9da1680faa670fa81569b02b0/37621c88/unnamed.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/321491a9da1680faa670fa81569b02b0/37621c88/unnamed.png",
|
||||
"assets": [{
|
||||
"base": "udvpn",
|
||||
"symbol": "DVPN",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "sentinel",
|
||||
"logo": "https://dl.airtable.com/.attachments/321491a9da1680faa670fa81569b02b0/37621c88/unnamed.png"
|
||||
}]
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "sifchain",
|
||||
"api": "https://api.sifchain.finance",
|
||||
"sdk_version": "0.42.6",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "sif",
|
||||
"logo": "https://dl.airtable.com/.attachments/990cb076d7566e53e976c1fa69d60b09/3c05e786/71144030.jpeg"
|
||||
"logo": "https://dl.airtable.com/.attachments/990cb076d7566e53e976c1fa69d60b09/3c05e786/71144030.jpeg",
|
||||
"assets": [{
|
||||
"base": "rowan",
|
||||
"symbol": "ROWAN",
|
||||
"exponent": "18",
|
||||
"coingecko_id": "sifchain",
|
||||
"logo": "https://dl.airtable.com/.attachments/990cb076d7566e53e976c1fa69d60b09/3c05e786/71144030.jpeg"
|
||||
}]
|
||||
}
|
||||
@@ -1,8 +1,16 @@
|
||||
{
|
||||
"chain_name": "stargaze",
|
||||
"coingecko": "stargaze-protocol",
|
||||
"api": "https://rest.stargaze.publicawesome.dev",
|
||||
"api": ["https://rest.stargaze-apis.com", "https://rest.stargaze.publicawesome.dev"],
|
||||
"sdk_version": "0.44.3",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "800",
|
||||
"addr_prefix": "stars",
|
||||
"logo": "https://dl.airtable.com/.attachments/79f2b74422c63b3fdb0310407d9cc990/5f4f1dd8/RGw3ZaVT_400x400.png"
|
||||
"logo": "https://dl.airtable.com/.attachments/79f2b74422c63b3fdb0310407d9cc990/5f4f1dd8/RGw3ZaVT_400x400.png",
|
||||
"assets": [{
|
||||
"base": "ustars",
|
||||
"symbol": "STARS",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "stargaze",
|
||||
"logo": "https://dl.airtable.com/.attachments/79f2b74422c63b3fdb0310407d9cc990/5f4f1dd8/RGw3ZaVT_400x400.png"
|
||||
}]
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "starname",
|
||||
"api": "https://api.iov-mainnet-ibc.iov.one",
|
||||
"sdk_version": "0.42.6",
|
||||
"coin_type": "234",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "star",
|
||||
"logo": "https://dl.airtable.com/.attachments/69f75a1b45803d70d8ef69f7f83198e1/d991d407/ZUZfz7Th_400x400.jpg"
|
||||
"logo": "https://dl.airtable.com/.attachments/69f75a1b45803d70d8ef69f7f83198e1/d991d407/ZUZfz7Th_400x400.jpg",
|
||||
"assets": [{
|
||||
"base": "uiov",
|
||||
"symbol": "IOV",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "starname",
|
||||
"logo": "https://dl.airtable.com/.attachments/69f75a1b45803d70d8ef69f7f83198e1/d991d407/ZUZfz7Th_400x400.jpg"
|
||||
}]
|
||||
}
|
||||
@@ -3,6 +3,135 @@
|
||||
"coingecko": "terra-luna",
|
||||
"api": "https://fcd.terra.dev",
|
||||
"sdk_version": "0.44.2",
|
||||
"coin_type": "330",
|
||||
"min_tx_fee": "5000",
|
||||
"addr_prefix": "terra",
|
||||
"logo": "https://dl.airtable.com/.attachments/275a6cbdbdc911856556e716a60d6ec4/87addd7f/terra.jpg"
|
||||
"logo": "https://dl.airtable.com/.attachments/275a6cbdbdc911856556e716a60d6ec4/87addd7f/terra.jpg",
|
||||
"assets": [{
|
||||
"base": "uluna",
|
||||
"symbol": "LUNA",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "terra-luna",
|
||||
"logo": "https://dl.airtable.com/.attachments/275a6cbdbdc911856556e716a60d6ec4/87addd7f/terra.jpg"
|
||||
},{
|
||||
"base": "uusd",
|
||||
"symbol": "UST",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "terrausd",
|
||||
"logo": "https://raw.githubusercontent.com/osmosis-labs/assetlists/main/images/ust.png"
|
||||
},{
|
||||
"base": "ukrw",
|
||||
"symbol": "KRT",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "terrakrw",
|
||||
"logo": "https://raw.githubusercontent.com/osmosis-labs/assetlists/main/images/krt.png"
|
||||
},{
|
||||
"base": "cw20:terra183cvzy6knvva6mpvzcq86uyfxw0nd4925m0d0m",
|
||||
"symbol": "WHALE",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "white-whale",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "uaud",
|
||||
"symbol": "AUD",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "ucad",
|
||||
"symbol": "CAD",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "uchf",
|
||||
"symbol": "CHF",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "ucny",
|
||||
"symbol": "CNY",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "udkk",
|
||||
"symbol": "DKK",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "ueur",
|
||||
"symbol": "EUR",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "ugbp",
|
||||
"symbol": "GBP",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "uhkd",
|
||||
"symbol": "HKD",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "uidr",
|
||||
"symbol": "IDR",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "uinr",
|
||||
"symbol": "INR",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "ujpy",
|
||||
"symbol": "JPY",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "umnt",
|
||||
"symbol": "MNT",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "uphp",
|
||||
"symbol": "PHP",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "usdr",
|
||||
"symbol": "SDR",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "usek",
|
||||
"symbol": "SEK",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "usgd",
|
||||
"symbol": "SGD",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
},{
|
||||
"base": "uthb",
|
||||
"symbol": "THB",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://www.whitewhale.money/tokenlogo.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"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"],
|
||||
"sdk_version": "0.45.1",
|
||||
"coin_type": "118",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "umee",
|
||||
"logo": "https://ping.pub/logos/umee.png",
|
||||
"assets": [{
|
||||
"base": "uumee",
|
||||
"symbol": "UMEE",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "",
|
||||
"logo": "https://ping.pub/logos/umee.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"chain_id":"origin_1170-1",
|
||||
"chain_name": "Uptick Origin",
|
||||
"api": "https://rest.origin.uptick.network",
|
||||
"sdk_version": "v0.46.9",
|
||||
"coin_type": "60",
|
||||
"min_tx_fee": "40000",
|
||||
"addr_prefix": "uptick",
|
||||
"logo": "https://file.uptick.network/file/image/dNOLswid7dGe29CFhPp3Ow.png",
|
||||
"assets": [
|
||||
{
|
||||
"base": "auoc",
|
||||
"symbol": "UOC",
|
||||
"exponent": "18",
|
||||
"coingecko_id": "Uptick Origin",
|
||||
"logo": "https://file.uptick.network/file/image/dNOLswid7dGe29CFhPp3Ow.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
"coingecko": "vidulum",
|
||||
"api": "https://mainnet-lcd.vidulum.app",
|
||||
"sdk_version": "0.44.0",
|
||||
"coin_type": "370",
|
||||
"min_tx_fee": "8000",
|
||||
"addr_prefix": "vdl",
|
||||
"logo": "/logos/VDL.png"
|
||||
"logo": "https://ping.pub/logos/VDL.png",
|
||||
"assets": [{
|
||||
"base": "uvdl",
|
||||
"symbol": "VDL",
|
||||
"exponent": "6",
|
||||
"coingecko_id": "vidulum",
|
||||
"logo": "https://ping.pub/logos/VDL.png"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"chain_name": "arkh",
|
||||
"api":"https://asc-blockchain-api.arkhadian.com",
|
||||
"sdk_version": "0.44.1",
|
||||
"addr_prefix": "arkh",
|
||||
"logo": "https://www.arkhadian.com/static/images/600-prism_ejAjDRh.jpg"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"chain_name": "evmos",
|
||||
"coingecko": "evmos",
|
||||
"api": "https://testnet-evmos.api.ping.pub",
|
||||
"sdk_version": "0.42.4",
|
||||
"addr_prefix": "evmos",
|
||||
"logo": "https://dl.airtable.com/.attachments/53c13408739d92d9eada6bda12d0a50a/4c2f1c8c/Hgl3o3VL_400x400.jpg"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"chain_name": "juno",
|
||||
"coingecko": "juno-network",
|
||||
"api": "https://api.uni.junonetwork.io",
|
||||
"sdk_version": "0.42.4",
|
||||
"addr_prefix": "juno",
|
||||
"logo": "https://dl.airtable.com/.attachments/0f66137c6fb2868000d5a1e214c9ae3d/75a9c5bc/S3c2V3Xd_400x400.jpg"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"chain_name": "provenance",
|
||||
"api": "https://api.test.provenance.io",
|
||||
"sdk_version": "0.44.3",
|
||||
"addr_prefix": "tp",
|
||||
"logo": "https://raw.githubusercontent.com/provenance-io/provenance/main/docs/pio.svg"
|
||||
}
|
||||
@@ -28,6 +28,10 @@
|
||||
"injective": "Injective Protocal",
|
||||
"vidulum": "Vidulum",
|
||||
"kichain": "KI Chain",
|
||||
"genesisL1": "Genesis L1",
|
||||
"microtick": "Microtick",
|
||||
"odin": "ODIN",
|
||||
"chihuahua": "CHIHUAHUA",
|
||||
|
||||
"staking": "Staking",
|
||||
"governance": "Governance",
|
||||
@@ -50,6 +54,7 @@
|
||||
"proposal_content": "Content",
|
||||
"proposal_total_deposit": "Total Deposit",
|
||||
"voting_time": "Voting Time",
|
||||
"upgrade_time": "Estimated Upgrade Time:",
|
||||
|
||||
"btn_vote": "Vote",
|
||||
"btn_deposit": "Deposit",
|
||||
|
||||
@@ -48,10 +48,35 @@
|
||||
/></b-link>
|
||||
</b-media-aside>
|
||||
<b-media-body class="my-auto">
|
||||
<h6 class="mb-0 text-uppercase">
|
||||
{{ selected_chain.chain_name }}
|
||||
<h6 class="mb-0 ">
|
||||
<span class="text-uppercase">{{ chainid || selected_chain.chain_name }}</span>
|
||||
</h6>
|
||||
<small v-b-tooltip.hover.bottom="'Data Provider'">{{ selected_chain.api }} ({{ selected_chain.sdk_version || '-' }})</small>
|
||||
<small id="data-provider">
|
||||
{{ currentApi }} ({{ selected_chain.sdk_version || '-' }})
|
||||
<b-dropdown
|
||||
class="ml-0"
|
||||
variant="flat-primary"
|
||||
no-caret
|
||||
toggle-class="p-0"
|
||||
right
|
||||
sm
|
||||
>
|
||||
<template #button-content>
|
||||
<feather-icon
|
||||
icon="RepeatIcon"
|
||||
size="12"
|
||||
class="cursor-pointer"
|
||||
/>
|
||||
</template>
|
||||
<b-dropdown-item
|
||||
v-for="(item, i) in apiOptions"
|
||||
:key="item"
|
||||
@click="change(i)"
|
||||
>
|
||||
{{ item }}
|
||||
</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
</small>
|
||||
</b-media-body>
|
||||
</b-media>
|
||||
</div>
|
||||
@@ -62,16 +87,7 @@
|
||||
<dark-Toggler class="d-none d-lg-block" />
|
||||
<search-bar />
|
||||
<locale />
|
||||
<b-button
|
||||
v-ripple.400="'rgba(255, 255, 255, 0.15)'"
|
||||
variant="primary"
|
||||
class="btn-icon"
|
||||
:to="{ name: 'accounts' }"
|
||||
>
|
||||
<feather-icon icon="KeyIcon" />
|
||||
<span class="align-middle ml-25">{{ walletName }}</span>
|
||||
</b-button>
|
||||
<!-- <b-dropdown
|
||||
<b-dropdown
|
||||
class="ml-1"
|
||||
variant="link"
|
||||
no-caret
|
||||
@@ -85,11 +101,15 @@
|
||||
variant="primary"
|
||||
class="btn-icon"
|
||||
>
|
||||
<feather-icon icon="UserIcon" />
|
||||
<feather-icon icon="KeyIcon" />
|
||||
{{ walletName }}
|
||||
</b-button>
|
||||
</template>
|
||||
|
||||
<b-dropdown-item :to="{ name: 'portfolio' }">
|
||||
<b-dropdown-item
|
||||
:to="{ name: 'portfolio' }"
|
||||
class="d-none"
|
||||
>
|
||||
<feather-icon
|
||||
icon="PieChartIcon"
|
||||
size="16"
|
||||
@@ -105,22 +125,29 @@
|
||||
<span class="align-middle ml-50">Accounts</span>
|
||||
</b-dropdown-item>
|
||||
|
||||
<b-dropdown-item :to="{ name: 'addresses' }">
|
||||
<b-dropdown-item :to="{ name: 'delegations' }">
|
||||
<feather-icon
|
||||
icon="BookOpenIcon"
|
||||
size="16"
|
||||
/>
|
||||
<span class="align-middle ml-50">Address Book</span>
|
||||
<span class="align-middle ml-50">My Delegations</span>
|
||||
</b-dropdown-item>
|
||||
|
||||
<b-dropdown-item :to="{ name: 'setting' }">
|
||||
<b-dropdown-item :to="`/${selected_chain.chain_name}/uptime/my`">
|
||||
<feather-icon
|
||||
icon="SettingsIcon"
|
||||
icon="AirplayIcon"
|
||||
size="16"
|
||||
/>
|
||||
<span class="align-middle ml-50">Setting</span>
|
||||
<span class="align-middle ml-50">My Validators</span>
|
||||
</b-dropdown-item>
|
||||
</b-dropdown> -->
|
||||
<b-dropdown-item :to="`/wallet/transactions`">
|
||||
<feather-icon
|
||||
icon="LayersIcon"
|
||||
size="16"
|
||||
/>
|
||||
<span class="align-middle ml-50">My Transactions</span>
|
||||
</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
</b-navbar-nav>
|
||||
</div>
|
||||
</template>
|
||||
@@ -128,14 +155,14 @@
|
||||
<script>
|
||||
import {
|
||||
BLink, BNavbarNav, BMedia, BMediaAside, BAvatar, BMediaBody, VBTooltip, BButton,
|
||||
BDropdown, BDropdownItem,
|
||||
} from 'bootstrap-vue'
|
||||
import Ripple from 'vue-ripple-directive'
|
||||
import DarkToggler from '@core/layouts/components/app-navbar/components/DarkToggler.vue'
|
||||
import Locale from '@core/layouts/components/app-navbar/components/Locale.vue'
|
||||
import SearchBar from '@core/layouts/components/app-navbar/components/SearchBar.vue'
|
||||
// import CartDropdown from '@core/layouts/components/app-navbar/components/CartDropdown.vue'
|
||||
import store from '@/store'
|
||||
import { getLocalAccounts, timeIn, toDay } from '@/libs/data'
|
||||
import { getLocalAccounts, timeIn, toDay } from '@/libs/utils'
|
||||
// import UserDropdown from '@core/layouts/components/app-navbar/components/UserDropdown.vue'
|
||||
|
||||
export default {
|
||||
@@ -147,6 +174,8 @@ export default {
|
||||
BMediaAside,
|
||||
BMediaBody,
|
||||
BButton,
|
||||
BDropdown,
|
||||
BDropdownItem,
|
||||
|
||||
// Navbar Components
|
||||
DarkToggler,
|
||||
@@ -169,6 +198,8 @@ export default {
|
||||
return {
|
||||
variant: 'success',
|
||||
tips: 'Synced',
|
||||
index: 0,
|
||||
chainid: '',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -178,11 +209,21 @@ export default {
|
||||
},
|
||||
selected_chain() {
|
||||
this.block()
|
||||
return store.state.chains.selected
|
||||
return this.$store.state.chains.selected
|
||||
},
|
||||
chainVariant() {
|
||||
return this.variant
|
||||
},
|
||||
currentApi() {
|
||||
return this.index + 1 > this.apiOptions.length ? this.apiOptions[0] : this.apiOptions[this.index]
|
||||
},
|
||||
apiOptions() {
|
||||
const conf = this.$store.state.chains.selected
|
||||
if (Array.isArray(conf.api)) {
|
||||
return conf.api
|
||||
}
|
||||
return [conf.api]
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
const accounts = Object.keys(getLocalAccounts() || {})
|
||||
@@ -191,13 +232,22 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
change(v) {
|
||||
this.index = v
|
||||
const conf = this.$store.state.chains.selected
|
||||
localStorage.setItem(`${conf.chain_name}-api-index`, v)
|
||||
},
|
||||
block() {
|
||||
store.commit('setHeight', 0)
|
||||
const conf = this.$store.state.chains.selected
|
||||
const s = localStorage.getItem(`${conf.chain_name}-api-index`) || 0
|
||||
this.index = Number(s)
|
||||
this.$store.commit('setHeight', 0)
|
||||
this.$http.getLatestBlock().then(block => {
|
||||
store.commit('setHeight', Number(block.block.header.height))
|
||||
this.chainid = block.block.header.chain_id
|
||||
this.$store.commit('setHeight', Number(block.block.header.height))
|
||||
if (timeIn(block.block.header.time, 1, 'm')) {
|
||||
this.variant = 'danger'
|
||||
this.tips = `Halted ${toDay(block.block.header.time, 'from')}, Height: ${store.state.chains.height} `
|
||||
this.tips = `Halted ${toDay(block.block.header.time, 'from')}, Height: ${this.$store.state.chains.height} `
|
||||
} else {
|
||||
this.variant = 'success'
|
||||
this.tips = 'Synced'
|
||||
|
||||
@@ -338,7 +338,6 @@ function createDefaultTypes(prefix) {
|
||||
"/ibc.applications.transfer.v1.MsgTransfer": {
|
||||
aminoType: "cosmos-sdk/MsgTransfer",
|
||||
toAmino: ({ sourcePort, sourceChannel, token, sender, receiver, timeoutHeight, timeoutTimestamp, }) => {
|
||||
console.log('toAmino', sourceChannel, sourcePort)
|
||||
var _a, _b, _c;
|
||||
return ({
|
||||
source_port: sourcePort,
|
||||
@@ -370,6 +369,31 @@ function createDefaultTypes(prefix) {
|
||||
timeoutTimestamp: long_1.default.fromString(timeout_timestamp || "0", true),
|
||||
}),
|
||||
},
|
||||
// osmosis
|
||||
"/osmosis.gamm.v1beta1.MsgSwapExactAmountIn": {
|
||||
aminoType: "cosmos-sdk/MsgSwapExactAmountIn",
|
||||
toAmino: ({ sender, routes, tokenIn, tokenOutMinAmount}) => {
|
||||
utils_1.assertDefinedAndNotNull(tokenIn.amount, "missing amount");
|
||||
return {
|
||||
sender,
|
||||
routes: routes.map(({poolId, tokenOutDenom}) => ({pool_id: poolId, token_out_denom: tokenOutDenom})),
|
||||
token_in: {
|
||||
amount: tokenIn.amount,
|
||||
denom: tokenIn.denom,
|
||||
},
|
||||
token_out_min_amount: tokenOutMinAmount,
|
||||
};
|
||||
},
|
||||
fromAmino: ({ sender, routes, token_in, token_out_min_amount }) => ({
|
||||
sender,
|
||||
routes: routes.map(({pool_id, token_out_denom})=>({poolId: long_1.default.fromString(pool_id), tokenOutDenom: token_out_denom})),
|
||||
tokenIn: {
|
||||
amount: long_1.default.fromString(token_in.amount),
|
||||
denom: token_in.denom,
|
||||
},
|
||||
tokenOutMinAmount: long_1.default.fromString(token_out_min_amount),
|
||||
}),
|
||||
},
|
||||
};
|
||||
}
|
||||
/**
|
||||
@@ -385,6 +409,7 @@ class AminoTypes {
|
||||
this.register = Object.assign(Object.assign({}, filteredDefaultTypes), additions);
|
||||
}
|
||||
toAmino({ typeUrl, value }) {
|
||||
console.log('typeurl:', typeUrl, value)
|
||||
const converter = this.register[typeUrl];
|
||||
if (!converter) {
|
||||
throw new Error("Type URL does not exist in the Amino message type register. " +
|
||||
|
||||
@@ -10,6 +10,5 @@ export { default as Block } from './block'
|
||||
export { default as ValidatorDistribution } from './validator-distribution'
|
||||
export { default as StakingDelegation } from './staking-delegation'
|
||||
export { default as WrapStdTx } from './wrapstdtx'
|
||||
export * from './data'
|
||||
|
||||
export default class Test {}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { percent } from './data'
|
||||
|
||||
export default class ProposalTally {
|
||||
constructor() {
|
||||
this.total = 0
|
||||
@@ -17,11 +15,11 @@ export default class ProposalTally {
|
||||
} else {
|
||||
this.total = total
|
||||
}
|
||||
this.yes = percent(Number(element.yes) / this.total)
|
||||
this.no = percent(Number(element.no) / this.total)
|
||||
this.veto = percent(Number(element.no_with_veto) / this.total)
|
||||
this.abstain = percent(Number(element.abstain) / this.total)
|
||||
this.turnout = percent(subtotal / this.total)
|
||||
this.yes = Number(element.yes) / this.total
|
||||
this.no = Number(element.no) / this.total
|
||||
this.veto = Number(element.no_with_veto) / this.total
|
||||
this.abstain = Number(element.abstain) / this.total
|
||||
this.turnout = subtotal / this.total
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import compareVersions from 'compare-versions'
|
||||
import { toDay, formatToken } from './data'
|
||||
import ProposalTally from './proposal-tally'
|
||||
|
||||
export default class Proposal {
|
||||
@@ -12,9 +11,9 @@ export default class Proposal {
|
||||
this.title = '-'
|
||||
this.description = '-'
|
||||
this.tally = new ProposalTally()
|
||||
this.submit_time = ' - '
|
||||
this.submit_time = '0000-00-00'
|
||||
this.voting_end_time = '0000-00-00'
|
||||
this.voting_start_time = '-'
|
||||
this.voting_start_time = '0000-00-00'
|
||||
this.total_deposit = '-'
|
||||
this.contents = null
|
||||
}
|
||||
@@ -22,17 +21,20 @@ export default class Proposal {
|
||||
init(element, total) {
|
||||
this.element = element
|
||||
|
||||
this.id = element.id
|
||||
this.id = element.proposal_id || element.id
|
||||
this.status = element.status
|
||||
this.type = element.content.type
|
||||
this.title = element.content.value.title
|
||||
this.description = element.content.value.description
|
||||
this.tally = new ProposalTally().init(element.final_tally_result, total)
|
||||
this.submit_time = toDay(element.submit_time, 'date')
|
||||
this.voting_end_time = toDay(element.voting_end_time, 'date')
|
||||
this.voting_start_time = toDay(element.voting_start_time, 'date')
|
||||
this.total_deposit = formatToken(element.total_deposit[0])
|
||||
this.contents = element.content.value
|
||||
this.submit_time = element.submit_time
|
||||
this.voting_end_time = element.voting_end_time
|
||||
this.voting_start_time = element.voting_start_time
|
||||
// eslint-disable-next-line prefer-destructuring
|
||||
this.total_deposit = element.total_deposit[0]
|
||||
this.contents = element.content.value || element.content
|
||||
if (this.contents) {
|
||||
this.title = this.contents.title
|
||||
this.description = this.contents.description
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -64,6 +66,12 @@ export default class Proposal {
|
||||
}
|
||||
if (String(this.status).indexOf('PASSED') > -1) {
|
||||
this.status = 3
|
||||
} else if (String(this.status).indexOf('VOTING') > -1) {
|
||||
this.status = 2
|
||||
} else if (String(this.status).indexOf('REJECTED') > -1) {
|
||||
this.status = 4
|
||||
} else if (String(this.status).indexOf('DEPOSIT') > -1) {
|
||||
this.status = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
/* eslint-disable camelcase */
|
||||
|
||||
import { SigningStargateClient } from '@cosmjs/stargate'
|
||||
import { MsgTransfer } from './msg-transfer'
|
||||
// import { AminoTypes } from './aminotypes'
|
||||
// import { MsgTransfer } from './msg-transfer'
|
||||
import { AminoTypes } from './aminotypes'
|
||||
import { MsgSwapExactAmountIn } from '../msg'
|
||||
|
||||
const amino_1 = require('@cosmjs/amino')
|
||||
const encoding_1 = require('@cosmjs/encoding')
|
||||
@@ -15,11 +16,11 @@ export default class PingWalletClient extends SigningStargateClient {
|
||||
static async offline(signer, options = {}) {
|
||||
const instance = new PingWalletClient(undefined, signer, options)
|
||||
|
||||
instance.registry.register('/ibc.applications.transfer.v1.MsgTransfer', MsgTransfer)
|
||||
instance.registry.register('/osmosis.gamm.v1beta1.MsgSwapExactAmountIn', MsgSwapExactAmountIn)
|
||||
|
||||
// console.log('registory:', instance.registry, AminoTypes)
|
||||
// const { aminoTypes = new AminoTypes({ prefix: options.prefix }) } = options
|
||||
// instance.aminoTypes = aminoTypes
|
||||
const { aminoTypes = new AminoTypes({ prefix: options.prefix }) } = options
|
||||
instance.aminoTypes = aminoTypes
|
||||
// console.log('aminoType:', instance.aminoTypes)
|
||||
return instance
|
||||
}
|
||||
@@ -32,13 +33,16 @@ export default class PingWalletClient extends SigningStargateClient {
|
||||
}
|
||||
const pubkey = proto_signing_1.encodePubkey(amino_1.encodeSecp256k1Pubkey(accountFromSigner.pubkey))
|
||||
const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON
|
||||
// console.log('messages:', messages)
|
||||
const msgs = messages.map(msg => this.aminoTypes.toAmino(msg))
|
||||
// console.log('msgs:', msgs)
|
||||
const signDoc = amino_1.makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence)
|
||||
const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc)
|
||||
const signedTxBody = {
|
||||
messages: signed.msgs.map(msg => this.aminoTypes.fromAmino(msg)),
|
||||
memo: signed.memo,
|
||||
}
|
||||
// console.log(signedTxBody)
|
||||
const signedTxBodyEncodeObject = {
|
||||
typeUrl: '/cosmos.tx.v1beta1.TxBody',
|
||||
value: signedTxBody,
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { percent } from './data'
|
||||
|
||||
export default class StakingPool {
|
||||
constructor() {
|
||||
this.element = null
|
||||
@@ -19,6 +17,6 @@ export default class StakingPool {
|
||||
}
|
||||
|
||||
bondedRatio() {
|
||||
return percent((this.bondedToken * 100) / this.total())
|
||||
return (this.bondedToken * 100) / this.total()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import { toBase64 } from '@cosmjs/encoding'
|
||||
import {
|
||||
Proposal, ProposalTally, Proposer, StakingPool, Votes, Deposit,
|
||||
Validator, StakingParameters, Block, ValidatorDistribution, StakingDelegation, WrapStdTx, getUserCurrency,
|
||||
} from './data'
|
||||
} from './utils'
|
||||
import OsmosAPI from './osmos'
|
||||
|
||||
function commonProcess(res) {
|
||||
@@ -26,6 +26,13 @@ export function keybase(identity) {
|
||||
export default class ChainFetch {
|
||||
constructor() {
|
||||
this.osmosis = new OsmosAPI()
|
||||
this.EndpointVersion = {
|
||||
certik: 'v1alpha1',
|
||||
}
|
||||
}
|
||||
|
||||
getEndpointVersion() {
|
||||
return this.EndpointVersion[this.config.chain_name] || 'v1beta1'
|
||||
}
|
||||
|
||||
getSelectedConfig() {
|
||||
@@ -64,8 +71,8 @@ export default class ChainFetch {
|
||||
return this.get(`/blocks/${height}`, config).then(data => Block.create(data))
|
||||
}
|
||||
|
||||
async getSlashingSigningInfo() {
|
||||
return this.get('/cosmos/slashing/v1beta1/signing_infos')
|
||||
async getSlashingSigningInfo(config = null) {
|
||||
return this.get('/cosmos/slashing/v1beta1/signing_infos?pagination.limit=500', config)
|
||||
}
|
||||
|
||||
async getTxs(hash) {
|
||||
@@ -133,14 +140,22 @@ export default class ChainFetch {
|
||||
})
|
||||
}
|
||||
|
||||
async getValidatorList() {
|
||||
return this.get('/staking/validators').then(data => {
|
||||
async getValidatorList(config = null) {
|
||||
return this.get('/staking/validators', config).then(data => {
|
||||
const vals = commonProcess(data).map(i => new Validator().init(i))
|
||||
localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals))
|
||||
return vals
|
||||
})
|
||||
}
|
||||
|
||||
async getValidatorUnbondedList() {
|
||||
return this.get('/cosmos/staking/v1beta1/validators?status=BOND_STATUS_UNBONDED').then(data => {
|
||||
const result = commonProcess(data)
|
||||
const vals = result.validators ? result.validators : result
|
||||
return vals.map(i => new Validator().init(i))
|
||||
})
|
||||
}
|
||||
|
||||
async getValidatorListByHeight(height) {
|
||||
return this.get(`/validatorsets/${height}`).then(data => commonProcess(data))
|
||||
}
|
||||
@@ -225,7 +240,8 @@ export default class ChainFetch {
|
||||
}
|
||||
|
||||
async getGovernanceList() {
|
||||
return Promise.all([this.get('/gov/proposals'), this.get('/staking/pool')]).then(data => {
|
||||
const url = this.config.chain_name === 'certik' ? '/shentu/gov/v1alpha1/proposals?pagination.limit=500' : '/cosmos/gov/v1beta1/proposals?pagination.limit=500'
|
||||
return Promise.all([this.get(url), this.get('/staking/pool')]).then(data => {
|
||||
const pool = new StakingPool().init(commonProcess(data[1]))
|
||||
let proposals = commonProcess(data[0])
|
||||
if (Array.isArray(proposals.proposals)) {
|
||||
@@ -243,24 +259,6 @@ export default class ChainFetch {
|
||||
})
|
||||
}
|
||||
|
||||
async get(url, config = null) {
|
||||
if (!config) {
|
||||
this.getSelectedConfig()
|
||||
}
|
||||
const ret = await fetch((config ? config.api : this.config.api) + url).then(response => response.json())
|
||||
return ret
|
||||
}
|
||||
|
||||
async getUrl(url) {
|
||||
this.getSelectedConfig()
|
||||
return fetch(url).then(res => res.json())
|
||||
}
|
||||
|
||||
static fetch(host, url) {
|
||||
const ret = fetch(host + url).then(response => response.json())
|
||||
return ret
|
||||
}
|
||||
|
||||
async getAuthAccount(address, config = null) {
|
||||
return this.get('/auth/accounts/'.concat(address), config).then(data => {
|
||||
const result = commonProcess(data)
|
||||
@@ -276,7 +274,7 @@ export default class ChainFetch {
|
||||
if (compareVersions(config ? config.sdk_version : this.config.sdk_version, '0.40') < 0) {
|
||||
return this.get(`/distribution/delegators/${address}/rewards`, config).then(data => commonProcess(data))
|
||||
}
|
||||
return this.get(`/cosmos/distribution/v1beta1/delegators/${address}/rewards`).then(data => commonProcess(data))
|
||||
return this.get(`/cosmos/distribution/v1beta1/delegators/${address}/rewards`, config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
async getStakingValidators(address) {
|
||||
@@ -317,43 +315,46 @@ export default class ChainFetch {
|
||||
return this.get('/bank/balances/'.concat(address), config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
async getAllIBCDenoms(config = null) {
|
||||
const sdkVersion = config ? config.sdk_version : this.config.sdk_version
|
||||
if (compareVersions(sdkVersion, '0.44.2') < 0) {
|
||||
return this.get('/ibc/applications/transfer/v1beta1/denom_traces?pagination.limit=500', config).then(data => commonProcess(data))
|
||||
}
|
||||
return this.get('/ibc/apps/transfer/v1/denom_traces?pagination.limit=500', config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
async getIBCDenomTrace(hash, config = null) {
|
||||
const h = hash.substring(hash.indexOf('/') + 1)
|
||||
return this.get('/ibc/applications/transfer/v1beta1/denom_traces/'.concat(h), config).then(data => commonProcess(data))
|
||||
const sdkVersion = config ? config.sdk_version : this.config.sdk_version
|
||||
if (compareVersions(sdkVersion, '0.44.2') < 0) {
|
||||
return this.get('/ibc/applications/transfer/v1beta1/denom_traces/'.concat(h), config).then(data => commonProcess(data))
|
||||
}
|
||||
return this.get('/ibc/apps/transfer/v1/denom_traces/'.concat(h), config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
async getIBCChannels(config = null, key = null) {
|
||||
if (key) {
|
||||
return this.get('/ibc/core/channel/v1beta1/channels?pagination.key='.concat(key), config).then(data => commonProcess(data))
|
||||
return this.get('/ibc/core/channel/v1/channels?pagination.key='.concat(key), config).then(data => commonProcess(data))
|
||||
}
|
||||
return this.get('/ibc/core/channel/v1beta1/channels', config).then(data => commonProcess(data))
|
||||
return this.get('/ibc/core/channel/v1/channels?pagination.limit=1000', config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
async getIBCChannelClientState(channel_id, port_id, config = null) {
|
||||
// eslint-disable-next-line camelcase
|
||||
return this.get(`/ibc/core/channel/v1beta1/channels/${channel_id}/ports/${port_id}/client_state`, config).then(data => commonProcess(data))
|
||||
return this.get(`/ibc/core/channel/v1/channels/${channel_id}/ports/${port_id}/client_state`, config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
async getIBCChannel(channel_id, port_id, config = null) {
|
||||
// eslint-disable-next-line camelcase
|
||||
return this.get(`/ibc/core/channel/v1beta1/channels/${channel_id}/ports/${port_id}`, config).then(data => commonProcess(data))
|
||||
return this.get(`/ibc/core/channel/v1/channels/${channel_id}/ports/${port_id}`, config).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
static async getBankBalance(baseurl, address) {
|
||||
return ChainFetch.fetch(baseurl, '/bank/balances/'.concat(address)).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
static async getIBCDenomTrace(baseurl, hash) {
|
||||
const h = hash.substring(hash.indexOf('/'))
|
||||
return ChainFetch.fetch(baseurl, '/ibc/applications/transfer/v1beta1/denom_traces/'.concat(h)).then(data => commonProcess(data))
|
||||
}
|
||||
|
||||
static async getIBCDenomTraceText(baseurl, hash) {
|
||||
return ChainFetch.getIBCDenomTrace(baseurl, hash).then(res => res.denom_trace.base_denom)
|
||||
}
|
||||
|
||||
async getGravityPools() {
|
||||
return this.get('/cosmos/liquidity/v1beta1/pools').then(data => commonProcess(data))
|
||||
}
|
||||
@@ -361,8 +362,8 @@ export default class ChainFetch {
|
||||
async getMarketChart(days = 14, coin = null) {
|
||||
const conf = this.getSelectedConfig()
|
||||
const currency = getUserCurrency()
|
||||
if (conf.coingecko && conf.coingecko.length > 0) {
|
||||
return ChainFetch.fetch(' https://api.coingecko.com', `/api/v3/coins/${coin || conf.coingecko}/market_chart?vs_currency=${currency}&days=${days}`)
|
||||
if (conf.assets[0] && conf.assets[0].coingecko_id) {
|
||||
return ChainFetch.fetch(' https://api.coingecko.com', `/api/v3/coins/${coin || conf.assets[0].coingecko_id}/market_chart?vs_currency=${currency}&days=${days}`)
|
||||
}
|
||||
return null
|
||||
}
|
||||
@@ -399,8 +400,10 @@ export default class ChainFetch {
|
||||
if (!config) {
|
||||
this.getSelectedConfig()
|
||||
}
|
||||
const conf = config || this.config
|
||||
const index = this.getApiIndex(config)
|
||||
// Default options are marked with *
|
||||
const response = await fetch((config ? config.api : this.config.api) + url, {
|
||||
const response = await fetch((Array.isArray(conf.api) ? conf.api[index] : conf.api) + url, {
|
||||
method: 'POST', // *GET, POST, PUT, DELETE, etc.
|
||||
// mode: 'cors', // no-cors, *cors, same-origin
|
||||
// credentials: 'same-origin', // redirect: 'follow', // manual, *follow, error
|
||||
@@ -415,6 +418,33 @@ export default class ChainFetch {
|
||||
// const response = axios.post((config ? config.api : this.config.api) + url, data)
|
||||
return response.json() // parses JSON response into native JavaScript objects
|
||||
}
|
||||
|
||||
async get(url, config = null) {
|
||||
if (!config) {
|
||||
this.getSelectedConfig()
|
||||
}
|
||||
const conf = config || this.config
|
||||
const finalurl = (Array.isArray(conf.api) ? conf.api[this.getApiIndex(config)] : conf.api) + url
|
||||
// finalurl = finalurl.replaceAll('v1beta1', this.getEndpointVersion())
|
||||
const ret = await fetch(finalurl).then(response => response.json())
|
||||
return ret
|
||||
}
|
||||
|
||||
getApiIndex(config = null) {
|
||||
const conf = config || this.config
|
||||
const index = Number(localStorage.getItem(`${conf.chain_name}-api-index`) || 0)
|
||||
return index < conf.api.length ? index : 0
|
||||
}
|
||||
|
||||
async getUrl(url) {
|
||||
this.getSelectedConfig()
|
||||
return fetch(url).then(res => res.json())
|
||||
}
|
||||
|
||||
static fetch(host, url) {
|
||||
const ret = fetch((Array.isArray(host) ? host[0] : host) + url).then(response => response.json())
|
||||
return ret
|
||||
}
|
||||
}
|
||||
|
||||
// export default chainAPI
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
import { sha256 } from '@cosmjs/crypto'
|
||||
import { toHex } from '@cosmjs/encoding'
|
||||
import fetch from 'node-fetch'
|
||||
import { formatTokenDenom, getLocalChains } from './data/data'
|
||||
import { formatTokenDenom, getLocalChains } from './utils'
|
||||
|
||||
export const poolIds = {
|
||||
1: true,
|
||||
@@ -164,7 +164,7 @@ export default class OsmosAPI {
|
||||
}
|
||||
|
||||
async getDenomTraces() {
|
||||
return this.get('/ibc/applications/transfer/v1beta1/denom_traces?pagination.limit=300').then(x => {
|
||||
return this.get('/ibc/apps/transfer/v1/denom_traces?pagination.limit=500').then(x => {
|
||||
const combined = {}
|
||||
x.denom_traces.forEach(item => {
|
||||
const k = 'ibc/'.concat(toHex(sha256(new TextEncoder('utf-8').encode(`${item.path}/${item.base_denom}`))).toUpperCase())
|
||||
|
||||
@@ -12,9 +12,11 @@ import dayjs from 'dayjs'
|
||||
import duration from 'dayjs/plugin/duration'
|
||||
import relativeTime from 'dayjs/plugin/relativeTime'
|
||||
import utc from 'dayjs/plugin/utc'
|
||||
import RIPEMD160 from 'ripemd160'
|
||||
import localeData from 'dayjs/plugin/localeData'
|
||||
import { $themeColors } from '@themeConfig'
|
||||
import PingWalletClient from './signing'
|
||||
// import { SigningStargateClient } from '@cosmjs/stargate'
|
||||
import PingWalletClient from './data/signing'
|
||||
|
||||
dayjs.extend(localeData)
|
||||
dayjs.extend(duration)
|
||||
@@ -41,7 +43,8 @@ export function getLocalTxHistory() {
|
||||
return getLocalObject('txHistory')
|
||||
}
|
||||
|
||||
export function setLocalTxHistory(newTx) {
|
||||
export function setLocalTxHistory(tx) {
|
||||
const newTx = tx
|
||||
const txs = getLocalTxHistory()
|
||||
if (txs) {
|
||||
txs.push(newTx)
|
||||
@@ -89,12 +92,55 @@ export function setUserCurrency(currency) {
|
||||
}
|
||||
|
||||
export function chartColors() {
|
||||
const colors = ['#6610f2', '#20c997', '#000000', '#FF0000',
|
||||
'#800000', '#FFFF00', '#808000', '#00FF00', '#008000', '#00FFFF',
|
||||
'#008080', '#0000FF', '#000080', '#FF00FF', '#800080']
|
||||
const colors = [
|
||||
'#8A2BE2', '#9ACD32', '#000080', '#008080', '#DC143C',
|
||||
'#7FFFD4', '#B8860B', '#EEE8AA', '#FFFAFA', '#FDF5E6',
|
||||
'#C0C0C0', '#E6E6FA', '#FFFAF0', '#2E8B57', '#DCDCDC',
|
||||
'#FF1493', '#4682B4', '#191970', '#FF8C00', '#FFFFE0',
|
||||
'#696969', '#FFFACD', '#DEB887', '#4169E1', '#9932CC',
|
||||
'#B0C4DE', '#556B2F', '#FFE4E1', '#F5FFFA', '#8FBC8F',
|
||||
'#B22222', '#90EE90', '#FFFF00', '#4B0082', '#DB7093',
|
||||
'#F8F8FF', '#006400', '#6610f2', '#FFA500', '#7FFF00',
|
||||
'#87CEFA', '#5F9EA0', '#483D8B', '#CD5C5C', '#ADFF2F',
|
||||
'#2F4F4F', '#00FF7F', '#FFF5EE', '#F4A460', '#808000',
|
||||
'#000000', '#00FA9A', '#000000', '#EE82EE', '#F5DEB3',
|
||||
'#0000FF', '#BA55D3', '#FFF0F5', '#F5F5DC', '#0000CD',
|
||||
'#FFD700', '#708090', '#6B8E23', '#800000', '#7B68EE',
|
||||
'#FFA07A', '#800080', '#B0E0E6', '#00FFFF', '#00BFFF',
|
||||
'#7CFC00', '#778899', '#FF7F50', '#E0FFFF', '#6495ED',
|
||||
'#008B8B', '#DDA0DD', '#CD853F', '#FFFFF0', '#98FB98',
|
||||
'#9400D3', '#D2691E', '#FF0000', '#008000', '#00008B',
|
||||
'#C71585', '#FFB6C1', '#8B4513', '#20c997', '#FAEBD7',
|
||||
'#E9967A', '#FFEFD5', '#FFE4C4', '#D8BFD8', '#A52A2A',
|
||||
'#8B0000', '#32CD32', '#BDB76B', '#FF0000', '#DAA520',
|
||||
'#800000', '#9370DB', '#F08080', '#FAF0E6', '#FF6347',
|
||||
'#FF4500', '#FFFF00', '#808080', '#00CED1', '#FFC0CB',
|
||||
'#FF00FF', '#F0FFFF', '#A9A9A9', '#F0E68C', '#1E90FF',
|
||||
'#FFDAB9', '#228B22', '#F0FFF0', '#66CDAA', '#ADD8E6',
|
||||
'#DA70D6', '#A0522D', '#FFE4B5', '#48D1CC', '#D2B48C',
|
||||
'#FFEBCD', '#8B008B', '#3CB371', '#87CEEB', '#6A5ACD',
|
||||
'#FFDEAD', '#FF69B4', '#BC8F8F', '#D3D3D3', '#00FF00',
|
||||
'#FAFAD2', '#AFEEEE', '#40E0D0', '#FFF8DC', '#20B2AA',
|
||||
'#00FFFF', '#FA8072', '#F0F8FF']
|
||||
return Object.values($themeColors).concat(colors)
|
||||
}
|
||||
|
||||
export function extractAccountNumberAndSequence(ret) {
|
||||
let account = ret.value
|
||||
if (ret.value && ret.value.base_vesting_account) { // vesting account
|
||||
account = ret.value.base_vesting_account?.base_account
|
||||
} else if (ret.value && ret.value.base_account) { // evmos based account
|
||||
account = ret.value.base_account
|
||||
}
|
||||
const accountNumber = account.account_number
|
||||
const sequence = account?.sequence || 0
|
||||
|
||||
return {
|
||||
accountNumber,
|
||||
sequence,
|
||||
}
|
||||
}
|
||||
|
||||
export function getUserCurrencySign() {
|
||||
let s = ''
|
||||
switch (getUserCurrency()) {
|
||||
@@ -117,11 +163,15 @@ export function getUserCurrencySign() {
|
||||
export function consensusPubkeyToHexAddress(consensusPubkey) {
|
||||
let raw = null
|
||||
if (typeof consensusPubkey === 'object') {
|
||||
raw = toHex(fromBase64(consensusPubkey.value))
|
||||
if (consensusPubkey.type === 'tendermint/PubKeySecp256k1') {
|
||||
raw = new RIPEMD160().update(Buffer.from(sha256(fromBase64(consensusPubkey.value)))).digest('hex').toUpperCase()
|
||||
return raw
|
||||
}
|
||||
raw = sha256(fromBase64(consensusPubkey.value))
|
||||
} else {
|
||||
raw = toHex(Bech32.decode(consensusPubkey).data).toUpperCase().replace('1624DE6420', '')
|
||||
raw = sha256(fromHex(toHex(Bech32.decode(consensusPubkey).data).toUpperCase().replace('1624DE6420', '')))
|
||||
}
|
||||
const address = toHex(sha256(fromHex(raw))).slice(0, 40).toUpperCase()
|
||||
const address = toHex(raw).slice(0, 40).toUpperCase()
|
||||
return address
|
||||
}
|
||||
|
||||
@@ -155,21 +205,28 @@ export async function sign(device, chainId, signerAddress, messages, fee, memo,
|
||||
transport = await TransportWebUSB.create()
|
||||
signer = new LedgerSigner(transport, { hdPaths: [getHdPath(signerAddress)] })
|
||||
break
|
||||
case 'pingKMS':
|
||||
if (!window.PingSigner) {
|
||||
throw new Error('Please install Ping KMS extension')
|
||||
}
|
||||
signer = window.PingSigner
|
||||
break
|
||||
case 'keplr':
|
||||
default:
|
||||
if (!window.getOfflineSigner || !window.keplr) {
|
||||
throw new Error('Please install keplr extension')
|
||||
}
|
||||
await window.keplr.enable(chainId)
|
||||
signer = window.getOfflineSigner(chainId)
|
||||
// signer = window.getOfflineSignerOnlyAmino(chainId)
|
||||
// signer = window.getOfflineSigner(chainId)
|
||||
signer = window.getOfflineSignerOnlyAmino(chainId)
|
||||
}
|
||||
|
||||
// if (signer) return signAmino(signer, signerAddress, messages, fee, memo, signerData)
|
||||
|
||||
// Ensure the address has some tokens to spend
|
||||
const client = await PingWalletClient.offline(signer)
|
||||
return client.signAmino(device === 'keplr' ? signerAddress : toSignAddress(signerAddress), messages, fee, memo, signerData)
|
||||
// const client = await SigningStargateClient.offline(signer)
|
||||
return client.signAmino2(device.startsWith('ledger') ? toSignAddress(signerAddress) : signerAddress, messages, fee, memo, signerData)
|
||||
// return signDirect(signer, signerAddress, messages, fee, memo, signerData)
|
||||
}
|
||||
|
||||
@@ -239,7 +296,7 @@ export function abbrMessage(msg) {
|
||||
}, {})
|
||||
const output = []
|
||||
Object.keys(sum).forEach(k => {
|
||||
output.push(`${k}×${sum[k]}`)
|
||||
output.push(sum[k] > 1 ? `${k}×${sum[k]}` : k)
|
||||
})
|
||||
return output.join(', ')
|
||||
}
|
||||
@@ -270,64 +327,66 @@ export function isToken(value) {
|
||||
}
|
||||
|
||||
export function formatTokenDenom(tokenDenom) {
|
||||
if (tokenDenom) {
|
||||
let denom = tokenDenom.denom_trace ? tokenDenom.denom_trace.base_denom.toUpperCase() : tokenDenom.toUpperCase()
|
||||
if (denom.charAt(0) === 'U' && denom !== 'USDX') {
|
||||
denom = denom.substring(1)
|
||||
} else if (denom === 'BASECRO') {
|
||||
denom = 'CRO'
|
||||
} else if (denom.startsWith('IBC')) {
|
||||
denom = 'IBC...'
|
||||
} else if (denom.startsWith('NANOLIKE')) {
|
||||
denom = 'LIKE'
|
||||
}
|
||||
if (tokenDenom && tokenDenom.code === undefined) {
|
||||
let denom = tokenDenom.denom_trace ? tokenDenom.denom_trace.base_denom : tokenDenom
|
||||
const config = Object.values(getLocalChains())
|
||||
|
||||
return denom
|
||||
config.forEach(x => {
|
||||
if (x.assets) {
|
||||
const asset = x.assets.find(a => (a.base === denom))
|
||||
if (asset) denom = asset.symbol
|
||||
}
|
||||
})
|
||||
return denom.startsWith('ibc') ? `IBC...${denom.substring(denom.length - 3)}` : denom.toUpperCase()
|
||||
}
|
||||
return ''
|
||||
}
|
||||
|
||||
export function getUnitAmount(amount, denom) {
|
||||
if (denom.startsWith('basecro')) {
|
||||
return String((Number(amount) * 100000000).toFixed())
|
||||
}
|
||||
if (denom.startsWith('rowan')) {
|
||||
// eslint-disable-next-line no-undef
|
||||
return (BigInt(amount) * 1000000000000000000n).toString()
|
||||
}
|
||||
if (denom.startsWith('nanolike')) {
|
||||
// eslint-disable-next-line no-undef
|
||||
return String((Number(amount) * 1000000000).toFixed())
|
||||
}
|
||||
return String((Number(amount) * 1000000).toFixed())
|
||||
export function getUnitAmount(amount, tokenDenom) {
|
||||
const denom = tokenDenom.denom_trace ? tokenDenom.denom_trace.base_denom : tokenDenom
|
||||
let exp = 6
|
||||
const config = Object.values(getLocalChains())
|
||||
|
||||
config.forEach(x => {
|
||||
if (x.assets) {
|
||||
const asset = x.assets.find(a => (a.base === denom))
|
||||
if (asset) exp = asset.exponent
|
||||
}
|
||||
})
|
||||
// eslint-disable-next-line no-undef
|
||||
return String(BigInt(Number(amount) * (10 ** exp)))
|
||||
}
|
||||
|
||||
export function formatTokenAmount(tokenAmount, fraction = 2, denom = 'uatom') {
|
||||
let amount
|
||||
if (denom.startsWith('inj')) {
|
||||
// eslint-disable-next-line no-undef
|
||||
amount = Number(BigInt(Number(tokenAmount)) / 1000000000000000000n)
|
||||
// }
|
||||
} else if (denom.startsWith('rowan')) {
|
||||
// eslint-disable-next-line no-undef
|
||||
amount = Number(BigInt(Number(tokenAmount)) / 1000000000000000000n)
|
||||
// }
|
||||
} else if (denom.startsWith('basecro')) {
|
||||
amount = Number(tokenAmount) / 100000000
|
||||
} else if (denom.startsWith('nanolike')) {
|
||||
amount = Number(tokenAmount) / 1000000000
|
||||
} else {
|
||||
amount = Number(tokenAmount) / 1000000
|
||||
}
|
||||
export function numberWithCommas(x) {
|
||||
const parts = x.toString().split('.')
|
||||
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
||||
return parts.join('.')
|
||||
}
|
||||
|
||||
export function formatTokenAmount(tokenAmount, fraction = 2, tokenDenom = 'uatom', format = true) {
|
||||
const denom = tokenDenom.denom_trace ? tokenDenom.denom_trace.base_denom : tokenDenom
|
||||
let amount = 0
|
||||
|
||||
let exp = 6
|
||||
const config = Object.values(getLocalChains())
|
||||
|
||||
config.forEach(x => {
|
||||
if (x.assets) {
|
||||
const asset = x.assets.find(a => (a.base === denom))
|
||||
if (asset) exp = asset.exponent
|
||||
}
|
||||
})
|
||||
amount = Number(Number(tokenAmount)) / (10 ** exp)
|
||||
if (amount > 10) {
|
||||
if (format) { return numberWithCommas(parseFloat(amount.toFixed(fraction))) }
|
||||
return parseFloat(amount.toFixed(fraction))
|
||||
}
|
||||
return parseFloat(amount)
|
||||
return parseFloat(amount.toFixed(fraction))
|
||||
}
|
||||
|
||||
export function isTestnet() {
|
||||
return (window.location.hostname.startsWith('testnet')
|
||||
|| window.location.search.indexOf('testnet') > -1)
|
||||
|| window.location.search.indexOf('testnet') > -1)
|
||||
}
|
||||
|
||||
export function formatToken(token, IBCDenom = {}, decimals = 2, withDenom = true) {
|
||||
@@ -353,7 +412,7 @@ export function formatNumber(count, withAbbr = false, decimals = 2) {
|
||||
|
||||
export function tokenFormatter(tokens, denoms = {}) {
|
||||
if (Array.isArray(tokens)) {
|
||||
return tokens.map(t => formatToken(t, denoms, 2)).join()
|
||||
return tokens.map(t => formatToken(t, denoms, 2)).join(', ')
|
||||
}
|
||||
return formatToken(tokens, denoms, 2)
|
||||
}
|
||||
@@ -406,6 +465,7 @@ export function getStakingValidatorOperator(chainName, addr, length = -1) {
|
||||
|
||||
export * from 'compare-versions'
|
||||
|
||||
export * from './data'
|
||||
export class Data {
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import store from '@/store'
|
||||
import { isTestnet } from '../../libs/data/data'
|
||||
import { isTestnet } from '../../libs/utils'
|
||||
|
||||
const modules = [
|
||||
{
|
||||
@@ -42,11 +42,6 @@ const modules = [
|
||||
|
||||
function processMenu() {
|
||||
const chainMenus = [
|
||||
// {
|
||||
// title: 'Home',
|
||||
// route: 'home',
|
||||
// icon: 'HomeIcon',
|
||||
// },
|
||||
{
|
||||
header: 'blockchains',
|
||||
},
|
||||
|
||||
@@ -54,6 +54,20 @@ const router = new VueRouter({
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/coffee',
|
||||
name: 'coffee',
|
||||
component: () => import('@core/layouts/components/Coffee.vue'),
|
||||
meta: {
|
||||
pageTitle: 'Donation',
|
||||
breadcrumb: [
|
||||
{
|
||||
text: 'Buy me a cup of coffee!',
|
||||
active: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/wallet/accounts',
|
||||
alias: '/wallet',
|
||||
@@ -97,6 +111,38 @@ const router = new VueRouter({
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/wallet/delegations',
|
||||
name: 'delegations',
|
||||
component: () => import('@/views/WalletDelegations.vue'),
|
||||
meta: {
|
||||
pageTitle: 'My Delegations',
|
||||
breadcrumb: [
|
||||
{
|
||||
text: 'Wallet',
|
||||
},
|
||||
{
|
||||
text: 'My Delegations',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/wallet/transactions',
|
||||
name: 'mytransactions',
|
||||
component: () => import('@/views/WalletTransactions.vue'),
|
||||
meta: {
|
||||
pageTitle: 'Transaction History',
|
||||
breadcrumb: [
|
||||
{
|
||||
text: 'Wallet',
|
||||
},
|
||||
{
|
||||
text: 'Transaction History',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
// chain modules
|
||||
{
|
||||
path: '/:chain/',
|
||||
@@ -129,7 +175,7 @@ const router = new VueRouter({
|
||||
},
|
||||
{
|
||||
path: '/:chain/uptime/my',
|
||||
name: 'uptime',
|
||||
name: 'myuptime',
|
||||
component: () => import('@/views/UptimeMyValidators.vue'),
|
||||
meta: {
|
||||
pageTitle: 'Uptime',
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @LastEditors: dingyiming
|
||||
* @LastEditTime: 2021-11-20 15:33:07
|
||||
*/
|
||||
import { isTestnet } from '@/libs/data/data'
|
||||
import { isTestnet } from '@/libs/utils'
|
||||
|
||||
let chains = {}
|
||||
|
||||
|
||||