Skip to main content
The FiatEnabled contract provides functionality for tracking and managing fiat currency transactions in campaigns. It allows tracking fiat contributions, managing fiat fee disbursement, and integrating traditional payment methods.

Overview

Purpose

  • Fiat Integration: Support traditional payment methods
  • Transaction Tracking: Record individual fiat transactions
  • Fee Management: Track fiat fee disbursement
  • Hybrid Funding: Support both crypto and fiat contributions
  • Compliance: Enable fiat payment compliance

State Variables

Functions

Get Fiat Raised Amount

Returns:
  • Total amount of fiat raised
Usage:
  • Display total fiat contributions
  • Calculate campaign totals including fiat

Get Fiat Transaction Amount

Parameters:
  • fiatTransactionId: Unique transaction identifier
Returns:
  • Amount of the specific fiat transaction
Requirements:
  • Transaction must exist
  • Returns error if transaction not found

Check If Fiat Fee Disbursed

Returns:
  • True if fiat fees have been disbursed
Usage:
  • Check if fiat fees can be collected
  • Verify fee distribution status

Update Fiat Transaction (Internal)

Parameters:
  • fiatTransactionId: Transaction identifier
  • fiatTransactionAmount: Transaction amount
Effects:
  • Stores transaction amount
  • Updates total fiat raised
  • Emits FiatTransactionUpdated event
Note: Internal function, called by contract owner

Update Fiat Fee Disbursement State (Internal)

Parameters:
  • isDisbursed: Whether fees are disbursed
  • protocolFeeAmount: Protocol fee amount
  • platformFeeAmount: Platform fee amount
Effects:
  • Marks fiat fees as disbursed
  • Emits FiatFeeDisbusementStateUpdated event
  • Can only be called once
Requirements:
  • Fees must not already be disbursed
  • Must mark as disbursed

Events

FiatTransactionUpdated

Emitted when: Fiat transaction is updated Includes: Transaction ID and amount

FiatFeeDisbusementStateUpdated

Emitted when: Fiat fee disbursement state changes Includes: Disbursement status and fee amounts

Errors

FiatEnabledAlreadySet

Thrown when: Attempting to set fee disbursement when already set

FiatEnabledDisallowedState

Thrown when: Fee disbursement state is invalid

FiatEnabledInvalidTransaction

Thrown when: Querying non-existent transaction

Usage Examples

Recording Fiat Transactions

Tracking Fiat Contributions

Checking Transaction

Disbursing Fiat Fees

Integration

With On-Ramp Services

Hybrid Funding

Security Considerations

Transaction Verification

  • Verify fiat transactions off-chain
  • Use secure payment processors
  • Maintain audit trail

Fee Disbursement

  • Only once, irreversible
  • Calculate fees accurately
  • Track both protocol and platform fees

State Protection

  • Cannot undo disbursement
  • Must verify before disbursing
  • Track all transactions

Best Practices

Record Transactions Promptly

Audit Trail

Next Steps