private async Task <Keccak> MakeDepositAsync(Address[] providers, DataAssetForRpc[] dataAssets) { var dataAsset = dataAssets.First(d => providers.Contains(d.Provider.Address)); if (dataAsset is null) { Log("! Data asset was not found for the available providers addresses !"); Exit(); return(null); } Log($"* Making a deposit for data asset: {dataAsset.Id} *"); Separator(); var makeDeposit = new MakeDepositForRpc { DataAssetId = dataAsset.Id, Units = dataAsset.MaxUnits, Value = dataAsset.MaxUnits * new UInt256(dataAsset.UnitPrice) }; Log(_serializer.Serialize(makeDeposit, true)); Separator(); var depositId = await ExecuteOrFailAsync <Keccak>("ndm_makeDeposit", makeDeposit); Log($"* Made a deposit: {depositId} *"); Separator(); return(depositId); }
public async Task <ResultWrapper <Keccak> > ndm_makeDeposit(MakeDepositForRpc deposit) { var depositId = await _consumerService.MakeDepositAsync(deposit.DataAssetId, deposit.Units, deposit.Value); return(depositId is null ? ResultWrapper <Keccak> .Fail("Deposit couldn't be made.") : ResultWrapper <Keccak> .Success(depositId)); }
public async Task <ResultWrapper <Keccak> > ndm_makeDeposit(MakeDepositForRpc deposit, UInt256?gasPrice = null) { if (deposit.DataAssetId == null) { return(ResultWrapper <Keccak> .Fail("Deposit couldn't be made - asset ID unknown.")); } Keccak?depositId = await _consumerService.MakeDepositAsync(deposit.DataAssetId, deposit.Units, deposit.Value, gasPrice); return(depositId is null ? ResultWrapper <Keccak> .Fail("Deposit couldn't be made.") : ResultWrapper <Keccak> .Success(depositId)); }
public async Task make_deposit_should_return_deposit_id() { var request = new MakeDepositForRpc { DataAssetId = Keccak.Zero, Units = 10, Value = 100 }; var depositId = TestItem.KeccakA; _consumerService.MakeDepositAsync(request.DataAssetId, request.Units, request.Value).Returns(depositId); var result = await _rpc.ndm_makeDeposit(request); await _consumerService.Received().MakeDepositAsync(request.DataAssetId, request.Units, request.Value); result.Data.Should().Be(depositId); }