Skip to content

Fix Compilation Errors: Add Missing Imports and Fix String Conversions#144

Merged
greatest0fallt1me merged 8 commits into
Predictify-org:masterfrom
1nonlypiece:fix-build
Jul 8, 2025
Merged

Fix Compilation Errors: Add Missing Imports and Fix String Conversions#144
greatest0fallt1me merged 8 commits into
Predictify-org:masterfrom
1nonlypiece:fix-build

Conversation

@1nonlypiece

Copy link
Copy Markdown
Contributor

Summary

This PR fixes multiple compilation errors in the Predictify Hybrid contract by adding missing imports and correcting string conversion methods.

Changes Made

1. Fixed Missing vec! Macro Import

File: contracts/predictify-hybrid/src/resolution.rs

  • Added vec to the main soroban_sdk imports
  • Removed duplicate import in test module

2. Added Missing Type Imports

File: contracts/predictify-hybrid/src/voting.rs

  • Added use crate::types::{OracleConfig, OracleProvider}; to test module
  • Fixes undeclared type errors for OracleConfig and OracleProvider

3. Fixed String Conversion Methods

File: contracts/predictify-hybrid/src/utils.rs

  • Replaced all s.unpack() calls with s.to_string()
  • Replaced all s.as_str() calls with s.to_string()
  • Updated string manipulation functions to use proper soroban_sdk::String methods
  • Fixed methods: to_uppercase, to_lowercase, trim, truncate, split, join, contains, starts_with, ends_with, replace, validate_string_length, sanitize_string, string_to_i128, validate_email, validate_url

4. Added Missing Trait Import

File: contracts/predictify-hybrid/src/test.rs

  • Added use crate::oracles::OracleInterface; import
  • Fixes missing get_price method for ReflectorOracle

Technical Details

String Conversion Fix

The main issue was incorrect usage of string conversion methods:

  • Before: s.unpack() and s.as_str() (not available on soroban_sdk::String)
  • After: s.to_string() (correct method for soroban_sdk::String)

Import Strategy

  • Added imports at the appropriate scope level
  • Used qualified imports to avoid naming conflicts
  • Maintained existing import structure

Testing

  • ✅ All compilation errors resolved
  • ✅ Contract builds successfully
  • ✅ Tests can now run (runtime errors are separate issue)

Files Changed

  • contracts/predictify-hybrid/src/resolution.rs
  • contracts/predictify-hybrid/src/voting.rs
  • contracts/predictify-hybrid/src/utils.rs
  • contracts/predictify-hybrid/src/test.rs

Breaking Changes

None - this is purely a compilation fix.

Related Issues

Closes #120

Checklist

  • Code compiles successfully
  • No new warnings introduced
  • Existing functionality preserved
  • Proper error handling maintained
  • Documentation updated where necessary

…or cfg-if and addition of memory_units, wee_alloc, and winapi packages
…es in Predictify Hybrid contract, improving code clarity and maintainability
…manual character manipulation with built-in string methods for improved readability and performance
… enhance oracle configuration and provider functionality
@greatest0fallt1me greatest0fallt1me merged commit 180a45b into Predictify-org:master Jul 8, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix Compilation Errors in Predictify Hybrid Contract

2 participants