diff --git a/.github/workflows/allowlist-manual.yml b/.github/workflows/allowlist-manual.yml new file mode 100644 index 0000000000..c45c27fb24 --- /dev/null +++ b/.github/workflows/allowlist-manual.yml @@ -0,0 +1,38 @@ +name: Allowlist pool + +on: + workflow_dispatch: + inputs: + network: + type: choice + description: Network + required: true + options: + - mainnet + - polygon + - arbitrum + - gnosis-chain + poolType: + type: choice + description: Pool Type + required: true + options: + - Weighted + - Stable + poolId: + type: string + description: Pool ID + required: true + poolDescription: + type: string + description: Pool Description + required: false + +jobs: + allowlist-pool: + uses: ./.github/workflows/allowlist.yml + with: + network: ${{ github.event.inputs.network }} + poolType: ${{ github.event.inputs.poolType }} + poolId: ${{ github.event.inputs.poolId }} + poolDescription: ${{ github.event.inputs.poolDescription }} diff --git a/.github/workflows/allowlist-webhook.yml b/.github/workflows/allowlist-webhook.yml new file mode 100644 index 0000000000..55d218fbe2 --- /dev/null +++ b/.github/workflows/allowlist-webhook.yml @@ -0,0 +1,14 @@ +name: Allowlist Pool Webhook + +on: + repository_dispatch: + types: ['allowlist_pool'] + +jobs: + allowlist-pool: + uses: ./.github/workflows/allowlist.yml + with: + network: ${{ github.event.client_payload.network }} + poolType: ${{ github.event.client_payload.poolType }} + poolId: ${{ github.event.client_payload.poolId }} + poolDescription: ${{ github.event.client_payload.poolDescription }} \ No newline at end of file diff --git a/.github/workflows/allowlist.yml b/.github/workflows/allowlist.yml index 0e256d21d0..f660124c88 100644 --- a/.github/workflows/allowlist.yml +++ b/.github/workflows/allowlist.yml @@ -1,37 +1,24 @@ name: Allowlist pool on: - workflow_dispatch: + workflow_call: inputs: network: - type: choice - description: Network + type: string required: true - options: - - mainnet - - polygon - - arbitrum - - gnosis-chain poolType: - type: choice - description: Pool Type + type: string required: true - options: - - Weighted - - Stable poolId: type: string - description: Pool ID required: true poolDescription: type: string - description: Pool Description required: false jobs: allowlist-pool: runs-on: ubuntu-latest - steps: - name: Checkout repo uses: actions/checkout@v3 @@ -44,21 +31,21 @@ jobs: - name: Install deps run: npm install cac - name: Run allowlist script - run: npx vite-node ./src/lib/scripts/automatic-prs/allowlist-pool.ts --network ${{github.event.inputs.network}} --poolType ${{github.event.inputs.poolType}} --poolId \"${{github.event.inputs.poolId}}\" --poolDescription "${{github.event.inputs.poolDescription}}" + run: npx vite-node ./src/lib/scripts/automatic-prs/allowlist-pool.ts --network ${{inputs.network}} --poolType ${{inputs.poolType}} --poolId \"${{inputs.poolId}}\" --poolDescription "${{inputs.poolDescription}}" - name: Run eslint fix of updated config files run: npm run lint:fix:config - name: Create Pull Request uses: peter-evans/create-pull-request@v4 with: token: ${{ secrets.GITHUB_TOKEN }} - commit-message: 'chore: Update allowlist' + commit-message: 'chore: Add ${{inputs.poolDescription}} pool to ${{inputs.network}} allowlist' committer: GitHub author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> signoff: false - branch: update-allowlist + branch: update-allowlist-${{inputs.network}}-${{inputs.poolId}} base: master delete-branch: true - title: 'Update pool allowlist' + title: 'Allowlist ${{inputs.poolDescription}} pool' body: | This PR was autogenerated by the allowlist manual Github action. draft: false diff --git a/Dockerfile b/Dockerfile index 875c82c83e..1f2ca86dd6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ FROM dependencies AS build COPY . . RUN npm run build:docker -FROM nginx:1.23.3-alpine as release +FROM nginx:1.25.1-alpine as release COPY --from=build /app/dist /usr/share/nginx/html COPY --from=build /app/scripts/docker-init.sh / diff --git a/package-lock.json b/package-lock.json index 00bf530306..76b3d68afe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@balancer/frontend-v2", - "version": "1.107.3", + "version": "1.108.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@balancer/frontend-v2", - "version": "1.107.3", + "version": "1.108.8", "license": "MIT", "devDependencies": { "@aave/protocol-js": "^4.3.0", diff --git a/package.json b/package.json index a29746d9eb..f5623d86cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@balancer/frontend-v2", - "version": "1.107.3", + "version": "1.108.8", "engines": { "node": "=16", "npm": ">=8" diff --git a/public/data/hardcoded-gauges.json b/public/data/hardcoded-gauges.json index 03cc8c675d..dfefaa42fe 100644 --- a/public/data/hardcoded-gauges.json +++ b/public/data/hardcoded-gauges.json @@ -2,7 +2,7 @@ { "address": "0x145011e0C04805E11BEf23c1EEd848Faf49bB779", "network": 137, - "isKilled": true, + "isKilled": false, "addedTimestamp": 1663017781, "relativeWeightCap": "null", "pool": { diff --git a/src/assets/images/icons/protocols/0vix.svg b/src/assets/images/icons/protocols/0vix.svg new file mode 100644 index 0000000000..52b52d81cf --- /dev/null +++ b/src/assets/images/icons/protocols/0vix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/_global/BalActionSteps/BalActionSteps.vue b/src/components/_global/BalActionSteps/BalActionSteps.vue index 04ebb407c5..a4a9778403 100644 --- a/src/components/_global/BalActionSteps/BalActionSteps.vue +++ b/src/components/_global/BalActionSteps/BalActionSteps.vue @@ -213,9 +213,10 @@ function handleSignAction(state: TransactionActionState) { async function handleTransaction( tx: TransactionResponse, state: TransactionActionState, + // eslint-disable-next-line @typescript-eslint/no-unused-vars actionInfo: TransactionActionInfo ): Promise { - const { postActionValidation, actionInvalidReason } = actionInfo; + // const { postActionValidation, actionInvalidReason } = actionInfo; await txListener(tx, { onTxConfirmed: async (receipt: TransactionReceipt) => { @@ -229,21 +230,21 @@ async function handleTransaction( state.confirming = false; - const isValid = await postActionValidation?.(); - if (isValid || !postActionValidation) { - const confirmedAt = await getTxConfirmedAt(receipt); - state.confirmedAt = dateTimeLabelFor(confirmedAt); - state.confirmed = true; - if (currentActionIndex.value >= actions.value.length - 1) { - emit('success', { receipt, confirmedAt: state.confirmedAt }); - } else { - currentActionIndex.value += 1; - } + // const isValid = await postActionValidation?.(); + // if (isValid || !postActionValidation) { + const confirmedAt = await getTxConfirmedAt(receipt); + state.confirmedAt = dateTimeLabelFor(confirmedAt); + state.confirmed = true; + if (currentActionIndex.value >= actions.value.length - 1) { + emit('success', { receipt, confirmedAt: state.confirmedAt }); } else { - // post action validation failed, display reason. - if (actionInvalidReason) state.error = actionInvalidReason; - state.init = false; + currentActionIndex.value += 1; } + // } else { + // // post action validation failed, display reason. + // if (actionInvalidReason) state.error = actionInvalidReason; + // state.init = false; + // } }, onTxFailed: () => { state.confirming = false; diff --git a/src/components/contextual/pages/pool/PoolMigrationCard/PoolMigrationCard.vue b/src/components/contextual/pages/pool/PoolMigrationCard/PoolMigrationCard.vue index 2603d4a7de..78303b75cf 100644 --- a/src/components/contextual/pages/pool/PoolMigrationCard/PoolMigrationCard.vue +++ b/src/components/contextual/pages/pool/PoolMigrationCard/PoolMigrationCard.vue @@ -3,6 +3,7 @@ import useNetwork from '@/composables/useNetwork'; import { deprecatedDetails, gaugeMigrationDetails, + newVersionDetails, } from '@/composables/usePoolHelpers'; import NewPoolData from './NewPoolData.vue'; import usePoolsQuery from '@/composables/queries/usePoolsQuery'; @@ -29,7 +30,10 @@ const { networkSlug } = useNetwork(); const { t } = useI18n(); const migrationInfo = computed( - () => deprecatedDetails(props.poolId) || gaugeMigrationDetails(props.poolId) + () => + deprecatedDetails(props.poolId) || + gaugeMigrationDetails(props.poolId) || + newVersionDetails(props.poolId) ); const newPoolQueryEnabled = computed( @@ -92,6 +96,15 @@ const description = computed(() => { return t('migrateCard.description'); }); + +const title = computed(() => { + const cardTitle = migrationInfo.value?.title; + if (cardTitle) { + return t(cardTitle); + } + + return t('migrateCard.title'); +});