/// <inheritdoc/> public async Task <Order[]> ListOrders(GameItem gaGet, GameItem gaGive, Profile profile) { var jsonStr = await GetJson( string.Format("exchange/orders/{0},{1},{2}", gaGet != null ? gaGet.Metadata.Get <string>("OwnerAddress") : "", gaGive != null ? gaGive.Metadata.Get <string>("OwnerAddress") : "", profile != null ? profile.ID : ""), null); if (!string.IsNullOrEmpty(jsonStr)) { var orders = JsonConvert.DeserializeObject <Order[]>(jsonStr); GameItemsParams[] gameItemsParams = new GameItemsParams[orders.Length * 2]; for (var i = 0; i < orders.Length; ++i) { gameItemsParams[i * 2] = new GameItemsParams(); gameItemsParams[i * 2].ContractAddress = orders[i].tokenGive; gameItemsParams[i * 2].TokenId = orders[i].tokenIdGive.ToString(); gameItemsParams[i * 2 + 1] = new GameItemsParams(); gameItemsParams[i * 2 + 1].ContractAddress = orders[i].tokenGet; } GameItem[] itemsRetrieved = await Hoard.GetItems(gameItemsParams); for (var i = 0; i < orders.Length; ++i) { orders[i].UpdateGameItemObjs(itemsRetrieved[i * 2 + 1], itemsRetrieved[i * 2]); } return(orders); } return(new Order[0]); }
/// <inheritdoc/> public override async Task <GameItem> GetGameItem(GameItemsParams gameItemsParams) { Metadata meta = new Metadata(Address, gameItemsParams.Amount); var item = new GameItem(Game, await GetSymbol(), meta); item.State = await GetTokenState(); return(item); }
/// <summary> /// Returns particular Item based on query parameters /// </summary> /// <param name="gameItemsParams">query parameters</param> /// <returns></returns> public override async Task <GameItem> GetGameItem(GameItemsParams gameItemsParams) { var id = BigInteger.Parse(gameItemsParams.TokenId, NumberStyles.AllowHexSpecifier); Metadata meta = new Metadata(Address, id); GameItem item = new GameItem(Game, await GetSymbol(), meta); item.State = await GetTokenState(id); return(item); }
/// <summary> /// Returns specific Game Item based on query parameters /// </summary> /// <param name="gameItemsParams">query parameters</param> /// <returns></returns> public abstract Task <GameItem> GetGameItem(GameItemsParams gameItemsParams);