Atlas SDK's

Atlas developer SDK integration

Welcome to the Atlas SDK documentation. Our SDKs are designed to simplify the integration of Atlas Protocol into your applications, providing powerful tools for creating, managing, and executing operations within the Atlas ecosystem.

Available SDKs

Atlas offers two primary SDKs:

Both SDK provide helper functionality for encoding solver Operation. For Typescript particular helpful is the OperationsBuilder

Typescript

Installation

npm install @fastlane-labs/atlas-sdk

Or

yarn add @fastlane-labs/atlas-sdk

Creating a SolverOperation

You can then simply create a OperationBuilder to create a solver Operation


import { OperationBuilder, SolverOperation } from "@fastlane-labs/atlas-sdk";

const solverOp = OperationBuilder.newSolverOperation({
        from: solverSigner.address, // solver address
        to: atlasAddr, // atlasAddr address
        value: BigInt(0), // 0 value
        gas: BigInt(500000), // 500,000 gasLimit
        maxFeePerGas: maxFeePerGas,
        deadline: BigInt(0), // 0 deadline
        solver: solverSigner.address, // dAppOpSigner address
        control: dappControlAddr, // dappControl address
        userOpHash: userOpHash, 
        bidToken: "0x0000000000000000000000000000000000000000", // POL
        bidAmount: bidAmount,
        data: solverCallData,
        signature: "0x" // empty signature
    });
 

// Generate the solver signature
const solverSignature = await generateSolverSignature(solverOp);

// Set the solver signature
solverOp.setField("signature", solverSignature);
 

Encoding SolverOperation

SolverOperation class provides a helper function toStruct() which takes care of serialising and hex encode the SolverOperation.

//to Submit the data we need to JSON.stringify the struct
const generatePflBundle = (solverOp: SolverOperation, opportunityRawTx: string, bundleId: number): PflBundle => {
    return {
        id: bundleId,
        jsonrpc: "2.0",
        method: "pfl_addSearcherBundle",
        params: [`${opportunityRawTx}`, `${JSON.stringify(solverOp.toStruct())}`]
    }
}

Last updated