| Crates.io | mantra-claimdrop-std |
| lib.rs | mantra-claimdrop-std |
| version | 1.2.1 |
| created_at | 2025-07-04 11:44:25.121024+00 |
| updated_at | 2025-09-19 15:43:06.027674+00 |
| description | Common types for the claimdrop contract. |
| homepage | https://mantra.zone |
| repository | https://github.com/MANTRA-Chain/mantrachain-rust |
| max_upload_size | |
| id | 1737873 |
| size | 54,255 |
Common types and error definitions for the Mantra claimdrop contract V2.
This package provides shared types, message definitions, and error handling for claimdrop (airdrop) contracts in the Mantra ecosystem. It enables code reuse across different claimdrop-related contracts and provides a consistent interface for campaign management, token distribution, and reward claiming.
Add this package to your Cargo.toml:
[dependencies]
mantra-claimdrop-std = { version = "1.0.0", path = "path/to/mantra-claimdrop-std" }
use mantra_claimdrop_std::msg::{
ExecuteMsg, QueryMsg, CampaignParams, DistributionType
};
// Create a campaign
let campaign_params = CampaignParams {
name: "My Airdrop".to_string(),
description: "Token distribution campaign".to_string(),
ty: "airdrop".to_string(),
total_reward: Coin::new(1000000u128, "umantra"),
distribution_type: vec![DistributionType::LumpSum {
percentage: Decimal::percent(100),
start_time: 1640995200, // Unix timestamp
}],
start_time: 1640995200,
end_time: 1672531200,
};
let execute_msg = ExecuteMsg::ManageCampaign {
action: CampaignAction::CreateCampaign {
params: Box::new(campaign_params),
},
};
use mantra_claimdrop_std::error::ContractError;
fn validate_campaign(params: &CampaignParams) -> Result<(), ContractError> {
params.validate_campaign_name_description()?;
params.validate_campaign_type()?;
params.validate_rewards()?;
Ok(())
}
Campaign: Complete campaign information including status and claimed amountsCampaignParams: Parameters for creating new campaignsCampaignAction: Actions for managing campaigns (create/close)DistributionType::LinearVesting: Gradual token release over time with optional cliffDistributionType::LumpSum: Immediate token release at specified timeRewardsResponse: Information about claimed, pending, and available rewardsClaimedResponse: Details about claimed tokens per addressAllocationsResponse: Address allocation informationBlacklistResponse: Address blacklist statusThe package includes comprehensive validation for: