Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@fastlane-labs/atlas-config

Package Overview
Dependencies
Maintainers
0
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fastlane-labs/atlas-config

A configuration package for Atlas Protocol

  • 1.3.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
123
increased by720%
Maintainers
0
Weekly downloads
 
Created
Source

Atlas Config - TypeScript

TypeScript package that provides chain configurations for Atlas Protocol smart contracts. This package is part of the Atlas Protocol suite and is designed to work seamlessly with the Atlas SDK.

Installation

npm install @fastlane-labs/atlas-config
# or
pnpm add @fastlane-labs/atlas-config
# or
yarn add @fastlane-labs/atlas-config

Usage

Basic Usage

import { getChainConfig } from '@fastlane-labs/atlas-config';

// Get config for a specific chain
const sepoliaConfig = getChainConfig(11155111); // Sepolia testnet
console.log(sepoliaConfig.contracts.atlas); // Atlas contract address
console.log(sepoliaConfig.eip712Domain); // EIP-712 domain config

Getting Supported Chain IDs

import { getSupportedChainIds } from '@fastlane-labs/atlas-config';

const chainIds = getSupportedChainIds();
console.log("Supported chain IDs:", chainIds); // [137, 11155111, ...]

Getting All Chain Configs

import { getAllChainConfigs } from '@fastlane-labs/atlas-config';

const allConfigs = getAllChainConfigs();
console.log("All chain configs:", allConfigs.map(config => ({
  chainId: config.chainId,
  name: config.config.eip712Domain.name
})));

Merging Custom Configurations

You can merge your own configurations with the default ones. This is useful for testing or using custom contract deployments.

import { mergeChainConfigs } from '@fastlane-labs/atlas-config';

// Example: Updating a single contract address
const partialUpdate = {
  '11155111': { // Sepolia
    '1.0': {
      contracts: {
        atlas: { address: '0x1234567890123456789012345678901234567890' }
      }
    }
  }
};

// Example: Adding a new chain with complete configuration
const newChainConfig = {
  '999999': {
    '1.0': {
      contracts: {
        atlas: { address: '0x0987654321098765432109876543210987654321' },
        atlasVerification: { address: '0x0987654321098765432109876543210987654321' },
        sorter: { address: '0x0987654321098765432109876543210987654321' },
        simulator: { address: '0x0987654321098765432109876543210987654321' },
        multicall3: { address: '0x0987654321098765432109876543210987654321' }
      },
      eip712Domain: {
        name: 'New Test Chain',
        version: '1.0',
        chainId: 999999,
        verifyingContract: '0x1111111111111111111111111111111111111111'
      }
    }
  }
};

// Merge configurations
try {
  const mergedConfigs = mergeChainConfigs({
    ...partialUpdate,
    ...newChainConfig
  });
  console.log("Updated Sepolia config:", mergedConfigs['11155111']);
  console.log("New chain config:", mergedConfigs['999999']);
} catch (error) {
  console.error("Error merging configs:", error);
}

Integration with Atlas SDK

The package is designed to work seamlessly with the Atlas SDK:

import { getChainConfig } from '@fastlane-labs/atlas-config';
import { OperationBuilder } from '@fastlane-labs/atlas-sdk';

// Example: Creating a solver operation
OperationBuilder.newSolverOperation({
  from: "0x...",
  to: "0x...",
  value: BigInt(0),
  gas: BigInt(0),
  maxFeePerGas: BigInt(0),
  deadline: BigInt(0),
  solver: "0x...",
  control: "0x...",
  userOpHash: "0x...",
  bidToken: "0x...",
  bidAmount: BigInt(10000000000000000), // 0.01 ETH
  data: "0x...",
  signature: "0x..."
});

Configuration Types

Contract Configuration

type ContractConfig = {
  atlas: string;
  atlasVerification: string;
  sorter: string;
  simulator: string;
  multicall3: string;
};

EIP-712 Domain Configuration

type EIP712Domain = {
  name: string;
  version: string;
  chainId: number;
  verifyingContract: string;
};

Version Configuration

type VersionConfig = {
  contracts: ContractConfig;
  eip712Domain: EIP712Domain;
};

Error Handling

The package includes proper error handling for common scenarios:

// Invalid chain ID
try {
  const config = getChainConfig(999999);
} catch (error) {
  console.error("Chain not supported:", error);
}

// Invalid version
try {
  const config = getChainConfig(11155111, '9.9');
} catch (error) {
  console.error("Version not found:", error);
}

// Incomplete configuration when merging
try {
  const incompleteConfig = {
    '888888': {
      '1.0': {
        contracts: {
          atlas: { address: '0x1234567890123456789012345678901234567890' }
        }
      }
    }
  };
  mergeChainConfigs(incompleteConfig);
} catch (error) {
  console.error("Expected error:", error);
}

Development

To contribute to this package:

  1. Clone the repository
  2. Install dependencies: pnpm install
  3. Run tests: pnpm test
  4. Build: pnpm build

License

MIT License - see the LICENSE file for details.

Keywords

FAQs

Package last updated on 10 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc