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
Typescript
Installation
npminstall@fastlane-labs/atlas-sdk
Or
yarnadd@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";constsolverOp=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 signatureconstsolverSignature=awaitgenerateSolverSignature(solverOp);// Set the solver signaturesolverOp.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 structconstgeneratePflBundle= (solverOp:SolverOperation, opportunityRawTx:string, bundleId:number):PflBundle=> {return { id: bundleId, jsonrpc:"2.0", method:"pfl_addSearcherBundle", params: [`${opportunityRawTx}`,`${JSON.stringify(solverOp.toStruct())}`] }}