public async Task ValidateEndAndReturn() { Meadow.Core.EthTypes.UInt256 newPrice = 12345678; var txParams = new TransactionParams { From = Accounts[0] }; // admin //fund with strike price of initPrice Fund _FundContract; _FundContract = await Fund.New(_contract.ContractAddress, RpcClient); //connect fund await _contract.connectFund(_FundContract.ContractAddress).SendTransaction(txParams); //end var txHash = await _contract.reportPrice(newPrice, "meadowUpdate").SendTransaction(txParams); //validate fund info var fundInfo = await _contract.funds(_FundContract.ContractAddress).Call(); Assert.AreEqual(_FundContract.ContractAddress, fundInfo.fund); Assert.AreEqual(true, fundInfo.endPriceConditionsReached); Assert.AreEqual(newPrice, fundInfo.endPrice); Assert.AreEqual(initPrice, fundInfo.strikePrice); var hasFundEnded = await _contract.hasFundEnded(_FundContract.ContractAddress).Call(); Assert.AreEqual(true, hasFundEnded); //back down from end await _contract.reportPrice(initPrice, "meadowUpdate").SendTransaction(txParams); //validate fund info again fundInfo = await _contract.funds(_FundContract.ContractAddress).Call(); var EndPrice = await _contract.getEndPrice(_FundContract.ContractAddress).Call(); Assert.AreEqual(_FundContract.ContractAddress, fundInfo.fund); Assert.AreEqual(true, fundInfo.endPriceConditionsReached); Assert.AreEqual(newPrice, fundInfo.endPrice); //end price was the peak Assert.AreEqual(newPrice, EndPrice); //end price was the peak Assert.AreEqual(initPrice, fundInfo.strikePrice); hasFundEnded = await _contract.hasFundEnded(_FundContract.ContractAddress).Call(); Assert.AreEqual(true, hasFundEnded); }
public async Task ValidateConnectingFund_decimalMismatch() { //deploy a fund instance, but do no tests, that's something for the fund test suite Fund _FundContract; _FundContract = await Fund.New(_contract.ContractAddress, RpcClient); //make new price index but with other decimals // Deploy our test contract Meadow.Core.EthTypes.UInt256 fiatDecimals2 = 5; PriceIndex _contract2 = await PriceIndex.New(initPrice, "meadowInit", 4, (byte)fiatDecimals2, "BTC", "USD", RpcClient); //connect fund var txParams = new TransactionParams { From = Accounts[0] }; // admin await _contract2.connectFund(_FundContract.ContractAddress).SendTransaction(txParams); }