deposit method
Deposits into a yield vault and returns the transaction hash.
Implementation
@override
Future<YieldTransactionResult> deposit(String vaultId, String ownerAddress, String amount, [String? receiverAddress, bool? sponsored]) async {
Future<YieldTransactionResult> instrumentationOperation() async {
final operationScope = _state.flowScope.capture(replace: false);
await operationScope.ready();
operationScope.check();
final yieldVaultDepositBody = <String, dynamic>{"ownerAddress": ownerAddress, "amount": amount};
if (receiverAddress != null) yieldVaultDepositBody["receiverAddress"] = receiverAddress;
final response = await _api.post<YieldVaultActionResponse>(path: "/yield/vaults/${Uri.encodeComponent(vaultId)}/deposit", body: yieldVaultDepositBody, 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.deposit", instrumentationOperation);
}