stellar-interchain-token-service 2.0.0

InterchainTokenService contract, responsible for allowing users/developers to easily create their own token bridge.
Documentation
use stellar_axelar_std::interfaces::{PausedEvent, UnpausedEvent};
use stellar_axelar_std::testutils::Address as _;
use stellar_axelar_std::{assert_auth, assert_auth_err, events, Address};

use super::utils::setup_env;

#[test]
fn pause_succeeds() {
    let (env, client, _, _, _) = setup_env();

    assert!(!client.paused());

    assert_auth!(client.owner(), client.pause());
    goldie::assert!(events::fmt_last_emitted_event::<PausedEvent>(&env));

    assert!(client.paused());
}

#[test]
fn unpause_succeeds() {
    let (env, client, _, _, _) = setup_env();

    assert_auth!(client.owner(), client.pause());

    assert!(client.paused());
    assert_auth!(client.owner(), client.unpause());

    goldie::assert!(events::fmt_last_emitted_event::<UnpausedEvent>(&env));

    assert!(!client.paused());
}

#[test]
fn pause_fails_with_invalid_auth() {
    let (env, client, _, _, _) = setup_env();

    assert_auth_err!(Address::generate(&env), client.pause());
}