Skip to content

Commit 4653f2b

Browse files
authored
Merge pull request floxxih#99 from Wilfred007/Feat-All-frontend-contract-IDs-are-empty-strings
All frontend contract IDs are empty strings — no contract calls will …
2 parents 7235494 + 4113890 commit 4653f2b

3 files changed

Lines changed: 72 additions & 2 deletions

File tree

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,14 @@ cargo build --release --target wasm32-unknown-unknown
8484
```bash
8585
cd frontend
8686
npm install
87-
cp .env.local.example .env.local # Add deployed contract IDs
87+
88+
# 1. Copy the example environment file
89+
cp .env.local.example .env.local
90+
91+
# 2. Add your deployed contract IDs to .env.local
92+
# You can find these in deployments/deployed-testnet.json after running deploy.sh
93+
94+
# 3. Start the dev server
8895
npm run dev
8996
```
9097

deployments/deployed-testnet.json

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,41 @@
1-
{"network": "testnet", "deployer": "DRY_RUN_ADDRESS", "contracts": {"ad_registry": "C123"}}
1+
{
2+
"network": "testnet",
3+
"deployer": "DRY_RUN_ADDRESS",
4+
"contracts": {
5+
"ad_registry": "CBA3AA7OV4WPZ56JDAL5JGMARAFLYCTDGLI3SF5CWNLSG3QSWBAB77BO",
6+
"campaign_orchestrator": "CDTGPLYOTCHU2UDFEVVDXUCYSF6VVUVT364DMZV7T4WGOTDZ74GF6FQB",
7+
"escrow_vault": "CDDWY2SNRTBPB3C2PIAPH6KEBLHC2SZTXORU2ZRLUXXVNOEKRDC5LCC4",
8+
"fraud_prevention": "CBNK25AKBFDND6MXLPMYII25II4SLYWPU45I4ZVZA3GWNH24MD5JR47P",
9+
"payment_processor": "CDGQ7JXX2ETY3L5ZJEJOY3DQIXZRCO7QTS2TA33WAZ5T7L5VP2SNGRIZ",
10+
"governance_token": "CBBL2PL7S72UV7MNU6F33H7M6OX2BUI7HKCSEF5VCGIZO4T4XLYAOTAB",
11+
"governance_dao": "CAZQY2KFNEL54FGUO4XG3SMDMXMQW3ZJCTGAIWHVFCK57XZJW5L5PBIA",
12+
"governance_core": "CCF2GGHZWKADU6OP4VF6OHYXFEM2LBHVH7PF6PFTSO4FXZWSO32DXQIA",
13+
"timelock_executor": "CBO444VCCIYPKTS466LMNV5YWGGEYVRFHB3HFVNBDHIPBQCGY2B4EONT",
14+
"publisher_verification": "CAAQSKYKVA2SHRYABVNR3AM3DUSD2SJA2JRJI5V6F37POTFKV35DU3F3",
15+
"publisher_network": "CCUMNFUGDRBCQ4BVGQXIX2CPM3FBB7W75UGUL43KDZVLFHVSEPMKWJY7",
16+
"publisher_reputation": "CAJK5WDAH7HFX7U2NJ5XGCCLGKMGIU7EA3VFLMESCV2VJMA2WULPNOGR",
17+
"analytics_aggregator": "CC5UCEL5QHT4Y4GQNYN6UJMCKFDD55AAHKYYXVY562RB3DFHH4XLUVJC",
18+
"campaign_analytics": "CDEAL4XQVIBIYJ3Z2YWGYSDY2ZSKQC6KSIF7CAOMGG4URSGTGUQCFIMO",
19+
"campaign_lifecycle": "CARDKPIIYRFUOMGM52Y75XPTSDM4HBDWW5OBOYMNLPFAJWL3ZGEK7AUR",
20+
"privacy_layer": "CCULNNIXL6J6JTTI55TYQCV7MPPHOSQPOERIGOJFFHCOV6Y5JRQQXWVX",
21+
"targeting_engine": "CCTJMNXQYZRWJC7AZJPVBUFUEG4BSZQGWNV2DTNPQ6IZ7B2FHGO4GSD3",
22+
"audience_segments": "CCJ7V3HTY3XZFVSVNKPVOCX76RFOLA24BZ3CAZNLHQ2OVH3GCWR4Q4T3",
23+
"identity_registry": "CA6QW6YC7BEJZNOWJ2IXUHCB4XAYZLURYAXFSFH6MCGDFMTTVKRBHRU5",
24+
"kyc_registry": "CBBL3EWEFOI376VA2N33YK5XMRFQVHU4AHNNILTNCOA2O2PNYVOFD6PS",
25+
"auction_engine": "CBGUP3FHBHQ3JHKNU3RDRT24NY2WS4CXY34SMZVY5XCIKO4ZD774BJHO",
26+
"creative_marketplace": "CAZQCAFPGPWQNRC4NSHFE3SS7WBB5YQW3DUTJR2ZLHFE2TSQLCV7JTPM",
27+
"subscription_manager": "CC3TVSCO4RI5FCI6KXDKKA6SNTSYCZIKAPZZDDJ2ACOD7467MGVZKXCF",
28+
"subscription_benefits": "CAWWAO44SLMGDVCS55KGIP5HS5FE4H5AVIFENZMTHJWGQMFF4HOI377I",
29+
"liquidity_pool": "CBW62IACG2BSKK2J7ECUSEY74ZF45MGGILAVGBBMHCY5FHMJNW2PYSZO",
30+
"milestone_tracker": "CCB7M2ZQX7F2GGDB5KVPXDH6AY7NJACGIWSJQQUCZ4RSXUXNDLSR4SQX",
31+
"multisig_treasury": "CAOV3CY3NZLIPMEHIL7JVST53UMWK4K5DQHTKWVAF433IP7BIZ263YUN",
32+
"oracle_integration": "CCT54WP2F5LI5OUYVYA2GE5U2HLOLKK4IP5LR5TZOBLX4C4HL4ZWBOA7",
33+
"payout_automation": "CAILLVHAFPFALG25F5MT6JGN2IFNAR3LUYJWCDTABI3JZQYLHCYJHWPX",
34+
"performance_oracle": "CBIDHQEWIMWBRKPLAE26WHJNPKOYJI3JZT7VJ54MPTY57E7CVF545OJZ",
35+
"recurring_payment": "CACBFWG5HMBFJZARRPNU3HXCVLSZCUE34ETU4NXG2G36D7WUCVOGPMRU",
36+
"refund_processor": "CCQGTCUYC6OTXHA76OVD4J4AY4XMFUZIJKTQC3V46IK5ZPWDZUYEW4SB",
37+
"revenue_settlement": "CD3MDIL7ZPLPPB6LDT2VC27ZO34RA2VDZNQFMS4KRGQB6QGGUGTWF6DS",
38+
"rewards_distributor": "CA52TFGIEL4GLYLXUPSKMNYJVAOJHQP6F2NJXT6YOAAQNSPE47BJ6UY6",
39+
"token_bridge": "CB5KVRZTPBUXJBPSOMXFQJ3MNXFKFORWCQNZREH4T57EL2H6I72E75I7"
40+
}
41+
}

frontend/src/lib/stellar-config.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,29 @@ export const CONTRACT_IDS = {
5656
REWARDS_DISTRIBUTOR: process.env.NEXT_PUBLIC_CONTRACT_REWARDS_DISTRIBUTOR || '',
5757
} as const;
5858

59+
/**
60+
* Validates that all required contract IDs are present.
61+
* Throws in production, warns in development.
62+
*/
63+
function validateContractIds() {
64+
const missing = Object.entries(CONTRACT_IDS)
65+
.filter(([_, id]) => !id)
66+
.map(([name]) => name);
67+
68+
if (missing.length > 0) {
69+
const message = `Deployment Error: Missing contract IDs: ${missing.join(', ')}. Ensure they are set in .env.local`;
70+
71+
if (process.env.NODE_ENV === 'production') {
72+
throw new Error(message);
73+
} else {
74+
console.warn(message);
75+
}
76+
}
77+
}
78+
79+
// Run validation
80+
validateContractIds();
81+
5982
export type ContractName = keyof typeof CONTRACT_IDS;
6083

6184
/**

0 commit comments

Comments
 (0)