claimRewards method
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);
}