Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
13 changes: 9 additions & 4 deletions .github/workflows/smoke-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,15 @@ jobs:
grep -Eq '^/contracts/lending/\s+@MettaChain/lending$' .github/CODEOWNERS
grep -Eq '^/contracts/oracle/\s+@MettaChain/oracle$' .github/CODEOWNERS

- name: Install Stable Rust Toolchain
- name: Install Nightly Rust Toolchain (for fmt)
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt

- name: Install Stable Rust Toolchain (for clippy & test)
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
components: clippy

- name: Cache Cargo Build Artifacts
uses: actions/cache@v4
Expand All @@ -44,8 +49,8 @@ jobs:
restore-keys: |
${{ runner.os }}-cargo-smoke-

- name: Check Code Formatting Style (fmt)
run: cargo fmt --check
- name: Check Code Formatting Style (nightly fmt)
run: cargo +nightly fmt --check

- name: Execute Static Analysis Compiler Lints (clippy)
run: cargo clippy --all-targets --all-features -- -D warnings
Expand Down
3 changes: 2 additions & 1 deletion contracts/bridge/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ use scale_info::prelude::vec::Vec;

#[ink::contract]
mod bridge {
use super::*;
use propchain_traits::{non_reentrant, ReentrancyError, ReentrancyGuard};

use super::*;

include!("errors.rs");

/// Maximum number of entries kept in [`PropertyBridge::pause_audit_log`].
Expand Down
6 changes: 3 additions & 3 deletions contracts/compliance_registry/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@
dead_code
)]

use propchain_traits::ComplianceChecker;
use propchain_traits::*;
use propchain_traits::{ComplianceChecker, *};

#[ink::contract]
mod compliance_registry {
use super::*;
use ink::prelude::vec::Vec;
use ink::storage::Mapping;
use propchain_traits::ComplianceOperation;

use super::*;

/// Represents the verification status of a user
#[derive(Debug, PartialEq, Eq, Clone, Copy, scale::Encode, scale::Decode)]
#[cfg_attr(
Expand Down
7 changes: 5 additions & 2 deletions contracts/crowdfunding/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ use ink::storage::Mapping;

#[ink::contract]
mod propchain_crowdfunding {
use ink::prelude::string::String;
use ink::prelude::vec::Vec;

use super::*;
use ink::prelude::{string::String, vec::Vec};

#[derive(Debug, PartialEq, Eq, scale::Encode, scale::Decode)]
#[cfg_attr(feature = "std", derive(scale_info::TypeInfo))]
Expand Down Expand Up @@ -1428,11 +1430,12 @@ pub use crate::propchain_crowdfunding::{CrowdfundingError, RealEstateCrowdfundin

#[cfg(test)]
mod tests {
use super::*;
#[allow(unused_imports)]
use ink::env::{test, DefaultEnvironment};
use propchain_crowdfunding::{CampaignStatus, CrowdfundingError, RealEstateCrowdfunding};

use super::*;

fn setup() -> RealEstateCrowdfunding {
let accounts = test::default_accounts::<DefaultEnvironment>();
test::set_caller::<DefaultEnvironment>(accounts.alice);
Expand Down
6 changes: 4 additions & 2 deletions contracts/dex/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,17 @@
clippy::needless_borrows_for_generic_args
)]

use ink::prelude::{string::String, vec::Vec};
use ink::prelude::string::String;
use ink::prelude::vec::Vec;
use ink::storage::Mapping;
use propchain_traits::*;

#[ink::contract]
mod dex {
use super::*;
use propchain_traits::{non_reentrant, ReentrancyError, ReentrancyGuard};

use super::*;

const BIPS_DENOMINATOR: u128 = 10_000;
const REWARD_PRECISION: u128 = 1_000_000_000;

Expand Down
3 changes: 2 additions & 1 deletion contracts/factory/src/tests.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
use crate::contract_factory::*;
use ink::env::test;
use ink::primitives::Hash;

use crate::contract_factory::*;

#[ink::test]
fn test_factory_initialization() {
let factory = ContractFactory::new();
Expand Down
9 changes: 5 additions & 4 deletions contracts/fractional/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
mod fractional {
use ink::prelude::vec::Vec;
use ink::storage::Mapping;
use propchain_traits;
use propchain_traits::{non_reentrant, ReentrancyError, ReentrancyGuard};
use propchain_traits::{self, non_reentrant, ReentrancyError, ReentrancyGuard};

#[derive(
Debug,
Expand Down Expand Up @@ -1196,9 +1195,10 @@ mod fractional {

#[cfg(test)]
mod tests {
use super::*;
use ink::env::test;

use super::*;

fn alice() -> AccountId {
test::default_accounts::<ink::env::DefaultEnvironment>().alice
}
Expand Down Expand Up @@ -1894,9 +1894,10 @@ mod fractional {

#[cfg(test)]
mod fractional_admin_rotation_tests {
use super::*;
use ink::env::{test, DefaultEnvironment};

use super::*;

fn setup() -> Fractional {
let accounts = test::default_accounts::<DefaultEnvironment>();
test::set_caller::<DefaultEnvironment>(accounts.alice);
Expand Down
3 changes: 2 additions & 1 deletion contracts/hello-world/src/test.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#![cfg(test)]
#![allow(dead_code, unused_imports, deprecated)]

use super::*;
use soroban_sdk::Env;

use super::*;

#[test]
fn test_loan_lifecycle() {
let env = Env::default();
Expand Down
9 changes: 5 additions & 4 deletions contracts/insurance/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ mod fraud_detection;
/// Decentralized Property Insurance Platform
#[ink::contract]
mod propchain_insurance {
use super::*;
use ink::prelude::{string::String, vec::Vec};
use ink::prelude::string::String;
use ink::prelude::vec::Vec;
use propchain_traits::{non_reentrant, ReentrancyError, ReentrancyGuard};

use super::*;

// Error types extracted to errors.rs (Issue #101)
include!("errors.rs");

Expand Down Expand Up @@ -84,10 +86,9 @@ mod propchain_insurance {
}

// Risk Assessment Model (Task #254)
use crate::risk_assessment::risk_model;

// Fraud Detection System (Task #258)
use crate::fraud_detection::fraud_detection;
use crate::risk_assessment::risk_model;
// Premium calculation engine
include!("premium_engine.rs");

Expand Down
9 changes: 6 additions & 3 deletions contracts/insurance/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@
// ============================================================================
#[cfg(test)]
mod reinsurance_stats_derives {
use ink::env::{test, DefaultEnvironment};

use crate::propchain_insurance::{
CoverageType, PropertyInsurance, ReinsuranceStats, ReinsuranceTreatyType,
};
use ink::env::{test, DefaultEnvironment};

fn setup() -> PropertyInsurance {
let accounts = test::default_accounts::<DefaultEnvironment>();
Expand Down Expand Up @@ -1701,9 +1702,10 @@ mod insurance_tests {

#[cfg(test)]
mod circuit_breaker_tests {
use crate::propchain_insurance::{CoverageType, InsuranceError, PropertyInsurance};
use ink::env::{test, DefaultEnvironment};

use crate::propchain_insurance::{CoverageType, InsuranceError, PropertyInsurance};

fn setup_with_pool() -> (PropertyInsurance, u64) {
let accounts = test::default_accounts::<DefaultEnvironment>();
test::set_caller::<DefaultEnvironment>(accounts.alice);
Expand Down Expand Up @@ -1797,9 +1799,10 @@ mod circuit_breaker_tests {

#[cfg(test)]
mod insurance_admin_rotation_tests {
use crate::propchain_insurance::{InsuranceError, PropertyInsurance};
use ink::env::{test, DefaultEnvironment};

use crate::propchain_insurance::{InsuranceError, PropertyInsurance};

fn setup() -> PropertyInsurance {
let accounts = test::default_accounts::<DefaultEnvironment>();
test::set_caller::<DefaultEnvironment>(accounts.alice);
Expand Down
13 changes: 9 additions & 4 deletions contracts/lending/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ mod status_packing;

#[ink::contract]
mod propchain_lending {
use ink::prelude::string::String;
use ink::prelude::vec::Vec;

use super::*;
use ink::prelude::{string::String, vec::Vec};

#[derive(Debug, PartialEq, Eq, scale::Encode, scale::Decode)]
#[cfg_attr(feature = "std", derive(scale_info::TypeInfo))]
Expand Down Expand Up @@ -2149,10 +2151,11 @@ pub use crate::propchain_lending::{
/// when a bug fix requires a regression guard.
#[cfg(test)]
mod tests {
use super::*;
use ink::env::{test, DefaultEnvironment};
use propchain_lending::PropertyLending;

use super::*;

fn setup() -> PropertyLending {
let accounts = test::default_accounts::<DefaultEnvironment>();
test::set_caller::<DefaultEnvironment>(accounts.alice);
Expand Down Expand Up @@ -2603,9 +2606,10 @@ mod tests {
/// caller permutations) does not add noise to general lending tests.
#[cfg(test)]
mod lending_admin_rotation_tests {
use super::propchain_lending::{LendingError, PropertyLending};
use ink::env::{test, DefaultEnvironment};

use super::propchain_lending::{LendingError, PropertyLending};

fn setup() -> PropertyLending {
let accounts = test::default_accounts::<DefaultEnvironment>();
test::set_caller::<DefaultEnvironment>(accounts.alice);
Expand Down Expand Up @@ -2708,12 +2712,13 @@ mod lending_admin_rotation_tests {
/// these tests is entirely in the type-checker.
#[cfg(test)]
mod storage_derivation_tests {
use scale::{Decode, Encode};

use super::propchain_lending::{
CollateralKind, CollateralRecord, CreditProfile, LendingPool, LoanApplication, LoanListing,
LoanOffer, LoanRestructuring, LoanServicer, LoanStatus, MarginPosition, PaymentSchedule,
PaymentScheduleStatus, PropertyLending, Proposal, YieldPosition,
};
use scale::{Decode, Encode};

fn assert_storage_type<
T: Encode + Decode + scale_info::TypeInfo + ink::storage::traits::StorageLayout,
Expand Down
7 changes: 3 additions & 4 deletions contracts/lending/src/test.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
#![allow(clippy::duplicated_attributes)]
#![cfg(test)]

use super::*;
use crate::propchain_lending::CollateralKind;
use crate::propchain_lending::PaymentScheduleStatus;
use crate::propchain_lending::Schedule;
use ink::env::{test, DefaultEnvironment};

use super::*;
use crate::propchain_lending::{CollateralKind, PaymentScheduleStatus, Schedule};

#[ink::test]
fn test_loan_interest_accrual_is_jit_only_on_loan_modification() {
let accounts = test::default_accounts::<DefaultEnvironment>();
Expand Down
10 changes: 4 additions & 6 deletions contracts/lib/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,13 @@
use ink::prelude::string::String;
use ink::prelude::vec::Vec;
use ink::storage::Mapping;

// Import identity module
use propchain_identity::propchain_identity::IdentityRegistryRef;
// Re-export traits
pub use propchain_traits::*;

// Re-export reentrancy protection
pub use reentrancy_guard::{ReentrancyError, ReentrancyGuard};

// Import identity module
use propchain_identity::propchain_identity::IdentityRegistryRef;

// Export error handling utilities
#[cfg(feature = "std")]
pub mod error_handling;
Expand Down Expand Up @@ -4641,10 +4638,11 @@ pub mod propchain_contracts {

#[cfg(test)]
mod tests_pause {
use super::propchain_contracts::{Error, ExternalDependency, PropertyRegistry};
use ink::primitives::AccountId;
use propchain_traits::PropertyMetadata;

use super::propchain_contracts::{Error, ExternalDependency, PropertyRegistry};

#[ink::test]
fn test_pause_resume_flow() {
let mut contract = PropertyRegistry::new();
Expand Down
4 changes: 2 additions & 2 deletions contracts/mock-oracle/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -518,9 +518,9 @@ mod mock_oracle_contract {

#[cfg(test)]
mod tests {
use ink::env::{test, DefaultEnvironment};

use super::*;
use ink::env::test;
use ink::env::DefaultEnvironment;

fn setup() -> MockOracle {
let accounts = test::default_accounts::<DefaultEnvironment>();
Expand Down
4 changes: 2 additions & 2 deletions contracts/multicall/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -274,9 +274,9 @@ mod propchain_multicall {

#[cfg(test)]
mod tests {
use ink::env::{test, DefaultEnvironment};

use super::*;
use ink::env::test;
use ink::env::DefaultEnvironment;

fn setup() -> MulticallContract {
let accounts = test::default_accounts::<DefaultEnvironment>();
Expand Down
6 changes: 2 additions & 4 deletions contracts/oracle/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,8 @@ mod aggregation;
mod propchain_oracle {
use super::*;
include!("types.rs");
use ink::prelude::{
string::{String, ToString},
vec::Vec,
};
use ink::prelude::string::{String, ToString};
use ink::prelude::vec::Vec;

/// Aggregation mode used when combining prices from multiple oracle sources.
#[derive(
Expand Down
3 changes: 2 additions & 1 deletion contracts/property-management/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1338,9 +1338,10 @@ mod property_management {

#[cfg(test)]
mod tests {
use super::*;
use ink::env::{test, DefaultEnvironment};

use super::*;

fn setup() -> PropertyManagement {
PropertyManagement::new()
}
Expand Down
3 changes: 2 additions & 1 deletion contracts/traits/src/admin_multisig.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use crate::AccountId;
use ink::prelude::vec::Vec;

use crate::AccountId;

pub trait MultiSigAdminRotationTrait {
fn confirm_key_rotation(&mut self, approvals: Vec<AccountId>) -> Result<(), &'static str>;
}
3 changes: 2 additions & 1 deletion contracts/traits/src/bridge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
//! This module contains all bridge-related types, status enums, configuration
//! structures, and trait definitions for cross-chain property token bridging.

use crate::property::{ChainId, PropertyMetadata, TokenId};
use ink::prelude::string::String;
use ink::prelude::vec::Vec;
use ink::primitives::AccountId;

use crate::property::{ChainId, PropertyMetadata, TokenId};

// =========================================================================
// Data Types
// =========================================================================
Expand Down
Loading
Loading