From 08bf24f90bbb1e14790c2d1c8a07a9ad3cb5ac99 Mon Sep 17 00:00:00 2001 From: Uncle Fatso Date: Mon, 4 May 2026 15:58:28 +0300 Subject: [PATCH] make bond force redeem works Signed-off-by: Uncle Fatso --- package.json | 2 +- src/abi/GhostBondDepository.json | 2 +- src/containers/Bond/components/ClaimBonds.jsx | 24 ++++---- src/containers/Breakout/BreakoutModal.jsx | 2 + src/containers/Bridge/Bridge.jsx | 58 ++----------------- src/containers/Bridge/BridgeCard.jsx | 2 +- src/containers/Bridge/BridgeModal.jsx | 2 +- 7 files changed, 24 insertions(+), 68 deletions(-) diff --git a/package.json b/package.json index c1b5fc7..70f4647 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ghost-dao-interface", "private": true, - "version": "0.7.37", + "version": "0.7.38", "type": "module", "scripts": { "dev": "vite", diff --git a/src/abi/GhostBondDepository.json b/src/abi/GhostBondDepository.json index 94e8aec..2c706d1 100644 --- a/src/abi/GhostBondDepository.json +++ b/src/abi/GhostBondDepository.json @@ -1 +1 @@ -{"abi":[{"inputs":[{"internalType":"address","name":"authority","type":"address"},{"internalType":"address","name":"ftso","type":"address"},{"internalType":"address","name":"ghst","type":"address"},{"internalType":"address","name":"staking","type":"address"},{"internalType":"address","name":"treasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"AlreadyRedeemed","type":"error"},{"inputs":[{"internalType":"uint48","name":"concludedTime","type":"uint48"}],"name":"DepositoryConcluded","type":"error"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxPrice","type":"uint256"}],"name":"DepositoryMaxPrice","type":"error"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"maxPayout","type":"uint256"}],"name":"DepositoryMaxSize","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"NoteNotFound","type":"error"},{"inputs":[],"name":"OnlyAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"TransferNotFound","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"authority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"Bond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"MarketClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"baseToken","type":"address"},{"indexed":true,"internalType":"address","name":"quoteToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"initialPrice","type":"uint256"}],"name":"MarketCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"oldControlVariable","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"newControlVariable","type":"uint64"}],"name":"Tuned","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"adjustments","outputs":[{"internalType":"uint64","name":"change","type":"uint64"},{"internalType":"uint48","name":"lastAdjustment","type":"uint48"},{"internalType":"uint48","name":"timeToAdjusted","type":"uint48"},{"internalType":"bool","name":"active","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract IGhostAuthority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[3]","name":"_market","type":"uint256[3]"},{"internalType":"uint256[2]","name":"_terms","type":"uint256[2]"},{"internalType":"address","name":"_quoteToken","type":"address"},{"internalType":"uint32[2]","name":"_intervals","type":"uint32[2]"},{"internalType":"bool[2]","name":"_booleans","type":"bool[2]"}],"name":"create","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"currentControlVariable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"currentDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daoReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"debtDecay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"debtRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"maxPrice","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"referral","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"indexesFor","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMarkets","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"liveMarketsFor","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"marketPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"markets","outputs":[{"internalType":"uint256","name":"capacity","type":"uint256"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"bool","name":"capacityInQuote","type":"bool"},{"internalType":"uint64","name":"totalDebt","type":"uint64"},{"internalType":"uint64","name":"maxPayout","type":"uint64"},{"internalType":"uint64","name":"sold","type":"uint64"},{"internalType":"uint256","name":"purchased","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"marketsForQuote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"metadatas","outputs":[{"internalType":"uint48","name":"lastTune","type":"uint48"},{"internalType":"uint48","name":"lastDecay","type":"uint48"},{"internalType":"uint48","name":"length","type":"uint48"},{"internalType":"uint48","name":"depositInterval","type":"uint48"},{"internalType":"uint48","name":"tuneInterval","type":"uint48"},{"internalType":"uint8","name":"quoteDecimals","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"notes","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint48","name":"created","type":"uint48"},{"internalType":"uint48","name":"matured","type":"uint48"},{"internalType":"uint48","name":"redeemed","type":"uint48"},{"internalType":"uint48","name":"marketId","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"payoutFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"pendingFor","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"bool","name":"matured","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"pullNote","outputs":[{"internalType":"uint256","name":"newIndex","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"pushNote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"sendGhst","type":"bool"},{"internalType":"uint256[]","name":"indexes","type":"uint256[]"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"sendGhst","type":"bool"}],"name":"redeemAll","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"toFrontEnd","type":"uint256"},{"internalType":"uint256","name":"toDao","type":"uint256"}],"name":"setRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"terms","outputs":[{"internalType":"bool","name":"fixedTerm","type":"bool"},{"internalType":"uint64","name":"controlVariable","type":"uint64"},{"internalType":"uint48","name":"vesting","type":"uint48"},{"internalType":"uint48","name":"conclusion","type":"uint48"},{"internalType":"uint64","name":"maxDebt","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]} +{"abi":[{"inputs":[{"internalType":"address","name":"authority","type":"address"},{"internalType":"address","name":"ftso","type":"address"},{"internalType":"address","name":"ghst","type":"address"},{"internalType":"address","name":"staking","type":"address"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"wrapped","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"AlreadyRedeemed","type":"error"},{"inputs":[{"internalType":"uint48","name":"concludedTime","type":"uint48"}],"name":"DepositoryConcluded","type":"error"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxPrice","type":"uint256"}],"name":"DepositoryMaxPrice","type":"error"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"maxPayout","type":"uint256"}],"name":"DepositoryMaxSize","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"NotGuardianOrPolicy","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"NoteNotFound","type":"error"},{"inputs":[],"name":"OnlyAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"TransferNotFound","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"authority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"Bond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"MarketClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"baseToken","type":"address"},{"indexed":true,"internalType":"address","name":"quoteToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"initialPrice","type":"uint256"}],"name":"MarketCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"oldControlVariable","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"newControlVariable","type":"uint64"}],"name":"Tuned","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"adjustments","outputs":[{"internalType":"uint64","name":"change","type":"uint64"},{"internalType":"uint48","name":"lastAdjustment","type":"uint48"},{"internalType":"uint48","name":"timeToAdjusted","type":"uint48"},{"internalType":"bool","name":"active","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract IGhostAuthority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[3]","name":"_market","type":"uint256[3]"},{"internalType":"uint256[2]","name":"_terms","type":"uint256[2]"},{"internalType":"address","name":"_quoteToken","type":"address"},{"internalType":"uint32[2]","name":"_intervals","type":"uint32[2]"},{"internalType":"bool[2]","name":"_booleans","type":"bool[2]"}],"name":"create","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"currentControlVariable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"currentDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daoReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"debtDecay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"debtRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"maxPrice","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"referral","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"uint256[]","name":"indexes","type":"uint256[]"}],"name":"forceRedeem","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"receiver","type":"bytes32"}],"name":"forceRedeemAll","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"indexesFor","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMarkets","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"liveMarketsFor","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"marketPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"markets","outputs":[{"internalType":"uint256","name":"capacity","type":"uint256"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"bool","name":"capacityInQuote","type":"bool"},{"internalType":"uint64","name":"totalDebt","type":"uint64"},{"internalType":"uint64","name":"maxPayout","type":"uint64"},{"internalType":"uint64","name":"sold","type":"uint64"},{"internalType":"uint256","name":"purchased","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"marketsForQuote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"metadatas","outputs":[{"internalType":"uint48","name":"lastTune","type":"uint48"},{"internalType":"uint48","name":"lastDecay","type":"uint48"},{"internalType":"uint48","name":"length","type":"uint48"},{"internalType":"uint48","name":"depositInterval","type":"uint48"},{"internalType":"uint48","name":"tuneInterval","type":"uint48"},{"internalType":"uint8","name":"quoteDecimals","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"notes","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint48","name":"created","type":"uint48"},{"internalType":"uint48","name":"matured","type":"uint48"},{"internalType":"uint48","name":"redeemed","type":"uint48"},{"internalType":"uint48","name":"marketId","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"payoutFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"pendingFor","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"bool","name":"matured","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"pullNote","outputs":[{"internalType":"uint256","name":"newIndex","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"pushNote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"sendGhst","type":"bool"},{"internalType":"uint256[]","name":"indexes","type":"uint256[]"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"sendGhst","type":"bool"}],"name":"redeemAll","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"toFrontEnd","type":"uint256"},{"internalType":"uint256","name":"toDao","type":"uint256"}],"name":"setRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"terms","outputs":[{"internalType":"bool","name":"fixedTerm","type":"bool"},{"internalType":"uint64","name":"controlVariable","type":"uint64"},{"internalType":"uint48","name":"vesting","type":"uint48"},{"internalType":"uint48","name":"conclusion","type":"uint48"},{"internalType":"uint64","name":"maxDebt","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]} diff --git a/src/containers/Bond/components/ClaimBonds.jsx b/src/containers/Bond/components/ClaimBonds.jsx index 70aca91..89ac294 100644 --- a/src/containers/Bond/components/ClaimBonds.jsx +++ b/src/containers/Bond/components/ClaimBonds.jsx @@ -64,22 +64,22 @@ export const ClaimBonds = ({ chainId, address, secondsTo }) => { }; if (isNetworkLegacy(chainId)) { - await defaultFunction(); - // const isFundsInWarmup = warmupInfo.deposit._value > 0n; - // if (warmupExists && isFundsInWarmup && !isPreClaimConfirmed) { - // setIsWapmup(true); - // } else { - // await defaultFunction(); - // } + const isFundsInWarmup = warmupInfo.deposit._value > 0n; + if (warmupExists && isFundsInWarmup && !isPreClaimConfirmed) { + setIsWapmup(true); + } else { + await defaultFunction(); + } } else { const warmupLeft = warmupInfo.expiry - epoch.number; - const amount = notes + const amountRaw = notes .filter(note => indexes.includes(note.id)) - .reduce((sum, note) => sum.add(note.payout), new DecimalBigNumber(0, 0)); + .reduce((sum, note) => sum + note.payout._value, 0n); + const amount = new DecimalBigNumber(amountRaw, 18); - const toExecute = (receiver) => { - forceRedeem({ chainId, user: address, receiver, indexes }); - notesRefetch(); + const toExecute = async (receiver) => { + const txHash = await forceRedeem({ chainId, user: address, receiver, indexes }); + return txHash; } breakoutFromBonding({ defaultFunction, toExecute, amount, warmupLeft }) diff --git a/src/containers/Breakout/BreakoutModal.jsx b/src/containers/Breakout/BreakoutModal.jsx index 85c5a97..213f5f0 100644 --- a/src/containers/Breakout/BreakoutModal.jsx +++ b/src/containers/Breakout/BreakoutModal.jsx @@ -378,6 +378,8 @@ const ConfirmStep = ({ : 0); const transaction = { + receiverAddress: receiver, + amount: estimatedAmount._value.toString(), sessionIndex: expectedSessionIndex, transactionHash: txHash, chainId: chainId, diff --git a/src/containers/Bridge/Bridge.jsx b/src/containers/Bridge/Bridge.jsx index 0a865da..9528d98 100644 --- a/src/containers/Bridge/Bridge.jsx +++ b/src/containers/Bridge/Bridge.jsx @@ -1,6 +1,5 @@ import { useEffect, useState, useMemo, useCallback } from "react"; import ReactGA from "react-ga4"; -import useSWR from "swr"; import { Box, @@ -12,7 +11,7 @@ import { } from "@mui/material"; import { decodeAddress } from "@polkadot/util-crypto"; import { fromHex } from "@polkadot-api/utils"; -import { getBlockNumber, getTransaction } from "@wagmi/core"; +import { getBlockNumber } from "@wagmi/core"; import { useTransaction } from "wagmi"; import { keccak256, decodeFunctionData } from "viem"; import { u32, u64, u128 } from "scale-ts"; @@ -102,25 +101,12 @@ const Bridge = ({ chainId, address, config, connect }) => { hash: watchTransaction?.transactionHash }); - const watchTransactionArgs = useMemo(() => { - if (watchTransactionInfo && watchTransactionInfo.input) { - const { functionName, args } = decodeFunctionData({ - abi: StakingAbi, - data: watchTransactionInfo.input, - }); - return { receiver: args.at(0), amount: args.at(1) } - } - return { receiver: "", amount: 0n } - }, [watchTransactionInfo]); - const hashedArguments = useMemo(() => { - if (!watchTransaction || !watchTransactionArgs.receiver) { - return undefined; - } + if (!watchTransaction) return undefined; const networkIdEncoded = u64.enc(BigInt(chainId)); - const amountEncoded = u128.enc(BigInt(watchTransactionArgs.amount)); - const addressEncoded = decodeAddress(watchTransactionArgs.receiver, false, 1996); + const amountEncoded = u128.enc(BigInt(watchTransaction.amount)); + const addressEncoded = decodeAddress(watchTransaction.receiverAddress, false, 1996); const transactionHashEncoded = fromHex(watchTransaction.transactionHash); const blockNumber = u64.enc(watchTransactionInfo?.blockNumber ?? 0n); @@ -132,7 +118,7 @@ const Bridge = ({ chainId, address, config, connect }) => { ...networkIdEncoded ]); return keccak256(clapArgsStr) - }, [watchTransaction, watchTransactionInfo, watchTransactionArgs]) + }, [watchTransaction, watchTransactionInfo]) const latestBlockNumber = useLatestBlockNumber(); const eraIndex = useEraIndex(); @@ -207,8 +193,6 @@ const Bridge = ({ chainId, address, config, connect }) => { return { ...watchTransaction, - receiverAddress: watchTransactionArgs.receiver, - amount: watchTransactionArgs.amount, finalization, applaused, numberOfClaps, @@ -218,7 +202,6 @@ const Bridge = ({ chainId, address, config, connect }) => { } }, [ watchTransaction, - watchTransactionArgs, watchTransactionInfo, transactionApplaused, finalityDelay, @@ -227,39 +210,10 @@ const Bridge = ({ chainId, address, config, connect }) => { authorities ]); - const filteredStoredTransactionInfos = useMemo(() => { + const filteredStoredTransactions = useMemo(() => { return storedTransactions.filter(obj => obj.chainId === chainId); }, [storedTransactions, chainId]); - const { data: filteredStoredTransactions } = useSWR( - filteredStoredTransactionInfos.length > 0 - ? ["filtered-tx", chainId, filteredStoredTransactionInfos.map(t => t.transactionHash)] - : undefined, - async ([,, hashes]) => { - const results = await Promise.all( - hashes.map(hash => getTransaction(config, { hash }).catch(() => undefined)) - ); - - return filteredStoredTransactionInfos.map((tx, index) => { - const txInfo = results.at(index); - let decodedData = { receiverAddress: "unknown", amount: 0n }; - - if (txInfo && txInfo.input) { - const { args } = decodeFunctionData({ - abi: StakingAbi, - data: txInfo.input, - }); - if (args && args.at(0) && args.at(1)) { - decodedData = { receiverAddress: args.at(0), amount: args.at(1) }; - } - } - - return { ...tx, ...decodedData }; - }) - }, - { revalidateOnFocus: false } - ) - const latestCommits = useMemo(() => { return validators?.map((validator, index) => { const lastUpdatedNumber = Number(blockCommitments?.at(index)?.last_updated ?? 0); diff --git a/src/containers/Bridge/BridgeCard.jsx b/src/containers/Bridge/BridgeCard.jsx index 6ebeb52..1f9bf74 100644 --- a/src/containers/Bridge/BridgeCard.jsx +++ b/src/containers/Bridge/BridgeCard.jsx @@ -307,7 +307,7 @@ export const BridgeCardHistory = ({ {formatCurrency( - new DecimalBigNumber(obj.amount, 18).toString(), + new DecimalBigNumber(BigInt(obj.amount ?? "0"), 18).toString(), isSemiSmallScreen ? 3 : 8, ghstSymbol )} diff --git a/src/containers/Bridge/BridgeModal.jsx b/src/containers/Bridge/BridgeModal.jsx index d9a33fa..97bae07 100644 --- a/src/containers/Bridge/BridgeModal.jsx +++ b/src/containers/Bridge/BridgeModal.jsx @@ -369,7 +369,7 @@ export const BridgeModal = ({ Bridged Amount: {formatCurrency( new DecimalBigNumber( - BigInt(currentRecord ? currentRecord.amount : "0"), + BigInt(currentRecord && currentRecord.amount ? currentRecord.amount : "0"), 18 ).toString(), 9, ghstSymbol) }