Skip to content

develop e229 - #80

Merged
hackerby888 merged 36 commits into
mainfrom
develop
Sep 2, 2026
Merged

develop e229#80
hackerby888 merged 36 commits into
mainfrom
develop

Conversation

@hackerby888

Copy link
Copy Markdown
Collaborator

No description provided.

fnordspace and others added 30 commits August 5, 2026 14:13
Merge develop into main Seamless Start Epcoh 225
Update params for seamless epoch 226 / v1.301.4
HOTFIX: Set tick 73924308 empty
A walk holds the score-engine lock for tens of seconds while a checkpoint
window is ~21s, so it runs in a process re-exec'd with --ant-walk-worker.
Also releases ANN claims a fork child inherits, which the on-demand waiter
would otherwise spin on forever.
the trace snapshot was taken before hostServices.logBytes stamps the leading
word, so every traced log reported contract index 0 while the log store
recorded the real one.
One opcode-dispatched lhost row instead of one row per cheat, so later
cheatcodes cost no import and no ABI bump. Refusal is always a negative
return, never a trap, so a client that outruns the node degrades loudly.

CC_PRINT records against the debug trace only: no log id, no qLogger, no
tick log range. Warp shifts what the contract observes while the node
still commits the real tick, so it cannot move consensus.
The amount arrives as an unsigned word, so a value past the signed range
landed here negative and would have decreased energy against index -1.
* Don't shortcut the ant colony bypass the score engine.

* AntBpp9000: all IDs' tree will share the same root with epoch start spectrum digest.

* AntBpp9000: Update bpp9000 task file for epoch 229.
* Refactor Nostromo contract: replace tier-based features with auction functionality, including participant management, lot handling, and visibility settings.

* Refactor `CreateAuction` procedure in `Nostromo` contract: modularize auction parameter resolution, lot asset management, and data validation into reusable private functions.

* Refactor `Nostromo` contract: remove obsolete structs and functions, simplify auction initialization, modularize parameter resolution, and enforce duration cap validation.

* Add `ValidateMetadataCid` procedure to `Nostromo` contract: introduce IPFS CID validation with character checks and integration into `CreateAuction` function.

* Add buy-now and price validation to auction parameter resolution in `Nostromo`: enhance `resolveBatchAuctionCreateParams` and `resolveStandardAuctionCreateParams` with price-related inputs and validation logic.

* Add sale price validation in `ResolveBatchAuctionCloseParams` of `Nostromo`: ensure `salePricePerUnit` is non-zero and less than or equal to `initialPricePerUnit`.

* Refactor `Nostromo` contract: remove unused auction fields, improve bidder validation, and refine access asset checks for private auctions.

* Add auction cancellation functionality to `Nostromo`: introduce `CancelAuction` procedure with fee logic, participant refunds, and state updates; refactor auction fields to use total prices instead of per-unit pricing.

* Expand access asset logic in `Nostromo`: replace single asset with multiple required assets, add validation functions, and refactor private auction checks.

* Refactor private auction access logic in `Nostromo`: replace boolean flags with `uint8`, enhance access validation with `hasAccess`, and refine checks for required access assets and allowed wallets.

* Modularize bid processing in `Nostromo`: introduce `ProcessBatchBid` and `ProcessStandardBid` procedures, refactor `PlaceBid` for auction-type-specific bid handling, and encapsulate participant and auction updates.

* Add `@brief` documentation across `Nostromo` contract: enhance struct clarity with detailed field descriptions, standardize comment format, and improve internal documentation consistency.

* Simplify escrow logic in `Nostromo`: unify per-asset and lot-based pricing in auctions, remove redundant bidder and escrow fields, refine bid processing procedures, and enhance refund and validation logic.

* Update comments in `Nostromo` and add participant cleanup in auction rollback: refine `@brief` documentation for price fields, standardize comment formatting, and invoke `participants.cleanupIfNeeded()` during rollback.

* Add storage capacity check in `Nostromo` auction participation: prevent new participants if storage is full and return `StorageFull` error code.

* Add auction pause handling and tick-based scheduling in `Nostromo`: introduce post-epoch auction pause mechanism, tick-based scheduling for auction finalization, and new procedures for batch and standard auction finalization.

* Refine `minimumPurchaseQuantity` handling in `Nostromo`: update comments for clarity, remove unused checks in input validation, and simplify auction setup logic.

* Add revenue distribution and seller decision handling in `Nostromo`: implement `DistributeAuctionRevenue` for fee allocation, introduce `ResolvePendingStandardAuction` for seller decisions, and refine auction finalization procedures to support revenue sharing logic.

* Expand auction handling in `Nostromo`: add structured input/output for auction procedures, refine field documentation, and introduce detailed `@brief` comments for clarity and consistency.

* Refactor auction type handling in `Nostromo`: replace conditional logic with `switch` statement and improve inline documentation for batch auction finalization procedures.

* Add highest bid recomputation for batch auctions in `Nostromo`: implement `RecomputeBatchHighestBid` procedure, update bid processing to trigger recomputation when needed, and introduce supporting data structures and logic.

* Add dynamic auction fee configuration in `Nostromo`: introduce default fee constants, enable runtime fee updates via new procedures `SetAuctionFees`, `

* Add `GetAuctionFees` and `GetFeeRecipients` procedures in `Nostromo`: expose current fee configuration and recipient wallets via structured input/output, register new user functions.

* Refactor and streamline `ContractTestingNostromo`: remove redundant testing logic, consolidate helper functions, and introduce `ContractTestingNostromoAuctionFromScratch` class for auction-related test cases.

* Add global auction pause mechanism in `Nostromo`: implement auction timer pause intervals, synchronize deadlines with pause states, and add test cases for deadline adjustments.

* Refactor `ContractTestingNostromoAuctionFromScratch` to `ContractTestingNOST`: simplify test class structure, introduce `NOSTChecker` for state interactions, and streamline auction-related helper functions.

* Synchronize auction pause states with `SyncAuctionPauseState`: ensure accurate timer adjustments, align deadlines with current pause state, and refactor balance-checking logic in tests to improve test accuracy.

* Add `expectedDividendPoolIncrease` helper in tests: calculate expected shareholder dividend pool changes and replace direct comparisons with computed expectations. Update relevant assertions for accuracy.

* Refactor `GetAuction` output structure: replace `AuctionData` with `Array<AuctionData, 1>` to support consistent handling of auction data, update all related method calls and tests.

* Simplify `GetAuction` output: replace `Array<AuctionData, 1>` with `AuctionData`, update method calls and tests accordingly.

* Introduce auction service fee breakdown: add calculation, distribution logic, and integrate with private auction and cancellation flows. Update related tests and constants.

* Refactor `TransferShareManagementRights`: introduce locals structure, implement safer flow with validation checks, and ensure proper invocation reward handling and refund logic.

* Refactor auction data structures: introduce `AuctionCore` for shared fields, separate persistent state (`AuctionData`) and ABI views (`AuctionView`), and update all references and logic to use the new structure.

* Refactor `ContractNostromoAuction` tests: replace nested auction fields with `AuctionCore` references, update related assertions, and introduce `seedUser` to streamline user initialization logic.

* Introduce extended auction handling methods and storage validation: add `placeBidWithFundedReward`, extend `transferManagedShares` with reward options, integrate private auction access lists, and ensure proper handling for scenarios like storage full conditions. Update tests accordingly.

* Reduce auction configuration limits: decrease lot items, allowed wallets, and required access assets for improved efficiency.

* Replace `auctionId` with `auctionIndex` across `ContractNostromoAuction` methods for consistency and clarity. Introduce expanded auction getter methods. Update related tests and assertions.

* Fix contract spacing, formatting, and minor adjustments in `ContractNostromoAuction` tests for clarity and consistency.

* Update `allowedBidder` values in `ContractNostromoAuction` tests to reflect revised wallet IDs.

* Add error code handling to `transferManagedShares` and auction methods. Update tests and logging to validate outputs and ensure consistent error propagation.

* Changes to the order of fields in NostromoProcedureLog

* Changes the field type from EAuctionError to uint32 in NostromoProcedureLog

* The wallet whitelist has been expanded, each lot is limited to a single asset, and asset-based access now takes into account the minimum required quantity and validates the input data.

* Removes magic numbers

* Batch 1 lot, Standard 4 lots per auction

* Adds comments

* Minimum Purchase Quantity in Batch Auction

* Add minimum price and bid increment for Standard Auctions; implement batch auction bid availability check
Change hashmap to array

* Add batch auction creation fee and emergency pause configuration; implement fee reserve guard logic

* Refactor batch auction bid fee calculation; remove unused tokensForSale parameter and adjust fee logic

* Add detailed documentation for auction-related functions; enhance code clarity

* Refactor auction creation fee handling; unify public auction fee constants and update related logic

* Update contract state management and introduce old state data structures

* • feat(nostromo): harden auction lifecycle and payout handling

  - retain full closed-auction snapshots and participant history
  - release active storage after auction finalization or cancellation
  - queue failed QU payouts and retry them automatically at END_EPOCH
  - add payout capacity guards and replace magic numbers with constexpr values
  - optimize retained-auction getters and batch availability lookup
  - extend contract statistics, error handling, documentation, and tests

* update private auction access logic to allow combined access modes

* implement shared fee pool management and retrieval functions

* remove NOSTChecker class and streamline auction fee calculations

* Moved comments for verification processing

* Update NOST_CONTRACT_INDEX migration version to 228
w_cheat treated a zero offset as "no payload", but offset 0 is an
ordinary linear-memory address and contract state sits there — so every
CC_PRINT of a state read reached the trace with no bytes. The length
says whether there is a payload; the offset never did.

Only a real node showed this. The simulator's import already keys on the
length, and slicing a JS array at 0 is fine, so every engine test passed
while the native path dropped exactly the reads worth printing.

recordCheat also refuses to dereference a null payload now: an offset
outside linear memory resolves to null, and the size alone was enough to
send it to hex().
@hackerby888
hackerby888 merged commit d83bc51 into main Sep 2, 2026
48 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants