forked from cerc-io/cosmos-explorer
improve wasm contract
This commit is contained in:
parent
7958877354
commit
a56271f370
@ -56,7 +56,7 @@ function showInfo(address: string) {
|
|||||||
</h2>
|
</h2>
|
||||||
<div class="overflow-x-auto">
|
<div class="overflow-x-auto">
|
||||||
<table class="table table-compact w-full mt-4">
|
<table class="table table-compact w-full mt-4">
|
||||||
<thead>
|
<thead class="bg-base-200">
|
||||||
<tr>
|
<tr>
|
||||||
<th style="position: relative; z-index: 2">{{ $t('cosmwasm.contract_list') }}</th>
|
<th style="position: relative; z-index: 2">{{ $t('cosmwasm.contract_list') }}</th>
|
||||||
<th>{{ $t('account.action') }}</th>
|
<th>{{ $t('account.action') }}</th>
|
||||||
|
@ -36,6 +36,20 @@ const balances = ref({} as PaginatedBalances)
|
|||||||
|
|
||||||
const contractAddress = String(route.query.contract)
|
const contractAddress = String(route.query.contract)
|
||||||
|
|
||||||
|
const history = JSON.parse(localStorage.getItem("contract_history") || "{}")
|
||||||
|
|
||||||
|
if(history[chainStore.chainName]) {
|
||||||
|
if(!history[chainStore.chainName].includes(contractAddress)) {
|
||||||
|
history[chainStore.chainName].push(contractAddress)
|
||||||
|
if(history[chainStore.chainName].length > 10) {
|
||||||
|
history[chainStore.chainName].shift()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
history[chainStore.chainName] = [contractAddress]
|
||||||
|
}
|
||||||
|
localStorage.setItem("contract_history", JSON.stringify(history))
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const address = contractAddress
|
const address = contractAddress
|
||||||
wasmStore.wasmClient.getWasmContracts(address).then((x) => {
|
wasmStore.wasmClient.getWasmContracts(address).then((x) => {
|
||||||
@ -137,7 +151,7 @@ const result = ref({});
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-center mb-4">
|
<div class="text-center mb-4">
|
||||||
<RouterLink to="contracts"><span class="btn btn-xs text-xs mr-2"> Back </span> </RouterLink>
|
<RouterLink :to="`../${info.code_id}/contracts`"><span class="btn btn-xs text-xs mr-2"> Back </span> </RouterLink>
|
||||||
<label @click="showFunds()" for="modal-contract-funds" class="btn btn-primary btn-xs text-xs mr-2">{{
|
<label @click="showFunds()" for="modal-contract-funds" class="btn btn-primary btn-xs text-xs mr-2">{{
|
||||||
$t('cosmwasm.btn_funds') }}</label>
|
$t('cosmwasm.btn_funds') }}</label>
|
||||||
<label class="btn btn-primary btn-xs text-xs mr-2" for="modal-contract-states" @click="showState()">
|
<label class="btn btn-primary btn-xs text-xs mr-2" for="modal-contract-states" @click="showState()">
|
||||||
@ -169,9 +183,9 @@ const result = ref({});
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-base-100 px-4 pt-3 pb-4 rounded mb-4 shadow">
|
<div class="bg-base-100 px-4 pt-3 pb-4 rounded mb-4 shadow">
|
||||||
<h2 class="card-title truncate w-full mt-4">Transactions</h2>
|
<h2 class="card-title truncate w-full mt-4 mb-2">Transactions</h2>
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead class=" bg-base-200">
|
||||||
<tr>
|
<tr>
|
||||||
<td> {{ $t('ibc.height') }}</td>
|
<td> {{ $t('ibc.height') }}</td>
|
||||||
<td>{{ $t('ibc.txhash') }}</td>
|
<td>{{ $t('ibc.txhash') }}</td>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useBlockchain, useFormatter, useTxDialog } from '@/stores';
|
import { useBlockchain, useFormatter, useTxDialog } from '@/stores';
|
||||||
import { useWasmStore } from './WasmStore';
|
import { useWasmStore } from './WasmStore';
|
||||||
import { ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
import type { PaginabledCodeInfos } from './types';
|
import type { PaginabledCodeInfos } from './types';
|
||||||
import { PageRequest } from '@/types';
|
import { PageRequest } from '@/types';
|
||||||
import PaginationBar from '@/components/PaginationBar.vue';
|
import PaginationBar from '@/components/PaginationBar.vue';
|
||||||
@ -15,6 +15,8 @@ const pageRequest = ref(new PageRequest())
|
|||||||
const wasmStore = useWasmStore();
|
const wasmStore = useWasmStore();
|
||||||
const dialog = useTxDialog()
|
const dialog = useTxDialog()
|
||||||
const creator = ref("")
|
const creator = ref("")
|
||||||
|
const field = ref("contract")
|
||||||
|
const history = ref([])
|
||||||
|
|
||||||
function pageload(pageNum: number) {
|
function pageload(pageNum: number) {
|
||||||
pageRequest.value.setPage(pageNum)
|
pageRequest.value.setPage(pageNum)
|
||||||
@ -24,21 +26,42 @@ function pageload(pageNum: number) {
|
|||||||
}
|
}
|
||||||
pageload(1)
|
pageload(1)
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
const historyStore = JSON.parse(localStorage.getItem("contract_history") || "{}")
|
||||||
|
history.value = historyStore[props.chain] || []
|
||||||
|
})
|
||||||
|
|
||||||
function myContracts() {
|
function myContracts() {
|
||||||
router.push(`/${props.chain}/cosmwasm/${creator.value}/contracts`)
|
if(field.value === "contract")
|
||||||
|
router.push(`/${props.chain}/cosmwasm/0/transactions?contract=${creator.value}`)
|
||||||
|
else if(field.value === "creator")
|
||||||
|
router.push(`/${props.chain}/cosmwasm/${creator.value}/contracts`)
|
||||||
|
}
|
||||||
|
const togo = ref("")
|
||||||
|
function gotoHistory() {
|
||||||
|
router.push(`/${props.chain}/cosmwasm/0/transactions?contract=${togo.value}`)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="bg-base-100 px-4 pt-3 pb-4 rounded mb-4 shadow">
|
<div class="bg-base-100 px-4 pt-3 pb-4 rounded mb-4 shadow">
|
||||||
<h2 class="card-title truncate w-full">{{ $t('cosmwasm.title') }}</h2>
|
<h2 class="card-title truncate w-full mb-4">{{ $t('cosmwasm.title') }}</h2>
|
||||||
|
<div class="grid grid-flow-col auto-cols-max gap-4 overflow-hidden">
|
||||||
<div class="join border border-primary">
|
<div class="join w-full border border-primary">
|
||||||
<input v-model="creator" type=text class="input input-bordered w-40 join-item" placeholder="creator address" />
|
<select v-model="field" class="select select-primary"><option value="contract">Contract</option><option value="creator">Creator</option></select>
|
||||||
<button class="join-item btn btn-primary" @click="myContracts()">{{ $t('cosmwasm.btn_query') }}</button>
|
<input v-model="creator" type=text class="input input-bordered w-full join-item" placeholder="address" />
|
||||||
|
<button class="join-item btn btn-primary" @click="myContracts()">{{ $t('cosmwasm.btn_query') }}</button>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<select v-model="togo" class="select select-primary" @change="gotoHistory()">
|
||||||
|
<option value="">History</option>
|
||||||
|
<option v-for="(v, index) in history" :key="index" :value="v" >...{{ String(v).substring(45) }}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="overflow-x-auto">
|
<div class="overflow-x-auto">
|
||||||
<table class="table table-compact w-full mt-4 text-sm">
|
<table class="table table-compact w-full mt-4 text-sm">
|
||||||
<thead>
|
<thead class=" bg-base-200">
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{ $t('cosmwasm.code_id') }}</th>
|
<th>{{ $t('cosmwasm.code_id') }}</th>
|
||||||
<th>{{ $t('cosmwasm.code_hash') }}</th>
|
<th>{{ $t('cosmwasm.code_hash') }}</th>
|
||||||
|
Loading…
Reference in New Issue
Block a user