-
Notifications
You must be signed in to change notification settings - Fork 32
merging master into experiimental #351
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: Experimental
Are you sure you want to change the base?
Conversation
- Added ParentWeb4NFTId to IWeb3NFT interface and Web3NFT.
...ders/Storage/NextGenSoftware.OASIS.API.Providers.MongoOASIS/Repositories/SearchRepository.cs
Show resolved
Hide resolved
| } | ||
| return false; | ||
| #else | ||
| return false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Python fallback code unreachable due to commented preprocessor directive
The #else preprocessor directive was changed to //#else (a comment) at multiple locations, breaking the conditional compilation structure. The reflection-based fallback code that dynamically loads Python.NET at runtime is now unreachable when PYTHONNET_AVAILABLE is not defined. When the symbol is not defined, only return false; executes (or nothing for the third location), completely skipping the fallback path that was intended to detect Python.NET at runtime. This silently breaks Python interop for users without compile-time Python.NET support.
Additional Locations (2)
|
|
||
| return _EOSIO; | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Race condition in lazy-initialized provider properties returns null
The newly uncommented provider properties (EOSIO, Ethereum, Telos, ActivityPub) use Task.Run to asynchronously initialize the backing field but immediately return the field value without awaiting completion. On first access, this returns null because the async registration hasn't finished yet. The fire-and-forget pattern means callers receive null and subsequent accesses may still race with the ongoing initialization.
Additional Locations (2)
- [
Native EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB4 OASIS API/OASISProviders.cs#L133-L153](https://github.com/NextGenSoftwareUK/OASIS/blob/c5bab2e5a1b116de1e7fc44002ce21042baa01d5/Native EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB4 OASIS API/OASISProviders.cs#L133-L153) - [
Native EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB4 OASIS API/OASISProviders.cs#L217-L237](https://github.com/NextGenSoftwareUK/OASIS/blob/c5bab2e5a1b116de1e7fc44002ce21042baa01d5/Native EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB4 OASIS API/OASISProviders.cs#L217-L237)
ONODE/NextGenSoftware.OASIS.API.ONODE.Core/Providers/Interop/PythonInteropProvider.cs
Show resolved
Hide resolved
- Added more documentation. - Fixed many providers. - Added postman endpoints with examples for STAR API. - Updated the OASIS API postman json file with latest API changes and added additional examples. - Multiple bug fixes including in the new COSMIC API & STARNET Plugin System.
Added the rest of web3 nft support such as edit, search, list etc to STAR.CLI and can now also start and stop the WEB4 OASIS API Server and WEB5 STAR API Server within STAR CLI.
- Fixed many bugs in STARCLI - Misc UI/UX/Flow improvements in STAR CLI.
OASIS Architecture/NextGenSoftware.OASIS.OASISBootLoader/OASISBootLoader.cs
Show resolved
Hide resolved
| /// <summary> | ||
| /// PHP libraries (alias) | ||
| /// </summary> | ||
| PHP, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate PHP enum values are not true aliases
The Php and PHP enum values are documented as aliases but in C# enums, separate values automatically receive different underlying integers. Comparing InteropProviderType.Php with InteropProviderType.PHP will return false since they're distinct values. For true aliasing, both values would need to be explicitly assigned the same integer value (e.g., PHP = Php).
- Fixed a bug in the STARNET Dependency system in AddDependencyAsync method in STARNETUIBase in STAR.CLI.Lib.
… MetaDataHelper in OASIS.API.Core. - Fixed bugs in MintNFTInternalAsync & FormatSuccessMessage in NFTManager in OASIS.API.ONODE.Core. - Fixed bugs in LightWizardAsync & CreateOAPPComponentsOnSTARNETAsync in OAPPs in STARNET.CLI.Lib.
OASIS Architecture/NextGenSoftware.OASIS.API.Core/Helpers/MetaDataHelper.cs
Show resolved
Hide resolved
Added a new grant entry for OpenServ in the Grants & Case Studies section.
Removed '✅ COMPLETED' from section headers in README.
Removed detailed visual architecture diagrams and updated HyperDrive architecture section.
Added a link to the OASIS Torus architecture diagram.
Added an image tag for the OASIS Torus architecture diagram in the README.
OASIS Architecture/NextGenSoftware.OASIS.OASISBootLoader/OASISBootLoader.cs
Outdated
Show resolved
Hide resolved
Updated the OASIS Architecture image link in the README.
… commands and other areas. - Fixed a bug in IsBinary in MetaDataHelper in NextGenSoftware Lib. - Updated GetWalletFromWalletManagerAsync in WalletHelper in NextGenSoftware Lib. - Added Name & Description to IProviderWallet interface. - Fixed many bugs in WalletManager. - Fixed a bug in GetAllBlockchainProviders method in ProviderManager in OASIS.API.Core. - Fixed a bug in GenerateKeyPairWithWalletAddress in KeyManager in OASIS.API.Core. - Fixed a bug in LinkProviderWalletAddressToAvatar in KeyManager where secret words were not being encrypted correctly. - Updated all Blockchain providers so they now all register the ProviderCategories they belong to.
- Updated URI for CoinGecko API in CoinGekoExchangeRateService in OASIS.API.Core. - Fixed a bug in CreateBridgeOrderAsync in CrossChainBridgeManager so now FromAddress instead of UserId uses n OASIS.API.Core. - Added addiitional error checking/validation to ImportWalletUsingJSONFileByIdAsync, ImportWalletUsingJSONFileById, ImportWalletUsingJSONFileByEmailAsync, ImportWalletUsingJSONFileByEmail, ImportWalletUsingJSONFileByUsernameAsync & ImportWalletUsingJSONFileByUsername in WalletManager in OASIS.API.Core. - Added ImportAllWalletsUsingJSONFileById, ImportAllWalletsUsingJSONFileByIdAsync, ImportAllWalletsUsingJSONFileByUsername, ImportAllWalletsUsingJSONFileByUsernameAync, ImportAllWalletsUsingJSONFileByEmail & ImportAllWalletsUsingJSONFileByEmailAsync to WalletManager in OASIS.API.Core - Fixed a bug in FilterWallets in WalletManager in OASIS.API.Core. - Added import and export sub-commands to Wallet menu in STAR CLI. - Added ImportWalletUsingPrivateKey, ImportWalletUsingPublicKey, ImportWalletUsingJSONFileAsync, ImportAllWalletsUsingJSONFileAsync, ExportWalletAsync & ExportAllWalletsAsync to Wallets in STAR.CLI.Lib.
| // Fetch rates from CoinGecko | ||
| string url = $"simple/price?ids={fromCoinId},{toCoinId}&vs_currencies=usd"; | ||
| //string url = $"simple/price?ids={fromCoinId},{toCoinId}&vs_currencies=usd"; | ||
| string url = $"https://api.coingecko.com/api/v3/simple/price?vs_currencies=usd&ids={fromCoinId},{toCoinId}&x_cg_demo_api_key=CG-zG3a2tbc6QybLVKcknucz1Hz"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hardcoded API key exposed in source code
High Severity
A CoinGecko API key (CG-zG3a2tbc6QybLVKcknucz1Hz) is hardcoded directly in the source code URL string. This exposes the credential in version control, making it accessible to anyone with repository access and potentially compromising the key. The class comment on line 12 states "no API key required" which contradicts the implementation. API keys belong in configuration files, environment variables, or a secrets management system.
| result.Result.ProviderWallets[provider.ProviderType.Value] = new List<IProviderWallet>(); | ||
|
|
||
| result.Result.ProviderWallets[provider.ProviderType.Value].Add(walletResult.Result); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Null reference when accessing error message after null check
Medium Severity
The condition !(saveWalletsResult != null && saveWalletsResult.Result != null && !saveWalletsResult.IsError) explicitly handles saveWalletsResult being null, but when it is null, the condition evaluates to true (entering the error block), and then saveWalletsResult.Message is accessed, throwing a NullReferenceException. The null check in the condition contradicts the assumption in the error handler that saveWalletsResult is non-null.
- Fixed bugs in CreateBridgeOrderAsync method in CrossChainBridgeManager. - Fixed a bug in GetAccountBalanceAsync in BridgeManager in OASIS.API.Core where providers activation status was not checked before check a chains balance, it now checks and activates if needed. - Fixed a bug in GetBalanceAsync in EthereumOASIS where it was returning an error instead of activating the provider if it was not already activated.
| (fromToken == Sol && toToken == Zec); | ||
|
|
||
|
|
||
| isSupportedPair = true; //TODO: Not sure why we need to check if its a supported pair?! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Debug code bypasses cross-chain swap pair validation
High Severity
The line isSupportedPair = true; with a TODO comment completely bypasses the supported swap pair validation logic that was carefully defined in lines 148-153. This allows any token pair to attempt a swap operation, including unsupported combinations that could fail or behave unexpectedly. The TODO comment indicates uncertainty about the validation, suggesting this was temporary debug code.
|
|
||
| //TODO: Temp, need to investigate more later! ;-) | ||
| if (currentProviderType != ProviderType.LocalFileOASIS) | ||
| SwitchBackToCurrentProvider(currentProviderType, ref result); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Provider state not restored for LocalFileOASIS operations
Medium Severity
The SwitchBackToCurrentProvider call is conditionally skipped when currentProviderType is LocalFileOASIS, unlike all other similar calls in this file (lines 70, 123, 196, 272, 325) which call it unconditionally. This inconsistency means that after LoadHolonsByMetaDataAsync completes with LocalFileOASIS as the original provider, the system may remain on a different provider used during the operation, causing subsequent operations to unexpectedly use the wrong provider. The TODO comment acknowledges this needs investigation.
- Added EVMBlockchain to ProviderCategory in OASIS.API.Core. - Removed SupressConsoleLoggingWhenSwitchingProviders from ProvidierManager in OASIS.API.Core (replaced by LogSwitchingProviders in OASISDNA). - Added GetAllEVMBlockchainProviders & IsProviderEVMBlockchain to ProviderManager in OASIS.API.Core. - Added LogSwitchingProviders OASISDNA. - Fixed a bug in DownloadAsync in STARNETManagerBase in OASIS.ONODE.Core to cater for deleted or missing STARNET folders. - Fixed a bug in InstallAsync in STARNETManagerBase in OASIS.ONODE.Core to cater for deleted or missing STARNET folders. - Fixed a bug in IsNFTStandardTypeValid in NFTManager in OASIS.ONODE.Core where ERC721 & ERC1155 validation was not working correctly. - Fixed multiple bugs in MintNFTInternalAsync in NFTManager in OASIS.ONODE.Core. - Fixed bugs in FormatSuccessMessage in NFTManager in OASIS.ONODE.Core. - Added new EVMBlockchain ProviderCategory to all EVM chain providers. - Fixed a bug in ApplyOAPPTemplate in STAR in STAR ODK. - Added new logproviderswitching sub-command to the config command in STAR CLI to enable/disable HyperDrive Logging for when switching providers. - Fixed a bug in LightWizardAsync in OAPPs in STAR.CLI.Lib. - Fixed a bug in CreateOAPPComponentsOnSTARNETAsync in OAPPs in STAR.CLI.Lib. - Fixed a bug in MapCustomHolonMetaTagsToTemplate in OAPPs in STAR.CLI.Lib so only string nodes can be mapped to meta tags. - Fixed a bug in CreateAsync in OAPPTemplates in STAR.CLI.Lib. - Updated Keys and Wallets to no longer use the redudant SupressConsoleLoggingWhenSwitchingProviders switch in ProviderManager.
…NODE.Core. - Fixed a bug in MintNFTInternalAsyncin NFTManager in OASIS.ONODE.Core where JSONMetaData was not being set properly. - Fixed a bug in FormatSuccessMessage overloads in NFTManager in OASIS.ONODE.Core. - Fixed a bug in CreateAsync in GeoNFTs in STAR.CLI.Lib where JSONMetaData was not being saved correctly to the json file. - Improved CreateAsync in GeoNFTS in STAR.CLI.Lib so it now also saves the WEB3_NFT json files for each web3 nft minted in the new WEB4 GeoNFT as well as the json meta data file for each one. - Fixed a bug in ShowGeoNFT in GeoNFTs in STAR.CLI.Lib. - Fixed a bug in GenerateWeb3NFTRequestsAsync in NFTCommon in STAR.CLI.Lib. - Improved CreateAsync in NFTS in STAR.CLI.Lib so it now also saves the WEB3_NFT json files for each web3 nft minted in the new WEB4 NFT as well as the json meta data file for each one. - Improved CreateAsync in STARNETUIBase in STAR.CLI.Lib so it now adds depdencies before asking to show the generated STARNET folder.
…NFT, InstalledNFTCollection & InstalledChapter holons in OASIS.API.ONODE.Core. - Fixed a bug in QuestBase in OASISI.API.ONODE.Core. - Removed redudant CreateQuestForMission, CreateQuestForMissionAsync, CreateSubQuestForQuest & CreateSubQuestForQuestAsync methods from QuestManager in OASIS.API.ONODE.Core. - Fixed a bug ShowSubCommandAsync in STAR.CLI. - Fixed bugs in CreateAsync in Chapters in STAR.CLI.Lib. - Fixed bugs in CreateAsync in Missions in STAR.CLI.Lib. - Fixed bugs in CreateAsync in Quests in STAR.CLI.Lib. - Fixed bugs in UpdateAsync in STARNETUIBase in STAR.CLI.Lib. - Fixed bugs in AddDependencyAsync in STARNETUIBase in STAR.CLI.Lib. - Fixed bugs in RemoveDependencyAsync in STARNETUIBase in STAR.CLI.Lib.
…eryXSeconds defaults to BurnWeb3NFTRequest in OASIS.API.Core. - Removed providerType from BurnWeb3NFTRequest in NFTManager in OASIS.API.ONODE.Core. - Updated ShowSubCommandAsync in STAR CLI. - Fixed a bug in FindWeb3NFTAsync in NFTCommon in STAR.CLI. - Fixed a bug in UpdateAsync in STARNETUIBase in STAR.CLI.Lib.
….Core. - Fixed a bug in DeleteWeb4NFTAsync in NFTManager in OASIS.API.ONODE.Core. - Supressed logging in BurnNftAsync, SendTransaction, LoadNftAsync & SendNftAsync in SolanaService in SolanaOASIS Provider. - Fixeds bugs in parsing in ShowSubCommandAsync in STAR.CLI.
- Fixing bugs in AztecOASIS, BlockStackOASIS, MidenOASIS, MoralisOASIS, NEAROASIS, StarknetOASIS, ZcashOASIS, MapBoxOASIS, Neo4jOASIS & PLANOASIS. - Fixed bugs in NFTs in STAR.CLI.Lib (web3 & web4 NFT's json files now get re-generated when changes are made to web3, web4 or web5 nfts to keep them all in sync. - Fixed multiple issues in STAR API Web API in CelestialbodiesMetaData, GeoNFTs, HolonsMetaData, InventoryItems, NFTs, OAPPs, Runtimes, Templates, Zomes & ZomesMetaData controllers. - Multiple bug fixes. - Various improvements.
- MetaData for NFTs now uses strings for values instead of objects because was causing serialization issues for STARDNA. - Fixed a bug in MintNftAsync in NFTManager/NFT API where if no web3 varients were specefied it would only mint one NFT even if NumberToMint was greater than 1. - Lots of work done on the ArbitrumOASIS, AvalancheOASIS, AztecOASIS, BaseOASIS, BlockStackOASIS, HashgraphOASIS, MidenOASIS, MoralisOASIS, PolkadotOASIS, MapBoxOASIS & others. - Fixed a bug in ShowSubCommands in STAR.CLI for delete WEB5 STARNETHolon. - Fixed a bug in DeleteAsync in NFTs in STAR.CLI.Lib so it now removes the link from the web4 NFT to its parent web5 NFT if it exists (if it was wrapped). - Misc bug fixes & improvements.
| foreach (string key in metaData.Keys) | ||
| CLIEngine.ShowMessage(string.Concat("".PadRight(displayFieldLength), key, " = ", GetMetaValue(metaData[key])), false); | ||
| { | ||
| if (key != "WEB5STARNFTId" && key != "{{{newnft}}}") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicated filter condition should be extracted to helper method
Low Severity
The condition key != "WEB5STARNFTId" && key != "{{{newnft}}}" is duplicated three times in the file. This magic string comparison should be extracted into a helper method like IsInternalMetaDataKey(string key) to improve maintainability and ensure consistent filtering if the internal keys change.
Additional Locations (2)
- [
OASIS Architecture/NextGenSoftware.OASIS.API.Core/Helpers/MetaDataHelper.cs#L35-L36](https://github.com/NextGenSoftwareUK/OASIS/blob/b2fdb510aa10f274837c515c6d96fd017f2eecec/OASIS Architecture/NextGenSoftware.OASIS.API.Core/Helpers/MetaDataHelper.cs#L35-L36) - [
OASIS Architecture/NextGenSoftware.OASIS.API.Core/Helpers/MetaDataHelper.cs#L142-L143](https://github.com/NextGenSoftwareUK/OASIS/blob/b2fdb510aa10f274837c515c6d96fd017f2eecec/OASIS Architecture/NextGenSoftware.OASIS.API.Core/Helpers/MetaDataHelper.cs#L142-L143)
| if (CLIEngine.GetConfirmation("Do you want to set this value from a file? (Y) or enter text value (N)?")) | ||
| { | ||
| string metaPath = CLIEngine.GetValidFile("What is the full path to the file?"); | ||
| metaData[editKey] = File.ReadAllBytes(metaPath); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dead code: byte array check on string dictionary values
Low Severity
The metaData dictionary now stores all values as string, including Base64-encoded binary data. This makes the currentValue is byte[] check in ManageMetaData always false, rendering its binary handling logic unreachable. Similarly, the IsBinary method, used by GetMetaValue, always returns false as its core detection is commented out and it only checks for byte[].
Additional Locations (1)
- [
OASIS Architecture/NextGenSoftware.OASIS.API.Core/Helpers/MetaDataHelper.cs#L51-L73](https://github.com/NextGenSoftwareUK/OASIS/blob/b2fdb510aa10f274837c515c6d96fd017f2eecec/OASIS Architecture/NextGenSoftware.OASIS.API.Core/Helpers/MetaDataHelper.cs#L51-L73)
...cture/NextGenSoftware.OASIS.API.Core/Interfaces/Wallet/Requests/IWalletTransactionRequest.cs
Show resolved
Hide resolved
- Upgraded RemintGeoNFTAsync in GeoNFTs to work same way as NFTs in STAR.CLI.Lib. - Upgraded UpdateWeb4GeoNFTAsync in GeoNFTs to work same way as NFTs in STAR.CLI.Lib. - Changed showOnlyForCurrentAvatar to true as default in FindWeb4GeoNFTAsync in GeoNFTs in STAR.CLI.Lib. - Added UpdateWeb4AndWeb3GeoNFTJSONFiles to GeoNFTs in STAR.CLI.Lib. - Fixed a bug in GenerateWeb3NFTRequestsAsync in NFTCommon in STAR.CLI.Lib. - Updated RemintNFTAsync in NFTs to use UpdateWeb4AndWeb3NFTJSONFiles in NFTs in STAR.CLI.Lib. - Changed showOnlyForCurrentAvatar to true as default in FindWeb4NFTAsync in NFTs in STAR.CLI.Lib.
- Removed avatarId param from BurnWeb3NFTAsync in NFTManager. - Upgraded CreateAsync, Remint & BurnGeoNFTAsync in GeoNFTs in STAR.CLI.Lib to work like NFTs (additional bug fixes & improvements). - Added ImportGeoNFTAsync, DeleteAsync & ExportGeoNFTAsync in GeoNFTs in STAR.CLI.Lib. - Added BurnNFTAsync & ExportNFTAsync in NFTs in STAR.CLI.Lib.
- Started integrating WEB5 STAR API into Doom and Quake to make them fully interoperable so for example a keycard collected in one can be used to open a door in the other! :) - As part of the above created a C++ wrapper around STAR API which can be used with other A+++ C++ games as we port more and more games to the OASIS Omniverse, Ready Player One here we come baby! ;-) - Also as part of the above created a STAR API Client (OASIS Omniverse) allowing interoeprable games, quests, inventory items (such as keycards, nfts) etc. - Added NewlyMintedWeb3NFTs to IWeb4NFT to track newly minted web3 nfts (not persisted) in OASIS.API.Core. - Created new IGame interface in OASIS.API.Core. - Added GameArea & GameSession to OASIS.API.Core to support interop-games. - Added GameManager (extends STARNETManagerBase) to OASIS.API.ONODE.Core to support inter-op games and to add support to STARNET for such so games can be created, edited, , shared, published to the STARNET Store, downloaded, installed, version controlled, searched etc. Welcome to OGames! ;-) - Fixed more bugs in the NFTManager/NFT API. - Add many new interop game sub-commands to the STAR CLI. - Upgrading GeoNFTS in STAR.CLI.Lib so WEB4 GeoNFTs can now belong/be wrapped by multiple WEB5 GeoNFTs. (before they could only be wrapped by one parent WEB5 GeoNFT). WIP - Upgrading NFTs in STAR.CLI.Lib so WEB4 NFTs can now belong/be wrapped by multiple WEB5 NFTs. (before they could only be wrapped by one parent WEB5 NFT). WIP - Added DefaultGamesSourcePath, DefaultGamesPublishedPath, DefaultGamesDownloadedPath & DefaultGamesInstalledPath to STARDNA in STARDNA. - Massive work in all the OASIS Providers implementing all OASIS Interfaces (too many to list all here!). Includes new smart contracts, bug fixes, improvements & lots more! - Added new inventory management functions (GetInventory, AddItemToInventory, RemoveItemFromInventory, HasItem, HasItemByName, SearchInventory & GetInventoryItem) to AvatarManager and AvatarController (Avatar API) in WEB4 OASIS API. - Plus lots more bug fixes & improvements! ;-) - My Welcome Back To Mexico Present to My Hero & Business Partner Max! ;-) Welcome home bro! ;-) Missed ya!
... EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB5 STAR API/STARAPI.cs
Show resolved
Hide resolved
| { | ||
| // Get source account address (this would come from user's virtual account in a real implementation) | ||
| string sourceAccountAddress = request.UserId.ToString(); // Placeholder | ||
| string sourceAccountAddress = request.FromAddress; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing FromAddress validation after switching from UserId
High Severity
The source account address was changed from request.UserId.ToString() (always a valid non-null Guid string) to request.FromAddress, which defaults to string.Empty. However, ValidateRequest validates DestinationAddress but never validates FromAddress. An unset FromAddress would pass validation and then be used for balance checks and the atomic swap withdrawal, leading to failed or incorrect blockchain operations.
Additional Locations (1)
- [
OASIS Architecture/NextGenSoftware.OASIS.API.Core/Managers/Bridge/CrossChainBridgeManager.cs#L677-L728](https://github.com/NextGenSoftwareUK/OASIS/blob/4e9916d5ba3645f1acb487844a2a705123c186b5/OASIS Architecture/NextGenSoftware.OASIS.API.Core/Managers/Bridge/CrossChainBridgeManager.cs#L677-L728)
OASIS Architecture/NextGenSoftware.OASIS.API.Core/Holons/Web4NFTCollectionBase.cs
Show resolved
Hide resolved
- Added GameSession & GameArea to HolonType enum in OASIS.API.Core. - Added ChildrenIds to SemanticHolon in OASIS.API.Core. - Added ParentHolonId2, ParentHolonId3, ParentHolon2, ParentHolon3 & ParentHolonIds to SemanticHolon in OASIS.API.Core. - GameArea & GamSession now extend Holons in OASIS.API.Core. - Added ParentWeb5NFTIds to Web4NFT. - Added ZkSyncOASIS, LineaOASIS, ScrollOASIS & XRPLOASIS providers. - Added new Added ZkSyncOASIS, LineaOASIS, ScrollOASIS & XRPLOASIS sections to the OASISDNA.json file & OASISDNA in OASIS.API.DNA. - Lots of fixes to many providers. - Added AllProviders.TestHarness to test all providers in one test. - Created a lot of automated smart contract deployment scripts & documentations. - Rewrote the way WEB5 STAR GeoNFTs and NFTs link to their wrapped WEB4 GeoNFTs and NFTs in STAR.CLI.Lib so now use ChildrenIds on Web5 and ParentWeb5NFTIds on Web4 to create a 2 day binding between them. Before the link was stored in the meta data. - Lots more misc bug fixes & improvements!
| Quest, | ||
| Game, | ||
| GameSession, | ||
| GameArea, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enum values shifted by mid-insertion break persisted data
High Severity
New HolonType values (Game, GameSession, GameArea, DownloadedGame, InstalledGame) are inserted in the middle of the enum rather than appended at the end. Since HolonType has no explicit integer assignments and the MongoDB provider serializes enums as integers by default, this shifts the numeric value of every subsequent member. Any previously persisted holon data will silently deserialize to the wrong HolonType.
Additional Locations (2)
- [
OASIS Architecture/NextGenSoftware.OASIS.API.Core/Enums/HolonType.cs#L89-L90](https://github.com/NextGenSoftwareUK/OASIS/blob/54025312aa55dcee60425f6eb657327d277e6535/OASIS Architecture/NextGenSoftware.OASIS.API.Core/Enums/HolonType.cs#L89-L90) - [
OASIS Architecture/NextGenSoftware.OASIS.API.Core/Enums/HolonType.cs#L112-L113](https://github.com/NextGenSoftwareUK/OASIS/blob/54025312aa55dcee60425f6eb657327d277e6535/OASIS Architecture/NextGenSoftware.OASIS.API.Core/Enums/HolonType.cs#L112-L113)
- More fixes for providers. - Improvements to WEB5 STAR GeoNFTCollections and WEB5 STAR NFTCollections so they can now wrap multiple WEB4 GeoNFTCollections and WEB4 NFTCollections instead of one so is now one to many rather than one to one as before. This mirrors the upgrades made to WEB5 GeoNFTs and WEB5 NFTs. - Renamed OASISOmniverse to OASIS Omniverse.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| *.key | ||
| *.pem | ||
| *private* | ||
| *secret* No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overly broad gitignore patterns may hide source files
Medium Severity
The *private* and *secret* gitignore patterns match any file whose name contains those substrings. This could silently prevent newly created legitimate source files (e.g., PrivateKeyHelper.cs, SecretManager.cs) from being tracked. Narrower patterns like *.private.* or path-specific rules would be safer.
…AR API integration! :_ - Also lots done on providers. - Lots of fixes for unit & integration tests. - Also includes C++ native wrapper for STAR API so any A++ game can be plugged into the OASIS Omniverse, ODOOmM & OQUAKE are the first examples, many more to come! ;-) Interoperable Games here we come! :)
- Also getting the STAR WEB UI Working again.
…page/scripts between them)


Note
Medium Risk
Mostly docs and configuration hardening, but it also changes public/core data shapes (metadata typing, new Holon fields/types) and provider initialization paths, which could affect runtime behavior and serialization/compatibility.
Overview
Adds comprehensive smart contract deployment documentation (
CONTRACT_DEPLOYMENT.md,DEPLOYMENT_CHECKLIST.md,DEPLOYMENT_STATUS.md,DEPLOYMENT_COMPLETE.md) plus large OASIS technology/meeting-notes docs, and updates.gitignoreto explicitly exclude sensitive deployment artifacts (env files, keys, deployed address registries, Hardhat config).Enables additional providers in the native endpoint (
Ethereum,EOSIO,Telos,SEEDS,ActivityPub) via lazy registration getters, updates test harness boot/usage patterns, and extends STAR API surface with a newGamemanager.Introduces new game-related enums (
GameState,GameType,VideoSetting) and expandsHolonTypefor game entities; also adjusts core helpers/models (metadata nowDictionary<string,string>with base64 file values + filtered keys, wallet helper signature fix,Holon.Nodesdefault init,HolonBase.IsDeleted, extra parent/child linkage fields, and NFT collection parent ID links). Updates embeddedSpectre.Consoleto targetnet8.0and refines nullable/LangVersion settings.Written by Cursor Bugbot for commit 20f0980. This will update automatically on new commits. Configure here.