GithubHelp home page GithubHelp logo

api3-tracker's People

Contributors

aquarat avatar bbenligiray avatar dependabot[bot] avatar enormouscloud avatar mcoetzee avatar whatifitrains avatar whitewingshorse avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

api3-tracker's Issues

Inconsistency in Member Count on the Homepage and RewardsPage

Inconsistency in member count on HomePage and RewardsPage

Steps to reproduce

Go over to the HomePage and watch the current member count

Screenshot 2023-04-12 at 12 56 09 PM

The count of current member is displayed as 6485

Go over to the RewardsPage and watch the member count

Screenshot 2023-04-12 at 12 58 07 PM

The count of member is displayed as 6532

Expected behavior

Count of members in HomePage and RewardsPage to be equal and consistent.

Current behavior

The values of member count in HomePage and RewardsPage are not equal(inconsistent).

Screenshots (if applicable)

Screenshot 2023-04-12 at 1 03 08 PM

Screenshot 2023-04-12 at 1 03 21 PM

Environment

OS: Mac OS 13.2.1
Browser: Mozilla Firefox

Potential consequences

Users visiting the website will view inconsistent number of members in each page. This can lead to confusion and eventually leading to lack of trust for the platform due inconsistency.

Miscalculated votes percentage in the proposal page and proposals list

Steps to reproduce

Go to an arbitrary proposal page, for example, proposal 60 named "CORE TECHNICAL TEAM, MAY–JULY 2022"

Expected behavior

  1. As the proposal is rejected by the DAO, there should be more voters voting "Reject" compared to voting "For".
  2. The total votes percentage should equal to the sum of different voters' votes percentages.

Current behavior

  1. Although proposal 60 is rejected by the DAO, the website suggests that nobody voted "Against" and all voters voted "For".
  2. The website displays a total votes percentage of "Against" equals to 0%. However, by manually summing different voters's votes percentage, the total votes percentage of "Against" should equal to 27.32%.
  3. The miscalculated result is also displayed in the proposals list.

Screenshots (if applicable)

bug2

bug3

bug4

Environment

  1. iOS with Safari
  2. macOS with Safari and Chrome

Potential consequences

Voters might be confused about whether the proposal is executed (or rejected) and how the votes are distributed.

Missing the decimal point in the proposal page

Steps to reproduce

Go to an arbitrary proposal page, for example, the proposal 122 named "COPYWRITING".

Expected behavior

The proposal 122 spent 0.1056205 ETH in fees, so the spent fees in the proposal page should display 0.1056205 ETH.

Current behavior

The spent fees displayed in the proposal 122's page is 1,056,205 ETH.

Screenshots (if applicable)

bug

Environment

  1. iOS with Safari.
  2. macOS with Chrome and Safari.

Potential consequences

Voters might be very confused, and think the proposal is malicious.

voting % not showing on dashboard

Steps to reproduce

View on main landing page

Expected behavior

When somebody votes against a proposal it shows accordingly on the dashboard, without the for votes not being visible

Current behavior

When there was a vote against, the for votes have disappeared - including the % figure/

Screenshots (if applicable)

Can you show us?

Environment

Mac OS

Potential Consequences

Misunderstand a proposal status, perhaps not vote

More comprehensive staking statistics

As discussed with Enormous, I am suggesting a new feature that offers more comprehensive staking statistics across various timeframes (monthly, quarterly, yearly) and includes diverse filters such as new staking wallets, returning vs leaving stakers, and existing stakers who increase their stake manually (excluding auto-compunding) or decrease their stake. This novel feature would provide valuable insights and enhance the API3 Community Reports.

MetaMask access

Steps to reproduce

What did you do before encountering the issue?
I used the procedure I used to stake my tokens

Expected behavior

What did you expect to happen?
I expected to use the same procedure to access them

Current behavior

What happened?
Connect Wallet does not show the MetaMast wallet as it does in the tutorial

Screenshots (if applicable)

image

Can you show us?
above

Environment

What OS and browser/app were you using?
Foxfire, Windows 10

Potential consequences

I cannot access my staked tokens
What is the worst that can happen because of this? Is this actually a bug in functionality?
Above

Unresponsive Home Page for Galaxy Fold devices

Steps to reproduce

  1. Visited the Homepage.
  2. Used 'Inspect Element' from the browser.
  3. Chose 'Galaxy Fold' as the device.

Expected behavior

Text size getting smaller or following word wrap.

Current behavior

The addresses for the Smart Contracts get overflown out of the box.

Screenshots (if applicable)

image

Environment

OS: Fedora Linux
Browser: Brave Browser

Potential consequences

Poor UX, Decreased Search Rating, Negative Brand Image

Show weekly staking rewards

When API3 token stakers go to their staking wallet page on the tracker, they expect to see the amount of their staking rewards listed for each week. The enormous site used to report these. Unfortunately, the new tracker doesn't display the weekly reward amount. The new tracker only displays the total amount of staked tokens for each week. So stakers need to subtract the previous week from the current week to determine the token rewards they received from staking.

It would be great if the actual amount of weekly rewards was reported.

Proposal CastVote unit should be "shares" instead of "tokens"

Steps to reproduce

Visit a proposal page, for example CORE TECHNICAL TEAM PROPOSAL, MARCH–MAY 2023.

Expected behavior

The "Supported with" or "Voted against with" value should report the correct number of shares that voted.

Current behavior

The value is currently reported as "tokens" (red arrow in screenshot). Note that above the events table, "shares" is used correctly (green underlines in screenshot).

Screenshots (if applicable)

image

Environment

Any

Potential consequences

The user may be confused as tokens are not the same as shares. This is described in the docs under the Earning Rewards section:

Remember that when you stake, you receive non-transferable pool shares equal to the current total number of issued shares divided by the total number of tokens staked. Since the reward adds additional tokens to the pool, the "price" for one share will not always be one token.

"ETH Spent in fees" inconsistent between Proposals Overview Page & each item's individual listing page.

The “ETH spent in fees” on the API DAO Proposals OVERVIEW tab on each item does not match up with the “ETH spent in fees” on the actual page for each item. This appears to be a result of using separate methods to try to calculate the place of the decimal across two pages. Please reference the full details below for further information.

Steps to reproduce

1. Go to the Proposals tab of the API3 DAO Tracker (or visit the link: https://tracker.api3.org/votings ) and look at any of the items on the page. For example, look at the first screenshot down below. Or, if you’re on the page, look at the first 2 PENDING proposals.

2. In the first proposal (API Provider Partnerships for managed dAPIs April 2023 - June 2023), it says spent: 0.0453191 ETH in fees, estimating $14.60). Click on the proposal.

3. After clicking on the same proposal (Pending proposal number 1, shown in the first screenshot below for reference), you will notice that it says “Spent 453,191 ETH in fees, Est $14.6”).

4. Seeing this error, the next step is to go into the repo to determine where the problem is. I took a look at it and it appears to be line 108 on components/VotingSummary.tsx which has this line:
{toCurrency(props.totalGasUsed)}

5. If we compare the code on the proposals page of the website, it uses a different method to calculate the number, giving it the proper decimal places. You can see the method used for this in the components/VotingsList.tsx on line 76:
{withDecimals(props.totalGasUsed + "", 7)}

I think this is the correct method, otherwise if not, the bug is still present and I wanted to report this to help improve it! Notice how the first code snippet from VotingSummary.tsx uses the toCurrency function instead of the withDecimals function? I think this will solve it.

Expected behavior

Expected consistency between the proposal overview page and the individual proposal pages to have the same correct “spent” amount.

Current behavior

The “ETH spent in fees” on the API3 DAO Proposals tab for each item does not match the “ETH spent in fees” on the actual page for each item.

Screenshots (if applicable)

API3-DAO-Proposals

API3-DAO-Proposal-Details

Environment

Windows 10 64-bit. Google Chrome 111.0.5563.65 (64 bit)

Potential consequences

Users could be misled on how much ETH was actually spent, which can create a lack of trust in results.

Incorrect calculation of gas usage and fee in VoteGas add function

Steps to reproduce

N/A

Expected behavior

When a transaction hash is added to a vote, the gasUsed and feeUsd values for that transaction should be added to any existing values for that transaction in the VoteGas.VOTES map.

Current behavior

The existing GasUsage values are not being properly updated when a new value is added.

Screenshots (if applicable)

} else {
const existing: GasUsage = VoteGas.VOTES.get(voteId)?.get(
txHash
) as GasUsage;
const updated: GasUsage = {
gasUsed: existing.gasUsed.add(gasUsed),
feeUsd: existing.feeUsd + feeUsd,
};
}

It should be fixed like this

    } else {
      const existing: GasUsage = VoteGas.VOTES.get(voteId)?.get(
        txHash
      ) as GasUsage;
      const updated: GasUsage = {
        gasUsed: existing.gasUsed.add(gasUsed),
        feeUsd: existing.feeUsd + feeUsd,
      };
      VoteGas.VOTES.get(voteId)?.set(txHash, updated);
    }

Environment

N/A

Potential consequences

If this issue is not resolved, incorrect gas usage and fee data could be reported for votes in the VoteGas.totals() function. This could potentially lead to incorrect decisions being made based on the reported data.

Numerous addresses incorrectly identified as delegates

Steps to reproduce

Visit the Wallets section of the tracker site and look through multiple addresses outside of the top 10 wallets with the tag 'delegate'
Open this address and view who is delegating to it

Current behavior

Most of the addresses are listed as delegates despite not being delegated to

Screenshots (if applicable)

image

Environment

N/A

Potential consequences

The functionality of identifying actual delegates from within the collection of DAO members is not working as intended

Inconsistent use of 'pointer' cursor when hover to ENS or the contract address in Wallet and Executed Proposal page

Steps to reproduce

  • Go over to the Proposal page by clicking the Proposal tab in the top navbar.
  • Click on any of the dao proposal's title in the API3 DAO Proposal list
  • In the Executed Proposal page, hover the cursor to any of the ENS or contract address in the list
  • The cursor does not become a pointer when hovered

Expected behavior

  • Mouse cursor on Executed Proposal and Wallet page should behave in same manner when the cursor hover to ENS or contract address.
  • The cursor should turn to 'pointer' cursor when user hover to any of the ENS or contract address on the Voting or Wallet page as to indicate that it is a link and clickable which will bring the user to the clicked address's wallet

What happened?

Screenshots (if applicable)

Screenshot of Executed Proposal page (cursor does not turn to pointer - defect)
Voting

Screenshot of Wallet page (cursor turn to pointer - expected)
Wallet

Environment

OS: windows 10 Pro
Browser: Chrome

Potential consequences

  • The cursor pointer is important as it indicates a link and help user to differentiate between a link and a normal text.
  • With this defect, user will get a different understanding and thought that the address or ENS is not a link and is unclickable. Hence, making the user confused on how to track back the vote caster's wallet.

Inconsistency in APR for current Epoch on the Homepage and the value when hovering over the text

Inconsistency in APR for current Epoch on the Homepage and the value when hovering over the text:

DAO staking target is reached, so APR will decrease by 1% for the next epochs until APR reaches 2.5%

Steps to reproduce

Go over to the HomePage and hover the mouse pointer over the

DAO staking target is reached, so APR will decrease by 1% for the next epochs until APR reaches 2.5%

image

The value shown for the current APR is 22.75%

But on the HomePage, the current APR is shown to be 21.75%.

image

The same happens on the 'Rewards' page -
image

Expected behavior

Same value for both the APR for the current Epoch.

Current behavior

The values for the APR for the current Epochs do not match.

Screenshots (if applicable)

image

image

image

Environment

OS: Fedora Linux
Browser: Brave Browser

Potential consequences

Users will get the different values for APRs. This can lead to confusion and eventually leading to lack of trust for the platform.

DAO Tracker does not show required threshhold needed for proposals finalized before Dec 30th 2022.

Steps to reproduce

Go to the Proposals Page and check for different proposals finalized before Dec 30th 2022.

Expected behavior

The threshold required for a proposal to be valid is supposed to be seen.

Current behavior

Currently the threshold for proposals shows 0, this occurs for all categories of the proposal (i.e executed, rejected, invalid).

Screenshots (if applicable)

Expected

Expected

Actual

Actual

Environment

Debian - Brave Browser

Potential consequences

Seeing as the API DAO tracker is supposed to provide a web interface to see on-chain details of the API3 DAO, including the history and details of the voting. This issue goes against the use of the DAO Tracker as the information is not available for the public to see.

Fix event ingestion bug

The Tracker is currently stuck on block 17313532, txHash 0x6e986531439c09d22f2953d14b1788d6e26ade4c4ff4af3e5a696f7f9cf8f151.

The error in the logs is:

$ /app/node_modules/.bin/ts-node cli.ts state update --rps-limit
Processing 17313532 2023-05-22T08:04:23.000Z 3L 1R 1814.51USD read in 0.012s
Event @ 17313532 0x6e986531439c09d22f2953d14b1788d6e26ade4c4ff4af3e5a696f7f9cf8f151 134 SyntaxError: Cannot convert 0x to a BigInt
    at BigInt (<anonymous>)
    at Object.parseScript (/app/services/voting.ts:90:17)
    at /app/services/sync.ts:749:33
    at step (/app/services/sync.ts:44:23)
    at Object.next (/app/services/sync.ts:25:53)
    at fulfilled (/app/services/sync.ts:16:58)
cli.ts state [sub]

the cause of this error relates to this forum post: https://forum.api3.org/t/simple-eth-transfer-with-a-dao-proposal/1929/3

Erroneous and misleading Statement in Ethereum Transaction Fees on votings/proposal number pages

The amount spent in fees in ( https://tracker.api3.org/votings/132) shows an absurd amount of Eth was spent on fees which should not be the case .It says:

Spent 1,261,642 ETH in fees, Est $58.01

1,261,642 ETH at current 1868usd per eth is $2,357,270,837.43 USD in fees which ain't true.

The 1,261,642 here comes from addition of the gas fees used by the various users in the said proposal, this should have been denoted as 1,261,642 gas in fees , Est $58.01 or write the sum of the ETH amounts used in the proposal and the estimated fee.

Steps to reproduce

  1. Go to the Proposals tab of the API3 DAO Tracker and click on any of the items on the (Lets explain using this as an example https://tracker.api3.org/votings/132)

  2. Just under the votes it says At the time of the proposal DAO had 41,468,139 shares staked, 6,220,220 shares are required for this proposal to be accepted
    Spent 1,261,642 ETH in fees, Est $58.01
    (Shown in the 2nd screenshot)

  3. 1,261,642 ETH at current 1868usd per eth is $2,357,270,837.43 USD in fees.

Expected behavior

The amount of ETH fees must equal the estimated fee when converted.It can also be denoted using the word (gas units) to avoid confusion e.g Spent 1,261,642 gas units in fees , Est $58.01 .It can also be written with the sum of ETH fee amounts used instead of gas units e.g Spent 0.0064 ETH in fees, Est $12.01

Current behavior

Error in Ethereum Transaction Fee representation that can cause confusion or mislead users.

Screenshots (if applicable)

Screenshot from 2023-04-08 15-30-05
Screenshot from 2023-04-08 15-31-04

Environment

Os: Kali linux.
Browser : Firefox.

Potential consequences

It can mislead users about the actual amount of fees they are being charged for Ethereum transactions. This can cause confusion and mistrust in the website or application, leading to a loss of reputation and potential loss of business.

API3 DAO Tracker Bug Bounty

Prize Title

API3 DAO Tracker

Prize Bounty

This is an open bounty for anybody to participate in. For every valid bug reported, no matter the size, we offer 200 API3 and will award a maximum of 8 prizes for this category.

Challenge Description

API3 DAO Tracker provides a web interface to see on-chain details of the API3 DAO, including:

  • Members, their stakes, shares, voting power and votings history
  • Details of the votings
  • All events from the smart contracts of the API3 DAO
  • DAO Treasuries status

This bug bounty invites participants to help find defects on the API3 DAO Tracker. API3 is offering a monetary reward for successfully discovering and reporting a vulnerability or bug that would affect the DAO Tracker functionality that may mislead governing parties. For example, a bug might be that the parameters of a proposal are being displayed incorrectly.

You can refer to the API3 Docs to understand how the DAO works.

You can also clone and build the DAO Tracker locally. Refer to the Github Repo.

Submission Process

Acceptance Criteria

  • You are required to follow the Community bug bounty issue template. Explain each and every section briefly. Use screenshots wherever necessary. Make sure it covers all following points:
    • Steps to reproduce
    • Expected behavior
    • Current behavior
    • Screenshots (if applicable)
    • Environment
    • Potential consequences

Rewards

This is an open bounty for anybody to participate in. For every valid bug reported, no matter the size, we offer 200 API3 and will award a maximum of 8 prizes for this category.

The bug bounty will run from Feb 26th through to April 30th.

Winner Announcement Date

April 14th; two weeks after the deadline.

Resources

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.