Compare commits

..
2 Commits
Author SHA1 Message Date
ping 622e2ba449 Merge pull request #421 from uptSmart/testnet
add the testnet chain of uptick
2023-06-06 08:45:49 +08:00
uptSmart d075f04b8a add the testnet chain of origin 2023-06-05 07:57:26 +00:00
37 changed files with 447 additions and 891 deletions
+3 -5
View File
@@ -5,8 +5,7 @@
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"analyz": "vue-cli-service build --report"
"lint": "vue-cli-service lint"
},
"dependencies": {
"@casl/ability": "4.1.6",
@@ -19,6 +18,7 @@
"@cosmjs/math": "^0.26.5",
"@cosmjs/proto-signing": "^0.26.5",
"@cosmjs/stargate": "0.26.5",
"@cosmostation/cosmosjs": "^0.10.6",
"@intlify/vue-i18n-loader": "^2.1.2",
"@ledgerhq/hw-app-cosmos": "^6.3.0",
"@ledgerhq/hw-transport-web-ble": "^6.3.0",
@@ -92,13 +92,11 @@
"@vue/eslint-config-airbnb": "^5.3.0",
"@vuepress/plugin-medium-zoom": "^1.7.1",
"babel-eslint": "^10.0.3",
"compression-webpack-plugin": "6.1.1",
"eslint": "6.8.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-vue": "6.2.2",
"sass": "1.32.*",
"sass-loader": "^10.1.0",
"vue-template-compiler": "2.x",
"webpack-bundle-analyzer": "^4.5.0"
"vue-template-compiler": "2.x"
}
}
-9
View File
@@ -20,13 +20,4 @@ server {
root /usr/share/nginx/html;
}
gzip on;
gzip_proxied any;
gzip_static on;
gzip_min_length 1024;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

-24
View File
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="BACKGROUND" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#00D2FF;}
</style>
<path d="M369.3,459.5H142.7c-49.6,0-90.2-40.6-90.2-90.2V142.7c0-49.6,40.6-90.2,90.2-90.2h226.5c49.6,0,90.2,40.6,90.2,90.2v226.5
C459.5,418.9,418.9,459.5,369.3,459.5z"/>
<g id="Symbols">
<g id="Header-Singed-In-Final" transform="translate(-27.000000, -14.000000)">
<g id="ixo-logo" transform="translate(27.000000, 14.000000)">
<path id="Fill-2" class="st0" d="M361.3,305.8c-12.4,0-22.5-10.1-22.5-22.5s10.1-22.5,22.5-22.5c12.4,0,22.5,10.1,22.5,22.5
S373.7,305.8,361.3,305.8 M361.3,219.6c-35.2,0-63.7,28.5-63.7,63.7c0,35.2,28.5,63.7,63.7,63.7s63.7-28.5,63.7-63.7
C425,248.1,396.5,219.6,361.3,219.6"/>
<polygon id="Fill-4" class="st0" points="111,219.6 111,347 156.5,347 156.5,219.6 156.4,219.6 "/>
<polygon id="Fill-6" class="st0" points="229.3,251.4 197.5,219.6 165.6,219.6 165.6,251.4 197.5,283.3 165.6,315.2 165.6,347
197.5,347 229.3,315.2 261.2,347 261.2,347 261.2,347 293,347 293,315.2 261.2,283.3 293,251.4 293,219.6 261.2,219.6 "/>
<path id="Fill-8" class="st0" d="M133.8,210.5c-12.6,0-22.8-10.2-22.8-22.8c0-12.6,10.2-22.8,22.8-22.8s22.8,10.2,22.8,22.8
C156.5,200.3,146.3,210.5,133.8,210.5"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

+6 -4
View File
@@ -7,10 +7,12 @@
<component :is="layout">
<router-view />
</component>
</div>
</template>
<script>
// This will be populated in `beforeCreate` hook
import { $themeColors, $themeBreakpoints, $themeConfig } from '@themeConfig'
import { provideToast } from 'vue-toastification/composition'
@@ -27,17 +29,19 @@ const LayoutFull = () => import('@/layouts/full/LayoutFull.vue')
export default {
components: {
// Layouts
LayoutHorizontal,
LayoutVertical,
LayoutFull,
},
// ! We can move this computed: layout & contentLayoutType once we get to use Vue 3
// Currently, router.currentRoute is not reactive and doesn't trigger any change
computed: {
layout() {
if (!this.$route.name || this.$route.meta.layout === 'full') return 'layout-full'
if (this.$route.meta.layout === 'full') return 'layout-full'
return `layout-${this.contentLayoutType}`
},
contentLayoutType() {
@@ -58,9 +62,7 @@ export default {
// eslint-disable-next-line no-plusplus
for (let i = 0, len = breakpoints.length; i < len; i++) {
$themeBreakpoints[breakpoints[i]] = Number(
useCssVar(`--breakpoint-${breakpoints[i]}`, document.documentElement).value.slice(0, -2),
)
$themeBreakpoints[breakpoints[i]] = Number(useCssVar(`--breakpoint-${breakpoints[i]}`, document.documentElement).value.slice(0, -2))
}
// Set RTL
-2
View File
@@ -12,7 +12,6 @@
{
"chain_name": "cosmos",
"api": ["https://cosmos.api.ping.pub"],
"rpc": ["https://cosmos.rpc.ping.pub:443","http://your-host:26657"]
"sdk_version": "0.42.6",
"coin_type": "118",
"min_tx_fee": "800",
@@ -29,7 +28,6 @@
```
- **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: *`)
- **rpc** the rpc endpoint, make sure that the port is added.
- **assets** Native Assets on blockchain.
# Test
-22
View File
@@ -1,22 +0,0 @@
{
"chain_name": "agoric",
"api": ["https://api.agoric.sgtstake.com", "https://main.api.agoric.net"],
"sdk_version": "0.41.3",
"coin_type": "564",
"min_tx_fee": "8000",
"assets": [{
"base": "ubld",
"symbol": "BLD",
"exponent": "6",
"coingecko_id": "",
"logo": ""
},{
"base": "urun",
"symbol": "RUN",
"exponent": "6",
"coingecko_id": "",
"logo": ""
}],
"addr_prefix": "agoric",
"logo": "https://dl.airtable.com/.attachments/0628c47ad886794451954f517daf254e/adc8afff/Agoric-logo-color1.png"
}
-1
View File
@@ -1,7 +1,6 @@
{
"chain_name": "akash-network",
"api": ["https://akash.api.ping.pub"],
"rpc": ["http://rpc.akash.forbole.com:80", "http://akashsentry01.skynetvalidators.com:26657"],
"sdk_version": "0.41.3",
"coin_type": "118",
"min_tx_fee": "8000",
-17
View File
@@ -1,17 +0,0 @@
{
"chain_name": "celestia",
"coingecko": "",
"api": "https://celestia-api.skynetvalidators.com",
"sdk_version": "0.44.0",
"coin_type": "118",
"min_tx_fee": "800",
"addr_prefix": "celestia",
"logo": "https://explorer-images.s3.filebase.com/celestia-logo.png",
"assets": [{
"base": "celes",
"symbol": "CELES",
"exponent": "0",
"coingecko_id": "",
"logo": "https://explorer-images.s3.filebase.com/celestia-logo.png"
}]
}
-19
View File
@@ -1,19 +0,0 @@
{
"chain_name": "cerberus",
"coingecko": "",
"api": ["https://api.cerberus.zone:1317"],
"sdk_version": "0.44.5",
"coin_type": "118",
"min_tx_fee": "5000",
"addr_prefix": "cerberus",
"logo": "https://cerberus-chain.s3.us-east-2.amazonaws.com/main/logo.png",
"assets": [
{
"base": "ucrbrus",
"symbol": "CRBRUS",
"exponent": "6",
"coingecko_id": "",
"logo": "https://cerberus-chain.s3.us-east-2.amazonaws.com/main/logo.png"
}
]
}
@@ -1,6 +1,6 @@
{
"chain_name": "shentu",
"chain_name": "certik",
"api":"https://azuredragon.noopsbycertik.com",
"sdk_version": "0.42.9",
"coin_type": "118",
-23
View File
@@ -1,23 +0,0 @@
{
"chain_name": "chronic-token",
"coingecko": "",
"api": "https://chtd-api.skynetvalidators.com",
"sdk_version": "0.44.5",
"coin_type": "118",
"min_tx_fee": "800",
"addr_prefix": "chronic",
"logo": "https://explorer-images.s3.filebase.com/cht-logo.jpg",
"assets": [{
"base": "ucgas",
"symbol": "CGAS",
"exponent": "6",
"coingecko_id": "",
"logo": "https://explorer-images.s3.filebase.com/cht-logo.jpg"
},{
"base": "ucht",
"symbol": "CHT",
"exponent": "6",
"coingecko_id": "ion",
"logo": "https://explorer-images.s3.filebase.com/cht-logo.jpg"
}]
}
-16
View File
@@ -1,16 +0,0 @@
{
"chain_name": "cosmic-horizon",
"api": ["https://coho-api.skynetvalidators.com"],
"sdk_version": "0.44.5",
"coin_type": "118",
"min_tx_fee": "300",
"assets": [{
"base": "ucoho",
"symbol": "COHO",
"exponent": "6",
"coingecko_id": "",
"logo": "https://coho-images.s3.filebase.com/red_logo.png"
}],
"addr_prefix": "coho",
"logo": "https://coho-images.s3.filebase.com/red_logo.png"
}
+1 -2
View File
@@ -1,8 +1,7 @@
{
"chain_name": "cosmos",
"coingecko": "cosmos",
"api": ["https://cosmos.api.ping.pub", "https://lcd-cosmoshub.blockapsis.com"],
"rpc": ["http://cosmos.rpc.ping.pub:26657", "https://cosmoshub.validator.network:443"],
"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",
-17
View File
@@ -1,17 +0,0 @@
{
"chain_name": "DWS",
"coingecko": "",
"api": "https://dws-api.skynetvalidators.com",
"sdk_version": "0.44.3",
"coin_type": "118",
"min_tx_fee": "200",
"addr_prefix": "deweb",
"logo": "https://dws-images.s3.filebase.com/logo.png",
"assets": [{
"base": "udws",
"symbol": "DWS",
"exponent": "6",
"coingecko_id": "",
"logo": "https://dws-images.s3.filebase.com/logo.png"
}]
}
-16
View File
@@ -1,16 +0,0 @@
{
"chain_name": "fetchhub",
"api": ["https://rest-fetchhub.fetch.ai"],
"sdk_version": "0.45.1",
"coin_type": "118",
"min_tx_fee": "3000000000000000",
"addr_prefix": "fetch",
"logo": "https://ping.pub/logos/fetchhub.png",
"assets": [{
"base": "afet",
"symbol": "fet",
"exponent": "18",
"coingecko_id": "",
"logo": "https://ping.pub/logos/fetchhub.png"
}]
}
-1
View File
@@ -1,7 +1,6 @@
{
"chain_name": "iris-network",
"api": "https://iris.api.ping.pub",
"rpc": ["http://34.82.96.8:26657","http://34.77.68.145:26657"],
"sdk_version": "0.42.4",
"coin_type": "118",
"min_tx_fee": "40000",
-16
View File
@@ -1,16 +0,0 @@
{
"chain_name": "ixo",
"api": ["https://impacthub.ixo.world/rest", "https://proxies.sifchain.finance/api/impacthub-3/rest"],
"sdk_version": "0.42.6",
"coin_type": "118",
"min_tx_fee": "3000",
"addr_prefix": "ixo",
"logo": "https://ping.pub/logos/ixo.svg",
"assets": [{
"base": "uixo",
"symbol": "IXO",
"exponent": "6",
"coingecko_id": "ixo",
"logo": "https://ping.pub/logos/ixo.svg"
}]
}
-17
View File
@@ -1,17 +0,0 @@
{
"chain_name": "omniflix",
"coingecko": "",
"api": "https://omniflixhub-api.skynetvalidators.com",
"sdk_version": "0.45.1",
"coin_type": "118",
"min_tx_fee": "3000",
"addr_prefix": "omniflix",
"logo": "https://explorer-images.s3.filebase.com/omniflix-alpha-logo.png",
"assets": [{
"base": "uflix",
"symbol": "FLIX",
"exponent": "6",
"coingecko_id": "",
"logo": "https://explorer-images.s3.filebase.com/omniflix-alpha-logo.png"
}]
}
-22
View File
@@ -1,22 +0,0 @@
{
"chain_name": "sommelier",
"api": ["https://lcd-sommelier.keplr.app"],
"sdk_version": "0.44.5",
"coin_type": "118",
"min_tx_fee": "8000",
"addr_prefix": "somm",
"logo": "https://dl.airtable.com/.attachments/0f37f3aa77836b2db0ed217560264ff1/6f51315b/St07WEsb_400x400.png",
"assets": [{
"base": "usomm",
"symbol": "somm",
"exponent": "6",
"coingecko_id": "",
"logo": "https://dl.airtable.com/.attachments/0f37f3aa77836b2db0ed217560264ff1/6f51315b/St07WEsb_400x400.png"
},{
"base": "msomm",
"symbol": "somm",
"exponent": "3",
"coingecko_id": "",
"logo": "https://dl.airtable.com/.attachments/0f37f3aa77836b2db0ed217560264ff1/6f51315b/St07WEsb_400x400.png"
}]
}
+19
View File
@@ -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"
}
]
}
-1
View File
@@ -39,7 +39,6 @@
"blocks": "Blocks",
"blockchains": "Blockchains",
"uptime": "Uptime",
"statesync": "State Sync",
"trade": "Trade",
"gravity": "Gravity(WIP)",
+2 -2
View File
@@ -106,7 +106,7 @@
</b-button>
</template>
<!-- <b-dropdown-item
<b-dropdown-item
:to="{ name: 'portfolio' }"
class="d-none"
>
@@ -115,7 +115,7 @@
size="16"
/>
<span class="align-middle ml-50">Portofolio</span>
</b-dropdown-item> -->
</b-dropdown-item>
<b-dropdown-item :to="{ name: 'accounts' }">
<feather-icon
+2 -10
View File
@@ -156,16 +156,8 @@ export default class ChainFetch {
})
}
async getValidatorListByStatus(status) {
return this.get(`/cosmos/staking/v1beta1/validators?status=${status}&pagination.limit=500`).then(data => {
const result = commonProcess(data)
const vals = result.validators ? result.validators : result
return vals.map(i => new Validator().init(i))
})
}
async getValidatorListByHeight(height, offset) {
return this.get(`/cosmos/base/tendermint/v1beta1/validatorsets/${height}?pagination.limit=100&pagination.offset=${offset}`).then(data => commonProcess(data))
async getValidatorListByHeight(height) {
return this.get(`/validatorsets/${height}`).then(data => commonProcess(data))
}
async getStakingValidator(address) {
+1 -9
View File
@@ -91,18 +91,10 @@ export default class OsmosAPI {
async get(url) {
const chains = getLocalChains()
const conf = chains.osmosis
const index = this.getApiIndex(conf)
this.host = Array.isArray(conf.api) ? conf.api[index] : conf.api
this.host = chains.osmosis.api
return fetch(`${this.host}${url}`).then(res => res.json())
}
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 getMarketData(from, to, days = 14) {
if (from && to) {
this.exe_time = ''
-5
View File
@@ -28,11 +28,6 @@ const modules = [
title: 'uptime',
route: 'uptime',
},
{
scope: 'normal',
title: 'statesync',
route: 'statesync',
},
{
scope: 'cos-mos',
title: 'gravity',
+50 -14
View File
@@ -26,6 +26,34 @@ const router = new VueRouter({
],
},
},
{
path: '/wallet/setting',
name: 'setting',
component: () => import('@/views/WalletSetting.vue'),
meta: {
pageTitle: 'Setting',
breadcrumb: [
{
text: 'Setting',
active: true,
},
],
},
},
{
path: '/wallet/portfolio',
name: 'portfolio',
component: () => import('@/views/WalletPortfolio.vue'),
meta: {
pageTitle: 'Portfolio',
breadcrumb: [
{
text: 'Portfolio',
active: true,
},
],
},
},
{
path: '/coffee',
name: 'coffee',
@@ -69,6 +97,20 @@ const router = new VueRouter({
],
},
},
{
path: '/wallet/address',
name: 'addresses',
component: () => import('@/views/WalletAddressBook.vue'),
meta: {
pageTitle: 'Address Book',
breadcrumb: [
{
text: 'Address Book',
active: true,
},
],
},
},
{
path: '/wallet/delegations',
name: 'delegations',
@@ -117,20 +159,6 @@ const router = new VueRouter({
],
},
},
{
path: '/:chain/statesync',
name: 'statesync',
component: () => import('@/views/StateSync.vue'),
meta: {
pageTitle: 'State Sync',
breadcrumb: [
{
text: 'State Synchronization',
active: true,
},
],
},
},
{
path: '/:chain/uptime',
name: 'uptime',
@@ -331,6 +359,14 @@ const router = new VueRouter({
},
},
// common modules
{
path: '/user/login',
name: 'login',
component: () => import('@/views/Login.vue'),
meta: {
layout: 'full',
},
},
{
path: '/error/error-404',
name: 'error-404',
+28 -30
View File
@@ -40,7 +40,7 @@
<b-col
v-for="(data,index) in chains"
:key="index"
md="3"
md="4"
sm="6"
>
<router-link :to="data.chain_name">
@@ -48,36 +48,34 @@
v-if="data"
class="earnings-card text-left"
>
<div>
<b-card-title class="mb-1 text-uppercase">
{{ data.chain_name }} <small class="font-small-2">{{ data.sdk_version }}</small>
</b-card-title>
<div class="d-flex justify-content-between">
<div>
<div class="font-small-2">
Height
</div>
<h5 class="mb-1">
{{ data.height || '0' }}
</h5>
<b-row>
<b-col cols="8">
<b-card-title class="mb-1 text-uppercase">
{{ data.chain_name }} <small class="font-small-2">{{ data.sdk_version }}</small>
</b-card-title>
<div class="font-small-2">
Height
</div>
<div>
<b-avatar
:src="data.logo"
class="badge-minimal"
variant="light-primary"
rounded
size="md"
badge
:badge-variant="data.variant"
/>
</div>
</div>
<b-card-text class="text-muted font-small-2">
<span> Updated on </span><span class="font-weight-bolder">{{ data.time || '...' }}</span>
</b-card-text>
</div>
<h5 class="mb-1">
{{ data.height || '0' }}
</h5>
<b-card-text class="text-muted font-small-2">
<span> Updated on </span><span class="font-weight-bolder">{{ data.time || '...' }}</span>
</b-card-text>
</b-col>
<b-col
cols="4"
>
<b-avatar
:src="data.logo"
class="mt-1 badge-minimal"
variant="light-primary"
rounded
size="82"
badge
:badge-variant="data.variant"
/></b-col>
</b-row>
</b-card>
</router-link>
</b-col>
+5 -1
View File
@@ -219,6 +219,7 @@ import {
extractAccountNumberAndSequence,
formatToken, formatTokenDenom, getLocalAccounts, getLocalChains, getUnitAmount, setLocalTxHistory, sign, timeIn,
} from '@/libs/utils'
import { Cosmos } from '@cosmostation/cosmosjs'
import ToastificationContent from '@core/components/toastification/ToastificationContent.vue'
import WalletInputVue from './components/WalletInput.vue'
@@ -370,7 +371,10 @@ export default {
format(v) {
return formatToken(v, this.IBCDenom)
},
async sendCosmos() {
const cosmos = new Cosmos(this.selectedChain.api, this.chainId)
cosmos.getAccounts()
},
async send() {
const txMsgs = [
{
+63 -98
View File
@@ -93,24 +93,22 @@
no-body
>
<b-card-header class="d-flex justify-content-between">
<b-form-group class="mb-0">
<b-form-radio-group
id="btn-radios-1"
v-model="selectedStatus"
button-variant="outline-primary"
:options="statusOptions"
buttons
name="radios-btn-default"
@change="getValidatorListByStatus"
/>
</b-form-group>
<b-card-title class="d-none d-sm-block">
<small class="d-none d-md-block">
<b-badge variant="danger">
&nbsp;
</b-badge>
Top 33%
<b-badge variant="warning">
&nbsp;
</b-badge>
Top 67% of Voting Power
</small>
<b-card-title>
<span>Validators {{ validators.length }}/{{ stakingParameters.max_validators }} </span>
</b-card-title>
</b-card-header>
<b-card-body class="pl-0 pr-0 pb-0">
<b-card-body class="pl-0 pr-0">
<b-table
class="mb-0"
:items="list"
:fields="validator_fields"
:sort-desc="true"
@@ -197,18 +195,6 @@
</template>
</b-table>
</b-card-body>
<template #footer>
<small class="d-none d-md-block">
<b-badge variant="danger">
&nbsp;
</b-badge>
Top 33%
<b-badge variant="warning">
&nbsp;
</b-badge>
Top 67% of Voting Power
</small>
</template>
</b-card>
<operation-delegate-component :validator-address="validator_address" />
</div>
@@ -216,10 +202,10 @@
<script>
import {
BTable, BMedia, BAvatar, BBadge, BCard, BCardHeader, BCardTitle, VBTooltip, BCardBody, BButton, BFormRadioGroup, BFormGroup,
BTable, BMedia, BAvatar, BBadge, BCard, BCardHeader, BCardTitle, VBTooltip, BCardBody, BButton,
} from 'bootstrap-vue'
import {
percent, StakingParameters, formatToken,
Validator, percent, StakingParameters, formatToken,
} from '@/libs/utils'
import { keybase } from '@/libs/fetch'
// import { toHex } from '@cosmjs/encoding'
@@ -238,8 +224,6 @@ export default {
BCardBody,
BButton,
OperationDelegateComponent,
BFormRadioGroup,
BFormGroup,
},
directives: {
'b-tooltip': VBTooltip,
@@ -268,8 +252,8 @@ export default {
mintInflation: 0,
stakingPool: 1,
stakingParameters: new StakingParameters(),
validators: [],
delegations: [],
validators: [new Validator()],
delegations: [new Validator()],
changes: {},
validator_fields: [
{
@@ -304,11 +288,6 @@ export default {
thClass: 'text-right',
},
],
statusOptions: [
{ text: 'Active', value: ['BOND_STATUS_BONDED'] },
{ text: 'Inactive', value: ['BOND_STATUS_UNBONDED', 'BOND_STATUS_UNBONDING'] },
],
selectedStatus: ['BOND_STATUS_BONDED'],
}
},
computed: {
@@ -318,7 +297,7 @@ export default {
list() {
return this.validators.map(x => {
const xh = x
const change = this.changes[x.consensus_pubkey.key]
const change = this.changes[x.consensus_pubkey.value]
if (change) {
xh.changes = change.latest - change.previous
}
@@ -327,75 +306,61 @@ export default {
},
},
created() {
this.$http.getStakingPool().then(pool => {
this.stakingPool = pool.bondedToken
this.$http.getValidatorListByHeight('latest').then(data => {
let height = Number(data.block_height)
if (height > 14400) {
height -= 14400
} else {
height = 1
}
const changes = []
data.validators.forEach(x => {
changes[x.pub_key.value] = { latest: Number(x.voting_power), previous: 0 }
})
this.$http.getValidatorListByHeight(height).then(previous => {
previous.validators.forEach(x => {
if (changes[x.pub_key.value]) {
changes[x.pub_key.value].previous = Number(x.voting_power)
} else {
changes[x.pub_key.value] = { latest: 0, previous: Number(x.voting_power) }
}
})
this.$set(this, 'changes', changes)
})
})
this.getValidatorListByHeight()
this.$http.getStakingParameters().then(res => {
this.stakingParameters = res
})
this.getValidatorListByStatus(this.selectedStatus)
this.$http.getValidatorList().then(res => {
const identities = []
const temp = res
let total = 0
for (let i = 0; i < temp.length; i += 1) {
total += temp[i].tokens
const { identity } = temp[i].description
const url = this.$store.getters['chains/getAvatarById'](identity)
if (url) {
temp[i].avatar = url
} else if (identity && identity !== '') {
identities.push(identity)
}
}
this.stakingPool = total
this.validators = temp
// fetch avatar from keybase
let promise = Promise.resolve()
identities.forEach(item => {
promise = promise.then(() => new Promise(resolve => {
this.avatar(item, resolve)
}))
})
})
},
beforeDestroy() {
this.islive = false
},
methods: {
getValidatorListByHeight(offset = 0) {
this.$http.getValidatorListByHeight('latest', offset).then(data => {
let height = Number(data.block_height)
if (height > 14400) {
height -= 14400
} else {
height = 1
}
const { changes } = this
data.validators.forEach(x => {
changes[x.pub_key.key] = { latest: Number(x.voting_power), previous: 0 }
})
this.$http.getValidatorListByHeight(height, offset).then(previous => {
previous.validators.forEach(x => {
if (changes[x.pub_key.key]) {
changes[x.pub_key.key].previous = Number(x.voting_power)
} else {
changes[x.pub_key.key] = { latest: 0, previous: Number(x.voting_power) }
}
})
this.$set(this, 'changes', changes)
})
})
},
getValidatorListByStatus(statusList) {
this.validators = []
statusList.forEach(status => {
this.$http.getValidatorListByStatus(status).then(res => {
const identities = []
const temp = res
let total = 0
for (let i = 0; i < temp.length; i += 1) {
total += temp[i].tokens
const { identity } = temp[i].description
const url = this.$store.getters['chains/getAvatarById'](identity)
if (url) {
temp[i].avatar = url
} else if (identity && identity !== '') {
identities.push(identity)
}
}
if (total > 100) {
this.getValidatorListByHeight(100)
}
this.validators.push(...temp)
// fetch avatar from keybase
let promise = Promise.resolve()
identities.forEach(item => {
promise = promise.then(() => new Promise(resolve => {
this.avatar(item, resolve)
}))
})
})
})
},
selectValidator(da) {
this.validator_address = da
},
-169
View File
@@ -1,169 +0,0 @@
<template>
<div class="container-md">
<b-card>
<b-card-title>
Starting New Node From State Sync <b-badge variant="danger">
WIP
</b-badge>
</b-card-title>
<b class="mt-1">1. What's State Sync? </b><br>
The Tendermint Core 0.34 release includes support for state sync, which allows a new node to join a network by fetching a snapshot of the application state at a recent height instead of fetching and replaying all historical blocks. This can reduce the time needed to sync with the network from days to minutes.
Click <a href="https://blog.cosmos.network/cosmos-sdk-state-sync-guide-99e4cf43be2f">here</a> for more infomation.
<br><br>
<b class="mt-1">2. How to use it? </b><br>
We can configure Tendermint to use state sync in <code>$DAEMON_HOME/config/config.toml</code>, then start your daemon.
<ul class="mt-1">
<li
v-for="e in error"
:key="e"
class="text-danger"
>
{{ e }}
</li>
</ul>
<b-form-textarea
id="textarea-state"
v-model="state"
:state="valid"
readonly
placeholder="Loading..."
rows="7"
class="mt-1"
@change="check()"
/>
</b-card>
<b-card>
<b-card-title>
Enable Snapshot For State Sync
</b-card-title>
To make state sync works, We need at least 2 available RPC servers which enabled snapshot. You can configure in <code>$DAEMON_HOME/config/app.toml</code>,
and don't forget to share your snapshot server <a href="https://github.com/ping-pub/explorer/discussions">Here</a>
<b-form-textarea
id="snapshot"
v-model="snapshot"
readonly
rows="8"
class="mt-1"
/>
</b-card>
</div>
</template>
<script>
import {
BCard, BCardTitle, BFormTextarea, BBadge,
} from 'bootstrap-vue'
export default {
components: {
BBadge,
BCard,
BCardTitle,
BFormTextarea,
},
data() {
const { rpc } = this.$store.state.chains.selected
let servers = ''
if (rpc && Array.isArray(rpc)) {
servers = rpc.join(',')
}
return {
servers,
height: 0,
hash: '',
error: [],
state: '',
valid: false,
snapshot: `[state-sync]
# snapshot-interval specifies the block interval at which local state sync snapshots are
# taken (0 to disable). Must be a multiple of pruning-keep-every.
snapshot-interval = 1000
# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all). each snapshot is around 500MiB
snapshot-keep-recent = 2`,
}
},
// computed: {
// state: {
// get() {
// let servers = ''
// const { rpc } = this.$store.state.chains.selected
// if (rpc && Array.isArray(rpc)) {
// servers = rpc.join(',')
// }
// return `[statesync]
// enable = true
// rpc_servers = "${servers}"
// trust_height = ${this.height}
// trust_hash = "${this.hash}"
// trust_period = "168h" # 2/3 of unbonding time`
// },
// set(text) {
// console.log(text)
// // this.state = text
// },
// },
// },
created() {
const interval = 1000
this.$http.getLatestBlock().then(l => {
const { height } = l.block.header
if (height > interval) {
this.$http.getBlockByHeight(Math.trunc(height / interval) * interval).then(x => {
this.hash = x.block_id.hash
this.height = x.block.header.height
this.state = `[statesync]
enable = true
rpc_servers = "${this.servers}"
trust_height = ${this.height}
trust_hash = "${this.hash}"
trust_period = "168h" # 2/3 of unbonding time`
this.check()
})
}
})
},
methods: {
check() {
this.valid = true
this.error = []
this.state.split('\n').forEach(element => {
const v = this.kv(element)
if (v[0] === 'trust_height' && Number(v[1]) < 1) {
this.valid = false
this.error.push('Trust Height should be set.')
}
if (v[0] === 'trust_hash' && v[1].length < 10) {
this.valid = false
this.error.push('Trust Hash is invalid.')
}
if (v[0] === 'rpc_servers') {
if (v[1].indexOf(',') > 1) {
v[1].replace(/"/g, '').split(',').forEach(host => {
const re = /^(.)+:\d+$/g
if (!re.test(host)) {
this.valid = false
this.error.push(`"${host}" is not a valid host. Make sure that the port is added.`)
}
})
// valid = true
} else {
this.valid = false
this.error.push('No RPC serser is configured.')
}
}
})
return this.valid
},
kv(line) {
if (line && line.indexOf('=') > 0) {
const s = line.split('=')
return [s[0].trim(), s[1].trim()]
}
return []
},
},
}
</script>
+11 -42
View File
@@ -19,20 +19,10 @@
>
Browse favorite only
</b-button>
<b-input-group>
<b-input-group-prepend is-text>
<b-form-checkbox
v-model="missedFilter"
v-b-tooltip.hover
title="Only missed blocks"
name="viewMissed"
/>
</b-input-group-prepend>
<b-form-input
v-model="query"
placeholder="Keywords to filter validators"
/>
</b-input-group>
<b-form-input
v-model="query"
placeholder="Keywords to filter validators"
/>
</b-card>
<b-row>
<b-col
@@ -51,25 +41,12 @@
><span class="d-inline-block text-truncate font-weight-bold align-bottom">{{ index+1 }} {{ x.validator.moniker }}</span>
</b-form-checkbox>
<span
v-if="missing[x.address]"
v-if="missing[x.address] && missing[x.address].missed_blocks_counter > 0"
v-b-tooltip.hover.v-danger
:title="`missed blocks:${missing[x.address].missed_blocks_counter}`"
class="text-danger text-bolder"
>
<b-badge
v-if="missing[x.address].missed_blocks_counter > 0"
v-b-tooltip.hover.v-danger
variant="light-danger"
:title="`${missing[x.address].missed_blocks_counter} missed blocks`"
class="text-danger text-bolder"
>
{{ missing[x.address].missed_blocks_counter }}
</b-badge>
<b-badge
v-else
v-b-tooltip.hover.v-success
variant="light-success"
title="Perfect! No missed blocks"
>
0
</b-badge>
{{ missing[x.address].missed_blocks_counter }}
</span>
</div>
<div class="d-flex justify-content-between align-self-stretch flex-wrap">
@@ -95,7 +72,7 @@
<script>
import {
BRow, BCol, VBTooltip, BFormInput, BCard, BAlert, BFormCheckbox, BButton, BBadge, BInputGroup, BInputGroupPrepend,
BRow, BCol, VBTooltip, BFormInput, BCard, BAlert, BFormCheckbox, BButton,
} from 'bootstrap-vue'
import {
@@ -111,10 +88,7 @@ export default {
BCard,
BAlert,
BButton,
BBadge,
BFormCheckbox,
BInputGroup,
BInputGroupPrepend,
},
directives: {
'b-tooltip': VBTooltip,
@@ -123,7 +97,6 @@ export default {
const { chain } = this.$route.params
const pinned = localStorage.getItem('pinned') ? localStorage.getItem('pinned').split(',') : ''
return {
missedFilter: false,
pinned,
chain,
query: '',
@@ -138,14 +111,10 @@ export default {
uptime() {
const vals = this.query ? this.validators.filter(x => String(x.description.moniker).indexOf(this.query) > -1) : this.validators
vals.sort((a, b) => b.delegator_shares - a.delegator_shares)
const rets = vals.map(x => ({
return vals.map(x => ({
validator: x.description,
address: consensusPubkeyToHexAddress(x.consensus_pubkey),
}))
if (this.missedFilter) {
return rets.filter(x => this.missing[x.address].missed_blocks_counter > 0)
}
return rets
},
},
created() {
+6 -20
View File
@@ -33,25 +33,12 @@
<span class="d-inline-block text-truncate font-weight-bold align-bottom"> {{ x.validator.moniker }} </span>
</b-form-checkbox>
<span
v-if="missing[x.address]"
v-if="missing[x.address] && missing[x.address].missed_blocks_counter > 0"
v-b-tooltip.hover.v-danger
:title="`missed blocks:${missing[x.address].missed_blocks_counter}`"
class="text-danger text-bolder"
>
<b-badge
v-if="missing[x.address].missed_blocks_counter > 0"
v-b-tooltip.hover.v-danger
variant="light-danger"
:title="`${missing[x.address].missed_blocks_counter} missed blocks`"
class="text-danger text-bolder"
>
{{ missing[x.address].missed_blocks_counter }}
</b-badge>
<b-badge
v-else
v-b-tooltip.hover.v-success
variant="light-success"
title="Perfect! No missed blocks"
>
0
</b-badge>
{{ missing[x.address].missed_blocks_counter }}
</span>
</div>
<div class="d-flex justify-content-between align-self-stretch flex-wrap">
@@ -77,7 +64,7 @@
<script>
import {
BRow, BCol, VBTooltip, BCard, BAlert, BCardTitle, BFormCheckbox, BBadge,
BRow, BCol, VBTooltip, BCard, BAlert, BCardTitle, BFormCheckbox,
} from 'bootstrap-vue'
import {
@@ -88,7 +75,6 @@ import { Bech32, toHex } from '@cosmjs/encoding'
export default {
name: 'Blocks',
components: {
BBadge,
BRow,
BCol,
BCard,
+2 -2
View File
@@ -24,8 +24,8 @@
Note
</div>
<div class="alert-body">
There are two ways to monitor your validators:
<li> Pin a validator on Uptime pages.</li>
There are two ways to monitor your valdiators:
<li> Pin a validator on Uptime page.</li>
<li> Specify parameters like following: <pre>https://ping.pub/cosmos/uptime/my?validators={"sifchain":["FBADE9A30473BB9ED6DFA16BFB3838E028F33650"],"chain_name":["hexAddress"]}</pre></li>
</div>
</b-alert>
+42 -7
View File
@@ -73,19 +73,22 @@ export default {
return {
title: {
text: '',
left: '5%',
top: '3%',
},
legend: {
scroll: 'scroll',
right: '10%',
top: '3%',
data: assets,
textStyle: {
color: '#aaa',
},
top: 'top',
},
grid: { top: `${assets.length > 30 ? 30 : assets.length + 20}%` }, // */
xAxis: {
name: 'Qty',
nameLocation: 'center',
splitLine: {
lineStyle: {
type: 'dashed',
},
},
axisLabel: {
show: false,
formatter(param) {
@@ -102,9 +105,41 @@ export default {
return formatNumber(param, true, 0)
},
},
splitLine: {
lineStyle: {
type: 'dashed',
},
},
scale: true,
},
series,
// series: [
// {
// name: '',
// data: this.items.filter(x => x[1] > 0),
// type: 'scatter',
// symbolSize(data) {
// const r = Math.log10(data[2])
// return r * 5
// },
// emphasis: {
// focus: 'series',
// label: {
// show: true,
// formatter(param) {
// return `${param.data[3]}, ${formatNumber(param.data[2], true, 0)}`
// },
// position: 'top',
// },
// },
// itemStyle: {
// shadowBlur: 10,
// shadowColor: 'rgba(120, 36, 50, 0.5)',
// shadowOffsetY: 5,
// color: '#28c76f',
// },
// },
// ],
}
},
},
@@ -113,7 +148,7 @@ export default {
<style scoped>
.chart {
min-height: 300px;
height: 300px;
width: 100%;
}
</style>
-15
View File
@@ -1,8 +1,4 @@
const path = require('path')
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer')
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']
module.exports = {
publicPath: '/',
@@ -25,17 +21,6 @@ module.exports = {
'@axios': path.resolve(__dirname, 'src/libs/axios'),
},
},
plugins: [
new BundleAnalyzerPlugin({
analyzerMode: 'static',
openAnalyzer: false,
}),
new CompressionWebpackPlugin({
test: new RegExp(`\\.(${productionGzipExtensions.join('|')})$`),
threshold: 8192,
minRatio: 0.8,
}),
],
},
chainWebpack: config => {
config.module
+205 -232
View File
@@ -1068,10 +1068,22 @@
resolved "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.26.5.tgz"
integrity sha512-VB4Z7lEIXA36q0RON15KexzEosToUtdDyMv7UXSBHSl4mLG/fIZgBIpBEYsaPZ1kh43xyINeKQJiGCp2z5rI+g==
"@gar/promisify@^1.0.1":
version "1.1.3"
resolved "https://registry.npmmirror.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
"@cosmostation/cosmosjs@^0.10.6":
version "0.10.8"
resolved "https://registry.npmjs.org/@cosmostation/cosmosjs/-/cosmosjs-0.10.8.tgz"
integrity sha512-cR8ns+vlyB3i2mvNe5Ur3BHb/zuO3bPDmM4TfgOHSTJT5NtYbBXYiCcgeYto5tPJxKALmjwXXVwTZUy0C/u/aA==
dependencies:
ansi-regex "^5.0.1"
bech32 "^1.1.3"
bip32 "^2.0.5"
bip39 "^2.5.0"
bitcoinjs-lib "^4.0.2"
google-protobuf "^3.14.0"
lodash "^4.17.21"
node-fetch "^2.6.1"
protobufjs "^6.10.2"
request "^2.88.2"
secp256k1 "^3.8.0"
"@hapi/address@2.x.x":
version "2.1.4"
@@ -1299,22 +1311,6 @@
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz"
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
"@npmcli/fs@^1.0.0":
version "1.1.1"
resolved "https://registry.npmmirror.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257"
integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==
dependencies:
"@gar/promisify" "^1.0.1"
semver "^7.3.5"
"@npmcli/move-file@^1.0.1":
version "1.1.2"
resolved "https://registry.npmmirror.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
dependencies:
mkdirp "^1.0.4"
rimraf "^3.0.2"
"@nuxt/opencollective@^0.3.2":
version "0.3.2"
resolved "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.3.2.tgz"
@@ -1324,11 +1320,6 @@
consola "^2.15.0"
node-fetch "^2.6.1"
"@polka/url@^1.0.0-next.20":
version "1.0.0-next.21"
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==
"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
version "1.1.2"
resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz"
@@ -1484,6 +1475,11 @@
resolved "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz"
integrity sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==
"@types/node@10.12.18":
version "10.12.18"
resolved "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz"
integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==
"@types/node@11.11.6":
version "11.11.6"
resolved "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz"
@@ -2064,11 +2060,6 @@ acorn-walk@^7.1.1:
resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
acorn-walk@^8.0.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
@@ -2089,24 +2080,11 @@ acorn@^7.1.1, acorn@^7.4.0:
resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.0.4:
version "8.7.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
address@^1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz"
integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==
aggregate-error@^3.0.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
dependencies:
clean-stack "^2.0.0"
indent-string "^4.0.0"
ajv-errors@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz"
@@ -2174,6 +2152,11 @@ ansi-regex@^5.0.0:
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz"
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
@@ -2485,6 +2468,13 @@ balanced-match@^1.0.0:
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base-x@^3.0.2:
version "3.0.8"
resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz"
integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==
dependencies:
safe-buffer "^5.0.1"
base64-js@^1.0.2, base64-js@^1.3.0:
version "1.5.1"
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
@@ -2515,7 +2505,7 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
bech32@^1.1.4:
bech32@^1.1.2, bech32@^1.1.3, bech32@^1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz"
integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
@@ -2550,7 +2540,7 @@ binary-extensions@^2.0.0:
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
bindings@^1.5.0:
bindings@^1.3.0, bindings@^1.5.0:
version "1.5.0"
resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
@@ -2562,6 +2552,42 @@ bip32-path@^0.4.2:
resolved "https://registry.npmjs.org/bip32-path/-/bip32-path-0.4.2.tgz"
integrity sha1-XbBBataCJxLwd4NuJVe4aXwMfJk=
bip32@^1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/bip32/-/bip32-1.0.4.tgz"
integrity sha512-8T21eLWylZETolyqCPgia+MNp+kY37zFr7PTFDTPObHeNi9JlfG4qGIh8WzerIJidtwoK+NsWq2I5i66YfHoIw==
dependencies:
bs58check "^2.1.1"
create-hash "^1.2.0"
create-hmac "^1.1.7"
tiny-secp256k1 "^1.0.0"
typeforce "^1.11.5"
wif "^2.0.6"
bip32@^2.0.5:
version "2.0.6"
resolved "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz"
integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==
dependencies:
"@types/node" "10.12.18"
bs58check "^2.1.1"
create-hash "^1.2.0"
create-hmac "^1.1.7"
tiny-secp256k1 "^1.1.3"
typeforce "^1.11.5"
wif "^2.0.6"
bip39@^2.5.0:
version "2.6.0"
resolved "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz"
integrity sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==
dependencies:
create-hash "^1.1.0"
pbkdf2 "^3.0.9"
randombytes "^2.0.1"
safe-buffer "^5.0.1"
unorm "^1.3.3"
bip39@^3.0.2:
version "3.0.4"
resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz"
@@ -2572,6 +2598,39 @@ bip39@^3.0.2:
pbkdf2 "^3.0.9"
randombytes "^2.0.1"
bip66@^1.1.0, bip66@^1.1.5:
version "1.1.5"
resolved "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz"
integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=
dependencies:
safe-buffer "^5.0.1"
bitcoin-ops@^1.3.0, bitcoin-ops@^1.4.0:
version "1.4.1"
resolved "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz"
integrity sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==
bitcoinjs-lib@^4.0.2:
version "4.0.5"
resolved "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-4.0.5.tgz"
integrity sha512-gYs7K2hiY4Xb96J8AIF+Rx+hqbwjVlp5Zt6L6AnHOdzfe/2tODdmDxsEytnaxVCdhOUg0JnsGpl+KowBpGLxtA==
dependencies:
bech32 "^1.1.2"
bip32 "^1.0.4"
bip66 "^1.1.0"
bitcoin-ops "^1.4.0"
bs58check "^2.0.0"
create-hash "^1.1.0"
create-hmac "^1.1.3"
merkle-lib "^2.0.10"
pushdata-bitcoin "^1.0.1"
randombytes "^2.0.1"
safe-buffer "^5.1.1"
tiny-secp256k1 "^1.0.0"
typeforce "^1.11.3"
varuint-bitcoin "^1.0.4"
wif "^2.0.1"
bluebird@^3.1.1, bluebird@^3.5.5, bluebird@^3.7.2:
version "3.7.2"
resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"
@@ -2672,7 +2731,7 @@ brorand@^1.0.1, brorand@^1.1.0:
resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6:
version "1.2.0"
resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz"
integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
@@ -2744,6 +2803,22 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6:
escalade "^3.1.1"
node-releases "^1.1.71"
bs58@^4.0.0:
version "4.0.1"
resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz"
integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo=
dependencies:
base-x "^3.0.2"
bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.1.1:
version "2.1.2"
resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz"
integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==
dependencies:
bs58 "^4.0.0"
create-hash "^1.1.0"
safe-buffer "^5.1.2"
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
@@ -2809,30 +2884,6 @@ cacache@^12.0.2, cacache@^12.0.3:
unique-filename "^1.1.1"
y18n "^4.0.0"
cacache@^15.0.5:
version "15.3.0"
resolved "https://registry.npmmirror.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==
dependencies:
"@npmcli/fs" "^1.0.0"
"@npmcli/move-file" "^1.0.1"
chownr "^2.0.0"
fs-minipass "^2.0.0"
glob "^7.1.4"
infer-owner "^1.0.4"
lru-cache "^6.0.0"
minipass "^3.1.1"
minipass-collect "^1.0.2"
minipass-flush "^1.0.5"
minipass-pipeline "^1.2.2"
mkdirp "^1.0.3"
p-map "^4.0.0"
promise-inflight "^1.0.1"
rimraf "^3.0.2"
ssri "^8.0.1"
tar "^6.0.2"
unique-filename "^1.1.1"
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"
@@ -3036,11 +3087,6 @@ chownr@^1.1.1:
resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
chownr@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
chrome-trace-event@^1.0.2:
version "1.0.3"
resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz"
@@ -3076,11 +3122,6 @@ clean-css@4.2.x:
dependencies:
source-map "~0.6.0"
clean-stack@^2.0.0:
version "2.2.0"
resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
cleave.js@^1.4.7:
version "1.6.0"
resolved "https://registry.npmjs.org/cleave.js/-/cleave.js-1.6.0.tgz"
@@ -3256,11 +3297,6 @@ commander@^2.18.0, commander@^2.20.0:
resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
commander@~2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz"
@@ -3293,17 +3329,6 @@ compressible@~2.0.16:
dependencies:
mime-db ">= 1.43.0 < 2"
compression-webpack-plugin@6.1.1:
version "6.1.1"
resolved "https://registry.npmmirror.com/compression-webpack-plugin/-/compression-webpack-plugin-6.1.1.tgz#ae8e4b2ffdb7396bb776e66918d751a20d8ccf0e"
integrity sha512-BEHft9M6lwOqVIQFMS/YJGmeCYXVOakC5KzQk05TFpMBlODByh1qNsZCWjUBxCQhUP9x0WfGidxTbGkjbWO/TQ==
dependencies:
cacache "^15.0.5"
find-cache-dir "^3.3.1"
schema-utils "^3.0.0"
serialize-javascript "^5.0.1"
webpack-sources "^1.4.3"
compression@^1.7.4:
version "1.7.4"
resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz"
@@ -3488,7 +3513,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
ripemd160 "^2.0.1"
sha.js "^2.4.0"
create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
create-hmac@^1.1.0, create-hmac@^1.1.3, create-hmac@^1.1.4, create-hmac@^1.1.7:
version "1.1.7"
resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz"
integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
@@ -4019,7 +4044,16 @@ dotenv@^8.2.0:
resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz"
integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==
duplexer@^0.1.1, duplexer@^0.1.2:
drbg.js@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz"
integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=
dependencies:
browserify-aes "^1.0.6"
create-hash "^1.1.2"
create-hmac "^1.1.4"
duplexer@^0.1.1:
version "0.1.2"
resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz"
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
@@ -4070,7 +4104,7 @@ electron-to-chromium@^1.3.723:
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz"
integrity sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew==
elliptic@^6.5.3:
elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3:
version "6.5.4"
resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz"
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
@@ -4893,13 +4927,6 @@ fs-extra@^7.0.1:
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-minipass@^2.0.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
dependencies:
minipass "^3.0.0"
fs-write-stream-atomic@^1.0.8:
version "1.0.10"
resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz"
@@ -5083,6 +5110,11 @@ good-listener@^1.2.2:
dependencies:
delegate "^3.1.2"
google-protobuf@^3.14.0:
version "3.18.1"
resolved "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.18.1.tgz"
integrity sha512-cDqSamZ8rGs+pOzhIsBte7wpezUKg/sggeptDWN5odhnRY/eDLa5VWLeNeQvcfiqjS3yUwgM+6OePCJMB7aWZA==
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
version "4.2.6"
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz"
@@ -5096,13 +5128,6 @@ gzip-size@^5.0.0:
duplexer "^0.1.1"
pify "^4.0.1"
gzip-size@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
dependencies:
duplexer "^0.1.2"
hammerjs@^2.0.8:
version "2.0.8"
resolved "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz"
@@ -5489,17 +5514,12 @@ imurmurhash@^0.1.4:
resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
indent-string@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
indexes-of@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz"
integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
infer-owner@^1.0.3, infer-owner@^1.0.4:
infer-owner@^1.0.3:
version "1.0.4"
resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz"
integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
@@ -6493,6 +6513,11 @@ merge2@^1.2.3:
resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
merkle-lib@^2.0.10:
version "2.0.10"
resolved "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz"
integrity sha1-grjbrnXieneFOItz+ddyXQ9vMyY=
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
@@ -6597,34 +6622,6 @@ minimist@^1.2.0, minimist@^1.2.5:
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
minipass-collect@^1.0.2:
version "1.0.2"
resolved "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
dependencies:
minipass "^3.0.0"
minipass-flush@^1.0.5:
version "1.0.5"
resolved "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
dependencies:
minipass "^3.0.0"
minipass-pipeline@^1.2.2:
version "1.2.4"
resolved "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
dependencies:
minipass "^3.0.0"
minipass@^3.0.0:
version "3.1.6"
resolved "https://registry.npmmirror.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee"
integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==
dependencies:
yallist "^4.0.0"
minipass@^3.1.1:
version "3.1.3"
resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz"
@@ -6632,14 +6629,6 @@ minipass@^3.1.1:
dependencies:
yallist "^4.0.0"
minizlib@^2.1.1:
version "2.1.2"
resolved "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
dependencies:
minipass "^3.0.0"
yallist "^4.0.0"
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz"
@@ -6671,7 +6660,7 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1:
dependencies:
minimist "^1.2.5"
mkdirp@^1.0.3, mkdirp@^1.0.4:
mkdirp@^1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
@@ -6693,11 +6682,6 @@ move-concurrently@^1.0.1:
rimraf "^2.5.4"
run-queue "^1.0.3"
mrmime@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b"
integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
@@ -6745,7 +6729,7 @@ mz@^2.4.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
nan@^2.12.1:
nan@^2.12.1, nan@^2.13.2, nan@^2.14.0:
version "2.14.2"
resolved "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz"
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
@@ -7067,7 +7051,7 @@ open@^6.3.0:
dependencies:
is-wsl "^1.1.0"
opener@^1.5.1, opener@^1.5.2:
opener@^1.5.1:
version "1.5.2"
resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz"
integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
@@ -7170,13 +7154,6 @@ p-map@^2.0.0:
resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz"
integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
p-map@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
dependencies:
aggregate-error "^3.0.0"
p-retry@^3.0.1:
version "3.0.1"
resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz"
@@ -7888,7 +7865,7 @@ protobufjs-dbx@^7.0.0:
"@types/node" "^10.1.0"
long "^4.0.0"
protobufjs@^6.8.8, protobufjs@~6.10.2:
protobufjs@^6.10.2, protobufjs@^6.8.8, protobufjs@~6.10.2:
version "6.10.2"
resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz"
integrity sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==
@@ -8001,6 +7978,13 @@ punycode@^2.1.0, punycode@^2.1.1:
resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
pushdata-bitcoin@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz"
integrity sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=
dependencies:
bitcoin-ops "^1.3.0"
q@^1.1.2:
version "1.5.1"
resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz"
@@ -8372,13 +8356,6 @@ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
dependencies:
glob "^7.1.3"
rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
dependencies:
glob "^7.1.3"
ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2:
version "2.0.2"
resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz"
@@ -8489,6 +8466,20 @@ schema-utils@^3.0.0:
ajv "^6.12.5"
ajv-keywords "^3.5.2"
secp256k1@^3.8.0:
version "3.8.0"
resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz"
integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==
dependencies:
bindings "^1.5.0"
bip66 "^1.1.5"
bn.js "^4.11.8"
create-hash "^1.2.0"
drbg.js "^1.0.1"
elliptic "^6.5.2"
nan "^2.14.0"
safe-buffer "^5.1.2"
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz"
@@ -8554,13 +8545,6 @@ serialize-javascript@^4.0.0:
dependencies:
randombytes "^2.1.0"
serialize-javascript@^5.0.1:
version "5.0.1"
resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
dependencies:
randombytes "^2.1.0"
serve-index@^1.9.1:
version "1.9.1"
resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz"
@@ -8668,15 +8652,6 @@ simple-swizzle@^0.2.2:
dependencies:
is-arrayish "^0.3.1"
sirv@^1.0.7:
version "1.0.19"
resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49"
integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==
dependencies:
"@polka/url" "^1.0.0-next.20"
mrmime "^1.0.0"
totalist "^1.0.0"
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz"
@@ -9224,18 +9199,6 @@ tapable@^1.0.0, tapable@^1.1.3:
resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
tar@^6.0.2:
version "6.1.11"
resolved "https://registry.npmmirror.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
dependencies:
chownr "^2.0.0"
fs-minipass "^2.0.0"
minipass "^3.0.0"
minizlib "^2.1.1"
mkdirp "^1.0.3"
yallist "^4.0.0"
terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4:
version "1.4.5"
resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz"
@@ -9323,6 +9286,17 @@ tiny-emitter@^2.0.0:
resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz"
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
tiny-secp256k1@^1.0.0, tiny-secp256k1@^1.1.3:
version "1.1.6"
resolved "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz"
integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==
dependencies:
bindings "^1.3.0"
bn.js "^4.11.8"
create-hmac "^1.1.7"
elliptic "^6.4.0"
nan "^2.13.2"
tmp@0.0.31:
version "0.0.31"
resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz"
@@ -9389,11 +9363,6 @@ toposort@^1.0.0:
resolved "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz"
integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk=
totalist@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==
tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"
@@ -9501,6 +9470,11 @@ typedarray@^0.0.6:
resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typeforce@^1.11.3, typeforce@^1.11.5:
version "1.18.0"
resolved "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz"
integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==
uc.micro@^1.0.1, uc.micro@^1.0.5:
version "1.0.6"
resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz"
@@ -9591,6 +9565,11 @@ universalify@^0.1.0:
resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
unorm@^1.3.3:
version "1.6.0"
resolved "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz"
integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
@@ -9731,6 +9710,13 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
varuint-bitcoin@^1.0.4:
version "1.1.2"
resolved "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz"
integrity sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==
dependencies:
safe-buffer "^5.1.1"
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
@@ -10091,21 +10077,6 @@ webpack-bundle-analyzer@^3.8.0:
opener "^1.5.1"
ws "^6.0.0"
webpack-bundle-analyzer@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz#1b0eea2947e73528754a6f9af3e91b2b6e0f79d5"
integrity sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==
dependencies:
acorn "^8.0.4"
acorn-walk "^8.0.0"
chalk "^4.1.0"
commander "^7.2.0"
gzip-size "^6.0.0"
lodash "^4.17.20"
opener "^1.5.2"
sirv "^1.0.7"
ws "^7.3.1"
webpack-chain@^6.4.0:
version "6.5.1"
resolved "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz"
@@ -10179,7 +10150,7 @@ webpack-merge@^4.2.2:
dependencies:
lodash "^4.17.15"
webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
version "1.4.3"
resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz"
integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
@@ -10268,6 +10239,13 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
wif@^2.0.1, wif@^2.0.6:
version "2.0.6"
resolved "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz"
integrity sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=
dependencies:
bs58check "<3.0.0"
word-wrap@~1.2.3:
version "1.2.3"
resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
@@ -10331,11 +10309,6 @@ ws@^7:
resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz"
integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==
ws@^7.3.1:
version "7.5.7"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67"
integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
xmlcreate@^2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz"