diff --git a/src/ui/src/components/AllMarketModal/index.js b/src/ui/src/components/AllMarketModal/index.js index 72e2d3f9..b79876bb 100644 --- a/src/ui/src/components/AllMarketModal/index.js +++ b/src/ui/src/components/AllMarketModal/index.js @@ -192,7 +192,7 @@ const AllMarketModal = (props) => { inputBtnTextTwo = {`${new BigNumber(tokenDetails.collateralFactor).multipliedBy(100)}% Limit`} useMaxAmount= {useMaxAmount} errorText={publicKeyHash && ((currentTab === 'one') ? buttonOne.errorText : buttonTwo.errorText)} - disabled={true} + disabled={(currentTab === 'one') ? buttonOne.disabled : buttonTwo.disabled} pendingLimit={(currentTab === 'two') ? pendingLimit : false} pendingLimitUsed={(currentTab === 'two') ? pendingLimitUsed : false} getProps={(tokenAmount, tabValue) => { setTokenValue(tokenAmount); setCurrentTab(tabValue); }} diff --git a/src/ui/src/components/BorrowModal/index.js b/src/ui/src/components/BorrowModal/index.js index 0ef9b4c2..88d53d30 100644 --- a/src/ui/src/components/BorrowModal/index.js +++ b/src/ui/src/components/BorrowModal/index.js @@ -232,7 +232,7 @@ const BorrowModal = (props) => { inputBtnTextTwo="Use Max" useMaxAmount={useMaxAmount} errorText={currentTab === 'one' ? buttonOne.errorText : buttonTwo.errorText} - disabled={currentTab === 'one' ? true : buttonTwo.disabled} + disabled={currentTab === 'one' ? buttonOne.disabled : buttonTwo.disabled} pendingLimit={pendingLimit} pendingLimitUsed={pendingLimitUsed} getProps={(tokenAmount, tabValue) => { diff --git a/src/ui/src/components/Dashboard/SuppliedTokenTable.tsx b/src/ui/src/components/Dashboard/SuppliedTokenTable.tsx index 050434ca..21c7128f 100644 --- a/src/ui/src/components/Dashboard/SuppliedTokenTable.tsx +++ b/src/ui/src/components/Dashboard/SuppliedTokenTable.tsx @@ -88,7 +88,7 @@ const SuppliedTokenTable = (props) => { <> - {/* */} + )} diff --git a/src/ui/src/components/Footer/index.js b/src/ui/src/components/Footer/index.js index 5b88ac45..1f0d06a0 100644 --- a/src/ui/src/components/Footer/index.js +++ b/src/ui/src/components/Footer/index.js @@ -49,11 +49,11 @@ const Footer = () => { - V1 App + V2 App diff --git a/src/ui/src/components/Header/index.js b/src/ui/src/components/Header/index.js index ff5f6d2d..bf61af92 100644 --- a/src/ui/src/components/Header/index.js +++ b/src/ui/src/components/Header/index.js @@ -13,7 +13,6 @@ import collateralizedIcon from "../../assets/collateralizedIcon.svg"; import borrowingIcon from "../../assets/borrowing.svg"; import borrowLimitIcon from "../../assets/borrowLimitIcon.svg"; import questionCircle from "../../assets/questionCircle.svg"; -import Box from '@mui/material/Box'; import { supplyCompositionAction } from "../../reduxContent/supplyComposition/actions"; import { borrowCompositionAction } from "../../reduxContent/borrowComposition/actions"; @@ -44,13 +43,6 @@ const Header = () => { {network !== "mainnet" && `Note: Tezfin is currently operating on the Tezos test network ${networkType}.`} - - - { - "This is the legacy app for TezFin v2. Please repay all borrowing positions and/or withdraw deposits, and move to the latest TezFin." - } - - { inputBtnTextTwo = "Use Max" useMaxAmount= {useMaxAmount} errorText={(currentTab === 'one') ? buttonOne.errorText : buttonTwo.errorText} - disabled={(currentTab === 'one') ? true : buttonTwo.disabled} + disabled={(currentTab === 'one') ? buttonOne.disabled : buttonTwo.disabled} getProps={(tokenAmount, tabValue) => { setTokenValue(tokenAmount); setCurrentTab(tabValue); }} tab={tab} /> diff --git a/src/util/src/Comptroller.ts b/src/util/src/Comptroller.ts index e8ddaf6a..c6512e33 100644 --- a/src/util/src/Comptroller.ts +++ b/src/util/src/Comptroller.ts @@ -55,7 +55,7 @@ export namespace Comptroller { export async function GetStorage(address: string, protocolAddresses: ProtocolAddresses, server: string): Promise { const storageResult = await TezosNodeReader.getContractStorage(server, address); // get marketsMapId - const marketsMapId = JSONPath({ path: '$.args[0].args[1].args[2].int', json: storageResult })[0]; + const marketsMapId = JSONPath({ path: '$.args[0].args[1].args[1].int', json: storageResult })[0]; // get all market values for fTokens from protocolAddresses const markets: MarketMap = {}; @@ -73,14 +73,14 @@ export namespace Comptroller { // parse results try { return { - accountLiquidityMapId: JSONPath({ path: '$.args[0].args[0].args[0].args[0].int', json: storageResult })[0], - collateralsMapId: JSONPath({ path: '$.args[0].args[0].args[1].args[1].int', json: storageResult })[0], - loansMapId: JSONPath({ path: '$.args[0].args[1].args[0].args[1].int', json: storageResult })[0], - administrator: JSONPath({ path: '$.args[0].args[0].args[0].args[2].string', json: storageResult })[0], - closeFactorMantissa: JSONPath({ path: '$.args[0].args[0].args[1].args[0].int', json: storageResult })[0], - expScale: JSONPath({ path: '$.args[0].args[0].args[2].int', json: storageResult })[0], - halfExpScale: JSONPath({ path: '$.args[0].args[0].args[3].int', json: storageResult })[0], - liquidationIncentiveMantissa: JSONPath({ path: '$.args[0].args[1].args[0].args[0].int', json: storageResult })[0], + accountLiquidityMapId: JSONPath({ path: '$.args[0].args[0].args[0].args[0].args[0].int', json: storageResult })[0], + collateralsMapId: JSONPath({ path: '$.args[0].args[0].args[1].args[0].int', json: storageResult })[0], + loansMapId: JSONPath({ path: '$.args[0].args[1].args[0].args[0].int', json: storageResult })[0], + administrator: JSONPath({ path: '$.args[0].args[0].args[0].args[1].string', json: storageResult })[0], + closeFactorMantissa: JSONPath({ path: '$.args[0].args[0].args[0].args[2].int', json: storageResult })[0], + expScale: JSONPath({ path: '$.args[0].args[0].args[1].args[1].int', json: storageResult })[0], + halfExpScale: JSONPath({ path: '$.args[0].args[0].args[2].int', json: storageResult })[0], + liquidationIncentiveMantissa: JSONPath({ path: '$.args[0].args[0].args[3].int', json: storageResult })[0], marketsMapId: marketsMapId, oracleAddress: JSONPath({ path: '$.args[0].args[2].args[1].string', json: storageResult })[0], pendingAdministrator: JSONPath({ path: '$.args[0].args[3].prim', json: storageResult })[0], diff --git a/src/util/src/FToken.ts b/src/util/src/FToken.ts index a265884c..32a6d90b 100644 --- a/src/util/src/FToken.ts +++ b/src/util/src/FToken.ts @@ -31,6 +31,7 @@ export namespace FToken { accrualBlockNumber: number; administrator: string; balancesMapId: number; + borrowsMapId: number; supply: { numSuppliers?: number; totalSupply: bigInt.BigInteger; @@ -72,7 +73,11 @@ export namespace FToken { case TokenStandard.FA12: { const storageResult = await TezosNodeReader.getContractStorage(server, fTokenAddress); const balancesMapId = JSONPath({ - path: '$.args[0].args[0].args[0].args[2].int', + path: '$.args[0].args[1].args[0].args[2].int', + json: storageResult, + })[0]; + const borrowsMapId = JSONPath({ + path: '$.args[0].args[0].args[1].args[0].int', json: storageResult, })[0]; const adminJsonPrase = JSONPath({ path: '$.args[0].args[1].args[2].prim', json: storageResult })[0]; @@ -93,10 +98,11 @@ export namespace FToken { json: storageResult, })[0], administrator: JSONPath({ - path: '$.args[0].args[0].args[0].args[1].string', + path: '$.args[0].args[0].args[0].args[0].args[2].string', json: storageResult, })[0], balancesMapId: balancesMapId, + borrowsMapId: borrowsMapId, supply: { totalSupply: bigInt(JSONPath({ path: '$.args[0].args[5].int', json: storageResult })[0]), supplyRatePerBlock: bigInt( @@ -104,30 +110,30 @@ export namespace FToken { ), }, borrow: { - totalBorrows: bigInt(JSONPath({ path: '$.args[0].args[3].int', json: storageResult })[0]), + totalBorrows: bigInt(JSONPath({ path: '$.args[0].args[3].args[1].int', json: storageResult })[0]), borrowIndex: bigInt( - JSONPath({ path: '$.args[0].args[0].args[0].args[3].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[0].args[1].int', json: storageResult })[0], ), borrowRateMaxMantissa: bigInt( - JSONPath({ path: '$.args[0].args[0].args[1].args[0].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[0].args[2].int', json: storageResult })[0], ), borrowRatePerBlock: bigInt( - JSONPath({ path: '$.args[0].args[0].args[1].args[1].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[0].args[3].int', json: storageResult })[0], ), }, protocolSeizeShareMantissa: bigInt(protocolSeizeShareMantissa), comptrollerAddress: JSONPath({ - path: '$.args[0].args[0].args[1].args[2].string', + path: '$.args[0].args[0].args[1].args[1].string', json: storageResult, })[0], - expScale: bigInt(JSONPath({ path: '$.args[0].args[0].args[3].int', json: storageResult })[0]), + expScale: bigInt(JSONPath({ path: '$.args[0].args[0].args[2].int', json: storageResult })[0]), halfExpScale: bigInt( - JSONPath({ path: '$.args[0].args[1].args[0].args[0].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[4].int', json: storageResult })[0], ), initialExchangeRateMantissa: bigInt( - JSONPath({ path: '$.args[0].args[1].args[0].args[1].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[1].args[0].args[0].int', json: storageResult })[0], ), - interestRateModel: JSONPath({ path: '$.args[0].args[1].args[1].string', json: storageResult })[0], + interestRateModel: JSONPath({ path: '$.args[0].args[1].args[0].args[1].string', json: storageResult })[0], pendingAdministrator: pendingAdministrator, reserveFactorMantissa: bigInt( JSONPath({ path: '$.args[0].args[2].args[0].int', json: storageResult })[0], @@ -142,7 +148,11 @@ export namespace FToken { case TokenStandard.FA2: { const storageResult = await TezosNodeReader.getContractStorage(server, fTokenAddress); const balancesMapId = JSONPath({ - path: '$.args[0].args[0].args[0].args[2].int', + path: '$.args[0].args[1].args[0].args[1].int', + json: storageResult, + })[0]; + const borrowsMapId = JSONPath({ + path: '$.args[0].args[0].args[1].args[0].int', json: storageResult, })[0]; const adminJsonPrase = JSONPath({ path: '$.args[0].args[1].args[1].prim', json: storageResult })[0]; @@ -163,10 +173,11 @@ export namespace FToken { json: storageResult, })[0], administrator: JSONPath({ - path: '$.args[0].args[0].args[0].args[1].string', + path: '$.args[0].args[0].args[0].args[0].args[2].string', json: storageResult, })[0], balancesMapId: balancesMapId, + borrowsMapId: borrowsMapId, supply: { totalSupply: bigInt(JSONPath({ path: '$.args[0].args[5].int', json: storageResult })[0]), supplyRatePerBlock: bigInt( @@ -174,31 +185,31 @@ export namespace FToken { ), }, borrow: { - totalBorrows: bigInt(JSONPath({ path: '$.args[0].args[3].int', json: storageResult })[0]), + totalBorrows: bigInt(JSONPath({ path: '$.args[0].args[3].args[1].int', json: storageResult })[0]), borrowIndex: bigInt( - JSONPath({ path: '$.args[0].args[0].args[0].args[3].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[0].args[1].int', json: storageResult })[0], ), borrowRateMaxMantissa: bigInt( - JSONPath({ path: '$.args[0].args[0].args[1].args[0].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[0].args[2].int', json: storageResult })[0], ), borrowRatePerBlock: bigInt( - JSONPath({ path: '$.args[0].args[0].args[1].args[1].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[0].args[3].int', json: storageResult })[0], ), }, protocolSeizeShareMantissa: bigInt(protocolSeizeShareMantissa), comptrollerAddress: JSONPath({ - path: '$.args[0].args[0].args[1].args[2].string', + path: '$.args[0].args[0].args[1].args[1].string', json: storageResult, })[0], - expScale: bigInt(JSONPath({ path: '$.args[0].args[0].args[3].int', json: storageResult })[0]), + expScale: bigInt(JSONPath({ path: '$.args[0].args[0].args[2].args[0].int', json: storageResult })[0]), halfExpScale: bigInt( - JSONPath({ path: '$.args[0].args[1].args[0].args[0].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[3].int', json: storageResult })[0], ), initialExchangeRateMantissa: bigInt( - JSONPath({ path: '$.args[0].args[1].args[0].args[1].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[4].int', json: storageResult })[0], ), interestRateModel: JSONPath({ - path: '$.args[0].args[1].args[0].args[2].string', + path: '$.args[0].args[1].args[0].args[0].string', json: storageResult, })[0], pendingAdministrator: pendingAdministrator, @@ -215,7 +226,11 @@ export namespace FToken { case TokenStandard.XTZ: { const storageResult = await TezosNodeReader.getContractStorage(server, fTokenAddress); const balancesMapId = JSONPath({ - path: '$.args[0].args[0].args[0].args[2].int', + path: '$.args[0].args[1].args[0].args[1].int', + json: storageResult, + })[0]; + const borrowsMapId = JSONPath({ + path: '$.args[0].args[0].args[1].args[1].int', json: storageResult, })[0]; const adminJsonPrase = JSONPath({ path: '$.args[0].args[1].args[1].prim', json: storageResult })[0]; @@ -241,6 +256,7 @@ export namespace FToken { json: storageResult, })[0], balancesMapId: balancesMapId, + borrowsMapId: borrowsMapId, supply: { totalSupply: bigInt(JSONPath({ path: '$.args[0].args[5].int', json: storageResult })[0]), supplyRatePerBlock: bigInt( @@ -250,24 +266,24 @@ export namespace FToken { borrow: { totalBorrows: bigInt(JSONPath({ path: '$.args[0].args[3].int', json: storageResult })[0]), borrowIndex: bigInt( - JSONPath({ path: '$.args[0].args[0].args[0].args[3].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[0].args[2].int', json: storageResult })[0], ), borrowRateMaxMantissa: bigInt( - JSONPath({ path: '$.args[0].args[0].args[1].args[0].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[0].args[3].int', json: storageResult })[0], ), borrowRatePerBlock: bigInt( - JSONPath({ path: '$.args[0].args[0].args[1].args[1].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[1].args[0].int', json: storageResult })[0], ), }, protocolSeizeShareMantissa: bigInt(protocolSeizeShareMantissa), - comptrollerAddress: JSONPath({ path: '$.args[0].args[0].args[2].string', json: storageResult })[0], - expScale: bigInt(JSONPath({ path: '$.args[0].args[0].args[3].int', json: storageResult })[0]), - halfExpScale: bigInt(JSONPath({ path: '$.args[0].args[0].args[4].int', json: storageResult })[0]), + comptrollerAddress: JSONPath({ path: '$.args[0].args[0].args[1].args[2].string', json: storageResult })[0], + expScale: bigInt(JSONPath({ path: '$.args[0].args[0].args[2].int', json: storageResult })[0]), + halfExpScale: bigInt(JSONPath({ path: '$.args[0].args[0].args[3].int', json: storageResult })[0]), initialExchangeRateMantissa: bigInt( - JSONPath({ path: '$.args[0].args[1].args[0].args[0].int', json: storageResult })[0], + JSONPath({ path: '$.args[0].args[0].args[4].int', json: storageResult })[0], ), interestRateModel: JSONPath({ - path: '$.args[0].args[1].args[0].args[1].string', + path: '$.args[0].args[1].args[0].args[0].string', json: storageResult, })[0], pendingAdministrator: pendingAdministrator, @@ -748,13 +764,15 @@ export namespace FToken { assetType: AssetType, currentIndex: bigInt.BigInteger, balancesMapId: number, + borrowsMapId: number, server: string, ): Promise { try { const balanceResult = await queryBalance(account, balancesMapId, server); - return parseBalanceResult(balanceResult, currentIndex, assetType); + const borrowResult = await queryBalance(account, borrowsMapId, server); + return parseBalanceResult(balanceResult, borrowResult, currentIndex, assetType); } catch (e) { - return parseBalanceResult({}, currentIndex, assetType); + return parseBalanceResult({}, {},currentIndex, assetType); } } @@ -802,12 +820,13 @@ export namespace FToken { */ export function parseBalanceResult( balanceInfo: any, + borrowInfo:any, currentIndex: bigInt.BigInteger, assetType: AssetType, ): Balance { - const borrowIndex = JSONPath({ path: '$.args[0].args[0].int', json: balanceInfo })[0] || 0; - const borrowPrincipal = JSONPath({ path: '$.args[0].args[1].int', json: balanceInfo })[0] || 0; - const supplyPrincipal = JSONPath({ path: '$.args[2].int', json: balanceInfo })[0] || 0; + const borrowIndex = JSONPath({ path: '$.args[0].int', json: borrowInfo })[0] || 0; + const borrowPrincipal = JSONPath({ path: '$.args[1].int', json: borrowInfo })[0] || 0; + const supplyPrincipal = JSONPath({ path: '$.args[1].int', json: balanceInfo })[0] || 0; // TODO: parse approvals // return 0 balance if uninitialized in contract diff --git a/src/util/src/TezosLendingPlatform.ts b/src/util/src/TezosLendingPlatform.ts index 55166f6c..1663be2d 100644 --- a/src/util/src/TezosLendingPlatform.ts +++ b/src/util/src/TezosLendingPlatform.ts @@ -274,6 +274,7 @@ export namespace TezosLendingPlatform { asset as AssetType, markets[asset].storage.borrow.borrowIndex, markets[asset].storage.balancesMapId, + markets[asset].storage.borrowsMapId, server, ); console.log('cc2', asset, balances[asset]); diff --git a/src/util/src/const.ts b/src/util/src/const.ts index f891822b..eb3a16ce 100644 --- a/src/util/src/const.ts +++ b/src/util/src/const.ts @@ -21,30 +21,30 @@ export const decimals = { export const testnetAddresses: ProtocolAddresses = { fTokens: { - USDT: "KT1MpaQYLKPc9xoE9pB6GZj4zbtR6Lxo6Awt", - USD: "KT1Ni4vvfYcQXxLzFtUYr4G95TUSjMbX5XkM", - XTZ: "KT18vuapZfMG1qYiP7qt2tTEDiokKdj77VWn", - TZBTC: "KT1Hsbx9gw4N5y9SUHtMnfq22KQMoHBZvPmL", + USDT: "KT1P51AJbS1iBvAXstqsPv4UJeQ8fGCZbS7P", + USD: "KT1QtSBzy61AmUcsjqQbMSdnr1ifP9RQ2Zug", + XTZ: "KT1CC4E5zmbJm94VwLf7ZEoJvC2tEqzE8Pqp", + TZBTC: "KT1JrHK7S9zZ5bA1xTBxNnkieM9YL7iq1KdB", }, fTokensReverse: { - KT18vuapZfMG1qYiP7qt2tTEDiokKdj77VWn: AssetType.XTZ, - KT1Ni4vvfYcQXxLzFtUYr4G95TUSjMbX5XkM: AssetType.USD, - KT1MpaQYLKPc9xoE9pB6GZj4zbtR6Lxo6Awt: AssetType.USDT, - KT1Hsbx9gw4N5y9SUHtMnfq22KQMoHBZvPmL: AssetType.TZBTC, + KT1CC4E5zmbJm94VwLf7ZEoJvC2tEqzE8Pqp: AssetType.XTZ, + KT1QtSBzy61AmUcsjqQbMSdnr1ifP9RQ2Zug: AssetType.USD, + KT1P51AJbS1iBvAXstqsPv4UJeQ8fGCZbS7P: AssetType.USDT, + KT1JrHK7S9zZ5bA1xTBxNnkieM9YL7iq1KdB: AssetType.TZBTC, }, underlying: { USD: { assetType: AssetType.USD, - address: "KT1PmfHvLcvSQAF2Hf7CCRpPHMZ6RciMWkir", - balancesMapId: 415883, + address: "KT1WatnVAD7GSdZZrQVm1oMgEnqPCnKNuqrn", + balancesMapId: 468865, tokenStandard: TokenStandard.FA12, decimals: 6, balancesPath: "$.args[1].int", }, TZBTC: { assetType: AssetType.TZBTC, - address: "KT1A9tgN8bPGLBRZGE6fqX7j4rvMqyjk8No2", - balancesMapId: 420073, + address: "KT1DSBWogEEkLyk9UysA9p91v7xPvzV18Vu7", + balancesMapId: 468862, tokenStandard: TokenStandard.FA12, decimals: 8, balancesPath: "$.args[1].int", @@ -53,9 +53,9 @@ export const testnetAddresses: ProtocolAddresses = { assetType: AssetType.USDT, tokenStandard: TokenStandard.FA2, decimals: 6, - address: "KT1E9xgz4Qze9Xk6sXebknStrTisjhz3LMgP", + address: "KT1Rr8vMLzQ4BQghUjGZerB5WrV1hTtVjtUb", tokenId: 0, - balancesMapId: 415878, + balancesMapId: 468868, balancesPath: "$.int", }, XTZ: { @@ -64,29 +64,29 @@ export const testnetAddresses: ProtocolAddresses = { decimals: 6, }, }, - comptroller: "KT1Rduo6M7kfGknEAk9syFfZjBaPEzWKF3ZU", + comptroller: "KT1R2sHBKvaja5ZVZzLv5VcoAUNfSYoYFDrX", interestRateModel: { - XTZ: "KT1VZF6cD6xDsX2mRjDq78NkdKePvM8VeDaz", - USDT: "KT1T1fed3EBdFuFCLozDz9DN46WMUDE9pvec", - USD: "KT1PQB3ohew916tDpJHw3uJPED3oH4abMXCM", - TZBTC: "KT1PQB3ohew916tDpJHw3uJPED3oH4abMXCM", + XTZ: "KT1XNBkP1irKJgC1DGWFqD8Je1tdcoyuDoha", + USDT: "KT1XNBkP1irKJgC1DGWFqD8Je1tdcoyuDoha", + USD: "KT1XNBkP1irKJgC1DGWFqD8Je1tdcoyuDoha", + TZBTC: "KT1XNBkP1irKJgC1DGWFqD8Je1tdcoyuDoha", }, - governance: "KT1FWtzGbfygRbMkZ7XJ72qxMcRuLuNhFF7z", + governance: "KT1ELnYzaxQBULdfJXBc7iAVfudd4ktqvdhA", oracle: "KT1JruaZp25yuKgn2DGTnCMbRoU3CaZ4M11m", }; export const mainnetAddresses: ProtocolAddresses = { fTokens: { - XTZ: "KT1MCXxbtS62tk4CUxv29BHnqTBtvsFFGzBm", - USD: "KT1WQM7wj64GHCndwV8REccQ6N4tqZ3uRNqs", - USDT: "KT1HCRJhfqmWKRJtZXzvTkY4iisfuR4w6pkB", - TZBTC: "KT19gZac3vqV3ZeMJbhMX7Xy8kcocKK4Tbz1", + XTZ: "KT1Gm29ynxQcS3m6Srwd77xxMhposuNvNsRV", + USD: "KT1DcgX4Lj1XYyB6yyg76gwpfCBaoUZsg5dE", + USDT: "KT1HxMHg859teFpXXCZamuPiEyJa6YfHiagn", + TZBTC: "KT1DrELZukfWQNo3J3HTUqMS9vVTjBPLT5nQ", }, fTokensReverse: { - KT1MCXxbtS62tk4CUxv29BHnqTBtvsFFGzBm: AssetType.XTZ, - KT1WQM7wj64GHCndwV8REccQ6N4tqZ3uRNqs: AssetType.USD, - KT1HCRJhfqmWKRJtZXzvTkY4iisfuR4w6pkB: AssetType.USDT, - KT19gZac3vqV3ZeMJbhMX7Xy8kcocKK4Tbz1: AssetType.TZBTC, + KT1Gm29ynxQcS3m6Srwd77xxMhposuNvNsRV: AssetType.XTZ, + KT1DcgX4Lj1XYyB6yyg76gwpfCBaoUZsg5dE: AssetType.USD, + KT1HxMHg859teFpXXCZamuPiEyJa6YfHiagn: AssetType.USDT, + KT1DrELZukfWQNo3J3HTUqMS9vVTjBPLT5nQ: AssetType.TZBTC, }, underlying: { TZBTC: { @@ -120,15 +120,15 @@ export const mainnetAddresses: ProtocolAddresses = { decimals: 6, }, }, - comptroller: "KT1DiWBT6RBC97iWrvLHRzKL7AWQKorBiuRG", + comptroller: "KT1P6Lryn3ikbyf5jywWBBRP5fkztE5ZafGe", interestRateModel: { - XTZ: "KT1R1M23qndUqKuPt3JCAaidShipGbXpKuZ8", - USDT: "KT1UsCGbxtAtLaCZcbpyHrX5SUSBRvpkFw4M", - USD: "KT1SfYEBtRrPsWoMo5RGS53ux6xCbpyXALL1", - TZBTC: "KT1SfYEBtRrPsWoMo5RGS53ux6xCbpyXALL1", + XTZ: "KT1MouCFViyqWQ3QX5Zk69JGnXBXjQso68sy", + USDT: "KT1MouCFViyqWQ3QX5Zk69JGnXBXjQso68sy", + USD: "KT1MouCFViyqWQ3QX5Zk69JGnXBXjQso68sy", + TZBTC: "KT1MouCFViyqWQ3QX5Zk69JGnXBXjQso68sy", }, - governance: "KT1NF6DKX5giazRTzPtEuNX1npkVcaoQkvK2", - oracle: "KT1LDtNKDnpziwSrmSfx3xCbs7nBMg7VFp4m", + governance: "KT1QScMEtDpXSuj7z2if1EMSqaXaXPnWCxqv", + oracle: "KT1Wey5KJSanEkVvLf3ngQcMiBqF9Sn2FEic", }; export const tokenNames: { [assetType: string]: string } = {