public IActionResult ChangeRequirement(DestinationChain destinationChain, int requirement, int gasPrice) { try { if (!this.ethCompatibleClientProvider.IsChainSupportedAndEnabled(destinationChain)) { return(this.Json($"{destinationChain} not enabled or supported!")); } IETHClient client = this.ethCompatibleClientProvider.GetClientForChain(destinationChain); string data = client.EncodeChangeRequirementParams(requirement); ETHInteropSettings settings = this.interopSettings.GetSettingsByChain(destinationChain); // TODO: Maybe for convenience the gas price could come from the external API poller return(this.Json(client.SubmitTransactionAsync(settings.MultisigWalletAddress, 0, data).GetAwaiter().GetResult())); } catch (Exception e) { this.logger.Error("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } }
public async Task <IActionResult> RemoveOwnerAsync(DestinationChain destinationChain, string existingOwnerAddress, int gasPrice) { try { if (!this.ethCompatibleClientProvider.IsChainSupportedAndEnabled(destinationChain)) { return(this.Json($"{destinationChain} not enabled or supported!")); } IETHClient client = this.ethCompatibleClientProvider.GetClientForChain(destinationChain); string data = client.EncodeRemoveOwnerParams(existingOwnerAddress); ETHInteropSettings settings = this.interopSettings.GetSettingsByChain(destinationChain); // TODO: Maybe for convenience the gas price could come from the external API poller return(this.Json(await client.SubmitTransactionAsync(settings.MultisigWalletAddress, 0, data, gasPrice).ConfigureAwait(false))); } catch (Exception e) { this.logger.LogError("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } }
protected virtual void SetupConfiguration(InteropSettings interopSettings) { this.settings = interopSettings.ETHSettings; }