Skip to content

Commit 685bb6a

Browse files
author
Antoine de Chevigné
committed
Merge branch 'develop' into custom-links
2 parents 274572d + 1e5c647 commit 685bb6a

14 files changed

+101
-472
lines changed

CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [4.0.11] - 2025-01-21
8+
### Fixed
9+
- Transaction list debouncing
10+
11+
## [4.0.10] - 2025-01-21
12+
### Fixed
13+
- Token symbol display
14+
715
## [4.0.9] - 2025-01-20
816
### Fixed
917
- Added skeleton loader on overview page stats

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Additional Use Grant: You may make use of the Licensed Work, provided that you d
1717
debugging or block exploring features of the
1818
Licensed Work.
1919

20-
Change Date: 2030-01-20
20+
Change Date: 2030-01-21
2121

2222
Change License: Apache License, Version 2.0
2323

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ethernal",
3-
"version": "4.0.9",
3+
"version": "4.0.11",
44
"private": true,
55
"scripts": {
66
"serve": "vite",

src/components/ExplorerAnalytics.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
</v-col>
1515

1616
<v-col cols="12" md="6">
17-
<Line-Chart :title="'ERC20 Transfer Volume'" :xLabels="charts['erc20TransferVolume'].xLabels" :data="charts['erc20TransferVolume'].data" :tooltipUnit="'transfers'" :index="1" />
17+
<Line-Chart :title="'ERC20 Transfer Volume'" :xLabels="charts['erc20TransferVolume'].xLabels" :data="charts['erc20TransferVolume'].data" :tooltipUnit="'transfer'" :index="1" />
1818
</v-col>
1919

2020
<v-col cols="12" md="6">

src/components/Settings.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ export default {
222222
223223
this.settings = {
224224
workspaceId: this.currentWorkspaceStore.id,
225-
chain: this.currentWorkspaceStore.chain.slug,
225+
chain: this.currentWorkspaceStore.chainSlug || 'ethereum',
226226
defaultAccount: this.currentWorkspaceStore.defaultAccount,
227227
gasLimit: this.currentWorkspaceStore.gasLimit,
228228
gasPrice: this.currentWorkspaceStore.gasPrice,

src/components/TransactionsList.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ export default {
175175
this.loading = true;
176176
if (!this.lastUpdatedAt)
177177
this.lastUpdatedAt = Date.now();
178-
else if (this.lastUpdatedAt - DEBOUNCING_DELAY < Date.now() && !this.debounced && page == this.currentOptions.page) {
178+
else if (this.lastUpdatedAt - DEBOUNCING_DELAY < Date.now() && !this.debounced && page == this.currentOptions.page && itemsPerPage == this.currentOptions.itemsPerPage && sortBy == this.currentOptions.sortBy) {
179179
this.debounced = true;
180180
return setTimeout(() => {
181181
this.debounced = false;

src/stores/currentWorkspace.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ export const useCurrentWorkspaceStore = defineStore('currentWorkspace', {
121121

122122
getters: {
123123
chain(state) {
124-
return this.explorer || useEnvStore().chains[state.chainSlug || 'ethereum'];
124+
const hasExplorer = useExplorerStore().id;
125+
return hasExplorer ? useExplorerStore() : useEnvStore().chains[state.chainSlug || 'ethereum'];
125126
}
126127
}
127128
});

tests/unit/components/Contracts.spec.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ describe('Contracts.vue', () => {
3232
vi.spyOn(server, 'getContracts')
3333
.mockResolvedValue({ data: { items: [], total: 0 }});
3434

35-
const wrapper = mount(Contracts);
35+
const wrapper = mount(Contracts, {
36+
global: {
37+
stubs: ['Hash-Link', 'Import-Contract-Modal', 'Remove-Contract-Confirmation-Modal']
38+
}
39+
});
3640
await new Promise(process.nextTick);
3741

3842
expect(wrapper.html()).toMatchSnapshot();
@@ -48,7 +52,7 @@ describe('Contracts.vue', () => {
4852

4953
const wrapper = mount(Contracts, {
5054
global: {
51-
stubs: ['Hash-Link'],
55+
stubs: ['Hash-Link', 'Import-Contract-Modal', 'Remove-Contract-Confirmation-Modal'],
5256
plugins: [createTestingPinia({ initialState: { user: { plan: 'free' }, env: { isAdmin: true } } })]
5357
}
5458
});
@@ -67,7 +71,7 @@ describe('Contracts.vue', () => {
6771

6872
const wrapper = mount(Contracts, {
6973
global: {
70-
stubs: ['Hash-Link'],
74+
stubs: ['Hash-Link', 'Import-Contract-Modal', 'Remove-Contract-Confirmation-Modal'],
7175
plugins: [createTestingPinia({ initialState: { user: { plan: 'premium' }, env: { isAdmin: true } } })]
7276
}
7377
});
@@ -86,7 +90,7 @@ describe('Contracts.vue', () => {
8690

8791
const wrapper = mount(Contracts, {
8892
global: {
89-
stubs: ['Hash-Link'],
93+
stubs: ['Hash-Link', 'Import-Contract-Modal', 'Remove-Contract-Confirmation-Modal'],
9094
plugins: [createTestingPinia({
9195
initialState: {
9296
user: { plan: 'free' },

tests/unit/components/ImportContractModal.spec.js

+28-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,16 @@ import ImportContractModal from '@/components/ImportContractModal.vue';
22

33
describe('ImportContractModal.vue', () => {
44
it('Should let the user import a verified mainnet contract', async () => {
5-
const wrapper = mount(ImportContractModal);
5+
const wrapper = mount(ImportContractModal, {
6+
global: {
7+
plugins: [createTestingPinia({
8+
initialState: {
9+
currentWorkspace: { chain: { scanner: 'etherscan', name: 'Ethereum' } },
10+
explorer: {}
11+
}
12+
})]
13+
}
14+
});
615
const importContractMock = vi.spyOn(server, 'importContract');
716
await wrapper.setData({ dialog: true, options: { contractsCount: 1 } });
817

@@ -19,7 +28,15 @@ describe('ImportContractModal.vue', () => {
1928
vi.spyOn(server, 'importContract')
2029
.mockResolvedValue({ data: { success: true, contractIsVerified: false }});
2130

22-
const wrapper = mount(ImportContractModal);
31+
const wrapper = mount(ImportContractModal, {
32+
global: {
33+
plugins: [createTestingPinia({
34+
initialState: {
35+
currentWorkspace: { chain: { scanner: 'etherscan', name: 'Ethereum' } }
36+
}
37+
})]
38+
}
39+
});
2340
const importContractMock = vi.spyOn(server, 'importContract');
2441
await wrapper.setData({ dialog: true, options: { contractsCount: 1 } });
2542

@@ -48,7 +65,13 @@ describe('ImportContractModal.vue', () => {
4865
global: {
4966
plugins: [createTestingPinia({
5067
initialState: {
51-
user: { plan: 'premium' }
68+
user: { plan: 'premium' },
69+
currentWorkspace: {
70+
chain: {
71+
scanner: 'etherscan',
72+
name: 'Ethereum'
73+
}
74+
}
5275
}
5376
})]
5477
},
@@ -68,7 +91,8 @@ describe('ImportContractModal.vue', () => {
6891
plugins: [createTestingPinia({
6992
initialState: {
7093
user: { plan: 'free' },
71-
currentWorkspace: { public: true }
94+
currentWorkspace: { public: true },
95+
explorer: { token: 'ETH' }
7296
}
7397
})]
7498
}

tests/unit/components/Settings.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ describe('Settings.vue', () => {
7070
stubs: ['Workspace-List', 'Billing', 'Account'],
7171
plugins: [createTestingPinia({
7272
initialState: {
73-
currentWorkspace: { id: 1, name: 'Hardhat', rpcServer: 'http://localhost:8545', defaultAccount: '0x123' }
73+
currentWorkspace: { id: 1, name: 'Hardhat', chain: 'ethereum', rpcServer: 'http://localhost:8545', defaultAccount: '0x123' }
7474
}
7575
})],
7676
mocks: {

tests/unit/components/Transaction.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ describe('Transaction.vue', () => {
150150
stubs,
151151
plugins: [createTestingPinia({
152152
initialState: {
153-
explorer: { id: 1 }
153+
explorer: { id: 1, token: 'ETL' }
154154
}
155155
})]
156156
}

0 commit comments

Comments
 (0)