Escrow

Welcome | Trustless Work

Token Factory

Este es un token estándar que servirá para emitir los tokens de participación de los inversionistas. Las funciones que hasta ahorita se usarán para el flujo son:

Mint:

Uso: Sirve para crear nuevos tokens y agregar a la circulación de la blockchain.

Uso al nivel del flujo: El inversionista mandará 1000 USDC (ejemplo) al escrow como parte de su inversión y recibirá 1000 tokens. Los 1000 tokens de participación se obtienen por medio de la dicha función “mint” (Solo la dirección del Participation-Token tendrá permisos de ejecutar esta función).

    pub fn mint(e: Env, to: Address, amount: i128) {
        check_nonnegative_amount(amount);

        // CRITICAL: Only mint_authority can mint (never deployer, never open mint)
        let mint_authority = read_mint_authority(&e);
        mint_authority.require_auth();

        e.storage()
            .instance()
            .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);

        receive_balance(&e, to.clone(), amount);
        events::MintWithAmountOnly { to, amount }.publish(&e);
    }

Burn:

Uso: Destruye tokens existentes, reduciendo la oferta total.

Uso a nivel de flujo: Cuando el inversionista reclama los retornos de su inversión mediante sus tokens de participación, recibe la cantidad de USDC correspondiente a su participación, incluyendo el porcentaje de ganancias prometido.

Una vez realizado este pago, se ejecuta la función burn, que elimina (quema) los tokens de participación utilizados para el reclamo, evitando que puedan volver a utilizarse para reclamar fondos nuevamente.

    fn burn(e: Env, from: Address, amount: i128) {
        from.require_auth();

        check_nonnegative_amount(amount);

        e.storage()
            .instance()
            .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);

        spend_balance(&e, from.clone(), amount);
        events::Burn { from, amount }.publish(&e);
    }

Nota: Este token es un standard, por lo que el codigo es practicamente el mismo para todos los casos en los que se quiere lanzar un token. Para más información sobre este token, revisar este documento: https://github.com/orgs/stellar/discussions/1814

Participation Token

Visión general

El ParticipationTokenContract es el punto de entrada para que un inversor compre participación en un proyecto de crédito privado. Cuando alguien llama a buy, el contrato hace dos cosas en una sola transacción:

  1. Transfiere el USDC del comprador al contrato de Escrow.
  2. Mintea participation tokens al beneficiario indicado, en cantidad equivalente al USDC pagado (1:1).