Infinity Blockchain Solutions logo
Confidential · Selection Response
Dibblecoin · Workstream 02

Five Questions,
Answered.

Infinity Blockchain Solutions' response to the standard selection questionnaire for the Smart Contract Suite.

Prepared for Cesar Morais, Dibblecoin
Submitted by Infinity Blockchain Solutions
Our Stats
35+
Countries Served
700+
Smart Contracts Deployed
200+
Web3 dApps Launched
Selection Process

Our Answers

Question 01

"Two mainnet contract addresses you authored, verified on the explorer."

Question 02

"Has any contract you wrote been through an external audit? Which firm, and what was the most severe finding?"

Our Answer

Many of our contracts have been audited by leading firms in the Web3 security space, including Cyberscope, SolidProof, and Coinsult. A selection of our public audit reports:

Our goal is to always avoid any Critical, High, or Medium level issues in the contract, as they actually matter. Low or informational level issues do not carry much weight, since they are just best practices and vary from auditor to auditor.

Question 03

"Which testing framework do you use and what coverage do you deliver? Have you written fuzz or invariant tests before?"

Our Answer

We test every contract using Solidity static analysis, Slither, Surya call graphs, and through manual code review. We've also conducted a number of audits ourselves, and the reports are public on our GitHub:

github.com/InfinityBlockchainSolutions/Audit-Reports
Question 04

"If the owner role is a multisig address set in the constructor with no function to change it afterwards, and a state change must be irreversible with no admin override, how do you implement it and how do you test it?"

Our Answer

We treat "no function to change it" as a structural guarantee: the setter has to be absent from the bytecode, not just gated.

Implementation

  • Owner is declared address public immutable owner, assigned once in the constructor from the multisig address passed in at deployment. Solidity bakes immutable values into the runtime code, so there is no SSTORE path left for any function to reach afterward.
  • We skip OpenZeppelin's standard Ownable here, since it ships a mutable owner with transferOwnership. A minimal custom check (or a hard-overridden, always-reverting transfer function) is used instead.
  • The irreversible action itself is a single bool flag that can only move false → true, inside one onlyOwner function guarded by a require(!confirmed) check. No function anywhere in the contract sets it back to false.

Testing

  • Constructor test: confirms the multisig address is stored correctly and that no external/public selector in the ABI can write to it.
  • Access-control test: any non-owner caller reverts on the confirmation function.
  • Happy-path test: the owner's first call flips the flag and emits the expected event.
  • Re-entry test: a second call, even from the owner, reverts with AlreadyConfirmed.
  • Foundry invariant/fuzz test: arbitrary sequences of calls against every public function, asserting the flag never transitions back to false.
  • Raw storage check: read the owner's storage slot directly (vm.load / getStorageAt) to confirm it never changes, independent of the ABI surface.
// illustrative: irreversible confirmation, immutable multisig owner address public immutable owner; bool public confirmed; constructor(address _multisig) { owner = _multisig; // set once, no setter exists } modifier onlyOwner() { require(msg.sender == owner, "NotOwner"); _; } function confirmPhase() external onlyOwner { require(!confirmed, "AlreadyConfirmed"); confirmed = true; // one edge out of false, none back emit PhaseConfirmed(msg.sender, block.timestamp); }
Question 05

"Would you do the work personally, or subcontract any part of it?"

Our Answer

All of the work would be handled directly by our team. None of it will be subcontracted. Specification review, implementation, testing, and deployment support are carried out in-house from start to finish.