diff --git a/.changeset/fair-goats-glow.md b/.changeset/fair-goats-glow.md
new file mode 100644
index 000000000..b7d83f522
--- /dev/null
+++ b/.changeset/fair-goats-glow.md
@@ -0,0 +1,5 @@
+---
+"@sovryn/contracts": patch
+---
+
+Add StakingRewardsOS contract on BOB
diff --git a/.changeset/tasty-radios-retire.md b/.changeset/tasty-radios-retire.md
new file mode 100644
index 000000000..95b7050f9
--- /dev/null
+++ b/.changeset/tasty-radios-retire.md
@@ -0,0 +1,5 @@
+---
+"frontend": patch
+---
+
+General POWA & Spice updates
diff --git a/apps/frontend/src/app/5_pages/LandingPage/components/QuickLaunch/QuickLaunch.tsx b/apps/frontend/src/app/5_pages/LandingPage/components/QuickLaunch/QuickLaunch.tsx
index ffdd7d006..1b5e038f9 100644
--- a/apps/frontend/src/app/5_pages/LandingPage/components/QuickLaunch/QuickLaunch.tsx
+++ b/apps/frontend/src/app/5_pages/LandingPage/components/QuickLaunch/QuickLaunch.tsx
@@ -99,7 +99,6 @@ export const QuickLaunch: FC = () => {
url: () => navigate('/convert'),
backgroundImage: runesBg,
chains: [Chains.BOB],
- disable: true,
},
{
title: t(pageTranslations.quickLaunch.earnYield_BOB.title),
diff --git a/apps/frontend/src/app/5_pages/RewardsPage/hooks/useGetLiquidOsSovClaimAmount.ts b/apps/frontend/src/app/5_pages/RewardsPage/hooks/useGetLiquidOsSovClaimAmount.ts
index ded8a48a3..44ee2d382 100644
--- a/apps/frontend/src/app/5_pages/RewardsPage/hooks/useGetLiquidOsSovClaimAmount.ts
+++ b/apps/frontend/src/app/5_pages/RewardsPage/hooks/useGetLiquidOsSovClaimAmount.ts
@@ -4,6 +4,7 @@ import { Decimal } from '@sovryn/utils';
import { MS } from '../../../../constants/general';
import { useAccount } from '../../../../hooks/useAccount';
+import { useCurrentChain } from '../../../../hooks/useChainStore';
import { useGetProtocolContract } from '../../../../hooks/useGetContract';
import { useGetLockDate } from '../../StakePage/components/StakesFrame/hooks/useGetLockDate';
@@ -15,7 +16,8 @@ export const useGetLiquidOsSovClaimAmount = () => {
});
const { account } = useAccount();
- const stakingRewardsOs = useGetProtocolContract('stakingRewardsOs');
+ const chainId = useCurrentChain();
+ const stakingRewardsOs = useGetProtocolContract('stakingRewardsOs', chainId);
const now = useMemo(() => Math.ceil(Date.now() / MS), []);
const { lockDate } = useGetLockDate(now);
diff --git a/apps/frontend/src/locales/en/translations.json b/apps/frontend/src/locales/en/translations.json
index 0b415a56f..f8425e12d 100644
--- a/apps/frontend/src/locales/en/translations.json
+++ b/apps/frontend/src/locales/en/translations.json
@@ -506,7 +506,7 @@
"runes_BOB": {
"title": "Trade Runes",
"description": "The hottest tokens now trading on Sovryn.",
- "action": "Coming soon"
+ "action": "Trade Runes"
},
"earnYield_BOB": {
"title": "Passive Yield",
@@ -537,8 +537,8 @@
"cta": "Learn More"
},
"runesBridge": {
- "title": "RUNES ARE COMING",
- "description": "Runes will soon be tradeable on mainnet! Runes bridge is being prepared to go live. Stay tuned!",
+ "title": "RUNES ARE HERE!",
+ "description": "Runes are now tradeable on mainnet! Runes bridge is live!",
"cta": "Learn more about Runes"
},
"sovrynIsLiveOnBob": {
@@ -1008,14 +1008,14 @@
"meta": {
"title": "Extra Spice & Runes Leaderboard - Sovryn"
},
- "title": "Extra Spice & Runes Leaderboard",
+ "title": "Extra Spice & Runes Season 1 Leaderboard",
"claimWarning": "Please note that users claiming from the distributor contract prior to <0>2024-05-31 12:00:00 UTC0> will not be eligible to Extra Spice, and claiming prior to <1>2024-06-30 12:00:00 UTC1> will not be eligible to Rune points.",
"aboutCampaign": "About Extra Spice and Runes campaign",
"claimLp": "Claim LP tokens",
"connectWalletText": "Connect your wallet to see how many points you’ve got.",
"connectWalletCta": "Connect wallet",
"table": {
- "leaderboard": "Leaderboard",
+ "leaderboard": "Season 1 Leaderboard",
"yourPosition": "Your position",
"participant": "Participant",
"balance": "Balance",
@@ -1959,10 +1959,10 @@
"longDescription": "Your deposits were transferred into the Sovryn AMM pools on BOB. Deposit represents 50% of the value of your original token and 50% in SOV. Trading fees will begin accruing immediately.",
"eSovDescription": "For eSOV Depositors:
If you deposited eSOV via Sovryn’s referral link, please move your eSOV to BOB and stake them in Sovryn on BOB. This action must be done by <0>2024-05-16 12:00:00 UTC0> to be eligible for Extra Spice. <1>Read more1>",
"claimWarning": "Please note that users claiming from the distributor contract prior to <0>2024-05-31 12:00:00 UTC0> will not be eligible to Extra Spice, and claiming prior to <1>2024-06-30 12:00:00 UTC1> will not be eligible to Rune points.",
- "checkLeaderboard": "Check leaderboard",
+ "checkLeaderboard": "Check Season 1 leaderboard",
"disclaimer": "I understand that by claiming deposits now I will lose eligibility for the additional rewards",
"descriptionValues": {
- "amm": "Marked Making page"
+ "amm": "Market Making page"
},
"originalDeposit": "Original deposit",
"claimableTitle": "AMM pool",
diff --git a/packages/contracts/src/contracts/protocol/bob.ts b/packages/contracts/src/contracts/protocol/bob.ts
index 0f58b995c..3a0868e93 100644
--- a/packages/contracts/src/contracts/protocol/bob.ts
+++ b/packages/contracts/src/contracts/protocol/bob.ts
@@ -10,6 +10,11 @@ export const bob: Record = {
getAbi: async () =>
(await import('../../abis/merkleDistributor.json')).default,
},
+ stakingRewardsOs: {
+ address: '0xFdC57Cb52264209afd1559E7E3Db0F28351E9422',
+ getAbi: async () =>
+ (await import('../../abis/StakingRewardsOs.json')).default,
+ },
runeBridge: {
address: '0x8989E07E565966463C73dadE4c095DaC991e1dD2',
getAbi: async () => (await import('../../abis/RuneBridge.json')).default,
diff --git a/packages/contracts/src/contracts/protocol/bobTestnet.ts b/packages/contracts/src/contracts/protocol/bobTestnet.ts
index 8f7658a7d..52a281016 100644
--- a/packages/contracts/src/contracts/protocol/bobTestnet.ts
+++ b/packages/contracts/src/contracts/protocol/bobTestnet.ts
@@ -6,10 +6,15 @@ export const bobTestnet: Record = {
getAbi: async () => (await import('../../abis/staking.json')).default,
},
merkleDistributor: {
- address: '0x0', // todo: update address
+ address: '0x0',
getAbi: async () =>
(await import('../../abis/merkleDistributor.json')).default,
},
+ stakingRewardsOs: {
+ address: '0x0',
+ getAbi: async () =>
+ (await import('../../abis/StakingRewardsOs.json')).default,
+ },
runeBridge: {
address: '0x9d451acb7A7f98dc4F2d2A2aA1A0b0436f0Effdb',
getAbi: async () => (await import('../../abis/RuneBridge.json')).default,