namillum
Version:
Bubble Protocol SDK
55 lines (50 loc) • 1.41 kB
text/typescript
import { mapState } from 'vuex';
import numeral from 'numeral';
import get from 'lodash/get';
import prettyMs from 'pretty-ms';
import domains from '@snapshot-labs/snapshot-spaces/spaces/domains.json';
import store from '@/store';
import config from '@/helpers/config';
import networks from '@/helpers/networks.json';
// @ts-ignore
const modules = Object.entries(store.state).map(module => module[0]);
const domainName = window.location.hostname;
export default {
data() {
return {
config
};
},
computed: {
...mapState(modules),
domain() {
return domains[domainName];
}
},
methods: {
_get(object, path, fb) {
return get(object, path, fb);
},
_ms(number) {
const diff = number * 1e3 - new Date().getTime();
return prettyMs(diff);
},
_numeral(number, format = '(0.[00]a)') {
return numeral(number).format(format);
},
_shorten(str: string, length = 6): string {
if (!str) {
return '';
}
const part0 = str.substr(0, length);
const part1 = str.substr(length * -1);
return `${part0}...${part1}`;
},
_ipfsUrl(ipfsHash: string): string {
return `https://${process.env.VUE_APP_IPFS_NODE}/ipfs/${ipfsHash}`;
},
_explorer(network, str: string, type = 'address'): string {
return `${networks[network].explorer}/${type}/${str}?network=${network}`;
}
}
};