NuGet Packages

PackagePurpose
NextGenSoftware.OASIS.API.CoreKernel interfaces, models, OASISResult, managers
NextGenSoftware.OASIS.API.ONode.CoreONODE bootstrap, provider registration, HyperDrive
NextGenSoftware.OASIS.API.Providers.HoloOASISHolochain provider + HoloNET
NextGenSoftware.OASIS.API.Providers.EthereumOASISEthereum / EVM provider
NextGenSoftware.OASIS.API.Providers.MongoDBOASISMongoDB provider
NextGenSoftware.OASIS.API.Providers.SQLiteOASISSQLite provider
NextGenSoftware.OASIS.STARSTAR OApp runtime

OASISResult<T>

All kernel and provider operations return OASISResult<T> — the .NET equivalent of the REST response envelope:

csharp
var result = await avatarManager.SaveAvatarAsync(avatar);

if (result.IsError)
{
    _logger.LogError(result.Message);
    return;
}

var saved = result.Result; // typed as IAvatar

Core Managers

The kernel exposes functionality through manager classes, accessed via the static OASISBootLoader:

ManagerAccess viaResponsibilities
AvatarManagerOASISBootLoader.OASISAPI.AvatarCRUD, auth, email verification, password reset
KarmaManagerOASISBootLoader.OASISAPI.KarmaAward/deduct karma, Akashic Record queries
HolonManagerOASISBootLoader.OASISAPI.DataHolon CRUD and search
NFTManagerOASISBootLoader.OASISAPI.NFTMinting, transfer, wallet queries
MapManagerOASISBootLoader.OASISAPI.MapOur World map, hotspots, GeoNFTs
SearchManagerOASISBootLoader.OASISAPI.SearchCross-entity search

Error Handling

Use OASISErrorHandling to populate OASISResult from exceptions, preserving the isError / isWarning semantics through all layers:

csharp
var result = new OASISResult<IAvatar>();
try {
    result.Result = await _provider.LoadAvatarAsync(id);
} catch (Exception ex) {
    OASISErrorHandling.HandleError(ref result, ex.Message);
}
return result;