From 985bd37ef2de2a79645182036a29fca6373629b1 Mon Sep 17 00:00:00 2001 From: Andri Joos <andri@joos.io> Date: Fri, 29 Nov 2024 17:19:38 +0100 Subject: [PATCH] marketplace sell --- .../Marketplaces/Interfaces/IPotatoMarketplace.cs | 2 +- Frontend/Marketplaces/PotatoMarketplaceMock.cs | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Frontend/Marketplaces/Interfaces/IPotatoMarketplace.cs b/Frontend/Marketplaces/Interfaces/IPotatoMarketplace.cs index b42f07e..9be9856 100644 --- a/Frontend/Marketplaces/Interfaces/IPotatoMarketplace.cs +++ b/Frontend/Marketplaces/Interfaces/IPotatoMarketplace.cs @@ -11,6 +11,6 @@ namespace Frontend.Marketplaces.Interfaces public Task<double> PotatoKgPriceInEth { get; } public Task<bool> Approve(Web3 approverClient, BigInteger amount); public Task<PotatoTransaction?> Buy(string ownerAddress); - // public double Sell(PotatoTransaction transaction); + public Task<bool> Sell(PotatoTransaction transaction, string receiverAddress); } } diff --git a/Frontend/Marketplaces/PotatoMarketplaceMock.cs b/Frontend/Marketplaces/PotatoMarketplaceMock.cs index 1445f45..2d2024a 100644 --- a/Frontend/Marketplaces/PotatoMarketplaceMock.cs +++ b/Frontend/Marketplaces/PotatoMarketplaceMock.cs @@ -69,6 +69,21 @@ public class PotatoMarketplaceMock( }; } + public async Task<bool> Sell(PotatoTransaction transaction, string receiverAddress) + { + var amount = (double)await PotatoKgWeiPrice() * transaction.Weight; + + var transferHandler = web3.Eth.GetContractTransactionHandler<TransferFunction>(); + var transferFunction = new TransferFunction + { + To = receiverAddress, + Value = new BigInteger(amount), + }; + + var receipt = await transferHandler.SendRequestAndWaitForReceiptAsync(wethAddress, transferFunction); + return receipt.Status.Value == 1; + } + private static async Task<double> EthChfPrice() { string url = "https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=CHF"; -- GitLab