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.
Both SDK provide helper functionality for encoding solver Operation.
For Typescript particular helpful is the OperationsBuilder
Copy npm install @fastlane-labs/atlas-sdk
Copy yarn add @fastlane-labs/atlas-sdk
Creating a SolverOperation
Copy
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);
SolverOperation class provides a helper function toStruct() which takes care of serialising and hex encode the SolverOperation.
Copy //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())}`]
}
}