/// <summary> /// Request game item transfer to player. /// </summary> /// <param name="sender">Transfer address of sender.</param> /// <param name="recipientID">Transfer address of recipient.</param> /// <param name="item">Game item to be transfered.</param> /// <param name="amount">Amount of game item to be transfered.</param> /// <returns>Async task that transfer game item to the other player.</returns> public async Task <bool> RequestGameItemTransfer(Profile sender, HoardID recipientID, GameItem item, BigInteger amount) { IGameItemProvider gameItemProvider = GetGameItemProvider(item); if (gameItemProvider != null && sender != null && recipientID != null) { return(await gameItemProvider.Transfer(sender, recipientID, item, amount)); } return(false); }
/// <inheritdoc/> public async Task <bool> Deposit(Profile profile, GameItem item, BigInteger amount) { try { IGameItemProvider gameItemProvider = Hoard.GetGameItemProvider(item); if (gameItemProvider != null) { return(await gameItemProvider.Transfer(profile, ExchangeContract.Address, item, amount)); } throw new HoardException($"Cannot find GameItemProvider for item: {item.Symbol}!"); } catch (Nethereum.JsonRpc.Client.RpcResponseException ex) { throw new Exception(ex.ToString(), ex); } }