claimRewards method

  1. @override
Future<YieldTransactionResult> claimRewards(
  1. String vaultId,
  2. String ownerAddress, [
  3. bool? sponsored
])
override

Claims accrued vault rewards and returns the transaction hash.

Implementation

@override
Future<YieldTransactionResult> claimRewards(String vaultId, String ownerAddress, [bool? sponsored]) async {
  Future<YieldTransactionResult> instrumentationOperation() async {
    final operationScope = _state.flowScope.capture(replace: false);
    await operationScope.ready();
    operationScope.check();
    final response = await _api.post<YieldVaultActionResponse>(path: "/yield/vaults/${Uri.encodeComponent(vaultId)}/claim", body: <String, dynamic>{"ownerAddress": ownerAddress}, token: null, sessionPublicKey: _state.sessionPublicKey, parse: YieldVaultActionResponse.fromJson);
    operationScope.check();
    operationScope.check();
    final transactionHash = await _earnExecutionService.execute(response.signingPayload, ownerAddress, sponsored);
    operationScope.check();
    return YieldTransactionResult(transactionHash: transactionHash);
  }
  return await _api.instrumentation.runAsync("earn.claimRewards", instrumentationOperation);
}