Envío de tokens

Esta sección muestra un contrato inteligente diseñado para enviar tokens nativos de blockchain a un destinatario especificado por el remitente original en el mensaje de ejecución.

Explicación

send_tokens

Una vez que se ejecuta el caso de uso principal de esta función (que en este contexto es nula), se adjunta un mensaje bancario para que el contrato actúe. Vale la pena señalar que el contrato se convierte en el firmante de la transacción, no en el remitente que la inicia.

// contract.rs
pub fn send_tokens(
    _deps: DepsMut,
    amount: Uint128,
    denom: String,
    to: Addr
) -> Result<Response, ContractError> {
    
    /* Sending tokens is managed via the response of this function.
       A developer crafts a BankMsg to transmit tokens to a specified address using the native token.
       The function will fail if the smart contract lacks sufficient tokens.
       If any error surfaces prior to the response's generation, funds won't be transmitted. */
    
    Ok(Response::new()
        .add_attribute("action", "send")
        .add_message(BankMsg::Send {
            to_address: to.into_string(),
            amount: vec![Coin{denom, amount}]
        })
    )
}

Pruebas de integración

Ejemplo

Para enviar tokens con CosmWasm, puede crear los siguientes archivos: lib.rs contract.rs msg.rs error.rs state.rs helpers.rs Integration_tests.rs

lib.rs

contract.rs

msg.rs

error.rs

state.rs

helpers.rs

integration_tests.rs

Last updated