Solvers
Solvers are actors that find blobs of data in the CrossCall mempool and execute them in bundles. When executing these bundles the solver is required to have three userops submitted in order:
send funds to the CrossCall Paymaster to execute any crosschain calls
send funds to the signer's smart contract wallet (SCW) to execute the signer's userop
execute the signer's userop
Blob data format:
// UserOp Operation Structure:
type UserOperation struct {
Sender string `json:"sender"`
Nonce string `json:"nonce"`
InitCode string `json:"initCode"`
CallData string `json:"callData"`
CallGasLimit string `json:"callGasLimit"`
VerificationGasLimit string `json:"verificationGasLimit"`
PreVerificationGas string `json:"preVerificationGas"`
MaxFeePerGas string `json:"maxFeePerGas"`
MaxPritorityFeePerGas string `json:"maxPriorityFeePerGas"`
PaymasterAndData string `json:"paymasterAndData"`
Signature string `json:"signature"`
}
// Execution Data Structure:
type ExecutionData struct {
DestinationChain string `json:"destinationChain"`
TargetAddress string `json:"targetAddress"`
Asset string `json:"asset"`
Amount string `json:"amount"`
Calldata string `json:"calldata"`
}
// Executable Blob
type ExecutableBlob struct {
ExecutionRequest ExecutionData `json:"execution"`
UserOp UserOperation `json:"userop"`
}Becoming a solver:
Coming soon! 🚧
Last updated