diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml
index 2f1e656..01517f7 100644
--- a/.github/workflows/build_and_test.yml
+++ b/.github/workflows/build_and_test.yml
@@ -22,7 +22,7 @@ jobs:
node-version-file: '.nvmrc'
cache: 'yarn'
- - run: yarn install --frozen-lockfile
+ - run: yarn install --frozen-lockfile --ignore-engines
- run: yarn ${{ matrix.step }}
deploy-to-github:
@@ -40,7 +40,7 @@ jobs:
- name: Install and Build 🔧
run: |
- yarn install --frozen-lockfile
+ yarn install --frozen-lockfile --ignore-engines
yarn build
env:
# FOR BUILD
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index ff21076..ee87271 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -13,7 +13,7 @@ jobs:
]
steps:
- uses: actions/checkout@v3
- - run: yarn install --frozen-lockfile
+ - run: yarn install --frozen-lockfile --ignore-engines
- run: yarn ${{ matrix.step }}
deploy-to-firebase:
@@ -29,7 +29,7 @@ jobs:
cache: 'yarn'
- name: Install and Build 🔧
run: |
- yarn install --frozen-lockfile
+ yarn install --frozen-lockfile --ignore-engines
yarn build
env:
# FOR BUILD
diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml
index aa86abc..2211d23 100644
--- a/.github/workflows/production.yml
+++ b/.github/workflows/production.yml
@@ -20,7 +20,7 @@ jobs:
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- - run: yarn install --frozen-lockfile
+ - run: yarn install --frozen-lockfile --ignore-engines
- run: yarn ${{ matrix.step }}
deploy-to-firebase:
@@ -37,7 +37,7 @@ jobs:
- name: Install and Build 🔧
run: |
- yarn install --frozen-lockfile
+ yarn install --frozen-lockfile --ignore-engines
yarn build
env:
# FOR BUILD
@@ -74,7 +74,7 @@ jobs:
- name: Install, Build, and Deploy 🔧
run: |
- yarn install --frozen-lockfile
+ yarn install --frozen-lockfile --ignore-engines
yarn deploy
env:
# FOR BUILD
diff --git a/package.json b/package.json
index 1296655..ddf83d1 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,7 @@
"deploy": "yarn build && permaweb-deploy --ant-process ${DEPLOY_ANT_PROCESS_ID}"
},
"dependencies": {
- "@ar.io/sdk": "2.0.2",
+ "@ar.io/sdk": "2.1.0-alpha.6",
"@fontsource/rubik": "^5.0.19",
"@headlessui/react": "^1.7.19",
"@radix-ui/react-tooltip": "^1.0.7",
diff --git a/src/components/Tooltip.tsx b/src/components/Tooltip.tsx
index 319bdfc..c8cc0d2 100644
--- a/src/components/Tooltip.tsx
+++ b/src/components/Tooltip.tsx
@@ -23,7 +23,7 @@ const Tooltip = ({
{/* */}
{message}
diff --git a/src/components/modals/StakingModal.tsx b/src/components/modals/StakingModal.tsx
index 9fc789a..7cc9f43 100644
--- a/src/components/modals/StakingModal.tsx
+++ b/src/components/modals/StakingModal.tsx
@@ -54,7 +54,7 @@ const DisplayRow = ({
{value}
) : (
-
+
{value}
{rightIcon}
diff --git a/src/pages/Gateway/index.tsx b/src/pages/Gateway/index.tsx
index cceec3b..9ac5ef1 100644
--- a/src/pages/Gateway/index.tsx
+++ b/src/pages/Gateway/index.tsx
@@ -104,6 +104,15 @@ const Gateway = () => {
? new mIOToken(gateway.operatorStake).toIO().valueOf() + (balances?.io || 0)
: undefined;
+ const weightFields: Array<[string, number | undefined]> = [
+ ['Stake', gateway?.weights?.stakeWeight],
+ ['Tenure', gateway?.weights?.tenureWeight],
+ ['Gateway Reward Ratio', gateway?.weights?.gatewayRewardRatioWeight],
+ ['Observer Reward Ratio', gateway?.weights?.observerRewardRatioWeight],
+ ['Composite', gateway?.weights?.compositeWeight],
+ ['Normalized', gateway?.weights?.normalizedCompositeWeight],
+ ];
+
useEffect(() => {
setInitialState((currentState) => {
return {
@@ -381,39 +390,61 @@ const Gateway = () => {
-
-
-
Stats
+
+
-
-
-
- {/*
*/}
+
+ {gateway?.weights && (
+
+
+
+ {weightFields.map(([title, value], index) => (
+
+
{title}:
+
+ {value ? value.toFixed(3) :
}
+
+
+ ))}
+
+ )}
-
+
General Information
diff --git a/src/pages/Observers/ObserversTable.tsx b/src/pages/Observers/ObserversTable.tsx
index 0b34460..f991308 100644
--- a/src/pages/Observers/ObserversTable.tsx
+++ b/src/pages/Observers/ObserversTable.tsx
@@ -22,7 +22,6 @@ interface TableData {
const columnHelper = createColumnHelper
();
const ObserversTable = () => {
-
const navigate = useNavigate();
const { isLoading, data: observers } = useObservers();
@@ -92,6 +91,7 @@ const ObserversTable = () => {
href={`https://${row.getValue('domain')}`}
target="_blank"
rel="noreferrer"
+ onClick={(e) => e.stopPropagation()}
>
{row.getValue('domain')}
{' '}
@@ -137,7 +137,7 @@ const ObserversTable = () => {
id: 'failedGateways',
header: 'Failed Gateways',
sortDescFirst: true,
- cell: ({ row }) => row.original.failedGateways || "Pending",
+ cell: ({ row }) => row.original.failedGateways || 'Pending',
}),
];
diff --git a/src/pages/Staking/ActiveStakes.tsx b/src/pages/Staking/ActiveStakes.tsx
index b5a7fbf..c2e0b8a 100644
--- a/src/pages/Staking/ActiveStakes.tsx
+++ b/src/pages/Staking/ActiveStakes.tsx
@@ -9,6 +9,7 @@ import useGateways from '@src/hooks/useGateways';
import { useGlobalState } from '@src/store';
import { ColumnDef, createColumnHelper } from '@tanstack/react-table';
import { useEffect, useState } from 'react';
+import { useNavigate } from 'react-router-dom';
interface TableData {
owner: string;
@@ -30,6 +31,8 @@ const ActiveStakes = () => {
const [stakingModalWalletAddress, setStakingModalWalletAddress] =
useState();
+ const navigate = useNavigate();
+
useEffect(() => {
const activeStakes: Array =
!walletAddress || !gateways
@@ -71,6 +74,7 @@ const ActiveStakes = () => {
href={`https://${row.getValue('domain')}`}
target="_blank"
rel="noreferrer"
+ onClick={(e) => e.stopPropagation()}
>
{row.getValue('domain')}
{' '}
@@ -116,7 +120,8 @@ const ActiveStakes = () => {
title="Manage Stake"
text=" "
rightIcon={}
- onClick={() => {
+ onClick={(e) => {
+ e.stopPropagation();
setStakingModalWalletAddress(row.original.owner);
}}
/>
@@ -152,6 +157,9 @@ const ActiveStakes = () => {
id: 'delegatedStake',
desc: true,
}}
+ onRowClick={(row) => {
+ navigate(`/gateways/${row.owner}`);
+ }}
/>
{showUnstakeAllModal && (
{
const { data: protocolBalance } = useProtocolBalance();
+ const navigate = useNavigate();
+
useEffect(() => {
const stakeableGateways: Array =
!gateways || !protocolBalance
@@ -118,6 +121,7 @@ const DelegateStake = () => {
href={`https://${row.getValue('domain')}`}
target="_blank"
rel="noreferrer"
+ onClick={(e) => e.stopPropagation()}
>
{row.getValue('domain')}
{' '}
@@ -227,7 +231,8 @@ const DelegateStake = () => {
active={true}
title="Manage Stake"
text="Stake"
- onClick={() => {
+ onClick={(e) => {
+ e.stopPropagation();
if (walletAddress) {
setStakingModalWalletAddress(row.getValue('owner') as string);
} else {
@@ -252,6 +257,9 @@ const DelegateStake = () => {
isLoading={isLoading}
noDataFoundText="No stakeable gateways found."
defaultSortingState={{ id: 'totalStake', desc: true }}
+ onRowClick={(row) => {
+ navigate(`/gateways/${row.owner}`);
+ }}
/>
{stakingModalWalletAddress && (
{
@@ -10,7 +9,7 @@ export interface ArweaveWalletConnector {
disconnect(): Promise;
getWalletAddress(): Promise;
// getGatewayConfig(): Promise;
- signer?: ArconnectSigner;
+ signer?: Window['arweaveWallet'];
}
export enum WALLET_TYPES {
@@ -45,7 +44,8 @@ export interface OwnershipAssessment {
pass: boolean;
}
-export interface ArNSAssessmentTimings extends Record {
+export interface ArNSAssessmentTimings
+ extends Record {
dns: number | undefined;
download: number | undefined;
firstByte: number | undefined;
diff --git a/yarn.lock b/yarn.lock
index ffeb766..405adb5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -35,12 +35,12 @@
plimit-lit "^3.0.1"
warp-contracts "1.4.45"
-"@ar.io/sdk@2.0.2":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@ar.io/sdk/-/sdk-2.0.2.tgz#64aa7c4e6b30bbe36d7cc7d450f32d100ee731b3"
- integrity sha512-DGSHo9Bf90Pe2m4lBEJPFuUageAaoO+nA42nhGJ2vCn6dKVM/y3aSqCJ+H5enHjidx0H1MmsgysiBQGEBElMHg==
+"@ar.io/sdk@2.1.0-alpha.6":
+ version "2.1.0-alpha.6"
+ resolved "https://registry.yarnpkg.com/@ar.io/sdk/-/sdk-2.1.0-alpha.6.tgz#e831d2153200c7503aaf72b294a5aebf6b0a3bcd"
+ integrity sha512-5Cso0T8ucIbw69zm0CNV9UDep0Q2rxPqjbTao0yi0XuAiTLD3M7J9u8+0O5Vf9n7ASjBeC6qTTm1LvQUIGQ0sA==
dependencies:
- "@permaweb/aoconnect" "^0.0.55"
+ "@permaweb/aoconnect" "^0.0.57"
arbundles "0.11.0"
arweave "1.14.4"
axios "1.7.2"
@@ -2325,6 +2325,15 @@
ramda "^0.30.0"
zod "^3.23.5"
+"@permaweb/ao-scheduler-utils@~0.0.20":
+ version "0.0.20"
+ resolved "https://registry.yarnpkg.com/@permaweb/ao-scheduler-utils/-/ao-scheduler-utils-0.0.20.tgz#5cee9650ef9234a01ecf3a57e8e0870f1f431076"
+ integrity sha512-bJkcmnQm/rCGqklJt46q5TnHfWkFzSBcSf9Z3uy8ylHRAheS9NyR1BJMAj3EXDjHCpg7JfnLRo6Uc3Xdw1lmOA==
+ dependencies:
+ lru-cache "^10.2.2"
+ ramda "^0.30.0"
+ zod "^3.23.5"
+
"@permaweb/aoconnect@^0.0.55":
version "0.0.55"
resolved "https://registry.yarnpkg.com/@permaweb/aoconnect/-/aoconnect-0.0.55.tgz#d856a078d3702154ac58541d09478d25ed3acf2c"
@@ -2339,6 +2348,20 @@
warp-arbundles "^1.0.4"
zod "^3.22.4"
+"@permaweb/aoconnect@^0.0.57":
+ version "0.0.57"
+ resolved "https://registry.yarnpkg.com/@permaweb/aoconnect/-/aoconnect-0.0.57.tgz#dd779563e1b994e78509251b74df64dc89ea62ea"
+ integrity sha512-l1+47cZuQ8pOIMOdRXymcegCmefXjqR8Bc2MY6jIzWv9old/tG6mfCue2W1QviGyhjP3zEVQgr7YofkY2lq35Q==
+ dependencies:
+ "@permaweb/ao-scheduler-utils" "~0.0.20"
+ buffer "^6.0.3"
+ debug "^4.3.5"
+ hyper-async "^1.1.2"
+ mnemonist "^0.39.8"
+ ramda "^0.30.1"
+ warp-arbundles "^1.0.4"
+ zod "^3.23.8"
+
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
@@ -5184,6 +5207,13 @@ debug@^3.2.7:
dependencies:
ms "^2.1.1"
+debug@^4.3.5:
+ version "4.3.6"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b"
+ integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
+ dependencies:
+ ms "2.1.2"
+
decamelize-keys@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8"
@@ -9201,7 +9231,7 @@ ramda@^0.29.1:
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.1.tgz#408a6165b9555b7ba2fc62555804b6c5a2eca196"
integrity sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==
-ramda@^0.30.0:
+ramda@^0.30.0, ramda@^0.30.1:
version "0.30.1"
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.30.1.tgz#7108ac95673062b060025052cd5143ae8fc605bf"
integrity sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==
@@ -11160,7 +11190,7 @@ zip-stream@^4.1.0:
compress-commons "^4.1.2"
readable-stream "^3.6.0"
-zod@^3.22.4, zod@^3.23.5:
+zod@^3.22.4, zod@^3.23.5, zod@^3.23.8:
version "3.23.8"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d"
integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==