Skip to content

Commit 994e339

Browse files
committed
Marketplace Scene + Examples + Wei to ETH
1 parent 78e6ce5 commit 994e339

14 files changed

+5567
-632
lines changed

Assets/Thirdweb/Core/Scripts/Marketplace.cs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ public async Task<TransactionResult> UpdateListing(string listingId, DirectListi
352352
TokenId = BigInteger.Parse(listing.tokenId ?? oldListing.tokenId),
353353
Quantity = BigInteger.Parse(listing.quantity ?? oldListing.quantity),
354354
Currency = listing.currencyContractAddress ?? oldListing.currencyContractAddress,
355-
PricePerToken = BigInteger.Parse(listing.pricePerToken ?? oldListing.pricePerToken),
355+
PricePerToken = BigInteger.Parse(listing.pricePerToken.ToWei() ?? oldListing.pricePerToken),
356356
StartTimestamp = (BigInteger)(listing.startTimeInSeconds ?? oldListing.startTimeInSeconds),
357357
EndTimestamp = (BigInteger)(listing.endTimeInSeconds ?? oldListing.endTimeInSeconds),
358358
Reserved = listing.isReservedListing ?? oldListing.isReservedListing ?? false,
@@ -368,7 +368,7 @@ public class EnglishAuctions : Routable
368368
private string contractAddress;
369369

370370
public EnglishAuctions(string parentRoute, string contractAddress)
371-
: base(Routable.append(parentRoute, "auctions"))
371+
: base(Routable.append(parentRoute, "englishAuctions"))
372372
{
373373
this.contractAddress = contractAddress;
374374
}
@@ -477,24 +477,24 @@ public async Task<Auction> GetAuction(string auctionId)
477477
tokenId = result.Auction.TokenId.ToString(),
478478
quantity = result.Auction.Quantity.ToString(),
479479
currencyContractAddress = result.Auction.Currency,
480-
minimumBidAmount = null,
480+
minimumBidAmount = result.Auction.MinimumBidAmount.ToString(),
481481
minimumBidCurrencyValue = new CurrencyValue(
482482
currency.name,
483483
currency.symbol,
484484
currency.decimals,
485485
result.Auction.MinimumBidAmount.ToString(),
486486
result.Auction.MinimumBidAmount.ToString().ToEth()
487487
),
488-
buyoutBidAmount = null,
488+
buyoutBidAmount = result.Auction.BuyoutBidAmount.ToString(),
489489
buyoutCurrencyValue = new CurrencyValue(
490490
currency.name,
491491
currency.symbol,
492492
currency.decimals,
493493
result.Auction.BuyoutBidAmount.ToString(),
494494
result.Auction.BuyoutBidAmount.ToString().ToEth()
495495
),
496-
timeBufferInSeconds = null,
497-
bidBufferBps = null,
496+
timeBufferInSeconds = (int)result.Auction.TimeBufferInSeconds,
497+
bidBufferBps = (int)result.Auction.BidBufferBps,
498498
startTimeInSeconds = (long)result.Auction.StartTimestamp,
499499
endTimeInSeconds = (long)result.Auction.EndTimestamp,
500500
asset = metadata,
@@ -680,8 +680,8 @@ public async Task<TransactionResult> CreateAuction(CreateAuctionInput input)
680680
TokenId = BigInteger.Parse(input.tokenId),
681681
Quantity = BigInteger.Parse(input.quantity ?? "1"),
682682
Currency = input.currencyContractAddress ?? Utils.NativeTokenAddressV2,
683-
MinimumBidAmount = BigInteger.Parse(input.minimumBidAmount),
684-
BuyoutBidAmount = BigInteger.Parse(input.buyoutBidAmount),
683+
MinimumBidAmount = BigInteger.Parse(input.minimumBidAmount.ToWei()),
684+
BuyoutBidAmount = BigInteger.Parse(input.buyoutBidAmount.ToWei()),
685685
TimeBufferInSeconds = ulong.Parse(input.timeBufferInSeconds ?? "900"),
686686
BidBufferBps = ulong.Parse(input.bidBufferBps ?? "500"),
687687
StartTimestamp = (ulong)(input.startTimestamp ?? await Utils.GetCurrentBlockTimeStamp() + 60),
@@ -716,8 +716,8 @@ public async Task<TransactionResult> MakeBid(string auctionId, string bidAmount)
716716
{
717717
return await TransactionManager.ThirdwebWrite(
718718
contractAddress,
719-
new EnglishAuctionsContract.BidInAuctionFunction() { AuctionId = BigInteger.Parse(auctionId), BidAmount = BigInteger.Parse(bidAmount) },
720-
BigInteger.Parse(bidAmount)
719+
new EnglishAuctionsContract.BidInAuctionFunction() { AuctionId = BigInteger.Parse(auctionId), BidAmount = BigInteger.Parse(bidAmount.ToWei()) },
720+
BigInteger.Parse(bidAmount.ToWei())
721721
);
722722
}
723723
}
@@ -905,12 +905,11 @@ public async Task<TransactionResult> MakeOffer(MakeOfferInput input)
905905
AssetContract = input.assetContractAddress,
906906
TokenId = BigInteger.Parse(input.tokenId),
907907
Quantity = BigInteger.Parse(input.quantity ?? "1"),
908-
Currency = input.currencyContractAddress ?? Utils.NativeTokenAddressV2,
909-
TotalPrice = BigInteger.Parse(input.totalPrice),
908+
Currency = input.currencyContractAddress ?? Utils.GetNativeTokenWrapper(ThirdwebManager.Instance.SDK.nativeSession.lastChainId),
909+
TotalPrice = BigInteger.Parse(input.totalPrice.ToWei()),
910910
ExpirationTimestamp = (BigInteger)(input.endTimestamp ?? Utils.GetUnixTimeStampIn10Years())
911911
}
912-
},
913-
BigInteger.Parse(input.totalPrice)
912+
}
914913
);
915914
}
916915
}

Assets/Thirdweb/Core/Scripts/Types.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,27 @@ public struct Auction
204204
public long? endTimeInSeconds; // The end time of the auction.
205205
public NFTMetadata? asset; // The asset being auctioned.
206206
public MarkteplaceStatus? status; // Whether the listing is CREATED, COMPLETED, or CANCELLED.
207+
208+
public override string ToString()
209+
{
210+
return "Auction:\n"
211+
+ $"id: {id?.ToString()}\n"
212+
+ $"creatorAddress: {creatorAddress?.ToString()}\n"
213+
+ $"assetContractAddress: {assetContractAddress?.ToString()}\n"
214+
+ $"tokenId: {tokenId?.ToString()}\n"
215+
+ $"quantity: {quantity?.ToString()}\n"
216+
+ $"currencyContractAddress: {currencyContractAddress?.ToString()}\n"
217+
+ $"minimumBidAmount: {minimumBidAmount?.ToString()}\n"
218+
+ $"minimumBidCurrencyValue: {minimumBidCurrencyValue?.ToString()}\n"
219+
+ $"buyoutBidAmount: {buyoutBidAmount?.ToString()}\n"
220+
+ $"buyoutCurrencyValue: {buyoutCurrencyValue?.ToString()}\n"
221+
+ $"timeBufferInSeconds: {timeBufferInSeconds?.ToString()}\n"
222+
+ $"bidBufferBps: {bidBufferBps?.ToString()}\n"
223+
+ $"startTimeInSeconds: {startTimeInSeconds?.ToString()}\n"
224+
+ $"endTimeInSeconds: {endTimeInSeconds?.ToString()}\n"
225+
+ $"asset: {asset?.ToString()}\n"
226+
+ $"status: {status?.ToString()}\n";
227+
}
207228
}
208229

209230
[System.Serializable]
@@ -235,6 +256,22 @@ public struct Offer
235256
public NFTMetadata? asset; // Metadata of the asset
236257
public long? endTimeInSeconds; // The end time of the offer.
237258
public MarkteplaceStatus? status; // Whether the listing is CREATED, COMPLETED, or CANCELLED.
259+
260+
public override string ToString()
261+
{
262+
return "Offer:\n"
263+
+ $"id: {id?.ToString()}\n"
264+
+ $"offerorAddress: {offerorAddress?.ToString()}\n"
265+
+ $"assetContractAddress: {assetContractAddress?.ToString()}\n"
266+
+ $"tokenId: {tokenId?.ToString()}\n"
267+
+ $"quantity: {quantity?.ToString()}\n"
268+
+ $"currencyContractAddress: {currencyContractAddress?.ToString()}\n"
269+
+ $"currencyValue: {currencyValue?.ToString()}\n"
270+
+ $"totalPrice: {totalPrice?.ToString()}\n"
271+
+ $"asset: {asset?.ToString()}\n"
272+
+ $"endTimeInSeconds: {endTimeInSeconds?.ToString()}\n"
273+
+ $"status: {status?.ToString()}\n";
274+
}
238275
}
239276

240277
[System.Serializable]

Assets/Thirdweb/Core/Scripts/Utils.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,5 +331,48 @@ public async static Task<string> GetENSName(string address)
331331
return await ensService.ReverseResolveAsync(address);
332332
}
333333
}
334+
335+
public static string GetNativeTokenWrapper(int chainId)
336+
{
337+
switch (chainId)
338+
{
339+
case 1:
340+
return "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
341+
case 4:
342+
return "0xc778417E063141139Fce010982780140Aa0cD5Ab"; // rinkeby
343+
case 5:
344+
return "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6"; // goerli
345+
case 137:
346+
return "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270";
347+
case 80001:
348+
return "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889";
349+
case 43114:
350+
return "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7";
351+
case 43113:
352+
return "0xd00ae08403B9bbb9124bB305C09058E32C39A48c";
353+
case 250:
354+
return "0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83";
355+
case 4002:
356+
return "0xf1277d1Ed8AD466beddF92ef448A132661956621";
357+
case 10:
358+
return "0x4200000000000000000000000000000000000006"; // optimism
359+
case 69:
360+
return "0xbC6F6b680bc61e30dB47721c6D1c5cde19C1300d"; // optimism kovan
361+
case 420:
362+
return "0x4200000000000000000000000000000000000006"; // optimism goerli
363+
case 42161:
364+
return "0x82af49447d8a07e3bd95bd0d56f35241523fbab1"; // arbitrum
365+
case 421611:
366+
return "0xEBbc3452Cc911591e4F18f3b36727Df45d6bd1f9"; // arbitrum rinkeby
367+
case 421613:
368+
return "0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3"; // arbitrum goerli
369+
case 56:
370+
return "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"; // binance mainnet
371+
case 97:
372+
return "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd"; // binance testnet
373+
default:
374+
throw new UnityException("Native Token Wrapper Unavailable For This Chain!");
375+
}
376+
}
334377
}
335378
}

0 commit comments

Comments
 (0)