Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
7c2bda0
refactor(config): update default contract name to v3
Mosas2000 Apr 25, 2026
6618d36
chore(k8s): align configmap with v3 contract deployment
Mosas2000 Apr 25, 2026
c1f0331
docs: update contract principal in frontend README
Mosas2000 Apr 25, 2026
02c3b23
refactor(env): update default contract name in .env.example
Mosas2000 Apr 25, 2026
620b822
refactor(scripts): update contract name to v3 in stake.js
Mosas2000 Apr 25, 2026
fa686b4
refactor(scripts): update contract name to v3 in create-proposal.js
Mosas2000 Apr 25, 2026
2cfbc8c
refactor(scripts): update contract name to v3 in README examples
Mosas2000 Apr 25, 2026
0f41c8c
feat(ui): display active contract version in footer
Mosas2000 Apr 25, 2026
76c47c2
docs: update versioning documentation to designate v3 as active
Mosas2000 Apr 25, 2026
44a0e21
chore(config): add v3 contract to Clarinet workspace
Mosas2000 Apr 25, 2026
7459ef1
chore(deployments): update mainnet plan to target v3 contract
Mosas2000 Apr 25, 2026
d4bca2c
docs: update contract address and explorer links in root README
Mosas2000 Apr 25, 2026
d1a1b69
refactor(scripts): update contract name to v3 in create-test-proposal.sh
Mosas2000 Apr 25, 2026
3e48aee
test(config): align config test fixtures with v3 contract
Mosas2000 Apr 25, 2026
d7e9613
test(integration): update integration tests to target v3 contract
Mosas2000 Apr 25, 2026
84c2c26
test(invariants): update mathematical invariant tests to target v3 co…
Mosas2000 Apr 25, 2026
7029da5
docs: document NEXT_PUBLIC_CONTRACT_NAME in environment guide
Mosas2000 Apr 25, 2026
4ff8a70
docs: add V3 contract migration guide
Mosas2000 Apr 25, 2026
0e32523
chore: add lint script to root package.json
Mosas2000 Apr 25, 2026
7c0e50a
chore(scripts): add contract name validation to deployment script
Mosas2000 Apr 25, 2026
aa4336a
docs(types): update contract comments to reference v3
Mosas2000 Apr 25, 2026
fd61262
chore(deployments): add v3 contract to simnet plan
Mosas2000 Apr 25, 2026
37d6a58
test: add dedicated test suite for v3 core contract
Mosas2000 Apr 25, 2026
fbc6a06
docs: align NETWORK_CONFIG.md with v3 contract
Mosas2000 Apr 25, 2026
10ba6c9
chore(clarinet): reorder contracts to prioritize v3 in Clarinet.toml
Mosas2000 Apr 25, 2026
6b7e4a1
test(utils): fix imports and add coverage for high-value proposal check
Mosas2000 Apr 25, 2026
9c2a72b
docs: add V3 migration section to frontend README
Mosas2000 Apr 25, 2026
9ef7fad
docs: include NEXT_PUBLIC_CONTRACT_NAME in deployment guide
Mosas2000 Apr 25, 2026
30d402d
feat(scripts): add legacy withdrawal script for v1 cleanup
Mosas2000 Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions CONTRACT_VERSIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

| Version | Contract Name | Address | Status | Deployment Date |
|---------|---------------|---------|--------|----------------|
| v1 | `sprintfund-core` | `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core` | **ACTIVE** | Initial deployment |
| v3 | `sprintfund-core-v3` | `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3` | Deployed | - |
| v1 | `sprintfund-core` | `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core` | Deprecated | Initial deployment |
| v3 | `sprintfund-core-v3` | `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3` | **ACTIVE** | Current production version |

### Active Contract

**The frontend and all production systems currently use:**
- Contract: `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core`
- Contract: `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3`
- Network: Mainnet

## Version Differences
Expand All @@ -26,7 +26,7 @@
### v3 (sprintfund-core-v3)
- Enhanced version with improvements
- May include bug fixes or feature enhancements
- **Note**: Currently deployed but not in active use by frontend
- **Note**: Currently the active production contract

## Versioning Strategy

Expand Down Expand Up @@ -56,7 +56,7 @@ All contract references use centralized configuration:

```typescript
export const CONTRACT_ADDRESS = 'SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T';
export const CONTRACT_NAME = 'sprintfund-core';
export const CONTRACT_NAME = 'sprintfund-core-v3';
export const CONTRACT_PRINCIPAL = `${CONTRACT_ADDRESS}.${CONTRACT_NAME}`;
```

Expand Down Expand Up @@ -97,10 +97,10 @@ When ready to switch to a new version:

## Current Status

**Frontend is using**: `sprintfund-core` (v1)
**Frontend is using**: `sprintfund-core-v3` (v3)

**Recommendation**: The v3 contract exists but is not in active use. Before switching:
1. Document specific improvements in v3
**Recommendation**: The v3 contract is now in active use. Future migrations should:
1. Document specific improvements in newer versions
2. Test thoroughly
3. Create migration plan if state needs to be preserved
4. Update all references using the checklist above
Expand Down
5 changes: 5 additions & 0 deletions Clarinet.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ authors = []
telemetry = false
cache_dir = "./.cache"

[contracts.sprintfund-core-v3]
path = "contracts/sprintfund-core-v3.clar"
epoch = "latest"

[contracts.sprintfund-core]
path = "contracts/sprintfund-core.clar"
epoch = "latest"
Expand Down Expand Up @@ -32,3 +36,4 @@ check_checker = { trusted_sender = false, trusted_caller = false, callee_filter
# warning, if it gets checked inside. This check will also propagate up to the
# caller.
# More informations: https://www.hiro.so/blog/new-safety-checks-in-clarinet
# v3 moved to top
6 changes: 3 additions & 3 deletions NETWORK_CONFIG.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ SprintFund supports both Stacks Mainnet and Testnet environments via environment

### `NEXT_PUBLIC_CONTRACT_NAME`
- **Type:** String
- **Default:** `sprintfund-core`
- **Default:** `sprintfund-core-v3`
- **Description:** The contract name (optional)

### `NEXT_PUBLIC_STACKS_API_URL`
Expand All @@ -45,14 +45,14 @@ SprintFund supports both Stacks Mainnet and Testnet environments via environment
```bash
NEXT_PUBLIC_NETWORK=mainnet
NEXT_PUBLIC_CONTRACT_ADDRESS=SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T
NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core
NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core-v3
```

### Testnet (Development)
```bash
NEXT_PUBLIC_NETWORK=testnet
NEXT_PUBLIC_CONTRACT_ADDRESS=ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core
NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core-v3
```

## Testing Network Switching
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ SprintFund is a decentralized autonomous organization (DAO) designed to fund sma

**Status**: ✅ **Live on Stacks Mainnet**

**Contract Address**: `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core`
**Contract Address**: `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3`

**Explorer**: [View on Stacks Explorer](https://explorer.hiro.so/txid/SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core?chain=mainnet)
**Explorer**: [View on Stacks Explorer](https://explorer.hiro.so/txid/SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3?chain=mainnet)

## Key Features

Expand Down Expand Up @@ -90,7 +90,7 @@ See [frontend/README.md](frontend/README.md) for local development setup.
```
sprintfund/
├── contracts/
│ └── sprintfund-core.clar # Main DAO contract
│ └── sprintfund-core-v3.clar # Main DAO contract
├── frontend/
│ ├── app/
│ │ └── page.tsx # Landing page
Expand Down Expand Up @@ -200,4 +200,4 @@ MIT License - see [LICENSE](LICENSE) for details.

**Built with ❤️ on Stacks Blockchain**

🔗 [GitHub](https://github.com/Mosas2000/SprintFund) | 📊 [Contract Explorer](https://explorer.hiro.so/txid/SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core?chain=mainnet)
🔗 [GitHub](https://github.com/Mosas2000/SprintFund) | 📊 [Contract Explorer](https://explorer.hiro.so/txid/SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3?chain=mainnet)
2 changes: 1 addition & 1 deletion create-test-proposal.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

# Contract details
CONTRACT_ADDRESS="SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T"
CONTRACT_NAME="sprintfund-core"
CONTRACT_NAME="sprintfund-core-v3"
FUNCTION_NAME="create-proposal"

# Proposal parameters
Expand Down
4 changes: 2 additions & 2 deletions deployments/default.mainnet-plan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ plan:
- id: 0
transactions:
- contract-publish:
contract-name: sprintfund-core
contract-name: sprintfund-core-v3
expected-sender: SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T
cost: 80580
path: contracts/sprintfund-core.clar
path: contracts/sprintfund-core-v3.clar
anchor-block-only: true
clarity-version: 3
- contract-publish:
Expand Down
5 changes: 5 additions & 0 deletions deployments/default.simnet-plan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ plan:
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: contracts/sprintfund-core.clar
clarity-version: 3
- emulated-contract-publish:
contract-name: sprintfund-core-v3
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
path: contracts/sprintfund-core-v3.clar
clarity-version: 3
- emulated-contract-publish:
contract-name: sprintfund-core-v2
emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
Expand Down
48 changes: 48 additions & 0 deletions docs/MIGRATION_V3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Migration Guide: Alignment with V3 Contract

This document outlines the changes and migration steps for aligning the SprintFund frontend and associated scripts with the `sprintfund-core-v3` contract.

## Rationale

The SprintFund project has evolved with improved logic and bug fixes in the `v3` version of the core contract. To ensure users interact with the most secure and feature-rich version of the protocol, the frontend and all maintenance scripts have been updated to target `sprintfund-core-v3` by default.

## Changes

### 1. Frontend Configuration

The default `CONTRACT_NAME` in `frontend/src/config.ts` has been updated:

```typescript
// Previous
export const CONTRACT_NAME = process.env.NEXT_PUBLIC_CONTRACT_NAME || 'sprintfund-core';

// Current
export const CONTRACT_NAME = process.env.NEXT_PUBLIC_CONTRACT_NAME || 'sprintfund-core-v3';
```

### 2. Kubernetes Configuration

The `frontend/k8s/configmap.yaml` now points to the `.sprintfund-core-v3` principal for the `contract-address` key.

### 3. Interaction Scripts

All scripts in the `scripts/` directory have been updated to target the `v3` contract by default:
- `stake.js`
- `create-proposal.js`
- `scripts/README.md` (examples and documentation)

### 4. Developer Environment

The `frontend/.env.example` has been updated to reflect the new default. Developers should update their local `.env.local` files accordingly.

## Migration Steps for Users

Since the `v3` contract maintains compatibility with the core DAO traits, existing users can continue their journey seamlessly. However, if state (like active proposals or stakes) was not migrated on-chain, users may need to re-stake on the `v3` contract.

1. **Check Stake**: Use the User Dashboard to verify your stake balance on the `v3` contract.
2. **Re-stake if necessary**: If your balance appears as 0, you may need to re-stake the minimum 10 STX to the new contract.
3. **Withdraw from V1**: Users with significant stake in the legacy `sprintfund-core` contract can use the provided `scripts/withdraw-legacy.js` (if provided) or interact directly with the old contract via the Stacks Explorer to recover their STX.

## Verification

To verify that you are interacting with the correct version, check the footer of the SprintFund application, which now displays the active contract identifier.
4 changes: 2 additions & 2 deletions frontend/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
14 changes: 12 additions & 2 deletions frontend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,16 @@ Modern Next.js frontend for the SprintFund DAO on Stacks blockchain.
- Real-time data fetching from mainnet
- In-app notification system for governance events

## V3 Contract Migration

The SprintFund frontend is fully aligned with the `sprintfund-core-v3` contract. This version includes critical bug fixes and performance improvements.

- **Active Contract**: `SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T.sprintfund-core-v3`
- **Migration Guide**: [MIGRATION_V3.md](../docs/MIGRATION_V3.md)
- **Status**: Production Ready

Users with stakes in legacy contracts can find instructions in the migration guide on how to withdraw and re-stake in the active version.

## Prerequisites

- Node.js 18+ and npm
Expand Down Expand Up @@ -49,7 +59,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.

Expand Down Expand Up @@ -111,7 +121,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
Expand Down
3 changes: 2 additions & 1 deletion frontend/docs/DEPLOYMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ Create a `.env.local` file with the following variables:

```bash
NEXT_PUBLIC_NETWORK=mainnet
NEXT_PUBLIC_CONTRACT_ADDRESS=<your-contract-address>
NEXT_PUBLIC_CONTRACT_ADDRESS=SP31PKQVQZVZCK3FM3NH67CGD6G1FMR17VQVS2W5T
NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core-v3
NEXT_PUBLIC_STACKS_API_URL=https://stacks-node-api.mainnet.stacks.co
```

Expand Down
3 changes: 3 additions & 0 deletions frontend/docs/ENVIRONMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ This document describes all environment variables used by the SprintFund fronten
|----------|-------------|---------|
| `NEXT_PUBLIC_NETWORK` | Stacks network to connect to | `mainnet`, `testnet` |
| `NEXT_PUBLIC_CONTRACT_ADDRESS` | Deployed contract address | `SP2...` |
| `NEXT_PUBLIC_CONTRACT_NAME` | Name of the contract | `sprintfund-core-v3` |
| `NEXT_PUBLIC_STACKS_API_URL` | Stacks API endpoint | `https://stacks-node-api.mainnet.stacks.co` |

## Optional Variables
Expand All @@ -27,6 +28,7 @@ Create `.env.local`:
```bash
NEXT_PUBLIC_NETWORK=testnet
NEXT_PUBLIC_CONTRACT_ADDRESS=ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM
NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core-v3
NEXT_PUBLIC_STACKS_API_URL=https://stacks-node-api.testnet.stacks.co
```

Expand All @@ -37,6 +39,7 @@ Set environment variables in your deployment platform or create `.env.production
```bash
NEXT_PUBLIC_NETWORK=mainnet
NEXT_PUBLIC_CONTRACT_ADDRESS=SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9
NEXT_PUBLIC_CONTRACT_NAME=sprintfund-core-v3
NEXT_PUBLIC_STACKS_API_URL=https://stacks-node-api.mainnet.stacks.co
```

Expand Down
2 changes: 1 addition & 1 deletion frontend/k8s/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
1 change: 1 addition & 0 deletions frontend/scripts/validate-deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ echo ""
echo "Required environment variables:"
check_env_var "NEXT_PUBLIC_NETWORK" "true"
check_env_var "NEXT_PUBLIC_CONTRACT_ADDRESS" "true"
check_env_var "NEXT_PUBLIC_CONTRACT_NAME" "true"
check_env_var "NEXT_PUBLIC_STACKS_API_URL" "true"

echo ""
Expand Down
8 changes: 8 additions & 0 deletions frontend/src/components/Footer.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { CONTRACT_NAME } from '@/config';

export function Footer() {
return (
<footer role="contentinfo" className="border-t border-border bg-dark py-6 sm:py-8">
Expand All @@ -7,6 +9,12 @@ export function Footer() {
&copy; {new Date().getFullYear()} SprintFund DAO
</p>
<nav aria-label="Footer links" className="flex items-center gap-4 text-sm">
<div className="hidden sm:flex items-center gap-2 px-3 py-1.5 bg-dark/50 rounded-full border border-border">
<div className="w-2 h-2 rounded-full bg-emerald-500 animate-pulse"></div>
<span className="text-xs font-medium text-muted uppercase tracking-wider">
{CONTRACT_NAME}
</span>
</div>
<a
href="https://github.com"
target="_blank"
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 ──────────────────────────────────────── */
Expand Down
22 changes: 22 additions & 0 deletions frontend/src/lib/proposal-utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ import {
findProposal,
wouldProposalPass,
paginateProposals,
getBlocksUntilVotingEnds,
getBlocksUntilExecutionAllowed,
formatBlockDuration,
isHighValueProposal,
} from './proposal-utils';
import type { Proposal } from '../types/proposal';

Expand Down Expand Up @@ -285,4 +289,22 @@ describe('Proposal utilities', () => {
expect(getBlocksUntilExecutionAllowed(proposal, 100700)).toBe(0);
});
});

describe('isHighValueProposal', () => {
it('returns true for proposals with 100 STX or more', () => {
const highValue = { ...mockProposal, amount: 100_000_000 };
expect(isHighValueProposal(highValue)).toBe(true);

const veryHighValue = { ...mockProposal, amount: 250_000_000 };
expect(isHighValueProposal(veryHighValue)).toBe(true);
});

it('returns false for proposals below 100 STX', () => {
const lowValue = { ...mockProposal, amount: 99_999_999 };
expect(isHighValueProposal(lowValue)).toBe(false);

const smallValue = { ...mockProposal, amount: 1_000_000 };
expect(isHighValueProposal(smallValue)).toBe(false);
});
});
});
8 changes: 4 additions & 4 deletions frontend/src/types/config.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ describe('Config types', () => {
it('represents contract deployment configuration', () => {
const config: ContractConfig = {
contractAddress: 'SP123456789',
contractName: 'sprintfund-core',
contractPrincipal: 'SP123456789.sprintfund-core',
contractName: 'sprintfund-core-v3',
contractPrincipal: 'SP123456789.sprintfund-core-v3',
};

expect(config.contractAddress).toMatch(/^S[PT]/);
Expand All @@ -43,8 +43,8 @@ describe('Config types', () => {
},
contract: {
contractAddress: 'SP123456789',
contractName: 'sprintfund-core',
contractPrincipal: 'SP123456789.sprintfund-core',
contractName: 'sprintfund-core-v3',
contractPrincipal: 'SP123456789.sprintfund-core-v3',
},
version: '1.0.0',
debug: false,
Expand Down
4 changes: 2 additions & 2 deletions frontend/src/types/contract.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* Contract-level TypeScript types that mirror the Clarity
* sprintfund-core contract data structures and responses.
* sprintfund-core-v3 contract data structures and responses.
*
* These types represent the raw on-chain data shapes returned
* by Stacks read-only function calls and transaction callbacks.
Expand Down Expand Up @@ -126,7 +126,7 @@ export interface ContractCallOptions {
═══════════════════════════════════════════════ */

/**
* Known Clarity error codes from the sprintfund-core contract.
* Known Clarity error codes from the sprintfund-core-v3 contract.
* Maps uint error codes to their semantic meaning.
*/
export const CONTRACT_ERROR_CODES = {
Expand Down
Loading
Loading