diff --git a/cmd/crates/soroban-test/tests/it/integration/ledger/entry.rs b/cmd/crates/soroban-test/tests/it/integration/ledger/entry.rs index cc9a85e9f3..e94c3d221c 100644 --- a/cmd/crates/soroban-test/tests/it/integration/ledger/entry.rs +++ b/cmd/crates/soroban-test/tests/it/integration/ledger/entry.rs @@ -442,6 +442,30 @@ async fn ledger_entry_liquidity_pool() { )); } +#[tokio::test] +async fn ledger_entry_trustline_asset_without_issuer_returns_error() { + let sandbox = &TestEnv::new(); + let account_alias = "new_account"; + new_account(sandbox, account_alias); + + for asset in ["xlm", "XLM", "native", "NATIVE"] { + sandbox + .new_assert_cmd("ledger") + .arg("entry") + .arg("fetch") + .arg("trustline") + .arg("--account") + .arg(account_alias) + .arg("--network") + .arg("testnet") + .arg("--asset") + .arg(asset) + .assert() + .failure() + .stderr(predicates::str::contains("provided asset is invalid")); + } +} + // Helper Fns fn new_account(sandbox: &TestEnv, name: &str) -> String { sandbox.generate_account(name, None).assert().success(); diff --git a/cmd/soroban-cli/src/commands/ledger/entry/fetch/trustline.rs b/cmd/soroban-cli/src/commands/ledger/entry/fetch/trustline.rs index 3e2db1800b..93678f6089 100644 --- a/cmd/soroban-cli/src/commands/ledger/entry/fetch/trustline.rs +++ b/cmd/soroban-cli/src/commands/ledger/entry/fetch/trustline.rs @@ -54,9 +54,7 @@ impl Cmd { fn insert_asset_keys(&self, ledger_keys: &mut Vec) -> Result<(), Error> { let acc = self.muxed_account(&self.account)?; for asset in &self.asset { - let asset = if asset.eq_ignore_ascii_case("XLM") { - TrustLineAsset::Native - } else if asset.contains(':') { + let asset = if asset.contains(':') { let mut parts = asset.split(':'); let code = parts.next().ok_or(Error::InvalidAsset(asset.clone()))?; let issuer = parts.next().ok_or(Error::InvalidAsset(asset.clone()))?;