signUserOperation method
- UserOperation userOp,
- {bool update = true,
- String? id,
- int? index}
override
Signs a user operation using the provided key.
userOp
: TheUserOperation
.update
: True if you want to update the user operation (optional).id
: The id of the transaction (optional).
Returns a signed UserOperation
.
Implementation
@override
Future<UserOperation> signUserOperation(UserOperation userOp,
{bool update = true, String? id, int? index}) async {
if (update) await _updateUserOperation(userOp);
final opHash = userOp.hash(_chain);
Uint8List signature = await plugin<MultiSignerInterface>('signer')
.personalSign(opHash,
index: index,
id: id ?? plugin<PasskeyInterface>('signer').defaultId);
userOp.signature = hexlify(signature);
await _validateUserOperation(userOp);
return userOp;
}