diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
index 8ea1f7a..f39eff6 100644
--- a/.github/workflows/docker-image.yml
+++ b/.github/workflows/docker-image.yml
@@ -2,24 +2,24 @@ name: Docker Image CI
on:
push:
- branches:
+ branches:
- 'main'
-
+
jobs:
docker:
runs-on: ubuntu-latest
steps:
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v2
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
- - name: Login to Docker Hub
- uses: docker/login-action@v2
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
- - name: Build and push
- uses: docker/build-push-action@v4
- with:
- push: true
- tags: marsprotocol/interface:latest
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v2
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v2
+ - name: Login to Docker Hub
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+ - name: Build and push
+ uses: docker/build-push-action@v4
+ with:
+ push: true
+ tags: marsprotocol/interface:latest, marsprotocol/interface:${{ github.run_number }}
diff --git a/package.json b/package.json
index 2029ad1..324f1c9 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "mars",
"homepage": "./",
- "version": "1.3.0",
+ "version": "1.3.1",
"private": false,
"license": "SEE LICENSE IN LICENSE FILE",
"scripts": {
diff --git a/src/components/common/Footer/Footer.module.scss b/src/components/common/Footer/Footer.module.scss
index b39609e..3edf889 100644
--- a/src/components/common/Footer/Footer.module.scss
+++ b/src/components/common/Footer/Footer.module.scss
@@ -1,7 +1,7 @@
@import 'src/styles/master';
.footer {
- @include padding(8, 0, 24);
+ @include padding(8, 0, 20);
background-color: $backgroundFooter;
display: grid;
place-content: center;
@@ -88,11 +88,18 @@
}
}
}
+
+ .version {
+ @include padding(0, 0, 4);
+ p {
+ text-align: right;
+ }
+ }
}
@media only screen and (min-width: $bpMediumLow) {
.footer {
- @include padding(8, 0);
+ @include padding(8, 0, 0);
left: space(-4);
width: calc(100% + (8 * #{$spacingBase}px));
diff --git a/src/components/common/Footer/Footer.tsx b/src/components/common/Footer/Footer.tsx
index 88f6b34..8d3ad20 100644
--- a/src/components/common/Footer/Footer.tsx
+++ b/src/components/common/Footer/Footer.tsx
@@ -6,6 +6,7 @@ import { useTranslation } from 'react-i18next'
import useStore from 'store'
import { DocURL } from 'types/enums/docURL'
+import { version } from '../../../../package.json'
import styles from './Footer.module.scss'
export const Footer = () => {
@@ -209,6 +210,9 @@ export const Footer = () => {
+
+
Mars Protocol v{version}
+
)
diff --git a/src/components/fields/ActiveVaultsTable/ActiveVaultsTableMobile.tsx b/src/components/fields/ActiveVaultsTable/ActiveVaultsTableMobile.tsx
index 1b7acad..743589b 100644
--- a/src/components/fields/ActiveVaultsTable/ActiveVaultsTableMobile.tsx
+++ b/src/components/fields/ActiveVaultsTable/ActiveVaultsTableMobile.tsx
@@ -10,6 +10,7 @@ import {
import { Loading } from 'components/common'
import { VaultLogo, VaultName } from 'components/fields'
import { FIELDS_TUTORIAL_KEY } from 'constants/appConstants'
+import { getLiqBorrowValue, getMaxBorrowValue } from 'functions/fields'
import Link from 'next/link'
import { Trans, useTranslation } from 'react-i18next'
import useStore from 'store'
@@ -56,6 +57,8 @@ export const ActiveVaultsTableMobile = () => {
>
{activeVaults.map((vault, i) => {
+ const maxBorrowValue = getMaxBorrowValue(vault, vault.position)
+
const content = (
@@ -133,9 +136,9 @@ export const ActiveVaultsTableMobile = () => {
, get: GetState): VaultsS
const response = await fetch(networkConfig!.apolloAprUrl)
if (response.ok) {
- const data: AprResponse[] = await response.json()
+ const data: FlatApr[] | NestedApr[] = await response.json()
const newAprs = data.map((aprData) => {
- const aprTotal = aprData.apr.reduce((prev, curr) => Number(curr.value) + prev, 0)
- const feeTotal = aprData.fees.reduce((prev, curr) => Number(curr.value) + prev, 0)
+ try {
+ const apr = aprData as FlatApr
+ const aprTotal = apr.apr.reduce((prev, curr) => Number(curr.value) + prev, 0)
+ const feeTotal = apr.fees.reduce((prev, curr) => Number(curr.value) + prev, 0)
- const finalApr = aprTotal + feeTotal
+ const finalApr = aprTotal + feeTotal
- return { contractAddress: aprData.contract_address, apr: finalApr }
+ return { contractAddress: aprData.contract_address, apr: finalApr }
+ } catch {
+ const apr = aprData as NestedApr
+ const aprTotal = apr.apr.aprs.reduce((prev, curr) => Number(curr.value) + prev, 0)
+ const feeTotal = apr.apr.fees.reduce((prev, curr) => Number(curr.value) + prev, 0)
+
+ const finalApr = aprTotal + feeTotal
+ return { contractAddress: aprData.contract_address, apr: finalApr }
+ }
})
set({
diff --git a/src/types/interfaces/fields.d.ts b/src/types/interfaces/fields.d.ts
index 07c9370..f8781e2 100644
--- a/src/types/interfaces/fields.d.ts
+++ b/src/types/interfaces/fields.d.ts
@@ -100,12 +100,20 @@ interface AprData {
apr: number
}
-interface AprResponse {
+interface FlatApr {
contract_address: string
apr: { type: string; value: number | string }[]
fees: { type: string; value: number | string }[]
}
+interface NestedApr {
+ contract_address: string
+ apr: {
+ aprs: { type: string; value: number | string }[]
+ fees: { type: string; value: number | string }[]
+ }
+}
+
interface VaultCapData {
address: string
vaultCap: {