示例#1
0
        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);
        }
示例#2
0
        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);
        }