private async Task <BaseTransactionResponse> SendTransaction(IMessage message, string swapId, AtomicSwapMethodEnum method, string receiverAddress = "") { var remmeTransaction = _remmeTransactionService.GetTransactionPayload(message, (uint)method); var inputsOutputs = GetInputsOutputs(swapId, method, receiverAddress); var transactionDto = _remmeTransactionService.GenerateTransactionDto( remmeTransaction, inputsOutputs, FAMILY_NAME, FAMILY_VERSION); var resultTrans = await _remmeTransactionService.CreateTransaction(transactionDto); return(await _remmeTransactionService.SendTransaction(resultTrans)); }
private List <string> GetInputsOutputs(string swapId, AtomicSwapMethodEnum method, string receiverAddress = "") { var result = new List <string>(); result.Add(REMChainUtils.GetAddressFromData(swapId, FAMILY_NAME)); result.Add(_remmeTransactionService.SignerAddress); switch (method) { case AtomicSwapMethodEnum.Init: result.Add(ZERO_ADDRESS); result.Add(SWAP_COMISSION); result.Add(BLOCK_INFO_CONFIG_ADDRESS); result.Add(BLOCK_INFO_NAMESPACE_ADDRESS); result.Add(SettingsKeyGenesisOwners); break; case AtomicSwapMethodEnum.Expire: result.Add(ZERO_ADDRESS); result.Add(BLOCK_INFO_CONFIG_ADDRESS); result.Add(BLOCK_INFO_NAMESPACE_ADDRESS); result.Add(SettingsKeyGenesisOwners); break; case AtomicSwapMethodEnum.Close: result.Add(ZERO_ADDRESS); result.Add(receiverAddress); result.Add(SettingsKeyGenesisOwners); break; default: break; } return(result); }