keep-starknet-strange / satoru

Synthetics platform for Starknet, inspired by GMX v2 design.
https://book.satoru.run/
MIT License
110 stars 73 forks source link

Feat: Implement `claim_fees` and `claim_ui_fees` in the `FeeUtils` library. #458

Closed sparqet closed 1 year ago

sparqet commented 1 year ago

Description

Implement the claim_fees function in the FeeUtils library.

File: src/fee/fee_utils.cairo.

Function signature:

    /// Claim fees for the specified market.
    /// # Arguments
    /// * `data_store` - The `DataStore` contract dispatcher.
    /// * `event_emitter` - The `EventEmitter` contract dispatcher.
    /// * `market` - The market to increment claimable fees for.
    /// * `token` - The fee token.
    /// * `receiver` - The receiver of the claimed fees.
    fn claim_fees(
        data_store: IDataStoreSafeDispatcher,
        event_emitter: IEventEmitterSafeDispatcher,
        market: ContractAddress,
        token: ContractAddress,
        receiver: ContractAddress,
    )

Implement the claim_ui_fees function in the FeeUtils library.

File: src/fee/fee_utils.cairo.

Function signature:

    /// Claim ui fees for the specified market.
    /// # Arguments
    /// * `data_store` - The `DataStore` contract dispatcher.
    /// * `event_emitter` - The `EventEmitter` contract dispatcher.
    /// * `ui_fee_receiver` - The ui fees receiver.
    /// * `market` - The market to increment claimable fees for.
    /// * `token` - The fee token.
    /// * `receiver` - The receiver of the claimed fees.
    fn claim_ui_fees(
        data_store: IDataStoreSafeDispatcher,
        event_emitter: IEventEmitterSafeDispatcher,
        ui_fee_receiver: ContractAddress,
        market: ContractAddress,
        token: ContractAddress,
        receiver: ContractAddress,
    ) -> u128

Acceptance criteria

Resources

Ephraim-nonso commented 1 year ago

Hi, @sparqet, can i work on this?

sparqet commented 1 year ago

Hi, @sparqet, can i work on this?

Hi sorry I've already done it 😅

Ephraim-nonso commented 1 year ago

Alright. Any open issue you can assign me to work on?