Value types

Reading value types

As outlined in the solidity storage layout documentation (opens in a new tab), "Except for dynamically-sized arrays and mappings (see below), data is stored contiguously item after item starting with the first state variable, which is stored in slot 0."

As such, a contract defining a uint256 as follows:

Contract definition

Example.sol
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.25;
 
    contract Example {
        uint256 slot0 = 123;
    }

Reading values

example.js
    new GatewayRequest(OUTPUT_COUNT)    //Specify the number of outputs
      .setTarget(CONTRACT_ADDRESS)      //Specify the contract address
      .setSlot(0)                       //Specify the slot number
      .read()                           //Read the value
      .setOutput(0)                     //Set it at output index 0