IEas.getParams

getParams() external view returns (EasParams memory params)

Returns the canonical addresses of the Ethereum Attestation Service deployment on this Maroo network — the SchemaRegistry, the EAS contract, and the Indexer. Call this once at app startup so your code resolves the right addresses on testnet and mainnet without hard-coding. The return struct is named EasParams (the un-namespaced Params name was renamed to avoid collisions when multiple precompile interfaces are imported together).

Parameters

This method has no parameters.

Returns

Type: EasParams

An EasParams tuple with three fields: address schemaRegistry (the SchemaRegistry contract), address eas (the EAS attestation contract), and address indexer (the EAS Indexer contract for reverse lookups).

Examples

Resolve EAS addresses from Solidity

Import the EasParams struct alongside the interface. The constant EAS_CONTRACT resolves to the precompile at 0x1000000000000000000000000000000000000009.

// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.18;

import { IEas, EasParams, EAS_CONTRACT } from "@maroo-chain/contracts/precompiles/eas/IEas.sol";

contract EasResolver {
    function readEas() external view returns (address schemaRegistry, address eas, address indexer) {
        EasParams memory p = EAS_CONTRACT.getParams();
        return (p.schemaRegistry, p.eas, p.indexer);
    }
}

Resolve EAS addresses with viem

From the client side the rename is invisible — viem and ethers describe the return as an anonymous tuple. Only Solidity imports need to track the new struct name.

import { createPublicClient, http } from "viem";

const EAS_PRECOMPILE = "0x1000000000000000000000000000000000000009";
const easPrecompileAbi = [{
  name: "getParams",
  type: "function",
  stateMutability: "view",
  inputs: [],
  outputs: [{
    type: "tuple",
    components: [
      { name: "schemaRegistry", type: "address" },
      { name: "eas",            type: "address" },
      { name: "indexer",        type: "address" },
    ],
  }],
}] as const;

const client = createPublicClient({ transport: http("https://rpc-testnet.maroo.io") });
const params = await client.readContract({
  address: EAS_PRECOMPILE,
  abi: easPrecompileAbi,
  functionName: "getParams",
});
console.log("schemaRegistry:", params.schemaRegistry);
console.log("eas:           ", params.eas);
console.log("indexer:       ", params.indexer);
ESC
Type to search