From 7c2bda09d9c597c491fb7b48af859c4939cdb5de Mon Sep 17 00:00:00 2001
From: 0xMosas
Date: Sat, 25 Apr 2026 16:39:59 +0100
Subject: [PATCH 01/29] refactor(config): update default contract name to v3
---
frontend/src/config.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/src/config.ts b/frontend/src/config.ts
index f7caf690..b5ffba82 100644
--- a/frontend/src/config.ts
+++ b/frontend/src/config.ts
@@ -2,7 +2,7 @@
export const NETWORK = (process.env.NEXT_PUBLIC_NETWORK || 'mainnet') as 'mainnet' | 'testnet';
export const CONTRACT_ADDRESS = process.env.NEXT_PUBLIC_CONTRACT_ADDRESS || 'SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T';
-export const CONTRACT_NAME = process.env.NEXT_PUBLIC_CONTRACT_NAME || 'sprintfund-core';
+export const CONTRACT_NAME = process.env.NEXT_PUBLIC_CONTRACT_NAME || 'sprintfund-core-v3';
export const CONTRACT_PRINCIPAL = `${CONTRACT_ADDRESS}.${CONTRACT_NAME}`;
/* ── API ──────────────────────────────────────── */
From 6618d362b3783a1f321eda3344e50c8c90104aa1 Mon Sep 17 00:00:00 2001
From: 0xMosas
Date: Sat, 25 Apr 2026 16:41:01 +0100
Subject: [PATCH 02/29] chore(k8s): align configmap with v3 contract deployment
---
frontend/k8s/configmap.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/k8s/configmap.yaml b/frontend/k8s/configmap.yaml
index d8ab7ac1..1d49057e 100644
--- a/frontend/k8s/configmap.yaml
+++ b/frontend/k8s/configmap.yaml
@@ -6,5 +6,5 @@ metadata:
app: sprintfund-frontend
data:
network: "mainnet"
- contract-address: "SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core"
+ contract-address: "SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3"
stacks-api-url: "https://stacks-node-api.mainnet.stacks.co"
From c1f0331c672bb390b6d08614203439b425a8c55f Mon Sep 17 00:00:00 2001
From: 0xMosas
Date: Sat, 25 Apr 2026 16:42:21 +0100
Subject: [PATCH 03/29] docs: update contract principal in frontend README
---
frontend/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/frontend/README.md b/frontend/README.md
index 99c248e0..60723606 100644
--- a/frontend/README.md
+++ b/frontend/README.md
@@ -49,7 +49,7 @@ Available environment variables:
|----------|-------------|---------|
| `NEXT_PUBLIC_NETWORK` | Stacks network (mainnet/testnet) | mainnet |
| `NEXT_PUBLIC_CONTRACT_ADDRESS` | Contract deployer address | SP31PKQ... |
-| `NEXT_PUBLIC_CONTRACT_NAME` | Contract name | sprintfund-core |
+| `NEXT_PUBLIC_CONTRACT_NAME` | Contract name | sprintfund-core-v3 |
For mainnet deployment, no environment changes are typically needed.
@@ -111,7 +111,7 @@ frontend/
The frontend interacts with the deployed contract:
-**Contract**: `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core`
+**Contract**: `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3`
### Read-Only Functions
- `get-proposal-count()` - Fetch total proposals
From 02c3b23fcc2244895f7942aa8364ad23d528fe32 Mon Sep 17 00:00:00 2001
From: 0xMosas
Date: Sat, 25 Apr 2026 16:42:49 +0100
Subject: [PATCH 04/29] refactor(env): update default contract name in
.env.example
---
frontend/.env.example | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/frontend/.env.example b/frontend/.env.example
index 5b078648..8a335de9 100644
--- a/frontend/.env.example
+++ b/frontend/.env.example
@@ -11,8 +11,8 @@ NEXT_PUBLIC_NETWORK=mainnet
# Deployed contract address
NEXT_PUBLIC_CONTRACT_ADDRESS=SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T
-# Contract name (optional, defaults to sprintfund-core)
-NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core
+# Contract name (optional, defaults to sprintfund-core-v3)
+NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core-v3
# Stacks API base URL (optional, auto-selected based on network)
NEXT_PUBLIC_STACKS_API_URL=https://stacks-node-api.mainnet.stacks.co
From 620b8227baa868d1c406befe9ba3e9cebc56f8cf Mon Sep 17 00:00:00 2001
From: 0xMosas
Date: Sat, 25 Apr 2026 16:43:01 +0100
Subject: [PATCH 05/29] refactor(scripts): update contract name to v3 in
stake.js
---
scripts/stake.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/stake.js b/scripts/stake.js
index 78d54562..c73caf1e 100644
--- a/scripts/stake.js
+++ b/scripts/stake.js
@@ -38,7 +38,7 @@ async function stakeSTX() {
const privateKey = keyResult.key;
const contractAddress = 'SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T';
- const contractName = 'sprintfund-core';
+ const contractName = 'sprintfund-core-v3';
const stakeAmount = 10000000;
console.log('============================================');
From fa686b4819317a556142b59906237ea1b0b64b1e Mon Sep 17 00:00:00 2001
From: 0xMosas
Date: Sat, 25 Apr 2026 16:43:13 +0100
Subject: [PATCH 06/29] refactor(scripts): update contract name to v3 in
create-proposal.js
---
scripts/create-proposal.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/create-proposal.js b/scripts/create-proposal.js
index 37baf27d..dd20286f 100644
--- a/scripts/create-proposal.js
+++ b/scripts/create-proposal.js
@@ -45,7 +45,7 @@ async function createProposal() {
const privateKey = keyResult.key;
const contractAddress = 'SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T';
- const contractName = 'sprintfund-core';
+ const contractName = 'sprintfund-core-v3';
const amount = 50000000;
const title = 'Test Proposal 1';
const description = 'Testing SprintFund proposal creation for Builder Rewards program';
From 2cfbc8c2108b09686a392edf9258ab305e3f0e5e Mon Sep 17 00:00:00 2001
From: 0xMosas
Date: Sat, 25 Apr 2026 17:02:27 +0100
Subject: [PATCH 07/29] refactor(scripts): update contract name to v3 in README
examples
---
scripts/README.md | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/scripts/README.md b/scripts/README.md
index 4b41404d..ed5263d4 100644
--- a/scripts/README.md
+++ b/scripts/README.md
@@ -193,18 +193,11 @@ Transaction confirmations typically take 10-30 minutes on mainnet.
Check your stake balance:
```bash
# Using Stacks API
-curl "https://api.mainnet.hiro.so/v2/contracts/call-read/SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T/sprintfund-core/get-stake" \
+curl "https://api.mainnet.hiro.so/v2/contracts/call-read/SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T/sprintfund-core-v3/get-stake" \
-H "Content-Type: application/json" \
-d '{"sender":"YOUR_ADDRESS","arguments":["YOUR_ADDRESS_CV"]}'
```
-Or view on explorer: https://explorer.hiro.so/txid/SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core''''''''''''''''''''''''''''''''''''''''''''''''''''''''/']'
-
-
-
-
-
-
@@ -243,3 +236,4 @@ Or view on explorer: https://explorer.hiro.so/txid/SP31PKQVQZVZCK3FM3NH67CGD6G1F
+Or view on explorer: https://explorer.hiro.so/txid/SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3
From 0f41c8c5c562e77bbc986cf4a60e1651ba5cf0d4 Mon Sep 17 00:00:00 2001
From: 0xMosas
Date: Sat, 25 Apr 2026 17:03:48 +0100
Subject: [PATCH 08/29] feat(ui): display active contract version in footer
---
frontend/src/components/Footer.tsx | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx
index 93c69a09..dda6ce3f 100644
--- a/frontend/src/components/Footer.tsx
+++ b/frontend/src/components/Footer.tsx
@@ -1,3 +1,5 @@
+import { CONTRACT_NAME } from '@/config';
+
export function Footer() {
return (