Skip to content

Feature/2025 08 01 vottun bridge#7

Open
sergimima wants to merge 568 commits intoKavataK:VOTTUNfrom
sergimima:feature/2025-08-01-VottunBridge
Open

Feature/2025 08 01 vottun bridge#7
sergimima wants to merge 568 commits intoKavataK:VOTTUNfrom
sergimima:feature/2025-08-01-VottunBridge

Conversation

@sergimima
Copy link

No description provided.

philippwerner and others added 30 commits December 12, 2025 11:11
IDs do not contain the contract ID in order to better use the available
bits.
* fix bug due to change nost contract index 13 ~ 14

* Fixed the QVE-2025-0006
…eeksperperiod as 0 (qubic#687)

* Fix: available to submit the cancel subscription proposal with weeksperperiod as 0

* fix: checking the weeksperpeiod in the END_EPOCH
* add contractExecutionTicksPerPhase array

* add switch of execution ticks array

* fill array with execution ticks

* rename executionTicks to make it less confusing with network ticks

* add debug log to switchContractExecutionTimeArray

* Add execution fee check and documentation

* Address reviewer comments in doc

* Change to read-only getContractFeeReserve function

* Fix link to contract documentation

* added quick sort in lib/platform_common

* add extensive testing

* add logging for ContractReserveDeduction

* adapt ContractReserveDeduction struct to avoid padding in the middle

* Add execution fee report transaction (qubic#628)

* Add basic executionFeeReportTx structure
* Add execution fee report transaction
* Add verification of incoming execution fee report transactions
* Adds a class to collect executionFee reports for each SC and computor
* Add new files to project- and filterfile
* Add basic tests for executionFeeReportCollector class
* Add tests for executionFeeReport

* Calculate quorum value for executionFee and deduct from executionFeeReserve (qubic#639)

* Add function to calculate quorum value
* Add tests for quorum value calculation
* Add executionFeeReport processing function
* Add logging event on executionFee deduction
* Add subtractFromContractFeeReserve function

* created ExecutionTimeAccumulator class to encapsulate variables from contract_exec (qubic#647)

* add more debug output in execution time accumulator

* fix warnings

* Add check for executionFee before SC execution

* Add contractError checks for SC function calls

* Exclude epoch transistion system procs form execution fees

* Add executionFee check for SC-to-SC calls

Adds a new error code: ContractErrorCalledContractInsufficientFees, if a
contract A calls a contract B, while contract B has no
positive executionFeeReserve.

Adds check for positive executionFreeReserve when a contract calls
another contract.

Updated documentation.

* Exclude CalledContractInsufficientFees Error for BEGIN and END_EPOCH

* Update documentation

* Fix tests

* Add missing includes
* add ExecutionFeeReserve to TestContracts

* Add errorCode for SC-to-SC procedure calls

* Add flag to skip executionFeeReserve check for system procedures

* Change newContext creation to pointer instead of reference

* Add comment to indicate variable in macro

* Remove code dublication

Call the more general INVOKE_OTHER_CONTRACT_PROCEDURE_E from the INVOKE_OTHER_CONTRACT_PROCEDURE

* Add return error for contract-to-contract function calls

* Add return error when a SC calls a SC function to have same interface
  as for procedures
* Adjust documentation

* Fix nit

* Fix build, rename variable after rebase

* Repord runtime of ProcedureNotificationCall

* add save in saveComputer

* add save methods to ExecutionTimeAccumulator and ExecutionFeeReportCollector

* add loadFromFile to ExecutionTimeAccumulator and ExecutionFeeReportCollector

* add missing file name adaptation

* separate loadComputer into loadContractStateFiles and loadContractExecFeeFiles

* save accumulated time only in snapshot

* fix vcxproj.filters

* disable contract share check for test contracts

* fill execution fee reserve of test contracts

* add processReports in correct place

* accumulate microseconds instead of CPU ticks

* do not charge digest computation before construction/in IPO

* check that contract 0 is excluded from exec fees (digest computation, report txs, quorum value comp)

* Only reset execFeeReports on hard reset

* disable reserve deduction for mainnet testing

* add non-zero fee reports info to debug output

* make execution fee accumulation and reports unsigned, fix tests (contract 0 invalid, CPU frequency not available in tests)

* disable excessive debug output in pending txs pool

* Remove more logging

* Set debugLogOnlyMainProcessorRunning earlier

To avoid bad cache read of the flag when calling addDebugMessage from
non-main processor.

* minor comment and spelling fixes

* Address reviewer comments

* move safe math implementation to math_lib.h, move QPI safe math implementation to qpi_trivial_impl.h to be able to call math_lib functions

* add overflow protection for exec time accumulation and fee reserve

* Add missing header to math_lib.h

---------

Co-authored-by: fnordspace <qubic@fnord.space>
…hine-interfaces

Oracle machine interfaces
* fix: gtest for the CCF-update
Running the tests in this order broke the later test:
`--gtest_filter=ContractTestEx.ResolveDeadlockCallbackProcedureAndConcurrentFunction:ExecutionTimeAccumulatorTest.AddingAndPhaseSwitching`
This commit fixes by initalize `frequency` to 0 again.
This reverts commit 16b50c9.
* make fee multipliers variables instead of constants

* add special command to set execution fee multipliers

* add get execution fee multiplier special command
Updated README with new prerequisites, disk preparation instructions, and improved clarity on node deployment.
baoLuck and others added 30 commits February 17, 2026 19:34
* QSwap audit 3 fixes

* type fix

* gtest fix
* QDuel

* transfer dividends to RL shareholders

* Remove magic numbers

* Move test file

* Changes public to protected

* Adds lock mechanism

* Deposit

* Return qus after end epoch

* Adds check state in tick

* Transferring rooms and players to the next epoch

* Create room in tick

* Transferring rooms and players to the next epoch

* Base tests

* Adds tests

* Fixes

* Add new test

* Adds cleanup for HashMaps

* Update constructionEpoch

* Fixes build and warnings

* Adds winnerId and userId

* Refactoring

* 0 means rooms do not expire automatically.

* Close Room

* Percent scale to state
CalculateRevenue to public function

* Get Winners

* typo: Winner
* Get players
Sync Jackpot with balance

* GetWinningCombinationsHistory

* Fixes

* Fixes: contract verify

* Adds wonAmount

* Fixes save to state

* GetWinnerRewards

* Fixes type wonAmount
* Allow snapshot loading if computor count changes

Changing assignment of computors to nodes between save and load should
now only influence the creation of own commit transactions of pending
queries.

* Improve OracleEngine based on fnordspace's feedback

- only use global computor indices in OracleEngine
- remove unused and redundant elements from OracleReplyState
- update interface of OracleEngine, tests, and use in qubic.cpp

* Fix bug in signing oracle reply reveal tx
…cesses. Introduce minimum order amount validation to prevent zero-fee spam, enhance fee management with invocation rewards, and implement single-pass recycling for order and proposal slots. Add new refund functionality and corresponding tests to ensure proper fee handling and order status updates.
* feat: store dao member count of each epoch

* feat: add test dao members count

* fix: update qraffle SC

* fix: signed/unsigned mismatch

---------

Co-authored-by: cyber-pc <165458555+cyber-pc@users.noreply.github.com>
* Implement QThirtyFour contract with ticket purchasing and winner selection logic

* Add QReservePool and QTF contract definitions with related functionalities

* Refactor QThirtyFour.h: reposition QTF2 struct definition for clarity

* Test version for QThirtyFour

* CalcReserveTopUp

* New structs

* Fees

* Refactoring

* Remove profit transfer from k3 to k2 with FR enabled

* Adds tests

* Updates testes

* Does not block the purchase of a ticket at a higher price

* - src/contracts/QThirtyFour.h: ensure k4 reseed uses up-to-date QRP reserve and don’t consume reseed budget with tier top-ups on k4 rounds
  - test/contract_qtf.cpp: expose private/protected internals for unit tests, add exact-match k2/k3 ticket generators (unique), fund jackpot balance in k4 test, and force FR off in baseline k2/k3 revenue-split test

* Removes SettlementLocals and aligned_storage_t

* Updates tests

* Update tests

* Update tests

* Updates index

* Updates inde• Fix k=4 settlement: protect jackpot reseed from k2/k3 reserve top-ups; correct schedule bitmask in specx

* Fixes ContractVerify

* Use RL::max

* Fixes ContractVerify

* Renames Available to Allowed for SC
Auto-update QTF index in QRP
Adds cleanup for allowedSmartContracts in QRP

* Pulse prototype

* Tests

* Tests

* Adds Pulse.h

* Fixes build

* Removes POST_INCOMING_TRANSFER

* Adds test

* Fixes reward

* Fixes for contractverify

* Proportional rule (pro-rata scaling)

* Removes qrp and qtf

* Change contract index

* Removes QTF and QRP

* Fixes contractverify, contract index

* Fixes build

* Update GameMechanics

* Fixes tests

* Rename test

* Update GameMechanics

* GetWinners

* BuyRandomTickets

* Update BuyRandomTicketsSucceedsAndMovesQHeart

* Adds comments

* Rooms

* Fixes: availableBalance, save  data in DepositAutoParticipation

* Adds tests

* Fixes for Contract Verify

* Delete account if deposit is empty

* Refactor SetAutoConfig to reject zero desiredTickets and update tests accordingly

* Fixes after review

* Refactor SetAutoConfig and SetAutoLimits to enforce positive ticket limits and update existing entries accordingly

* Add ticketCounter to randomData structure for tracking ticket counts

* Refactor ticket handling in Pulse: change data types for ticket counter and update related logic for consistency

* Add unit tests for prize computation and ticket validation; refactor ticket initialization

* Adds fee for RL

* Set valid constructionEpoch

* Fixes global const

* remove _ALLOW_KEYWORD_MACROS in gtest

* Update constants

* Removes QHeart Percent
Fixes padding

---------

Co-authored-by: Franziska Mueller <11660876+Franziska-Mueller@users.noreply.github.com>
Increased the initial tick value for node startup.
…ubic#781)

Co-authored-by: cyber-pc <cyber-pc@blue-pc.localhost>
…act to enhance clarity and maintainability. Adjust admin addresses to reflect new configurations while ensuring proper initialization of state variables.
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.