Skip to content

[SC-23] Implement lease management contract functions #663

@yusuftomilola

Description

@yusuftomilola

Overview

Implement asset lease management allowing assets to be formally leased to a lessee inside contracts/contrib/.

Location

All work must be inside contracts/contrib/src/lease.rs.

Acceptance Criteria

  • Lease struct: lease_id: BytesN<32>, asset_id: BytesN<32>, lessor: Address, lessee: Address, start_timestamp: u64, end_timestamp: u64, rent_per_period: i128, deposit: i128, status: LeaseStatus (Active, Returned, Cancelled, Expired)
  • create_lease(env, asset_id, lessee, start, end, rent, deposit) — asset owner only; stores lease; emits event
  • check_in_lease(env, lease_id) — lessor only; sets status to Returned and records return time
  • cancel_lease(env, lease_id) — lessor or admin; sets status to Cancelled
  • get_active_leases(env, asset_id) -> Vec<Lease>

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions